【问题标题】:Database change detection process in SnowflakeSnowflake中的数据库更改检测过程
【发布时间】:2020-04-27 12:17:32
【问题描述】:

我正在尝试设计一个流程来捕获数据库更改检测,然后将其推送到 GitHub。尝试探索免费选项或编写自定义代码。我想到的几个选项:

  1. 创建一个层次文件夹结构,如 Account-->Db-->schema-->table、views、sp 等(不同的文件夹)被 GitHub 跟踪并在每次我们要推送代码时导出所有对象到 GitHub。 GitHub 将跟踪所有更改(任何新对象或更新)。还没有考虑删除。

  2. 在 Snowflake 中编写代码以检测对象的更改(使用完全外连接),然后将数据写入 Snowflake 中包含最新 DDL 的表中。

任何人都可以帮助我解决任何人用来在 Snowflake 中实现数据库更改检测的类似功能。我见过 DBT、Sqitch 和 snowchange,但它们不适合/不适合我想要做的事情。

任何帮助将不胜感激。

干杯

【问题讨论】:

  • 不清楚您所说的“捕获数据库更改检测”是什么意思。您是指更改 DDL(结构和对象)还是更改数据或两者兼而有之?
  • 仅更改 DDL(结构和对象)。希望这会有所帮助

标签: snowflake-cloud-data-platform snowflake-schema


【解决方案1】:

也许您可以考虑使用 terraform 及其提供者 https://github.com/chanzuckerberg/terraform-provider-snowflake。 Terraform 是一种安全高效地构建、更改和版本控制基础设施的工具,通过 Snowflake 提供程序,您可以创建 DB、表、模式、管道,在 Github 中对其进行版本控制,并将更改部署到 Snowflake。我们计划将它用于您提到的内容。无聊的地方是,一开始我们要导入很多已有的资源,但是做完之后,Github里什么都有了,我们可以引入CI/CD,也就是说我们先在Github中通过一个拉取请求,然后在审核和批准后,在合并到主控时将更改传播到 Snowflake,它也适用于删除资源。

【讨论】:

  • 感谢您的意见。我查看了链接,但不太确定我们是否可以实现它。
猜你喜欢
  • 2014-10-29
  • 1970-01-01
  • 1970-01-01
  • 2014-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-18
  • 1970-01-01
相关资源
最近更新 更多