レコードの一括読み取り
一括読み取り操作は、Data Store内の特定のテーブルから数千のレコードを読み取り、ジョブが成功した場合、読み取り操作の結果を含むCSVファイルを生成します。このデータ集約型の操作は、単一のAPI実行で実行できます。
Catalystは一括読み取り操作用に3つのAPIをサポートしています:一括読み取り作成API、ジョブ実行のステータスを手動で確認するための一括読み取りステータス確認API、および結果をダウンロードするための一括読み取り結果ダウンロードAPIです。コールバックURLを設定して、ジョブステータスのレスポンスを自動的に送信することもできます。
一括読み取りジョブの作成
説明
このAPIは、入力JSONで指定した条件に一致するData Store内のテーブルからレコードを取得する一括読み取り操作をトリガーします。テーブルは一意のテーブルIDまたはテーブル名で参照されます。
リクエスト詳細
リクエストURL
{api-domain}/baas/v1/project/{projectId}/bulk/read
リクエストヘッダー
Authorization: Zoho-oauthtoken {oauth_token}
任意のヘッダー
CATALYST-ORG: {org_id}
Environment: Development
スコープ
ZohoCatalyst.tables.bulk.READ
リクエストJSONプロパティ
一括読み取りAPIリクエストの入力はJSON形式で送信する必要があります。リクエストパラメーターを以下に説明します。
一括読み取りジョブの条件と基準を定義するセクション
一括読み取り処理の結果として生成されるCSVファイルは、1ページに200,000件のレコードを含みます。
ページ値「1」は、クエリに一致する最初の200,000件のレコードがエクスポートされることを示します。ページ値を増やすことで後続のレコードを取得できます。
例えば、200,001件目から400,000件目までのレコードを取得する場合、ページ値を「2」に指定する必要があります。
デフォルト値: 1
テーブルから取得するレコード内の特定のカラム。カラムを指定しない場合、すべてのカラムが選択され取得されます。
配列に複数のカラムを含めることができます。サンプルリクエストのコードウィンドウを参照してください。
レコードが取得される基準となる条件のセット
条件グループを結合する演算子。
サポートされる演算子: AND、OR
2つ以上の条件グループを定義する場合、リクエストでANDまたはOR演算子を使用できます。例えば、前のセクションで指定した形式で「column1がvalue 1に等しい AND column2がvalue 2を含む」のような条件を指定できます。
このセクションには最大25個の条件セットを含めることができます。例では3つの条件セットを示しています。
カラム名と条件値を照合する比較演算子
サポートされる比較演算子: equal、not_equal、greater_than、greater_equal、less_than、less_equal、starts_with、ends_with、contains、not_contains、in、not_in、between、not_between
注意:
-
inおよびnot_in比較演算子には、カンマで区切って複数の値を指定できます。
-
Catalystは暗号化されたカラムに対してはequal比較演算子のみをサポートしています。暗号化されたカラムの条件として他の比較演算子を使用することはできません。
ジョブステータスの自動JSONレスポンスが送信されるコールバックURLのプロパティを定義するセクション
ジョブステータスが変更されるたびに、HTTP POSTメソッドを使用して自動レスポンスが送信されるURL。ジョブ詳細に関する情報はJSONレスポンスの本文に含まれます。
コールバックURLを設定しない場合、必要な時に一括読み取りステータス確認APIを使用してジョブ処理のステータスを手動で確認する必要があります。
コールバックURLへのJSONレスポンスで渡す必要があるヘッダー。
ヘッダーは以下の形式で指定する必要があります:
{
"{header_name_1}" : “{header_value_1}”,
"{header_name_2}" : “{header_value_2}”
}
以降同様。サンプルリクエストコードを参照してください。
コールバックURLに付加するパラメーター
パラメーターは以下の形式で指定する必要があります:
{
"{param_name_1}" : “{param_value_1}”,
"{param_name_2}" : “{param_value_2}”
}
以降同様。サンプルリクエストコードを参照してください。
レスポンス詳細
ジョブ処理には3つの状態があり、それぞれ異なるレスポンスが生成されます:
-
処理中: APIを実行すると、Catalystはジョブの実行が処理中であることを示すレスポンスを即座に自動的に送信します。リクエストでコールバックURLを設定した場合、レスポンスは定義した形式でそのURLにも送信されます。
レスポンスにはjob_id parameterが含まれ、コールバックURLを設定していない場合に、後続のレスポンスのジョブ実行ステータスの確認に使用できます。
-
成功: 成功状態のレスポンスには、一括読み取りジョブのクエリに一致するレコードを含むCSVファイルをダウンロードできるダウンロードURLが含まれます。コールバックURLを設定していない場合、このレスポンスはCatalystから自動的に送信されません。
-
失敗: 失敗状態のレスポンスには、発生したエラーの説明と詳細が含まれます。コールバックURLを設定していない場合、このレスポンスはCatalystから自動的に送信されません。
curl -X POST
https://api.catalyst.zoho.com/baas/v1/project/4000000006007/bulk/read
-H “Authorization: Zoho-oauthtoken 1000.91016.2f*57”
-d ‘{
“table_identifier”: “EmpDetails”,
“query” : {
“page” : “1”,
“select_columns” : [
“EmpID”, “EmpName”, “Department”
],
“criteria”: {
“group_operator”: “or”,
“group”: [
{
“column_name”: “Department”,
“comparator”: “equal”,
“value”: “Marketing”
} ,
{
“column_name”: “EmpID”,
“comparator”: “greater_than”,
“value”: “1000”
} ,
{
“column_name”: “EmpName”,
“comparator”: “starts_with”,
“value”: “S”
}
]
}
},
“callback” : {
“url” : “https://hr.zylker.com/ja/EmpRecords/_callback.php",
“headers” : {
“src” : “ZCatalyst”,
“operation” : “bulkreadAPI”
},
“params” : {
“project_name” : “EmployeeDatabase”
}
}
}’
{
"status": "success",
"data": {
"job_id": 2000000118004,
"status": "In-Progress",
"operation": "read",
"project_details": {
"project_name": "ShipmentTracking",
"id": 4000000006007
},
"query": [
{
"table_id": 3376000000165541,
"details": {
"page": "1"
}
}
],
"callback": {
"url": "https://hr.zylker.com/ja/EmpRecords/_callback.php",
"headers": {
"src" : "ZCatalyst",
"operation" : "bulkreadAPI"
},
"params": {
"project_name" : "EmployeeDatabase"
}
},
"created_by": {
"zuid": 1019540152,
"is_confirmed": true,
"email_id": "emma@zylker.com",
"first_name": "Amelia",
"last_name": "Burrows",
"user_id": 671930409
},
"created_time": "Oct 06, 2020 07:06 PM"
}
}
{
"status": "success",
"data": {
"job_id": 2000000118004,
"status": "In-Progress",
"operation": "read",
"project_details": {
"project_name": "ShipmentTracking",
"id": 4000000006007
},
"query": [
{
"table_id": 3376000000165541,
"details": {
"page": "1"
}
}
],
"callback": {
"url": "https://hr.zylker.com/ja/EmpRecords/_callback.php",
"headers": {
"src" : "ZCatalyst",
"operation" : "bulkreadAPI"
},
"params": {
"project_name" : "EmployeeDatabase"
}
},
"created_by": {
"zuid": 1019540152,
"is_confirmed": true,
"email_id": "emma@zylker.com",
"first_name": "Amelia",
"last_name": "Burrows",
"user_id": 671930409
},
"created_time": "Oct 06, 2020 07:06 PM"
}
}
{
"status": "success",
"data": {
"job_id": 2000000117007,
"status": "Failed",
"operation": "read",
"project_details": {
"project_name": "ShipmentTracking",
"id": 4000000006007
},
"query": [
{
"table_id": 3376000000165541,
"details": {
"page": "1"
}
}
],
"callback": {
"url": "https://hr.zylker.com/ja/EmpRecords/_callback.php",
"headers": {
"src" : "ZCatalyst",
"operation" : "bulkreadAPI"
},
"params": {
"project_name" : "EmployeeDatabase"
}
},
"created_by": {
"zuid": 1019540152,
"is_confirmed": true,
"email_id": "emma@zylker.com",
"first_name": "Amelia",
"last_name": "Burrows",
"user_id": 671930409
},
"created_time": "Oct 06, 2020 07:00 PM",
"results": {
"description": "The column ID in select_columns is invalid",
}
}
}
Yes
No
Send your feedback to us