Ultimate
Flow Service API を使用した Snowflake のExperience Platformへの接続
作成対象:
- 開発者
Flow Service API を使用して Snowflake ソースアカウントをAdobe Experience Platformに接続する方法については、このガイドを参照してください。
はじめに
このガイドでは、Adobe Experience Platform の次のコンポーネントに関する十分な知識が必要です。
Experience Platform API の使用
Experience Platform API を正常に呼び出す方法について詳しくは、Experience Platform API の概要を参照してください。
次の節では、Flow Service API を使用してに正常に接続するために必要な追加情報を示し Snowflake す。
Snowflake を Azure 上のExperience Platformに接続
Snowflake ソースを Azure 上のExperience Platformに接続する方法については、以下の手順を参照してください。
必要な資格情報の収集
Snowflake ソースを認証するには、次の資格情報プロパティの値を指定する必要があります。
資格情報 | 説明 |
---|---|
account | アカウント名は、組織内のアカウントを一意に識別します。 この場合、アカウントを異なる Snowflake 組織で一意に識別する必要があります。 これを行うには、アカウント名の前に組織名を追加する必要があります。 例:orgname-account_name 。 詳しくは、 アカウント識別子の取得に関するガイドを参 Snowflake してください。 詳しくは、Snowflake ドキュメントを参照してください。 |
warehouse | Snowflake ウェアハウスは、アプリケーションのクエリ実行プロセスを管理します。 各 Snowflake ウェアハウスは互いに独立しており、データをExperience Platformに取り込む際は個別にアクセスする必要があります。 |
database | Snowflake データベースには、Experience Platformに取り込むデータが含まれています。 |
username | Snowflake アカウントのユーザー名。 |
password | Snowflake ユーザーアカウントのパスワード。 |
role | Snowflake セッションで使用する既定のアクセス制御ロールです。 役割は、指定したユーザーに既に割り当てられている既存の役割である必要があります。 デフォルトの役割は PUBLIC です。 |
connectionString | Snowflake インスタンスへの接続に使用する接続文字列。 Snowflake の接続文字列パターンは jdbc:snowflake://{ACCOUNT_NAME}.snowflakecomputing.com/?user={USERNAME}&password={PASSWORD}&db={DATABASE}&warehouse={WAREHOUSE} です |
キーペア認証を使用するには、Snowflake ソースのアカウントを作成する際に、2048 ビットの RSA キーペアを生成してから、次の値を指定する必要があります。
資格情報 | 説明 |
---|---|
account | アカウント名は、組織内のアカウントを一意に識別します。 この場合、アカウントを異なる Snowflake 組織で一意に識別する必要があります。 これを行うには、アカウント名の前に組織名を追加する必要があります。 例:orgname-account_name 。 詳しくは、 アカウント識別子の取得に関するガイドを参 Snowflake してください。 詳しくは、Snowflake ドキュメントを参照してください。 |
username | Snowflake アカウントのユーザー名。 |
privateKey | Snowflake アカウントの Base64- エンコードされた秘密鍵。 暗号化された秘密鍵または暗号化されていない秘密鍵のいずれかを生成できます。 暗号化された秘密鍵を使用している場合は、Experience Platformに対して認証を行う際に、秘密鍵のパスフレーズも指定する必要があります。 詳しくは、 秘密鍵の取得に関す Snowflake ガイドを参照してください。 |
privateKeyPassphrase | 秘密鍵のパスフレーズは、暗号化された秘密鍵を使用して認証を行う場合に使用する必要がある、追加のセキュリティレイヤーです。 暗号化されていない秘密鍵を使用している場合は、パスフレーズを指定する必要はありません。 |
database | Experience Platformに取り込むデータを含んだ Snowflake データベース。 |
warehouse | Snowflake ウェアハウスは、アプリケーションのクエリ実行プロセスを管理します。 各 Snowflake ウェアハウスは互いに独立しており、データをExperience Platformに取り込む際は個別にアクセスする必要があります。 |
これらの値について詳しくは、Snowflake キーペア認証ガイドを参照してください。
PREVENT_UNLOAD_TO_INLINE_URL
フラグを FALSE
に設定する必要があります。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.connectionString
jdbc:snowflake://{ACCOUNT_NAME}.snowflakecomputing.com/?user={USERNAME}&password={PASSWORD}&db={DATABASE}&warehouse={WAREHOUSE}
です。connectionSpec.id
b2e08744-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.account
auth.params.username
auth.params.database
auth.params.privateKey
auth.params.privateKeyPassphrase
auth.params.warehouse
connectionSpec.id
b2e08744-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}",
"warehouse": "COMPUTE_WH"
}
},
"connectionSpec": {
"id": "b2e08744-4f1a-40ce-af30-7abac3e23cf3",
"version": "1.0"
}
}'
auth.params.account
auth.params.username
auth.params.database
auth.params.privateKey
auth.params.warehouse
connectionSpec.id
b2e08744-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.host
auth.params.port
auth.params.username
auth.params.database
auth.params.password
auth.params.warehouse
auth.params.schema
応答
リクエストが成功した場合は、一意の ID(id
)を含む、新しく作成した接続の詳細が返されます。この ID は、次のチュートリアルでストレージを調査するために必要になります。
{
"id": "4cb0c374-d3bb-4557-b139-5712880adc55",
"etag": "\"1700d77b-0000-0200-0000-5e3b41a10000\""
}
このチュートリアルでは、Flow Service API を使用して Snowflake ベース接続を作成しました。このベース接続 ID は、次のチュートリアルで使用できます。