CRM Analytics データの実行、スケジュール、および REST API との同期
データフロージョブまたはレシピの開始と停止
REST API を使用して、データをデータセットに読み込むデータフロージョブまたはレシピの開始を自動化できます。この API は、データマネージャの [今すぐ実行] 機能に相当します。実行中のジョブを停止することもできます。データフロージョブには、wave/dataflows で定義されたデータフローと wave/recipes で定義されたレシピが含まれます。
- データフロージョブまたはレシピの開始
-
データフローやレシピを開始するには、POST 要求を指定した /wave/dataflowjobs エンドポイントを使用します。POST リクエストボディで、dataflowId パラメータを使用して開始するデータフローを指定します。レシピでは、dataflowId に targetDataflowId 値を使用します。
1{ 2 "dataflowId": "02KS700000004G3eMAE", 3 "command" : "start" 4}POST 要求が Dataflow Job を返します。
注意: 同期がまだ実行されていない場合や、前回の実行以降に更新されている場合は、この方法を使用してデータフローまたはレシピを実行すると、関連付けられているオブジェクトのデータ同期が自動的に実行されます。
- データフロージョブまたはレシピの停止
-
特定のデータフロージョブを停止するには、PATCH 要求を指定した /wave/dataflowjobs/<dataflowjobId> エンドポイントを使用します。PATCH 要求が、dataflowjobId 要求パラメータを使用して、停止するデータフローを指定します。
1{ 2 "command" : "stop" 3}
データフロージョブノードの探索
REST API を使用して、データフロージョブの各ノードを記述および探索できます。これには、標準データフローおよびレシピのノードが含まれます。
- すべてのデータフロージョブノードの表示
-
データフロージョブのノードをリスト表示するには、GET 要求を指定した /wave/dataflowjobs/<dataflowJobId>/nodes エンドポイントを使用します。
GET 要求が Dataflow Job Node Collection を返します。
注意: この要求は、030、03C、または 0eP で始まる ID を持つデータフロージョブでのみ機能します。データフロージョブ ID が 030 で始まる場合、結果は空のコレクションになります。
- 1 つのデータフロージョブノードの表示
-
1 つのデータフロージョブノードの詳細を表示するには、GET 要求を指定した /wave/dataflowjobs/<dataflowJobId>/nodes/<nodeId> エンドポイントを使用します。
GET 要求が Dataflow Job Node を返します。
データフロー、レシピ、データ同期のスケジュール
CRM Analytics REST API を使用して、データフロー、レシピ、データ同期が時間ベースのスケジュール (時間、週、月、曜日、日付) で実行されるように自動化できます。たとえば、データフローをスケジュールして、特定の時刻までにデータを使用できるようにしたり、ジョブを営業時間外に実行したりできます。assetId 要求パラメータを使用して、スケジュールするデータのアセットタイプを指定します。
また、Salesforce Local Connection の同期後にデータフローまたはレシピが実行されるようにイベントベースのスケジュールを設定することもできます。データフローまたはレシピの実行前に同期する必要のある Salesforce オブジェクトのデータをデータフローまたはレシピで抽出する場合、イベントベースのスケジュールを設定します。イベントベースのスケジュールはデータフローおよびレシピにのみ適用され、現在データ同期には使用できません。
- データアセットのスケジュール
-
データアセットをスケジュールするには、PUT 要求を指定した /wave/asset/<assetId>/schedule エンドポイントを使用します。以下に、リクエストボディで設定可能な各種のスケジュールの例を示します。
時間単位のスケジュールの設定 - リクエストボディの例
このリクエストボディは、アメリカ/ロサンゼルス時間の毎日午前 2 時 30 分から 3 時間ごとに実行され、午後 8 時にキューへの追加が停止される時間ベースのスケジュールを設定します。
1{ 2 "daysOfWeek" : [ 3 "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" 4 ], 5 "lastHour" : 20, 6 "hourlyInterval" : 3, 7 "time" : { 8 "hour" : 2, 9 "minute" : 30, 10 "timeZone" : "America/Los_Angeles" 11 }, 12 "frequency" : "hourly" 13}週単位のスケジュールの設定 - リクエストボディの例
このリクエストボディは、アメリカ/ロサンゼルス時間の毎週月曜日���木曜日の午前 12 時 45 分に実行される時間ベースのスケジュールを設定します。
1{ 2 "daysOfWeek" : [ 3 "Monday", "Thursday" 4 ], 5 "time" : { 6 "hour" : 0, 7 "minute" : 45, 8 "timezone" : "America/Los_Angeles" 9 }, 10 "frequency" : "weekly" 11}月単位の特定のスケジュールの設定 - リクエストボディの例
このリクエストボディは、アメリカ/ロサンゼルス時間の毎月 1 日、15 日、31 日の午前 12 時に実行される時間ベースのスケジュールを設定します。
1{ 2 "daysOfMonth" : [ 3 1, 31, 15 4 ], 5 "time" : { 6 "hour" : 0, 7 "minute" : 0, 8 "timezone" : "America/Los_Angeles" 9 }, 10 "frequency" : "monthly" 11}月単位の相対スケジュールの設定 - リクエストボディの例
このリクエストボディは、アメリカ/ロサンゼルス時間の毎月最終日曜日の午前 12 時に実行される時間ベースのスケジュールを設定します。
1{ 2 "weekInMonth": "Last", 3 "dayInWeek": "Sunday" 4 "time" : { 5 "hour" : 0, 6 "minute" : 0, 7 "timezone" : "America/Los_Angeles" 8 }, 9 "frequency" : "monthlyrelative" 10}イベントベースのスケジュールの設定 - リクエストボディの例
このリクエストボディは、Salesforce ローカル接続の同期後にデータフローを実行するイベントベースのスケジュールを設定します。データ接続では、イベントベースのスケジュールがサポートされていません。
1{ 2 "triggerRule" : "$ALL_SALESFORCE_OBJECTS", 3 "frequency" : "eventdriven" 4}PUT 要求が、assetId 要求パラメータを使用して、スケジュールするデータフロー、レシピ、データ同期を指定します。
1/services/data/<API_VERSION>/wave/asset/02KS7000000xxxxxxx/scheduleAPI エラーがある場合を除き、PUT 応答は空です。
DELETE 要求が、assetId 要求パラメータを使用して、削除するデータフロー、レシピ、データ同期スケジュールを指定します。
データ接続の同期
CRM Analytics REST API を使用して、ローカルの Salesforce 組織または外部データソースからの接続済みデータの同期を自動化します。同期されたデータは、データフローやレシピで使用できるオブジェクトとして保存されます。この API は、データマネージャの [今すぐ実行] 機能に相当します。
- データ同期の今すぐ実行
- データ同期を開始するには、POST 要求を指定した /wave/dataConnectors/<connectorIdOrApiName>/ingest エンドポイントを使用します。リクエストボディは空のまま、URL への POST を実行します。
1{}POST 要求が、connectorIdOrApiName 要求パラメータを使用して、実行するデータ同期を指定します。
1/services/data/<API_VERSION>/wave/dataConnectors/0ItS0000000xxxxxxx/ingestPOST 要求が Restore Dataset Version を返します。