概念: データ エクスポート REST API
概要
Prism REST サービスのデータ エクスポート API を使用すると、テーブル保護された Prism データ ソースから大規模にデータをエクスポートできるようになります。
主な特徴
- テーブル保護された Prism データ ソースからデータをエクスポートするデータ エクスポート ジョブを作成します。
- 特定のデータ エクスポート ジョブをキャンセルする。データ エクスポート ジョブのステータスが "スケジュール済" または "実行中" である必要があります。
- 制約のないセキュリティ グループのユーザーは、すべてのデータ エクスポート ジョブを表示およびキャンセルできます。
- セルフサービス セキュリティ グループに含まれているユーザーは、自分が作成したデータ エクスポート ジョブのみ表示およびキャンセルできます。
- データ エクスポート ジョブのステータスを確認してください。
- スケジュール済: データ エクスポート ジョブの実行がスケジュールされています。
- 処理: Workday は現在、データ エクスポート ジョブを実行しています。
- 成功: データのエクスポート ジョブが完了し、エクスポートされたデータを含む 1 つ以上の出力ファイルが作成されました。
- キャンセル: ユーザーのリクエストでデータ エクスポート ジョブの実行が停止されました。
- 失敗: データ エクスポート ジョブの実行中にエラーが発生しました。
- エクスポートされたデータを含む出力ファイルをダウンロードします。
- 現在のユーザーのセキュリティ プロファイルで許可された出力ファイルのみをダウンロードできます。
- ファイルは、順番にダウンロードすることも、並行してダウンロードすることもできます。出力ファイルを並行してダウンロードすることで、すべての出力ファイルのダウンロードにかかる時間を短縮できます。
- ダウンロードのパフォーマンスは以下に依存します。
- ファイル数。
- 並行ダウンロードの数。
- API クライアントと Workday サーバー間のネットワーク帯域幅。例: クライアントがサーバーとは異なる地域にある場合、ファイルのダウンロードにかかる時間が長くなります。
ユース ケース
ユース ケース | 説明 |
|---|---|
情報開示と法定報告 | 毎日から毎年までスケジュールが設定されている場合、特定の期間の詳細な財務データを Workday から大量に抽出する必要があります。エクスポート後、エンタープライズ データ レーティング ツールまたは規制対応レポート ツールにデータを送信できます。このツールにより、厳密な規制に準拠するために財務開示をより簡単にフォーマットして送信できます。 |
高度な分析、データ サイエンス、その他のレポート。 | Workday から特定の期間の詳細な業務データと財務データを大量に抽出する必要があります。エクスポート後、エンタープライズ リスク ワークベンチまたはデータ サイエンス ワークベンチにデータを送信できます。そこでは、以下の科目などの予測モデルを作成できます。
|
規制保留とアーカイブ。 | 5 ~ 7 年間の財務データをアーカイブすることで、規制およびコンプライアンスの基準を満たす必要があります。該当する規制および業界に応じて、リクエスト後すぐに規制当局および監査機関がこのデータを利用できるように設定する必要があります。 |
検証リクエスト | 徹底的な検証を実施するには、指定期間における特定の残高について、すべての取引、アクティビティ、メタデータをリクエストする必要があります。このデータは、月次、四半期、年次、さらに前年度についても必要です。検証データベースに大量のデータをエクスポートする必要があります。 |
URL の基準パス
テナント ベース パス
データ エクスポート ジョブの作成例:https://{hostname}/api/prismAnalytics/{version}/{tenantname}/dataExport
https://yourTenantHostName.com/api/prismAnalytics/v3/<TENANT_NAME>/dataExport
Workday 拡張 API ゲートウェイのベース パス
Workday Extend アプリの場合、会社の地域 API ゲートウェイのベース URL を使用します。参考: Workday 拡張 API ゲートウェイおよび認証ベース URL を 開発者サイトで参照してください。
API ゲートウェイの基準 URL にテナント名が含まれていません。
セキュリティの考慮事項
"Prism" 業務分野の以下のドメイン
- Prism Data Export: Execur: データ エクスポート ジョブを作成できるユーザーを制御します。
- Prism Data Export: Manage: データ エクスポート ジョブを表示およびキャンセルできるユーザーを制御します。
データ エクスポート ジョブの作成
次の基準
POST /dataExport
エンドポイントによるデータ エクスポート ジョブの作成が容易になります。セキュリティの考慮事項:
- "Prism Analytics" 業務分野の"Prism Data Export: Exeute" ドメイン
- エクスポート元のテーブルに関する以下のセキュリティ要件のいずれか:
- "Prism Analytics" 業務分野の"Prism: Tables Manage" ドメイン
- "Prism Analytics" 業務分野の"Prism: Tables Owner Manage" ドメイン
- テーブルに対する"テーブル ビューアー" 権限
- テーブルに対する"テーブル エディタ"権限
- テーブルに対する"テーブル所有者" 権限
このメソッドを使用して、指定された Prism データ ソースのデータ エクスポート ジョブを作成します。
データ エクスポート ジョブを作成すると、Prism データ ソースからローカル コンピュータにダウンロード可能なデータを含むファイルが 1 つ以上生成されます。
リクエスト本文で、次のパラメータの値を指定します。
本文パラメータ | タイプ | 説明 |
|---|---|---|
input | オブジェクト | Prism データ ソースからエクスポートするすべてのフィールドを指定する WQL クエリーを含めてください。
以下の形式を使用してください。
WQL クエリーを書き込む際の考慮事項:
入力パラメータで有効なクエリーを指定する方法については、 参考: WQL クエリーの使用状況とデータのエクスポートに関するガイドラインを参照してください。 |
output | オブジェクト | 以下の形式を使用してください。
|
リクエストの例:
POST /dataExport
リクエスト本文の例:
{ "input": { "query": "SELECT agentCity, GET_DISPLAY_ID(billingCompany) AS billing_company, GET_DISPLAY_ID(billingCostCenter) AS billing_CostCenter FROM cds_insuranceClaimData WHERE claimAmount > 1000", "type": "SQL" }, "output": { "type": "CSV_GZIP", "headers": true } }
Sample Response
{ "createdMoment": "2017-03-17T00:00:00.000Z", "status": "Scheduled", "input": { "query": "SELECT agentCity, GET_DISPLAY_ID(billingCompany) AS billing_company, GET_DISPLAY_ID(billingCostCenter) AS billing_CostCenter FROM cds_insuranceClaimData WHERE claimAmount > 1000", "type": "SQL" }, "id": "b1bd0e1ac5d410001193bf9340050000" }
データ エクスポート ジョブのステータスの取得
次の基準
GET /dataExport
エンドポイントは、すべてのデータ エクスポート ジョブの取得を容易にします。次の基準
GET /dataExport/{id}
1 つのエクスポート ジョブの取得を容易にします。セキュリティの考慮事項:
"Prism Analytics" 業務分野の
"Prism Data Export: Manage
" ドメインこのエンドポイントは、現在のユーザーが権限を持つデータ エクスポート ジョブを返します。回収を取得する際は、以下のオプション クエリー パラメータを使用します。
クエリー パラメータ | 説明 | デフォルト | 最大 |
|---|---|---|---|
type | "タイプ" の値によって、どの回答フィールドを含めるかが決まります。
| サマリ | |
limit | 1 回の回答に含まれるオブジェクト データ エントリの上限。 | 20 | 1000 |
offset | 回答に含める、コレクション内の最初のオブジェクトへのオフセット。 | 0 |
リクエストの例:
GET /dataExport
回答の例:
応答は、データ エクスポート ジョブの収集 (JSON 形式) です。
このサンプル応答では、データ エクスポート ジョブが 1 つしか表示されません。
{ "total": 7, "data": [ { "createdMoment": "2023-08-03T22:47:10.929Z", "createdBy": { "id": "274555853a4446cf8809325243534f34", "descriptor": "BLiu / Betty Liu (manager 4300, CostCtrMgr 30.3, 41200, PayIntPartner; PayPartner, PayAdmin)", "fullName": "BLiu / Betty Liu (manager 4300, CostCtrMgr 30.3, 41200, PayIntPartner; PayPartner, PayAdmin)" }, "status": "Success", "input": { "query": "SELECT insuranceOfficeState, sourceFileTag, sort1, sort2, agentCity, agentCountry, agentNote, GET_DISPLAY_ID(billingCompany) AS billing_company, GET_DISPLAY_ID(billingCostCenter) AS billing_CostCenter FROM cds_insuranceClaimData", "type": "SQL" }, "output": { "noOfFiles": 4, "totalSizeInBytes": 5610214, "totalRows": 110408 }, "id": "b1bd0e1ac5d4100013ad1f50c6910000" }, ... ] }
ID が b1bd0e1ac5d410001193bf9340050000 のデータ エクスポート ジョブに関する情報を取得するリクエストの例:
GET /dataExport/b1bd0e1ac5d410001193bf9340050000
回答の例:
{ "createdMoment": "2023-08-03T22:08:42.928Z", "createdBy": { "id": "274555853a4446cf8809325243534f34", "descriptor": "BLiu / Betty Liu (manager 4300, CostCtrMgr 30.3, 41200, PayIntPartner; PayPartner, PayAdmin)", "fullName": "BLiu / Betty Liu (manager 4300, CostCtrMgr 30.3, 41200, PayIntPartner; PayPartner, PayAdmin)" }, "status": "Success", "input": { "query": "SELECT agentCity, GET_DISPLAY_ID(billingCompany) AS billing_company, GET_DISPLAY_ID(billingCostCenter) AS billing_CostCenter FROM cds_insuranceClaimData WHERE claimAmount > 1000", "type": "SQL" }, "output": { "createdTime": "2023-08-03T22:08:53.725Z", "expirationTime": "2023-08-10T22:08:53.725Z", "noOfFiles": 2, "totalSizeInBytes": 359680, "totalRows": 41301, "results": [ { "name": "part-00000-70e49bea-487e-4a3e-b43e-be3935e951c1-c000.csv.gz", "length": 298913 }, { "name": "part-00001-70e49bea-487e-4a3e-b43e-be3935e951c1-c000.csv.gz", "length": 60767 } ] }, "id": "b1bd0e1ac5d410001193bf9340050000" }
出力ファイルのダウンロード中
次の基準
GET /dataExport/{id}/results/{fielName}
エンドポイントを使用すると、データ エクスポート ジョブから出力ファイルをダウンロードできるようになります。以下を指定します。
- データ エクスポート ジョブの ID。
- データ エクスポート ジョブの出力ファイルの名前。
次の基準
GET /dataExport/{id}
endpoint は出力ファイルの名前を提供します。現在のユーザーのセキュリティ プロファイルで許可された出力ファイルのみをダウンロードできます。ファイルは、順番にダウンロードすることも、並行してダウンロードすることもできます。
セキュリティの考慮事項:
"Prism Analytics" 業務分野の
"Prism Data Export: Manage
" ドメイン Part-00000-70e49bea-487e-4a3e-b43e-be3935e951c1-c000.csv.gz という名前のファイルをダウンロードするためのリクエスト例:
GET /dataExport/b1bd0e1ac5d410001193bf9340050000/results/part-00000-70e49bea-487e-4a3e-b43e-be3935e951c1-c 000.csv.gz
データ エクスポート ジョブのキャンセル
次の基準
POST /dataExport/{id}/cancel
endpoint は、スケジュールされているか、実行中の特定のデータ エクスポート ジョブをキャンセルできるようにします。キャンセルできるのは、現在のユーザーのセキュリティ プロファイルで許可されているデータ エクスポート ジョブのみです。
セキュリティの考慮事項:
"Prism Analytics" 業務分野における以下のいずれかのドメイン
- Prism データのエクスポート: 実行
- Prism データのエクスポート: 管理
エクスポート元のテーブルに関する以下のセキュリティ要件のいずれか:
- "Prism Analytics" 業務分野の"Prism: Tables Manage" ドメイン
- "Prism Analytics" 業務分野の"Prism: Tables Owner Manage" ドメイン
- テーブルに対する "テーブル ビューアー" 権限
- テーブルに対する "テーブル エディタ" 権限
- テーブルに対する "テーブル所有者" 権限
リクエストの例:
この方法では、空の JSON 文字列 {} をリクエスト本文に含める必要があります。
ID が「b1bd0e1ac5d4100018d18abc4ea00000」のデータ エクスポート ジョブをキャンセルするリクエストの例:
POST /dataExport/b1bd0e1ac5d4100018d18abc4ea00000/cancel
回答の例:
レスポンスには、現在のステータスが "キャンセル済" のデータ エクスポート ジョブが JSON 形式で含まれています。
{ "createdMoment": "2023-08-04T00:21:24.914Z", "createdBy": { "id": "274555853a4446cf8809325243534f34", "descriptor": "BLiu / Betty Liu (manager 4300, CostCtrMgr 30.3, 41200, PayIntPartner; PayPartner, PayAdmin)", "fullName": "BLiu / Betty Liu (manager 4300, CostCtrMgr 30.3, 41200, PayIntPartner; PayPartner, PayAdmin)" }, "status": "Canceled", "input": { "query": "SELECT agentCity, GET_DISPLAY_ID(billingCompany) AS billing_company, GET_DISPLAY_ID(billingCostCenter) AS billing_CostCenter FROM cds_insuranceClaimData", "type": "SQL" }, "id": "b1bd0e1ac5d4100018d18abc4ea00000" }
制限事項
- "エクスポート ジョブ" は優先順位の低いジョブであり、パブリッシュなどの他のジョブよりも優先順位が低くなります。
- 7 日経過しないファイルは削除されるため、生成されたファイルをダウンロードすることはできません。
- 以下の最大値は、システムのパフォーマンスと信頼性を最適化するためのガイドラインとして設定されます。
- エクスポート ジョブごとに 10 億行
- クエリーごとに 1,000 列
- 同時ダウンロード リクエスト:
- システムの上限に達した場合、503 - HIT_SERVER_LIMIT 応答が返されます。
- テナントが特定の制限を超えた場合、429 - HIT_TENANT_LIMIT 応答が返されます。
- 同時エクスポート ジョブ:
- ユーザーまたはテナントごとに一度に実行できるエクスポート ジョブは 1 つだけです。
- 追加のエクスポート ジョブは、現在のジョブが完了するまで自動的に待機します。
よくあるエラー
検証エラー:
- 不正な入力 json です。
- 不正な sql、無効なフィールド/テーブル名、サポートされていない関数。
- ガイドライン: フィールド数が 10,000 を超えています。
- セキュリティ制約が満たされていません。
実行エラー
- システム エラー
- ガイダンス: 抽出行が 1B を超える場合は失敗します。
API をダウンロード
- ダウンロードする際、予期しないネットワーク問題またはシステムの問題により、HTTP クライアントによる再試行が常に推奨されます。テナントと サーバーに対して作成される同時接続の数にレート制限が適用されます。HTTP ステータス コードが表示されることがあります429または503(適用される制限により)クライアントがしばらく待ってから、リクエストを再試行することをお勧めします。
パフォーマンスの考慮事項
データ抽出のパフォーマンス:
- データ実行時間は、データのタイプ、およびデータの行と列の数によって異なります。
- データの量が増えると、実行時間は長くなります。
パフォーマンスをダウンロード:
- すべてのファイル サイズの合計ダウンロード時間は、結果をダウンロードするプロセスの数に応じて直線的に減少します。
- ダウンロードのパフォーマンスは、ネットワーク帯域幅とテナント サーバーの場所によっても影響を受ける可能性があります。