select from system $ stream_has_data возвращает ошибку - параметр должен иметь правильное имя потока ... хмм? - PullRequest
0 голосов
/ 29 января 2020

Я пытаюсь проверить, есть ли данные в потоке, и я указал точное имя потока следующим образом:

Выберите SYSTEM $ STREAM_HAS_DATA ('STRM_EXACT_STREAM_NAME_GIVEN');

Но, Я получаю сообщение об ошибке:

SQL Ошибка компиляции: недопустимое значение ['STRM_EXACT_STREAM_NAME_GIVEN'] для функции 'SYSTEM $ STREAM_HAS_DATA', параметр 1: должно быть действительным именем потока

1) Любой идея почему? Как можно устранить эту ошибку?

2) Будет ли больно возобновлять набор задач (изменить задачу резюме;), не зная, есть ли в соответствующем потоке данные или нет? Я думаю, если в потоке есть (дельта) данные, задача загрузит их, если нет, задача ничего не сделает.

3) Любая идея, как изменить / обновить поток, который появляется как "STALE"? - или просто загрузить данные fre sh в таблицу, связанную с потоком, следует установить для потока значение «НЕ STALE», т.е. stale = false? Что делать, если загрузка связанной таблицы не обновляет состояние задачи? (и это то, что происходит в настоящее время в моем случае, как вещи появляются.

1 Ответ

0 голосов
/ 29 января 2020

1) Не похоже, что у вас есть поток с таким именем. Попробуйте запустить SHOW STREAMS;, чтобы увидеть, какие потоки у вас активны в базе данных / схеме, которую вы используете в данный момент.

2) Если у вашей задачи есть предложение WHEN, которое проверяет соответствие с результатом SYSTEM $ STREAM_HAS_DATA, затем возобновите задание и запуск его по расписанию наносит удар только по вашему глобальному уровню сервисов (без складских кредитов), поэтому там нет никакого вреда.

3) STALE означает, что данные потока не использовались оператором DML в долгое время (я думаю, что это 14 дней по умолчанию или если срок хранения данных превышает 14 дней, то это больше из них). Загрузка большего количества данных в таблицу потоков не помогает этому. Выполнение оператора DML будет, но поскольку поток устарел, это может иметь плохие последствия. Потоки предназначены для частого использования DML, поэтому не следует использовать DML для потока более 14 дней.

...