Snowflake中的数据库更改检测过程
Posted
技术标签:
【中文标题】Snowflake中的数据库更改检测过程【英文标题】:Database change detection process in Snowflake 【发布时间】:2020-04-27 12:17:32 【问题描述】:我正在尝试设计一个流程来捕获数据库更改检测,然后将其推送到 GitHub。尝试探索免费选项或编写自定义代码。我想到的几个选项:
创建一个层次文件夹结构,如 Account-->Db-->schema-->table、views、sp 等(不同的文件夹)被 GitHub 跟踪并在每次我们要推送代码时导出所有对象到 GitHub。 GitHub 将跟踪所有更改(任何新对象或更新)。还没有考虑删除。
在 Snowflake 中编写代码以检测对象的更改(使用完全外连接),然后将数据写入 Snowflake 中包含最新 DDL 的表中。
任何人都可以帮助我解决任何人用来在 Snowflake 中实现数据库更改检测的类似功能。我见过 DBT、Sqitch 和 snowchange,但它们不适合/不适合我想要做的事情。
任何帮助将不胜感激。
干杯
【问题讨论】:
不清楚您所说的“捕获数据库更改检测”是什么意思。您是指更改 DDL(结构和对象)还是更改数据或两者兼而有之? 仅更改 DDL(结构和对象)。希望这会有所帮助 【参考方案1】:也许您可以考虑使用 terraform 及其提供者 https://github.com/chanzuckerberg/terraform-provider-snowflake。 Terraform 是一种安全高效地构建、更改和版本控制基础设施的工具,通过 Snowflake 提供程序,您可以创建 DB、表、模式、管道,在 Github 中对其进行版本控制,并将更改部署到 Snowflake。我们计划将它用于您提到的内容。无聊的地方是,一开始我们要导入很多已有的资源,但是做完之后,Github里什么都有了,我们可以引入CI/CD,也就是说我们先在Github中通过一个拉取请求,然后在审核和批准后,在合并到主控时将更改传播到 Snowflake,它也适用于删除资源。
【讨论】:
感谢您的意见。我查看了链接,但不太确定我们是否可以实现它。以上是关于Snowflake中的数据库更改检测过程的主要内容,如果未能解决你的问题,请参考以下文章