在 Snowflake 中处理数据沿袭时有哪些选择?

What are the options when it comes to handling Data Lineage in Snowflake?

关于在 Snowflake 中处理数据沿袭的任何 ideas/options?我们遵循微服务架构,其中我们是 运行 一组存储过程,一旦某些事件被触发,就会包含相当多的 SQL 查询。

示例:当填充Table A时执行SP_Populate_Table_B,结果是填充Table B。我们有大量的 SP,因为我们正在填充暂存区、DataVault 和我们的维度模型。

我们正在寻找任何好的方法来处理围绕这种执行 ETL 的微服务方式的所有元数据。基本上是自动化的方式来跟踪表之间的依赖关系,可视化编排,有更好的方法来处理表更改时 SP 的更改等。

能否请您提供一些您为 Snowflake 尝试过的框架或工具的建议,最好是开源的? DBT 会解决这个问题吗?

谢谢 潘泰利斯

dbt 是将仓库部署为代码的好解决方案,但不是将仓库用作服务的数据库来编写中间表的好解决方案。

如果您关心数据沿袭,并且愿意重新考虑 SP 方法,那么我会推荐 dbt 作为一种工具,将您的仓库基础设施部署为代码,并轻松理解数据的下游依赖关系。

如果您愿意将所有事情都视为 ELT 问题,并且允许 dbt 成为将大量负载 data/events 的子集转换为可供分析的东西的基础设施,那么

dbt 很棒或为 BI 摄取。

阅读此内容了解更多背景信息: https://discourse.getdbt.com/t/understanding-idempotent-data-transformations/518

我还不能 100% 确定它是否支持雪花,但我强烈建议您研究一下 Packyderm。我相信它就是为了解决这类问题而构建的。

如果您真的想要 Snowflake 支持,可能值得一看,甚至可以参与其中。