Ultimate
Snowflake API を使用した Flow Service のExperience Platformへの接続
作成対象:
- 開発者
SnowflakeAPIFlow Service を使用して ソースアカウントをAdobe Experience Platformに接続する方法については、このガイドを参照してください。
はじめに
このガイドでは、Adobe Experience Platform の次のコンポーネントに関する十分な知識が必要です。
Experience Platform API の使用
Experience Platform API を正常に呼び出す方法について詳しくは、Experience Platform API の概要 を参照してください。
次の節では、Snowflake API を使用してに正常に接続するために必要な追加情報を示し Flow Service す。
必要な資格情報の収集
認証について詳しくは、Snowflake 概要 を参照してください。
Snowflake を Azure 上のExperience Platformに接続
Snowflake ソースを Azure 上のExperience Platformに接続する方法については、以下の手順を参照してください。
PREVENT_UNLOAD_TO_INLINE_URL データベースからExperience Platformにデータをアンロードできるようにするには、FALSE フラグを Snowflake に設定する必要があります。Azure 上のExperience Platformに Snowflake のベース接続を作成する
ベース接続は、ソースとExperience Platform間の情報(ソースの認証資格情報、現在の接続状況、一意のベース接続 ID など)を保持します。 ベース接続 ID により、ソース内からファイルを参照および移動し、データタイプやフォーマットに関する情報を含む、取り込みたい特定の項目を識別することができます。
ベース接続 ID を作成するには、/connections エンドポイントに対して POST リクエストを実行し、その際に Snowflake 認証資格情報をリクエスト本文の一部として指定します。
API 形式
POST /connections
次のリクエストは、Snowflake のベース接続を作成します。
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/connections' \
-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": "Snowflake base connection",
"description": "Snowflake base connection",
"auth": {
"specName": "ConnectionString",
"params": {
"connectionString": "jdbc:snowflake://{ACCOUNT_NAME}.snowflakecomputing.com/?user={USERNAME}&password={PASSWORD}&db={DATABASE}&warehouse={WAREHOUSE}"
}
},
"connectionSpec": {
"id": "b2e08744-4f1a-40ce-af30-7abac3e23cf3",
"version": "1.0"
}
}'
auth.params.connectionStringjdbc:snowflake://{ACCOUNT_NAME}.snowflakecomputing.com/?user={USERNAME}&password={PASSWORD}&db={DATABASE}&warehouse={WAREHOUSE} です。connectionSpec.idb2e08744-4f1a-40ce-af30-7abac3e23cf3。応答が成功すると、一意の接続識別子(id)を含む、新しく作成された接続が返されます。 この ID は、次のチュートリアルでデータを調べるために必要です。
{
"id": "2fce94c1-9a93-4971-8e94-c19a93097129",
"etag": "\"d403848a-0000-0200-0000-5e978f7b0000\""
}
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/connections' \
-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": "Snowflake base connection with encrypted private key",
"description": "Snowflake base connection with encrypted private key",
"auth": {
"specName": "KeyPair Authentication",
"params": {
"account": "acme-snowflake123",
"username": "acme-cj123",
"database": "ACME_DB",
"privateKey": "{BASE_64_ENCODED_PRIVATE_KEY}",
"privateKeyPassphrase": "abcd1234",
"warehouse": "COMPUTE_WH"
}
},
"connectionSpec": {
"id": "b2e08744-4f1a-40ce-af30-7abac3e23cf3",
"version": "1.0"
}
}'
auth.params.accountauth.params.usernameauth.params.databaseauth.params.privateKeyauth.params.privateKeyPassphraseauth.params.warehouseconnectionSpec.idb2e08744-4f1a-40ce-af30-7abac3e23cf3。リクエストが成功した場合は、一意の ID (id)を含む、新しく作成された接続の詳細が返されます。
{
"id": "2fce94c1-9a93-4971-8e94-c19a93097129",
"etag": "\"d403848a-0000-0200-0000-5e978f7b0000\""
}
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/connections' \
-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": "Snowflake base connection with unencrypted private key",
"description": "Snowflake base connection with unencrypted private key",
"auth": {
"specName": "KeyPair Authentication",
"params": {
"account": "acme-snowflake123",
"username": "acme-cj123",
"database": "ACME_DB",
"privateKey": "{BASE_64_ENCODED_PRIVATE_KEY}",
"warehouse": "COMPUTE_WH"
}
},
"connectionSpec": {
"id": "b2e08744-4f1a-40ce-af30-7abac3e23cf3",
"version": "1.0"
}
}'
auth.params.accountauth.params.usernameauth.params.databaseauth.params.privateKeyauth.params.warehouseconnectionSpec.idb2e08744-4f1a-40ce-af30-7abac3e23cf3。リクエストが成功した場合は、一意の ID (id)を含む、新しく作成された接続の詳細が返されます。
{
"id": "2fce94c1-9a93-4971-8e94-c19a93097129",
"etag": "\"d403848a-0000-0200-0000-5e978f7b0000\""
}
Experience Platform on Amazon Web Services(AWS)への Snowflake の接続
Snowflake ソースをAWS上のExperience Platformに接続する方法については、以下の手順を参照してください。
AWSでExperience Platform上に Snowflake のベース接続を作成する
API 形式
POST /connections
次のリクエストでは、AWS上のExperience Platformにデータを取り込 Snowflake ためのベース接続を作成しています。
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/connections' \
-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": "Snowflake base connection for Experience Platform on AWS",
"description": "Snowflake base connection for Experience Platform on AWS",
"auth": {
"specName": "Basic Authentication",
"params": {
"host": "acme.snowflakecomputing.com",
"port": "443",
"username": "acme-cj123",
"password": "{PASSWORD}",
"database": "ACME_DB",
"warehouse": "COMPUTE_WH",
"schema": "{SCHEMA}"
}
},
"connectionSpec": {
"id": "b2e08744-4f1a-40ce-af30-7abac3e23cf3",
"version": "1.0"
}
}'
auth.params.hostauth.params.portauth.params.usernameauth.params.databaseauth.params.passwordauth.params.warehouseauth.params.schemaリクエストが成功した場合は、一意の ID (id)を含む、新しく作成された接続の詳細が返されます。
{
"id": "4cb0c374-d3bb-4557-b139-5712880adc55",
"etag": "\"1700d77b-0000-0200-0000-5e3b41a10000\""
}
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/connections' \
-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": "Snowflake base connection with unencrypted private key",
"description": "Snowflake base connection with unencrypted private key",
"auth": {
"specName": "KeyPair Authentication",
"params": {
"account": "acme-snowflake123",
"username": "acme-cj123",
"database": "ACME_DB",
"privateKey": "{BASE_64_ENCODED_PRIVATE_KEY}",
"warehouse": "COMPUTE_WH"
}
},
"connectionSpec": {
"id": "b2e08744-4f1a-40ce-af30-7abac3e23cf3",
"version": "1.0"
}
}'
auth.params.accountauth.params.usernameauth.params.databaseauth.params.privateKeyauth.params.warehouseconnectionSpec.idb2e08744-4f1a-40ce-af30-7abac3e23cf3。リクエストが成功した場合は、一意の ID (id)を含む、新しく作成された接続の詳細が返されます。
{
"id": "4cb0c374-d3bb-4557-b139-5712880adc55",
"etag": "\"1700d77b-0000-0200-0000-5e3b41a10000\""
}
このチュートリアルでは、Flow Service API を使用して Snowflake ベース接続を作成しました。このベース接続 ID は、次のチュートリアルで使用できます。