[Ultimate]{class="badge positive"}

使用Flow Service API連線Snowflake至Experience Platform

IMPORTANT
Snowflake來源可在來源目錄中提供給已購買Real-Time Customer Data Platform Ultimate的使用者。

閱讀本指南,瞭解如何使用Flow Service API將您的Snowflake來源帳戶連結至Adobe Experience Platform。

快速入門

本指南需要您深入了解下列 Adobe Experience Platform 元件:

  • 來源: Experience Platform允許從各種來源擷取資料,同時讓您能夠使用Experience Platform服務來建構、加標籤以及增強傳入的資料。
  • 沙箱: Experience Platform提供可將單一Experience Platform執行個體分割成個別虛擬環境的虛擬沙箱,以利開發及改進數位體驗應用程式。

使用Experience Platform API

如需如何成功呼叫Experience Platform API的詳細資訊,請參閱Experience Platform API快速入門指南。

以下章節提供您需瞭解的其他資訊,才能使用Flow Service API成功連線到Snowflake。

在Azure上連線Snowflake至Experience Platform azure

請閱讀下列步驟,以瞭解如何在Azure上將您的Snowflake來源連線至Experience Platform。

收集必要的認證

您必須提供下列認證屬性的值,才能驗證您的Snowflake來源。

帳戶金鑰驗證
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 7-row-2
認證 說明
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}
金鑰組驗證

若要使用金鑰組驗證,您必須產生2048位元RSA金鑰組,然後在建立Snowflake來源的帳戶時提供下列值。

table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2
認證 說明
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 金鑰組驗證指南

NOTE
您必須將PREVENT_UNLOAD_TO_INLINE_URL標幟設定為FALSE,以允許從Snowflake資料庫將資料解除安裝至Experience Platform。

在Azure上的Experience Platform上為Snowflake建立基礎連線 azure-base

基本連線會保留來源與Experience Platform之間的資訊,包括來源的驗證認證、連線的目前狀態,以及唯一的基本連線ID。 基礎連線ID可讓您從來源內部探索及導覽檔案,並識別您要擷取的特定專案,包括其資料型別和格式的資訊。

若要建立基底連線ID,請在提供您的Snowflake驗證認證作為要求內文的一部分時,對/connections端點提出POST要求。

API格式

POST /connections
連線字串
accordion
要求

下列要求會建立Snowflake的基礎連線:

code language-shell
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"
      }
  }'
table 0-row-2 1-row-2 2-row-2
屬性 說明
auth.params.connectionString 用來連線至您Snowflake執行個體的連線字串。 Snowflake的連線字串模式為jdbc:snowflake://{ACCOUNT_NAME}.snowflakecomputing.com/?user={USERNAME}&password={PASSWORD}&db={DATABASE}&warehouse={WAREHOUSE}
connectionSpec.id Snowflake連線規格識別碼: b2e08744-4f1a-40ce-af30-7abac3e23cf3
accordion
回應

成功的回應會傳回新建立的連線,包括其唯一的連線識別碼(id)。 在下個教學課程中探索您的資料時,需要此ID。

code language-json
{
    "id": "2fce94c1-9a93-4971-8e94-c19a93097129",
    "etag": "\"d403848a-0000-0200-0000-5e978f7b0000\""
}
使用加密私密金鑰的金鑰組驗證
accordion
要求
code language-shell
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"
    }
  }'
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 7-row-2
屬性 說明
auth.params.account 您的Snowflake帳戶名稱。
auth.params.username 與您的Snowflake帳戶相關聯的使用者名稱。
auth.params.database 將從其中提取資料的Snowflake資料庫。
auth.params.privateKey 您的Snowflake帳戶的Base64-編碼加密私密金鑰。
auth.params.privateKeyPassphrase 與您的私密金鑰對應的複雜密碼。
auth.params.warehouse 您正在使用的Snowflake倉儲。
connectionSpec.id Snowflake連線規格識別碼: b2e08744-4f1a-40ce-af30-7abac3e23cf3
accordion
回應

成功的回應會傳回新建立的連線,包括其唯一的連線識別碼(id)。 在下個教學課程中探索您的資料時,需要此ID。

code language-json
{
    "id": "2fce94c1-9a93-4971-8e94-c19a93097129",
    "etag": "\"d403848a-0000-0200-0000-5e978f7b0000\""
}
使用未加密私密金鑰的金鑰組驗證
accordion
要求
code language-shell
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"
    }
  }'
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2
屬性 說明
auth.params.account 您的Snowflake帳戶名稱。
auth.params.username 與您的Snowflake帳戶相關聯的使用者名稱。
auth.params.database 將從其中提取資料的Snowflake資料庫。
auth.params.privateKey Snowflake帳戶的Base64-編碼未加密私密金鑰。
auth.params.warehouse 您正在使用的Snowflake倉儲。
connectionSpec.id Snowflake連線規格識別碼: b2e08744-4f1a-40ce-af30-7abac3e23cf3
accordion
回應

成功的回應會傳回新建立的連線,包括其唯一的連線識別碼(id)。 在下個教學課程中探索您的資料時,需要此ID。

code language-json
{
    "id": "2fce94c1-9a93-4971-8e94-c19a93097129",
    "etag": "\"d403848a-0000-0200-0000-5e978f7b0000\""
}

將Snowflake連線到Amazon Web Services (AWS)上的Experience Platform aws

AVAILABILITY
本節適用於在Amazon Web Services (AWS)上執行的Experience Platform實作。 目前有限數量的客戶可使用在AWS上執行的Experience Platform 。 若要進一步瞭解支援的Experience Platform基礎結構,請參閱Experience Platform多雲端總覽

請閱讀下列步驟,以瞭解如何將Snowflake來源連線至AWS上的Experience Platform。

在AWS的Experience Platform上為Snowflake建立基礎連線 aws-base

API格式

POST /connections

要求

下列請求會建立Snowflake的基礎連線,以將日期擷取至AWS上的Experience Platform:

選取以檢視範例
code language-shell
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"
      }
  }'
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 7-row-2
屬性 說明
auth.params.host 您的Snowflake帳戶連線到的主機URL。
auth.params.port Snowflake透過網際網路連線到伺服器時使用的連線埠號碼。
auth.params.username 與您的Snowflake帳戶相關聯的使用者名稱。
auth.params.database 將從其中提取資料的Snowflake資料庫。
auth.params.password 與您的Snowflake帳戶關聯的密碼。
auth.params.warehouse 您正在使用的Snowflake倉儲。
auth.params.schema 與您的Snowflake資料庫關聯的結構描述名稱。 您必須確保您要授與資料庫存取權的使用者也擁有此綱要的存取權。

回應

成功的回應會傳回新建立連線的詳細資料,包括其唯一識別碼(id)。 在下個教學課程中探索您的儲存空間時,需要此ID。

選取以檢視範例
code language-json
{
    "id": "4cb0c374-d3bb-4557-b139-5712880adc55",
    "etag": "\"1700d77b-0000-0200-0000-5e3b41a10000\""
}

依照此教學課程,您已使用Flow Service API建立Snowflake基礎連線。 您可以在下列教學課程中使用此基本連線ID:

recommendation-more-help
337b99bb-92fb-42ae-b6b7-c7042161d089