有没有人创建了一个程序来手动清除雪花中的流?

Has anyone created a procedure to manually purge a stream in snowflake?

我正在寻找一段代码,它会导致流清空,本质上是将其重置。这是用例。我们使用流来跟踪类型 2 维度 table 对数据集市的更改。有时需要我们截断并重新加载该维度 table 以修复缺陷或其他数据问题。发生这种情况时,流需要重置为仅在重新加载发生后才开始捕获更改。 Snowflake没有ALTER STREAM PURGE之类的功能帮我们管理这个,所以需要我们自己来做。我不想每次需要执行此操作时都发出 CREATE OR REPLACE STREAM 语句。

你能做这样的事情吗?

insert into THE_TARGET_TABLE select * from THE_STREAM where 1=0

这将消耗流而不更改目标上的任何内容 table。

与 Greg 的类似,你可以 运行 类似这样的东西,如果插入现有的 table 会让你紧张。

CREATE OR REPLACE TEMP TABLE RESET_TBL AS
SELECT * FROM THE_STREAM;