NoSQLテーブルのクエリ
Catalystでは、テーブルのプライマリキーを使用してアイテムを識別し、NoSQLテーブルをクエリしてデータを取得できます。たとえば、パーティションキーのみ、またはパーティションキーとソートキーの組み合わせを使用してアイテムを取得できます。
注意: Catalystでは、1回のSDK操作でページネーションを使用してNoSQLテーブルから最大100アイテムを一括取得できます。SDKレスポンスで受け取ったstart_keyトークンを使用して、ページネーションのロジックを構築する必要があります。
属性、その必要な値、使用するサポートされる演算子を指定して、アイテムを識別するキー条件を定義できます。グループ演算子で追加条件を指定することもできます。
サポートされる演算子は以下のように表されます。
| Operators | Notation |
|---|---|
| CONTAINS | contains |
| NOT_CONTAINS | not_contains |
| BEGINS_WITH | begins_with |
| ENDS_WITH | ends_with |
| IN | in |
| NOT_IN | not_in |
| BETWEEN | between |
| NOT_BETWEEN | not_between |
| EQUALS | equals |
| NOT_EQUALS | not_equals |
| GREATER_THAN | greater_than |
| LESS_THAN | less_than |
| GREATER_THAN_OR_EQUALS | greater_equal |
| LESSER_THAN_OR_EQUALS | less_equal |
| AND | AND |
| OR | OR |
以下の例では、パーティションキーfruitTypeを使用してアイテムを識別し、条件値を「citrus」として指定してqueryTable()メソッドでクエリを実行しています。また、属性locationが「USA」に一致する追加条件も指定しています。
Catalyst NoSQLでは、consistent_readを使用して読み取り操作をマスターまたはスレーブクラスターのどちらで実行するかを示す、返される行数の制限、昇順でのソート順の指定など、クエリの他の要素も定義できます。
注意: マスター・スレーブレプリケーションでは、マスターにはデータベースのすべてのデータが含まれ、スレーブにはマスターからのコピーが含まれます。スレーブから読み取り操作を実行すると、更新されたデータの反映に若干の遅延があるというトレードオフで、全体的なコストを削減できます。
copy
# パーティションキーfruitTypeの値が"citrus"であるアイテムを取得するためにNoSQLテーブルをクエリする
res = table.query_table(
{
# consistent_readをtrueに設定してマスターからクエリする。falseの場合、スレーブからクエリされる。
'consistent_read': 'true',# forwardScanをtrueに設定して結果を昇順でソートする。それ以外の場合は降順でソートされる。
'forwardScan': 'true',# 値を指定して返される行数を制限する
'limit': 10,# アイテムを識別するためのキー条件を定義する
'key_condition': {
'attribute': 'fruitType',
'operator': 'equals',
'value': {
'S': 'citrus'
}
},
# グループ演算子を使用してテーブルアイテムをクエリするための追加条件を指定する
'other_condition': {
'group_operator': 'and',
'group': [
{
'attribute': 'location',
'operator': 'equals',
'value': {
'S': 'USA'
}
}
]
}
})
print(res)
最終更新日 2026-03-30 13:40:30 +0530 IST
Yes
No
Send your feedback to us
Skip
Submit