使自定义 table 从我们仓库中其他 Snowflake 数据库派生的数据保持最新的最佳实践

Best practices for keeping a custom table up-to-date from data derived from other Snowflake DB's in our warehouse

(代表 Snowflake 用户提交)


我们有一个数据库,用于存储我们所有本地来源的原始数据。我的团队拥有自己的环境,在该环境中我们拥有创建标准化提要 and/or tables/views 等的完全权限,这些提要已准备好通过 Power BI 使用。一些额外的细节:

我的问题是保持 table 完全更新的最佳操作是什么?此操作的标准工作流程是什么?我们目前的理解是这些过程之一是最好的:

  1. 使用 COPY INTO <stage> 然后 COPY INTO <table>
  2. 使用STREAMS添加增量数据。
  3. 使用 PIPES(可能与 STREAMS 相同)
  4. 或者将我们的提要简化为一个 table 源并使用实体化视图。

理想情况下,我们希望避免观看以提高双电源级别的消耗速度。


Tasks 已被推荐,因为它看起来很合适,因为他们每天只需要更新一次最终的 table。 (https://docs.snowflake.net/manuals/sql-reference/sql/create-task.html)

还有其他推荐吗???谢谢!

我们有一个类似的场景,我们的原始数据湖表从 S3 中的文件实时更新。这些原始表是使用自动摄取功能通过 snowpipe 加载的。

反过来,我们有一个数据集市,其中包含有关原始数据的事实。为了更新数据集市,我们在原始表之上创建了流来跟踪变化。然后,我们以给定的频率(在我们的例子中每五分钟一次)使用任务 运行 从原始表中更改的数据更新数据集市。使用流允许我们将处理限制为仅更改的数据,而不必跟踪上次更新日期等。