从我们仓库中其他 Snowflake DB 派生的数据中使自定义表保持最新的最佳实践
Posted
技术标签:
【中文标题】从我们仓库中其他 Snowflake DB 派生的数据中使自定义表保持最新的最佳实践【英文标题】:Best practices for keeping a custom table up-to-date from data derived from other Snowflake DB's in our warehouse 【发布时间】:2019-10-15 14:34:16 【问题描述】:(代表雪花用户提交)
我们有一个数据库,用于存储来自所有本地来源的原始数据。我的团队拥有自己的环境,在其中我们拥有创建可通过 Power BI 使用的标准化提要和/或表/视图等的完全权限。一些额外的细节:
最终的“提要”表是通过 SQL 语句派生的,并且大多数都从我们的多个“原始”数据表中提取。 原始表数据每天更新。我的问题是保持表格完全更新的最佳操作是什么?此操作的标准工作流程是什么?我们目前的理解是以下过程之一是最好的:
-
使用
COPY INTO <stage>
然后COPY INTO <table>
。
使用STREAMS
添加增量数据。
使用PIPES
(可能与STREAMS相同)
或者将我们的提要简化为一个表源并使用物化视图。
理想情况下,我们希望避免视图以提高功率双级的消耗速度。
Tasks
被推荐,因为它看起来很合适,因为他们每天只需要更新一次决赛桌。
(https://docs.snowflake.net/manuals/sql-reference/sql/create-task.html)
还有什么推荐???谢谢!
【问题讨论】:
【参考方案1】:我们有一个类似的场景,我们从 S3 中的文件实时更新原始数据湖表。这些原始表是使用自动摄取功能通过雪管加载的。
反过来,我们有一个数据集市,其中包含有关原始数据的事实。为了更新数据集市,我们在原始表之上创建了流来跟踪更改。然后,我们使用以给定频率(在我们的例子中每五分钟一次)运行的任务来根据原始表中更改的数据更新数据集市。使用流允许我们将处理限制为仅更改数据,而无需跟踪上次更新日期等。
【讨论】:
以上是关于从我们仓库中其他 Snowflake DB 派生的数据中使自定义表保持最新的最佳实践的主要内容,如果未能解决你的问题,请参考以下文章
Snowflake数据仓库中如何使用内联文件格式从stage中查询数据
从 ADF 连接到 Snowflake 的白名单 IP 范围
从 AWS S3 复制到 <Snowflake table>