Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Snowflake cloud data platform 在没有DML的情况下,如何推进雪花流的偏移?_Snowflake Cloud Data Platform - Fatal编程技术网

Snowflake cloud data platform 在没有DML的情况下,如何推进雪花流的偏移?

Snowflake cloud data platform 在没有DML的情况下,如何推进雪花流的偏移?,snowflake-cloud-data-platform,Snowflake Cloud Data Platform,雪花流确实很酷,但我似乎不知道如何将它们应用到我的用例中。我有一个外部进程,我想用它来检测表中行的更改,并通知其他使用者发生了这种情况。有几种方法可以做到这一点,但流的好处是它们可以跟踪上次被询问的时间,这将提供一种干净的方法来跟踪偏移量并防止重复或间隙。例如,使用显式时间旅行的替代方案需要从外部跟踪上次运行查询的时间,包括考虑雪花和进程之间的时钟偏差 但是,只有将偏移量中的数据推送到另一个表中时,偏移量才会向上移动。也就是说,这会更改偏移量: insert to other_table从我的_

雪花流确实很酷,但我似乎不知道如何将它们应用到我的用例中。我有一个外部进程,我想用它来检测表中行的更改,并通知其他使用者发生了这种情况。有几种方法可以做到这一点,但流的好处是它们可以跟踪上次被询问的时间,这将提供一种干净的方法来跟踪偏移量并防止重复或间隙。例如,使用显式时间旅行的替代方案需要从外部跟踪上次运行查询的时间,包括考虑雪花和进程之间的时钟偏差

但是,只有将偏移量中的数据推送到另一个表中时,偏移量才会向上移动。也就是说,这会更改偏移量:

insert to other_table从我的_流中选择*
但这并不是:

从我的\u流中选择*

在我的例子中,我不需要另一个表中的数据。我可以插入一个临时表或其他东西来产生推进偏移量的副作用,但这似乎是浪费和混乱的。我有没有别的选择?“bump”流的某种方式?

您可以使用where子句,该子句不选择任何行。它仍将消耗该流

insert into other_table select * from my_stream where false;
create or replace stream my_stream on table my_table;

如果您不打算使用流中的行,只要使用它来检测从上次消费点起的变化时,您还可以考虑替换流。

insert into other_table select * from my_stream where false;
create or replace stream my_stream on table my_table;
这将允许您检查旧流上的更改,并在旧流报告更改行时执行所需操作时从新流开始