【问题标题】:The difference between snowflake stream and snowpipe雪花流和雪管的区别
【发布时间】:2021-12-06 04:15:27
【问题描述】:

到目前为止,据我了解,snowpipe 是一种不断地将数据从外部阶段(例如 s3)摄取到现有表的东西。由新到达的文件触发。

同时,雪花流,尤其是“目录表流”

CREATE STREAM <name> ON STAGE <stage_name>

它可以实现完全相同(在Task的帮助下)。

谁能给我解释一下这两种策略有什么区别?我们想要使用其中一种而不是另一种的任何场景?

【问题讨论】:

  • 简而言之。对象类型“STREAM”与“流”数据几乎没有关系。它是一种提高任务执行增量查询能力的工具。我真的不知道他们为什么这么称呼它。

标签: snowflake-cloud-data-platform


【解决方案1】:

流是一个书签,由雪花管理,而雪管是一个摄取过程。前者可以通过您手动调用/您的基础设施调用/任务调用/雪管调用的以太代码读取。当雪管在推动时。

也就是说,流允许某些东西在它准备好时取得进展。什么、什么时候、什么大小的实例等等都在你的控制之下,因为在一天结束时,你会以某种方式触发它。

我们在雪管和流之前构建了所有基础架构,因此对已加载的文件进行了所有书签,因此我们可以/可以处理数小时/天/月的文件,具体取决于 SQL 全部运行的“落后多远”我们控制的 AWS 实例,以及我们已经在运行的数据库中的书签。所以在这种情况下,流意味着我们的书签可以被删除。然而,一旦你有了一些东西,能够随意重置高水位标记以重新加载数据(我们的东西处理重复数据删除)是相当不错的。就好像我们今天重新开始一样,我们只会使用流。

是的,我们可以使用雪管,但是我们想要协调/控制需要一些东西来运行它们的进程,因此我们很可能仍然从那里运行我们的 SQL。但同样,我们让它工作。现在有了存储过程,还有更多可能值得的免费好东西。

【讨论】:

    【解决方案2】:

    流:流对象记录对表所做的数据操作语言 (DML) 更改,包括插入、更新和删除,以及有关每次更改的元数据,以便可以使用更改的数据执行操作。此过程称为变更数据捕获 (CDC)。单个表流跟踪对源表中的行所做的更改。表流(也简称为“流”)使“更改表”可用于在表中的两个事务时间点之间的行级别上更改的内容。这允许以事务方式查询和使用一系列更改记录。 详情:https://docs.snowflake.com/en/user-guide/streams.html

    流工作示例https://docs.snowflake.com/en/user-guide/data-pipelines-examples.html#transforming-loaded-json-data-on-a-schedule

    Snowpipe:Snowpipe 可以在文件可用时立即从文件中加载数据。这意味着您可以以微批次的形式从文件中加载数据,从而在几分钟内将其提供给用户,而不是按计划手动执行 COPY 语句来加载更大的批次。 详情:https://docs.snowflake.com/en/user-guide/data-load-snowpipe-intro.html

    【讨论】:

      猜你喜欢
      • 2023-03-22
      • 2022-07-10
      • 2021-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-14
      • 1970-01-01
      • 2020-04-06
      相关资源
      最近更新 更多