行の取得
Catalyst Data Storeのテーブルから単一行または複数行のデータを取得できます。これらのコードスニペットで使用されているtable_serviceの参照は、テーブルインスタンスまたはテーブルメタのいずれかです。
単一行の取得
get_row()メソッドを使用して、テーブルから単一行を取得できます。以下のコードスニペットに示すように、このメソッドに行の一意のRowIDを渡す必要があります。以下で使用されているコンポーネントインスタンスdatastore_serviceおよびテーブルインスタンスtable_serviceの詳細については、それぞれのヘルプセクションを参照してください。
使用するパラメータ
| パラメータ名 | データ型 | 定義 |
|---|---|---|
| rowID | String | 必須パラメータです。詳細を取得する行のIDを格納します。 |
# 1行を取得する
datastore_service = app.datastore()
table_service = datastore_service.table("CITY")
row_data = table_service.get_row(5249000000032385)
サンプルレスポンスを以下に示します:
{
CREATORID: "2136000000006003",
MODIFIEDTIME: "2021-08-17 13:02:11:184",
CREATEDTIME: "2021-08-16 16:29:10:499",
CITYNAME: "Pune",
ROWID: "5249000000032385"
}
ページネーションによる全行の取得
get_paged_rows()関数を使用してコードにページネーションを組み込むことで、Data Storeのテーブルからすべての行のデータを取得できます。ページネーションにより、イテレーションを通じてテーブルの行をバッチまたはページ単位で取得できます。
このイテレーションは、以下のコードに示すように、すべての行が取得されるまで実行されます。これは単純なif条件で検証されます。テーブルは一意のテーブル名で参照できます。
たとえば、行を100件ずつのバッチで個別のページとして取得する場合、各ページで取得する最大行数の変数を定義してカウントを指定できます。以下のサンプルコードではmax_rowsを100に設定しています。
さらに、レスポンスデータに後続のデータ取得を認可するトークン文字列が含まれます。このトークンはnext_tokenを通じて取得でき、以下のコードに示すように、後続のイテレーション時にnext_tokenの値として渡します。ループの最初の実行時、next_token文字列の値はNoneに設定されます。次のレコードセットは、レスポンスデータのmore_recordsを通じて取得されます。
使用するパラメータ
| パラメータ名 | データ型 | 定義 |
|---|---|---|
| next_token | String | 必須パラメータです。後続のデータ取得を認可するレスポンスデータからのトークンを格納します。 |
| max_rows | Numeric | 任意パラメータです。行を取得するバッチの数を保持します。 |
datastore_service = app.datastore()
table_service = datastore_service.table("Aliens")
def getMyPagedRows(next_token=None, more_records=True):
rows = table_service.get_paged_rows(next_token, max_rows=100)
more_records = rows['more_records']
if not more_records:
return None
next_token = rows['next_token']
return getMyPagedRows(next_token, more_records)
getMyPagedRows()
more_recordsパラメータがtrueに設定されている場合、サンプルレスポンスを以下に示します:
{
"status": 200,
"content": [
{
"CREATORID": "3359000000006003",
"MODIFIEDTIME": "2022-01-11 18:18:24:855",
"CITYNAME": "New York",
"CREATEDTIME": "2022-01-11 18:18:24:855",
"ROWID": "5249000000032385"
},
{
"CREATORID": "3359000000006003",
"MODIFIEDTIME": "2022-01-11 18:18:25:117",
"CITYNAME": "Houston",
"CREATEDTIME": "2022-01-11 18:18:25:117",
"ROWID": "5249000000032386"
},
{
"CREATORID": "3359000000006003",
"MODIFIEDTIME": "2022-01-11 18:18:25:120",
"CITYNAME": "Chicago",
"CREATEDTIME": "2022-01-11 18:18:25:120",
"ROWID": "5249000000032387"
}
],
"message": "OK",
"more_records": true,
"next_token": "{{token}}"
}
more_recordsパラメータがfalseに設定されている場合、サンプルレスポンスを以下に示します:
{
"status": 200,
"content": [
{
"CREATORID": "3359000000006003",
"MODIFIEDTIME": "2022-01-11 18:18:43:556",
"name": "San Diego",
"CREATEDTIME": "2022-01-11 18:18:43:556",
"ROWID": "5249000000032385"
},
{
"CREATORID": "3359000000006003",
"MODIFIEDTIME": "2022-01-11 18:18:43:557",
"name": "Phoenix",
"CREATEDTIME": "2022-01-11 18:18:43:557",
"ROWID": "5249000000032386"
},
{
"CREATORID": "3359000000006003",
"MODIFIEDTIME": "2022-01-11 18:18:43:568",
"name": "Seattle",
"CREATEDTIME": "2022-01-11 18:18:43:568",
"ROWID": "5249000000032387"
}
],
"message": "OK",
"more_records": false
}
最終更新日 2026-03-30 13:40:30 +0530 IST
Yes
No
Send your feedback to us