[Ultimate]{class="badge positive"}

Snowflake源

IMPORTANT
  • Snowflake源在源目录中可供已购买Real-Time Customer Data Platform Ultimate的用户使用。
  • 默认情况下,Snowflake源将null解释为空字符串。 请联系您的Adobe代表,以确保在Adobe Experience Platform中将您的null值正确写入null
  • 要让Experience Platform摄取数据,必须将所有基于表的批处理源的时区配置为UTC时区。 Snowflake源支持的唯一时间戳是带有UTC时间的TIMESTAMP_NTZ。

Snowflake是一个基于云的数据仓库平台,旨在使组织能够有效地存储、处理和分析大量数据。 Snowflake旨在利用云的可扩展性和灵活性,它支持数据集成、高级分析和跨团队的无缝共享。 作为完全托管的服务,Snowflake消除了传统数据库常见的维护复杂性,使您能够专注于从数据中获取见解和价值。

您可以使用Snowflake源连接并将数据从Snowflake带到Adobe Experience Platform。 阅读以下文档以了解如何设置Snowflake源并连接到Experience Platform。

先决条件 prerequisites

本节概述在将Snowflake源连接到Experience Platform之前需要完成的设置任务。

IP地址允许列表

在将源连接到Experience Platform之前,必须将特定于区域的IP地址添加到允许列表。 有关详细信息,请阅读有关将IP地址列入允许列表到Experience Platform的指南。

收集所需的凭据

必须提供以下凭据属性的值才能对您的Snowflake源进行身份验证。

帐户密钥身份验证(Azure)

提供以下凭据的值,以使用帐户密钥身份验证将Snowflake连接到Azure上的Experience Platform。

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组织唯一标识帐户。 要实现此目的,您必须在帐户名称前添加组织名称。 例如: myorg-myaccount.snowflakecomputing.com。 阅读有关检索 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}
密钥对身份验证(Azure)

要使用密钥对身份验证,首先生成2048位RSA密钥对。 接下来,提供以下凭据的值,以使用密钥对身份验证连接到Azure上的Experience Platform。

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组织唯一标识帐户。 要实现此目的,您必须在帐户名称前添加组织名称。 例如: myorg-myaccount.snowflakecomputing.com。 阅读有关检索 Snowflake 帐户标识符的部分以获取其他指导。 有关更多信息,请参阅Snowflake 文档
username Snowflake帐户的用户名。
privateKey Base64-帐户的Snowflake编码私钥。 您可以生成加密或未加密的私钥。 如果您使用的是加密的私钥,那么在针对Experience Platform进行身份验证时,还必须提供私钥密码。 有关详细信息,请阅读检索私钥一节。
privateKeyPassphrase 私钥密码是附加的安全层,在使用加密的私钥进行身份验证时必须使用该安全层。 如果您使用未加密的私钥,则无需提供密码。
port Snowflake通过Internet连接到服务器时使用的端口号。
database 包含要摄取到Experience Platform的数据的Snowflake数据库。
warehouse Snowflake仓库管理应用程序的查询执行过程。 每个Snowflake仓库彼此独立,在将数据传送到Experience Platform时必须单独访问。

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

基本身份验证(AWS)

提供以下凭据的值,以使用基本身份验证将Snowflake连接到AWS上的Experience Platform。

note warning
WARNING
Snowflake源的基本身份验证(或帐户密钥身份验证)将于2025年11月被弃用。 您必须迁移到基于密钥对的身份验证,才能继续使用源并从数据库中摄取数据到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
凭据 描述
host 您的Snowflake帐户连接到的主机URL。
port Snowflake通过Internet连接到服务器时使用的端口号。
username 与您的Snowflake帐户关联的用户名。
password 与您的Snowflake帐户关联的密码。
database 将从其中提取数据的Snowflake数据库。
schema 与您的Snowflake数据库关联的架构的名称。 您必须确保要为其授予数据库访问权限的用户也具有此架构的访问权限。
warehouse 您正在使用的Snowflake仓库。
密钥对身份验证(AWS)

要使用密钥对身份验证,首先生成2048位RSA密钥对。 接下来,提供以下凭据的值,以使用密钥对身份验证连接到AWS上的Experience Platform。

