雪花中的变更数据捕获

Posted

技术标签:

【中文标题】雪花中的变更数据捕获【英文标题】:Change data capture in snowflake 【发布时间】:2018-12-14 07:29:57 【问题描述】:

我想知道是否有人知道雪花是否可以进行变更数据捕获,以及如何完成。

我似乎找不到任何关于它的文档。

谢谢

【问题讨论】:

尝试更新命令:docs.snowflake.net/manuals/sql-reference/sql/update.html 您是要捕捉 Snowflake 中发生的变化,还是要捕捉来自其他来源的变化,并将这些变化写入 Snowflake? 我正在尝试从正在写入雪花表的外部来源的数据中捕获更改 截至目前,Snowflake 不支持触​​发器或让您监控表中的数据更改以便您可以对其进行操作。我建议根据在表中检测到的变化编写自己的 python 代码模拟触发器。 【参考方案1】:

Snowflake 中的变更数据捕获 (CDC) 可以通过流完成:https://docs.snowflake.net/manuals/user-guide/streams.html

对于具有外部来源的 CDC,您可以依赖 Alooma、Matillion、Golden Gate 等数据集成提供商或自行实施。

此外,Snowflake 还与 Kafka 集成。这样您“只”需要将更改推送到 Kafka 以与 Snowflake 集成:https://docs.snowflake.net/manuals/user-guide/kafka-connector.html

【讨论】:

【参考方案2】:

如果您想使用具有成本效益的系统,请使用现有的 cdc 工具,例如 hvr-software,根据我的经验,它可以提供最好的服务。

hvr 的最佳之处在于它有许多连接器,如 s3、雪花和内置的 hive 支持,可以在我们加载的数据之上创建表。

注意:当然,snowflake 支持带有 kafka 或任何其他来源的流,但是为什么我们需要让我们的集群一直启动并运行,而不是 cdc 工具在单个 ec2 实例上运行。

【讨论】:

以上是关于雪花中的变更数据捕获的主要内容,如果未能解决你的问题,请参考以下文章

雪花 CDC 从 S3 到雪花

雪花:REGEXP 替换为捕获组的大写

数据仓库建模之雪花模型和星形模型

雪花存储过程中的事务

在雪花存储过程中捕获成功消息

雪花中的 JavaScript UDF