[Ultimate]{class="badge positive"}

使用Flow Service API创建Snowflake基本连接

IMPORTANT
Snowflake源在源目录中可供已购买Real-time Customer Data Platform Ultimate的用户使用。

基本连接表示源和Adobe Experience Platform之间的已验证连接。

使用以下教程了解如何使用[Flow Service API] (https://www.adobe.io/experience-platform-apis/references/flow-service/)为Snowflake创建基本连接。

快速入门

本指南要求您对 Adobe Experience Platform 的以下组件有一定了解:

  • : Experience Platform允许从各种源摄取数据,同时允许您使用Platform服务来构建、标记和增强传入数据。
  • 沙盒: Experience Platform提供将单个Platform实例划分为单独虚拟环境的虚拟沙盒,以帮助开发和改进数字体验应用程序。

使用平台API

有关如何成功调用平台API的信息,请参阅平台API快速入门指南。

以下部分提供了使用Flow Service API成功连接到Snowflake时需要了解的其他信息。

收集所需的凭据

必须提供以下凭据属性的值才能对您的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文档。
warehouse Snowflake仓库管理应用程序的查询执行过程。 每个Snowflake仓库彼此独立,在将数据传送到Platform时必须单独访问。
database Snowflake数据库包含要带入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文档。
username Snowflake帐户的用户名。
privateKey Snowflake帐户的Base64-编码私钥。 您可以生成加密或未加密的私钥。 如果您使用的是加密的私钥,那么在针对Experience Platform进行身份验证时,您还必须提供私钥密码。
privateKeyPassphrase 私钥密码是附加的安全层,在使用加密的私钥进行身份验证时必须使用该安全层。 如果您使用未加密的私钥,则无需提供密码。
database 包含要摄取到Experience Platform的数据的Snowflake数据库。
warehouse Snowflake仓库管理应用程序的查询执行过程。 每个Snowflake仓库彼此独立,在将数据转移到Experience Platform时必须单独访问。

有关这些值的详细信息,请参阅Snowflake 密钥对身份验证指南

NOTE
必须将PREVENT_UNLOAD_TO_INLINE_URL标志设置为FALSE以允许从Snowflake数据库卸载数据以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连接规范ID: 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连接规范ID: 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连接规范ID: b2e08744-4f1a-40ce-af30-7abac3e23cf3
accordion
响应

成功的响应返回新创建的连接,包括其唯一连接标识符(id)。 在下个教程中,需要此ID才能浏览您的数据。

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

通过完成本教程,您已使用Flow Service API创建了Snowflake基本连接。 您可以在下列教程中使用此基本连接ID:

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