Сохранение данных Snowflake Stream

Я создал Stream в Snowflake на столе и создал задачу по перемещению данных в таблицу. Даже после завершения задачи данные в потоке не очищаются. Из-за этого задача не пропускается и продолжает повторно вставлять данные из потока в таблицу, а итоговая таблица продолжает расти. В чем может быть причина? Он работал вчера, но с сегодняшнего дня поток не очищается даже после того, как DML выполняется с использованием этого потока с помощью задачи.

create or replace stream test_stream on table test_table_raw APPEND_ONLY = TRUE;
create or replace task test_task_task warehouse = test_warehouse
schedule = '1 minute'
when system$stream_has_data('test_stream') 
as insert into test_table
SELECT 
level1.FILE_NAME,
level1.FILE_ROWNUMBER,
GET(lvl, '@id')::string as app_id
FROM (SELECT FILE_NAME,FILE_ROWNUMBER,src:"$" as lvl FROM test_table_raw)  level1,
lateral FLATTEN(LVL:"$")  level2
where level2.value like '%<test %';

alter task test_task resume;

select 
(select count(*) from test_table) table_count,
(select count(*) from test_stream) stream_count;

TABLE_COUNT STREAM_COUNT
500             1

1 ответ

Решение

Похоже, что вы не используете поток в операции DML. Вы вставляете строки из таблицы, на которой построен поток, а не из самого потока. Чтобы продвинуть поток, вам нужно изменить "FROM test_table_raw" на "FROM test_stream". Попробуйте и дайте мне знать.

Спасибо.

Другие вопросы по тегам