使来自仓库中其他Snowflake DB的数据的自定义表保持最新状态的最佳做法

时间:2019-10-15 14:34:16

标签: snowflake-data-warehouse

(代表雪花用户提交)


我们有一个数据库,用于存储来自所有本地资源的原始数据。我的团队拥有自己的环境,在其中我们拥有创建可随时通过Power BI进行使用的标准化提要和/或表/视图等的全部权限。其他一些细节:

  • 最终的“提要”表是通过SQL语句派生的,并且大多数都是从多个“原始”数据表中提取的。
  • 原始数据每天更新一次。

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

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

理想情况下,我们希望避免在Power Bi级别上提高功耗速度的观点。


建议使用

Tasks,因为这似乎很合适,因为他们每天只需要更新一次决赛桌。 (https://docs.snowflake.net/manuals/sql-reference/sql/create-task.html

还有其他建议吗???谢谢!

1 个答案:

答案 0 :(得分:1)

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

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