[Ultimate]{class="badge positive"}
Snowflake流源
-
Snowflake流源在API中可供已购买Real-Time CDP Ultimate的用户使用。
-
在Amazon Web Services (AWS)上运行Adobe Experience Platform时,您现在可以使用Snowflake流源。 在AWS上运行的Experience Platform当前仅对有限数量的客户可用。 要了解有关支持的Experience Platform基础架构的更多信息,请参阅Experience Platform multi-cloud概述。
Adobe Experience Platform 允许从外部源摄取数据,同时让您能够使用 Experience Platform 服务来构建、标记和增强传入数据。您可以从各种源(如Adobe应用程序、基于云的存储、数据库和许多其他源)中摄取数据。
Experience Platform支持从Snowflake数据库流式传输数据。
了解Snowflake流源
Snowflake流源通过定期执行SQL查询并为结果集中的每一行创建输出记录来加载数据。
通过使用Kafka Connect,Snowflake流源将跟踪它从每个表中收到的最新记录,以便它可以在下一个迭代的正确位置开始。 源使用此功能来筛选数据,并且只从每个迭代上的表中获取更新的行。
先决条件
以下部分概述了在将数据从Snowflake数据库流式传输到Experience Platform之前需要完成的先决步骤:
IP地址允许列表
在将源连接到Experience Platform之前,必须将特定于区域的IP地址添加到允许列表。 有关详细信息,请阅读有关将IP地址列入允许列表到Experience Platform的指南。
以下文档提供了有关如何使用API或用户界面将Amazon Redshift连接到Experience Platform的信息:
收集所需的凭据
为了使Flow Service与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帐户的完整帐户标识符(帐户名称或帐户定位器)附加了后缀
有关详细信息,请阅读Snowflake document on account identifiers。 |
warehouse |
Snowflake仓库管理应用程序的查询执行过程。 每个Snowflake仓库彼此独立,在将数据传送到Experience Platform时必须单独访问。 |
database |
Snowflake数据库包含要带Experience Platform的数据。 |
username |
Snowflake帐户的用户名。 |
password |
Snowflake用户帐户的密码。 |
role |
(可选)可以为给定连接的用户提供自定义角色。 如果未提供,此值默认为public 。 |
connectionSpec.id |
连接规范返回源的连接器属性,包括与创建基础连接和源连接相关的验证规范。 Snowflake的连接规范ID为51ae16c2-bdad-42fd-9fce-8d5dfddaf140 。 |
要使用密钥对身份验证,您必须生成一个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 |
Base64-帐户的Snowflake编码私钥。 您可以生成加密或未加密的私钥。 如果您使用的是加密的私钥,那么在针对Experience Platform进行身份验证时,还必须提供私钥密码。 有关详细信息,请阅读检索 Snowflake 私钥的指南。 |
passphrase |
密码短语是附加的安全层,在使用加密的私钥进行身份验证时必须使用该安全层。 如果您使用未加密的私钥,则无需提供密码。 |
database |
包含要摄取到Experience Platform的数据的Snowflake数据库。 |
warehouse |
Snowflake仓库管理应用程序的查询执行过程。 每个Snowflake仓库彼此独立,在将数据传送到Experience Platform时必须单独访问。 |
有关这些值的详细信息,请参阅Snowflake 密钥对身份验证指南。
检索帐户标识符 retrieve-your-account-identifier
要通过Experience Platform验证您的Snowflake实例,您需要从Snowflake UI仪表板获取帐户标识符。
按照以下步骤查找您的帐户标识符:
- 在Snowflake 应用程序UI仪表板上导航到您的帐户。
- 在左侧导航中,选择 Accounts,然后从标题中选择 Active Accounts。
- 接下来,选择信息图标,然后选择并复制当前URL的域名。
检索您的私钥 retrieve-your-private-key
如果您计划对Snowflake连接使用密钥对身份验证,则需要在连接到Experience Platform之前生成私钥。
要生成加密的Snowflake私钥,请在终端上运行以下命令:
code language-shell |
---|
|
如果成功,您应会收到PEM格式的私钥。
code language-shell |
---|
|
要生成未加密的Snowflake私钥,请在终端上运行以下命令:
code language-shell |
---|
|
如果成功,您应会收到PEM格式的私钥。
code language-shell |
---|
|
生成私钥后,直接在Base64中对其进行编码,而不对其格式或内容进行任何更改。 在编码之前,请确保私钥的末尾没有额外的空格或空行(包括尾随新行)。
验证配置
在为Snowflake数据创建源连接之前,还必须确保满足以下配置:
- 分配给给定用户的默认仓库必须与在向Experience Platform进行身份验证时输入的仓库相同。
- 分配给给定用户的默认角色必须有权访问在对Experience Platform进行身份验证时输入的同一数据库。
要验证您的角色和仓库,请执行以下操作:
- 在左侧导航中选择 Admin,然后选择 Users & Roles。
- 选择相应的用户,然后选择右上角的省略号(
...
)。 - 在出现的Edit user窗口中,导航到Default Role以查看与给定用户关联的角色。
- 在同一窗口中,导航到Default Warehouse以查看与给定用户关联的仓库。
成功编码后,您可以在Experience Platform上使用该已编码的Base64私钥来验证您的Snowflake帐户。
配置角色设置 configure-role-settings
即使分配了默认公共角色,也必须配置角色的权限,以允许源连接访问相关Snowflake数据库、架构和表。 不同Snowflake实体的各种权限如下所示:
有关角色和权限管理的详细信息,请参阅Snowflake API参考。
限制和常见问题解答 limitations-and-frequently-asked-questions
-
Snowflake源的数据吞吐量为每秒2000条记录。
-
根据仓库的活动时间和仓库的大小,定价可能会有所不同。 对于Snowflake源集成,最小大小x小仓库就足够了。 建议启用自动暂停,以便仓库在不使用时能够自行暂停。
-
Snowflake源每10秒轮询数据库一次新数据。
-
配置选项:
-
创建源连接时,您可以为
backfill
源启用Snowflake布尔标记。- 如果回填设置为true ,则timestamp.initial的值将设置为0。 这意味着获取时间戳列大于0纪元时间的数据。
- 如果回填设置为false,则timestamp.initial的值将设置为–1。 这意味着获取时间戳列大于当前时间(源开始摄取的时间)的数据。
-
时间戳列的格式应该是:
TIMESTAMP_LTZ
或TIMESTAMP_NTZ
。 如果时间戳列设置为TIMESTAMP_NTZ
,则应通过timezoneValue
参数传递存储值的相应时区。 如果未提供,该值将默认为UTC。TIMESTAMP_TZ
不能用于时间戳列或映射。
-
后续步骤
以下教程提供了有关如何使用API将Snowflake流源连接到Experience Platform的步骤: