データフローを作成して、CRM からExperience Platformにデータを取り込みます
このガイドでは、Flow Service API を使用してデータフローを作成し、データをAdobe Experience Platformに取り込む方法を説明します。
基本を学ぶ
このガイドは、Adobe Experience Platform の次のコンポーネントを実際に利用および理解しているユーザーを対象としています。
- バッチ取り込み:大量のデータをバッチですばやく効率的にアップロードする方法について説明します。
- カタログサービス:Experience Platformのデータセットを整理し、追跡します。
- データ準備:受信データを変換し、スキーマ要件に合わせてマッピングします。
- データフロー:ソースから宛先にデータを移動するパイプラインを設定および管理します。
- エクスペリエンスデータモデル(XDM)スキーマ:Experience Platformで使用できるように、XDM スキーマを使用してデータを構造化します。
- サンドボックス:実稼動データに影響を与えることなく、分離された環境で安全にテストおよび開発できます。
- ソース:外部データソースをExperience Platformに接続する方法を説明します。
Experience Platform API の使用
Experience Platform API を正常に呼び出す方法について詳しくは、Experience Platform API の概要を参照してください。
ベース接続を作成 base
ソースのデータフローを作成するには、完全に認証されたソースアカウントと、それに対応するベース接続 ID が必要になります。 この ID をお持ちでない場合は、 ソースカタログを参照して、ベース接続を作成できるソースのリストを見つけてください。
ターゲット XDM スキーマの作成 target-schema
エクスペリエンスデータモデル(XDM)スキーマは、Experience Platform内でカスタマーエクスペリエンスのデータを整理および記述するための標準化された方法を提供します。 ソースデータをExperience Platformに取り込むには、まず取り込むデータの構造とタイプを定義するターゲット XDM スキーマを作成する必要があります。 このスキーマは、取り込んだデータが存在するExperience Platform データセットのブループリントとして機能します。
Schema Registry API に POST リクエストを行うことで、ターゲット XDM スキーマを作成することができます。 ターゲット XDM スキーマの作成方法に関する詳細な手順については、次のガイドを参照してください。
作成したら、後でターゲットデータセットとマッピングにターゲット XDM スキーマ $id
が必要になります。
ターゲットデータセットの作成 target-dataset
データセットは、データのコレクションのためのストレージと管理の構成体で、通常は、列(スキーマ)と行(フィールド)を持つテーブルのように構造化されます。 Experience Platformに正常に取り込まれたデータは、データセットとしてデータレイク内に保存されます。 この手順では、新しいデータセットを作成するか、既存のデータセットを使用します。
ペイロードにターゲットスキーマの ID を指定しながら Catalog Service API に対して POST リクエストを実行することで、ターゲットデータセットを作成できます。 ターゲットデータセットの作成手順について詳しくは、API を使用したデータセットの作成に関するガイドを参照してください。
API 形式
code language-http |
---|
|
リクエスト
次の例は、リアルタイム顧客プロファイルの取り込みが有効なターゲットデータセットを作成する方法を示しています。 このリクエストでは、unifiedProfile
プロパティが(true
オブジェクトの下の) tags
に設定され、Experience Platformに対してリアルタイム顧客プロファイルにデータセットを含めるように指示します。
code language-shell |
---|
|
table 0-row-2 1-row-2 2-row-2 3-row-2 | |
---|---|
プロパティ | 説明 |
name |
ターゲットデータセットのわかりやすい名前。 今後の操作でデータセットを識別および管理しやすくするために、明確で一意の名前を使用します。 |
schemaRef.id |
ターゲット XDM スキーマの ID。 |
tags.unifiedProfile |
データをリアルタイム顧客プロファイルに取り込む必要があるかどうかをExperience Platformに通知するブール値です。 |
応答
正常な応答は、ターゲットデータセットの ID を返します。 この ID は、後でターゲット接続を作成する際に必要になります。
code language-json |
---|
|
ソース接続の作成 source
ソース接続は、外部ソースからExperience Platformにデータを取り込む方法を定義します。 ソースシステムと受信データの形式の両方を指定し、認証の詳細を含むベース接続を参照します。 各ソース接続は、組織に固有です。
- ファイルベースのソース(クラウドストレージなど)の場合、ソース接続には、列の区切り文字、エンコーディングの種類、圧縮の種類、ファイル選択の正規表現、ファイルを再帰的に取り込むかどうかなどの設定を含めることができます。
- テーブルベースのソース(データベース、CRM、マーケティング自動化プロバイダーなど)の場合、ソース接続では、テーブル名や列のマッピングなどの詳細を指定できます。
ソース接続を作成するには、/sourceConnections
API の Flow Service エンドポイントに対して 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"
}
}'
name
description
baseConnectionId
id
。 この ID は、Flow Service API を使用してExperience Platformへのソースを認証することで取得できます。data.format
tabular
に設定します。params.tableName
params.columns
connectionSpec.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"
}
}'
name
description
data.schema.id
params.dataSetId
connectionSpec.id
c604ff05-7f1a-43c0-8e18-33bf874cb11c
。マッピング mapping
次に、ターゲットデータセットが準拠するターゲットスキーマにソースデータをマッピングします。 マッピングを作成するには、mappingSets
APIData Prep のエンドポイントに対して 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
データフローを作成する前に、まず、ソースに対応するデータフロー仕様を取得する必要があります。 この情報を取得するには、/flowSpecs
API の Flow Service エンドポイントに対して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
ます。
startTime
frequency
取り込みの頻度。 頻度を設定して、データフローの実行頻度を示します。 頻度は次のように設定できます。
once
:頻度をonce
に設定して、1 回限りの取り込みを作成します。 間隔およびバックフィル設定は、1 回限りの取り込みジョブでは使用できません。 デフォルトでは、スケジュールの頻度は 1 回に設定されています。minute
:頻度をminute
に設定して、1 分ごとにデータを取り込むようにデータフローをスケジュールします。hour
:頻度をhour
に設定して、1 時間ごとにデータを取り込むようにデータフローをスケジュールします。day
:頻度をday
に設定して、1 日にデータを取り込むようにデータフローをスケジュールします。week
:頻度をweek
に設定して、データフローが週ごとにデータを取り込むようにスケジュールします。
interval
連続して取り込む間隔(once
以外のすべての頻度で必要)。 間隔設定を設定して、すべての取り込み間の時間枠を確立します。 例えば、頻度が日に設定され、間隔が 15 の場合、データフローは 15 日ごとに実行されます。 間隔をゼロに設定することはできません。 各頻度で許容される最小のインターバル値は次のとおりです。
once
:なしminute
: 15hour
: 1day
: 1week
: 1
backfill
startTime
より前の履歴データを取り込むかどうかを示します。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"
}
}'
name
description
flowSpec.id
sourceConnectionIds
targetConnectionIds
transformations.params.deltaColum
deltaColumn
でサポートされている形式は yyyy-MM-dd HH:mm:ss
です。Microsoft Dynamics の場合、deltaColumn
でサポートされている形式は yyyy-MM-ddTHH:mm:ssZ
です。transformations.params.deltaColumn.dateFormat
transformations.params.deltaColumn.timeZone
transformations.params.mappingId
scheduleParams.startTime
scheduleParams.frequency
once
、minute
、hour
、day
、week
です。scheduleParams.interval
scheduleParams.backfill
true
または 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へのデータの取り込みを自動化し、リアルタイム顧客プロファイルや宛先などのダウンストリームサービスで、取り込んだデータを高度なユースケースに活用できるようになります。
データフローの監視
データフローを作成したら、Experience Platform UI で直接パフォーマンスを監視できます。 これには、取り込み率、成功指標、発生したエラーのトラッキングが含まれます。 データフローの監視方法について詳しくは、 アカウントとデータフローの監視に関するチュートリアルを参照してください。
データフローの更新
データフローのスケジュール、マッピング、一般情報などの設定を更新するには、 ソースデータフローの更新に関するチュートリアルを参照してください。
データフローの削除
不要になったデータフローや誤って作成されたデータフローは、データフロー ワークスペース内にある 削除 機能で削除できます。データフローの削除方法について詳しくは、 データフローの削除のチュートリアルを参照してください。