Сохранение данных 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". Попробуйте и дайте мне знать.
Спасибо.