CRMからExperience Platformにデータを取り込むデータフローを作成する
このガイドでは、Flow Service APIを使用してデータフローを作成し、Adobe Experience Platformにデータを取り込む方法について説明します。
基本を学ぶ
このガイドは、Adobe Experience Platform の次のコンポーネントを実際に利用および理解しているユーザーを対象としています。
- バッチ取り込み:大量のデータをバッチで迅速かつ効率的にアップロードする方法について説明します。
- カタログ サービス : Experience Platformでデータセットを整理して管理します。
- データ準備:入力データを変換し、スキーマ要件に一致するようにマッピングします。
- データフロー: データをソースから宛先に移動するパイプラインを設定および管理します。
- Experience Data Model (XDM) スキーマ : XDM スキーマを使用してデータを構造化し、Experience Platformで使用できるようにします。
- サンドボックス :本番データに影響を与えることなく、独立した環境で安全にテストと開発を行います。
- ソース :外部データソースをExperience Platformに接続する方法について説明します。
Experience Platform APIの使用
Experience Platform APIを正常に呼び出す方法について詳しくは、Experience Platform APIの概要に関するガイドを参照してください。
ベース接続の作成 base
ソースのデータフローを作成するには、完全に認証されたソースアカウントとそれに対応するベース接続IDが必要です。 このIDがない場合は、 ソースカタログ にアクセスして、ベース接続を作成できるソースのリストを見つけます。
ターゲット XDM スキーマの作成 target-schema
Experience Data Model (XDM)スキーマは、Experience Platform内の顧客体験データを整理および記述するための標準化された方法を提供します。 ソースデータをExperience Platformに取り込むには、まず、取り込むデータの構造とタイプを定義するターゲット XDM スキーマを作成する必要があります。 このスキーマは、取り込んだデータが格納されるExperience Platform データセットの設計図として機能します。
Schema Registry API に POST リクエストを実行することで、ターゲット XDM スキーマを作成できます。 ターゲット XDM スキーマの作成方法について詳しくは、次のガイドを参照してください。
作成したターゲット XDM スキーマ $idは、後でターゲットデータセットとマッピングに必要になります。
ターゲットデータセットの作成 target-dataset
データセットは、データのコレクションのための保存および管理構造体です。通常、列(スキーマ)と行(フィールド)を持つテーブルのように構造化されます。 Experience Platform に正常に取り込まれたデータは、データレイク内にデータセットとして保存されます。 この手順では、新しいデータセットを作成するか、既存のデータセットを使用できます。
ペイロード内でターゲットスキーマのIDを指定しながら、 カタログサービス APIにPOST リクエストを行うことで、ターゲットデータセットを作成できます。 ターゲットデータセットの作成方法について詳しくは、APIを使用したデータセットの作成に関するガイドを参照してください。
API 形式
| code language-http |
|---|
|
リクエスト
次の例は、リアルタイム顧客プロファイルの取り込みが有効なターゲットデータセットを作成する方法を示しています。 このリクエストでは、unifiedProfile プロパティがtrueに設定され(tags オブジェクトの下)、Experience Platformに対して、データセットをReal-Time Customer Profileに含めるように指示します。
| code language-shell |
|---|
|
| table 0-row-2 1-row-2 2-row-2 3-row-2 | |
|---|---|
| プロパティ | 説明 |
name |
ターゲットデータセットのわかりやすい名前。 明確で一意の名前を付けることで、今後の運用でデータセットを容易に特定および管理できます。 |
schemaRef.id |
ターゲット XDM スキーマのID。 |
tags.unifiedProfile |
データをReal-Time Customer Profileに取り込む必要があるかどうかをExperience Platformに通知するブール値。 |
応答
応答が成功すると、ターゲットデータセットのIDが返されます。 このIDは、後でターゲット接続を作成するために必要です。
| code language-json |
|---|
|
ソース接続の作成 source
ソース接続は、外部ソースからExperience Platformにデータを取り込む方法を定義します。 ソースシステムと受信データの形式の両方を指定し、認証の詳細を含むベース接続を参照します。 各ソース接続は、組織に固有です。
- ファイルベースのソース(クラウドストレージなど)の場合、ソース接続には、列区切り、エンコーディングタイプ、圧縮タイプ、ファイル選択用の正規表現、ファイルを再帰的に取り込むかどうかなどの設定を含めることができます。
- テーブルベースのソース(データベース、CRM、マーケティングオートメーションプロバイダーなど)の場合、ソース接続はテーブル名や列マッピングなどの詳細を指定できます。
ソース接続を作成するには、Flow Service APIの/sourceConnections エンドポイントにPOST リクエストを行い、ベース接続ID、接続仕様ID、およびソースデータファイルへのパスを指定します。
API 形式
POST /sourceConnections
リクエスト
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/sourceConnections' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"name": "ACME source connection",
"description": "A source connection for ACME contact data",
"baseConnectionId": "6990abad-977d-41b9-a85d-17ea8cf1c0e4",
"data": {
"format": "tabular"
},
"params": {
"tableName": "Contact",
"columns": [
{
"name": "TestID",
"type": "string",
"xdm": {
"type": "string"
}
},
{
"name": "Name",
"type": "string",
"xdm": {
"type": "string"
}
},
{
"name": "Datefield",
"type": "string",
"meta:xdmType": "date-time",
"xdm": {
"type": "string",
"format": "date-time"
}
}
]
},
"connectionSpec": {
"id": "cfc0fee1-7dc0-40ef-b73e-d8b134c436f5",
"version": "1.0"
}
}'
namedescriptionbaseConnectionIdid。 このIDは、Flow Service APIを使用してExperience Platformに対するソースを認証することで取得できます。data.formattabularに設定します。params.tableNameparams.columnsconnectionSpec.id応答
応答が成功すると、ソース接続のIDが返されます。 このIDは、データフローを作成し、データを取り込むために必要です。
{
"id": "b7581b59-c603-4df1-a689-d23d7ac440f3",
"etag": "\"ef05d265-0000-0200-0000-6019e0080000\""
}
ターゲット接続の作成 target
ターゲット接続は、取り込まれたデータが取り込まれる宛先への接続を表します。 ターゲット接続を作成するには、データレイクに関連付けられた固定接続仕様IDを指定する必要があります。 この接続仕様IDはc604ff05-7f1a-43c0-8e18-33bf874cb11cです。
API 形式
POST /targetConnections
リクエスト
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/targetConnections' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"name": "ACME target connection",
"description": "ACME target connection",
"data": {
"schema": {
"id": "https://ns.adobe.com/{TENANT_ID}/schemas/52b59140414aa6a370ef5e21155fd7a686744b8739ecc168",
"version": "application/vnd.adobe.xed-full+json;version=1"
}
},
"params": {
"dataSetId": "6889f4f89b982b2b90bc1207"
},
"connectionSpec": {
"id": "c604ff05-7f1a-43c0-8e18-33bf874cb11c",
"version": "1.0"
}
}'
namedescriptiondata.schema.idparams.dataSetIdconnectionSpec.idc604ff05-7f1a-43c0-8e18-33bf874cb11c。マッピング mapping
次に、ソースデータを、ターゲットデータセットが準拠するターゲットスキーマにマッピングします。 マッピングを作成するには、Data Prep APIのmappingSets エンドポイントにPOST リクエストを行います。 ターゲット XDM スキーマ IDと、作成するマッピングセットの詳細を含めます。
API 形式
POST /mappingSets
リクエスト
curl -X POST \
'https://platform.adobe.io/data/foundation/conversion/mappingSets' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"version": 0,
"xdmSchema": "https://ns.adobe.com/{TENANT_ID}/schemas/52b59140414aa6a370ef5e21155fd7a686744b8739ecc168",
"xdmVersion": "1.0",
"id": null,
"mappings": [
{
"destinationXdmPath": "_id",
"sourceAttribute": "TestID",
"identity": false,
"identityGroup": null,
"namespaceCode": null,
"version": 0
},
{
"destinationXdmPath": "person.name.fullName",
"sourceAttribute": "Name",
"identity": false,
"identityGroup": null,
"namespaceCode": null,
"version": 0
},
{
"destinationXdmPath": "person.birthDate",
"sourceAttribute": "Datefield",
"identity": false,
"identityGroup": null,
"namespaceCode": null,
"version": 0
}
]
}'
xdmSchema$id。応答
応答が成功すると、一意の ID(id)など、新しく作成されたマッピングの詳細が返されます。 この ID は、後の手順でデータフローを作成する際に必要になります。
{
"id": "93ddfa69c4864d978832b1e5ef6ec3b9",
"version": 0,
"createdDate": 1612309018666,
"modifiedDate": 1612309018666,
"createdBy": "{CREATED_BY}",
"modifiedBy": "{MODIFIED_BY}"
}
データフロー仕様の取得 flow-specs
データフローを作成する前に、まずソースに対応するデータフローの仕様を取得する必要があります。 この情報を取得するには、Flow Service APIの/flowSpecs エンドポイントにGET リクエストを行います。
API 形式
GET /flowSpecs?property=name=="{NAME}"
property=name=="{NAME}"データフロー仕様の名前。
- ファイルベースのソース(クラウドストレージなど)の場合は、この値を
CloudStorageToAEPに設定します。 - テーブルベースのソース(データベース、CRM、マーケティングオートメーションプロバイダーなど)の場合は、この値を
CRMToAEPに設定します。
リクエスト
curl -X GET \
'https://platform.adobe.io/data/foundation/flowservice/flowSpecs?property=name=="CRMToAEP"' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
応答
応答が成功すると、ソースからExperience Platformにデータを取り込むデータフロー仕様の詳細が返されます。 応答には、新しいデータフローを作成するために必要な、一意のフロー仕様 id が含まれます。
正しいデータフロー仕様を使用していることを確認するには、応答のitems.sourceConnectionSpecIds配列を確認します。 ソースの接続仕様IDがこのリストに含まれていることを確認します。
| code language-json |
|---|
|
データフローの作成 dataflow
データフローとは、Experience Platform サービス間でデータを転送するように設定されたパイプラインです。 データベース、クラウドストレージ、APIなどの外部ソースからデータを取り込み、処理し、ターゲットデータセットにルーティングする方法を定義します。 これらのデータセットは、ID サービス、リアルタイム顧客プロファイル、宛先などのサービスで活用され、アクティベーションや分析に利用されます。
データフローを作成するには、次の項目の値を指定する必要があります。
この手順では、scheduleParamsで次のパラメーターを使用して、データフローの取り込みスケジュールを設定できます。
startTimefrequency取り込む頻度。 データフローを実行する頻度を指定する頻度を設定します。 頻度は次のように設定できます。
once: 1回限りの取り込みを作成するには、頻度をonceに設定します。 インターバルとバックフィルの設定は、1回限りの取り込みジョブでは使用できません。 デフォルトでは、スケジュール頻度は1回に設定されます。minute:1分ごとにデータフローを取り込むようにスケジュールする頻度をminuteに設定します。hour:1時間ごとにデータフローを取り込むようにスケジュールする頻度をhourに設定します。day: 1日ごとにデータフローを取り込むようにスケジュールする頻度をdayに設定します。week:週ごとにデータフローを取り込むようにスケジュールする頻度をweekに設定します。
interval連続した取り込みの間隔(onceを除くすべての周波数に必要)。 インターバル設定を設定して、取り込みごとに時間枠を設定します。 例えば、頻度が日に設定され、間隔が15の場合、データフローは15日ごとに実行されます。 間隔を0に設定することはできません。 各周波数に対して許容される最小区間値は次のとおりです。
once: n/aminute: 15hour: 1day: 1week: 1
backfillstartTimeより前に履歴データを取り込むかどうかを示します。API 形式
POST /flows
リクエスト
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/flows' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"name": "ACME Contact Dataflow",
"description": "A dataflow for ACME contact data",
"flowSpec": {
"id": "14518937-270c-4525-bdec-c2ba7cce3860",
"version": "1.0"
},
"sourceConnectionIds": [
"b7581b59-c603-4df1-a689-d23d7ac440f3"
],
"targetConnectionIds": [
"320f119a-5ac1-4ab1-88ea-eb19e674ea2e"
],
"transformations": [
{
"name": "Copy",
"params": {
"deltaColumn": {
"name": "Datefield",
"dateFormat": "YYYY-MM-DD",
"timezone": "UTC"
}
}
},
{
"name": "Mapping",
"params": {
"mappingId": "93ddfa69c4864d978832b1e5ef6ec3b9",
"mappingVersion": 0
}
}
],
"scheduleParams": {
"startTime": "1612310466",
"frequency":"minute",
"interval":"15",
"backfill": "true"
}
}'
namedescriptionflowSpec.idsourceConnectionIdstargetConnectionIdstransformations.params.deltaColumdeltaColumn でサポートされている形式は yyyy-MM-dd HH:mm:ss です。 Microsoft Dynamicsの場合、deltaColumnでサポートされている形式はyyyy-MM-ddTHH:mm:ssZです。transformations.params.deltaColumn.dateFormattransformations.params.deltaColumn.timeZonetransformations.params.mappingIdscheduleParams.startTimescheduleParams.frequencyonce、minute、hour、day、week です。scheduleParams.intervalscheduleParams.backfilltrueまたはfalse)。応答
リクエストが成功した場合は、新しく作成したデータフローの ID(id)が返されます。
{
"id": "ae0a9777-b322-4ac1-b0ed-48ae9e497c7e",
"etag": "\"770029f8-0000-0200-0000-6019e7d40000\""
}
UIを使用してAPI ワークフローを検証する validate-in-ui
Experience Platform ユーザーインターフェイスを使用して、データフローの作成を検証できます。 Experience Platform UIのソース カタログに移動し、ヘッダータブから「データフロー」を選択します。 次に、 データフロー名列を使用し、Flow Service APIを使用して作成したデータフローを見つけます。
データフローアクティビティ インターフェイスを使用して、データフローをさらに検証できます。 右側のパネルを使用して、データフローのAPI使用状況情報を表示します。 このセクションには、Flow Serviceのデータフロー作成プロセス中に生成された同じデータフローID、データセット ID、およびマッピング IDが表示されます。
次の手順
このチュートリアルでは、Flow Service APIを使用してExperience Platformでデータフローを作成するプロセスについて説明しました。 ターゲット XDM スキーマ、データセット、ソース接続、ターゲット接続、データフロー自体など、必要なコンポーネントを作成および設定する方法を学習しました。 次の手順に従うことで、外部ソースからExperience Platformへのデータの取り込みを自動化でき、Real-Time Customer ProfileやDestinationsなどのダウンストリームサービスを利用して、取り込んだデータを高度なユースケースに活用できるようになります。
データフローの監視
データフローを作成したら、Experience Platform UIでそのパフォーマンスを直接監視できます。 これには、取り込み率、成功指標、発生したエラーの追跡が含まれます。 データフローの監視方法について詳しくは、 アカウントとデータフローの監視に関するチュートリアルを参照してください。
データフローの更新
データフローのスケジュール、マッピング、または一般的な情報の設定を更新するには、 ソースデータフローの更新に関するチュートリアルを参照してください。
データフローの削除
データフロー ワークスペースで使用できる 削除 関数を使用して、不要になった、または誤って作成されたデータフローを削除できます。 データフローの削除方法について詳しくは、 データフローの削除に関するチュートリアルを参照してください。