table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2
凭据 描述
account 帐户名称可唯一标识组织内的帐户。 在这种情况下,您必须跨不同的Snowflake组织唯一标识帐户。 要实现此目的,您必须在帐户名称前添加组织名称。 例如: http://myorg-myaccount.snowflakecomputing.com/。 请阅读有关检索 Snowflake 帐户标识符的指南,以获取其他指导。 有关更多信息,请参阅Snowflake 文档
username Snowflake帐户的用户名。
privateKey Snowflake用户的私钥,以base64编码为单行,无标头或换行符。 要准备它,请复制PEM文件的内容,删除BEGIN/END行和所有换行符,然后对结果进行base64编码。 有关详细信息,请阅读检索私钥一节。 注意: AWS连接当前不支持加密的私钥。
port Snowflake通过Internet连接到服务器时使用的端口号。
database 包含要摄取到Experience Platform的数据的Snowflake数据库。
warehouse Snowflake仓库管理应用程序的查询执行过程。 每个Snowflake仓库彼此独立,在将数据传送到Experience Platform时必须单独访问。

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

检索帐户标识符 retrieve-your-account-identifier

您必须从Snowflake UI仪表板中检索帐户标识符,因为您将使用此仪表板在Experience Platform上验证Snowflake实例。

要检索您的帐户标识符,请执行以下操作:

  • 使用Snowflake 应用程序UI仪表板访问您的帐户。
  • 在左侧导航中,选择​Accounts,然后从标题中选择​Active Accounts
  • 接下来,选择信息图标,然后选择并复制当前URL的域名。

选定域名的Snowflake UI仪表板。

生成RSA密钥对

在命令行界面中使用OpenSSL生成PKCS#8格式的2048位RSA密钥对。 最佳实践是为安全目的创建加密的私钥,这需要密码。

生成加密的私钥

要生成加密的Snowflake私钥,请在终端上运行以下命令:

code language-bash
openssl genrsa 2048 | openssl pkcs8 -topk8 -v2 des3 -inform PEM -out rsa_key.p8# You will be prompted to enter a passphrase. Store this securely!
生成未加密的私钥

要生成未加密的Snowflake私钥,请在终端上运行以下命令:

code language-bash
openssl genrsa 2048 | openssl pkcs8 -topk8 -inform PEM -out rsa_key.p8 -nocrypt

从私钥生成公钥

接下来,在命令行界面中运行以下命令,以基于私钥创建公钥。

openssl rsa -in rsa_key.p8 -pubout -out rsa_key.pub# You will be prompted to enter the passphrase if the private key is encrypted.

将公钥分配给Snowflake用户

您需要使用Snowflake管理员角色(如​SECURITYADMIN)将生成的公钥与Experience Platform将使用的Snowflake服务用户相关联。 要检索公钥内容,请打开rsa_key.pub文件并复制整个内容,不包括-----BEGIN PUBLIC KEY----- and -----END PUBLIC KEY-----行。 接下来,在Snowflake中执行以下SQL:

ALTER USER {YOUR_SNOWFLAKE_USERNAME}>SET RSA_PUBLIC_KEY='{PUBLIC_KEY_CONTENT}';

在Base64中编码私钥

Experience Platform要求在连接设置期间将私钥进行Base64编码并作为字符串提供。 使用合适的工具或脚本将rsa_key.p8文件的内容编码为单个Base64字符串。

TIP
确保在编码过程之前或之后没有额外的空格或换行符,包括页眉/页脚行(-----BEGIN ENCRYPTED PRIVATE KEY----- and -----END ENCRYPTED PRIVATE KEY-----),因为这会导致身份验证错误。

验证配置

在Experience Platform中创建Snowflake源连接之前,必须确保用户的​ Default Role ​和​ Default Warehouse ​与您在Experience Platform中提供的值匹配。 您可以使用Snowflake SQL命令在DESCRIBE USER {USERNAME} UI中验证这些设置。

或者,您可以按照以下步骤验证您的设置:

  • 在左侧导航中选择​Admin,然后选择​Users & Roles
  • 选择相应的用户,然后选择右上角的省略号(...)。
  • 在出现的Edit user窗口中,导航到Default Role以查看与给定用户关联的角色。
  • 在同一窗口中,导航到Default Warehouse以查看与给定用户关联的仓库。

可在其中验证您的角色和仓库的Snowflake UI。

后续步骤

完成设置后,您现在可以继续将您的Snowflake帐户连接到Experience Platform。 有关详细信息,请阅读以下文档:

使用API将Snowflake连接到Experience Platform

使用UI将Snowflake连接到Experience Platform

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