Описание проблемы
В моей производственной среде (контейнерное развертывание Linux) я столкнулся с синтаксической ошибкой при попытке создать потоковые вычисления в TDengine 3.3.8.8. Сбой происходит после успешного создания двух супертаблиц, и это блокирует мой рабочий процесс агрегирования данных в реальном времени, основанный на потоковых вычислениях.
Подробности среды
Среда развертывания: рабочая
Версия TDengine: 3.3.8.8
Операционная система: Linux (универсальный дистрибутив)
Метод развертывания: контейнерный
Этапы воспроизведения
Сначала я успешно создаю первую супертаблицу (без ошибок):
CREATE STREAM IF NOT EXISTS equ_ss_stream
INTERVAL(1d)
FROM equ_state PARTITION BY code
into equ_ss
OUTPUT_SUBTABLE(concat('', code))
as
select
_wstart,
round(sum(case when status = 1 then 1 else 0 end)/60,2) run
from %%tbname;
Информация об ошибке
Ошибка TDengine явно указывает на синтаксическую ошибку рядом с выделенным разделом SQL создания потока. Основное сообщение об ошибке:
round(sum(case when status = 1 then 1 else 0 end)/60,2) run
from %%tbname, desc: syntax error near "from equ_state partition by code
into equ_ss
output_subtable(concat(‘’, code))
Что я уже пробовал
Проверил SQL создания супертаблицы (обе таблицы существуют и доступны для запроса через SHOW TABLES).
Перекрестно проверил официальную документацию TDengine 3.3.8.8 на предмет синтаксиса создания потока (с упором на PARTITION BY, INTO и OUTPUT_SUBTABLE).
Удалены лишние пробелы в потоке SQL, чтобы устранить синтаксические проблемы, связанные с пробелами (без улучшений).
Протестировано создание минимального потока (без PARTITION BY/)
Описание проблемы В моей [b]производственной среде[/b] (контейнерное развертывание Linux) я столкнулся с синтаксической ошибкой при попытке создать потоковые вычисления в TDengine 3.3.8.8. Сбой происходит после успешного создания двух супертаблиц, и это блокирует мой рабочий процесс агрегирования данных в реальном времени, основанный на потоковых вычислениях. Подробности среды [list] [*]Среда развертывания: рабочая [*]Версия TDengine: 3.3.8.8 [*]Операционная система: Linux (универсальный дистрибутив) [*]Метод развертывания: контейнерный [/list] Этапы воспроизведения [list] [*]Сначала я успешно создаю первую супертаблицу (без ошибок): [code]CREATE TABLE IF NOT EXISTS equ_state (ts TIMESTAMP, status INT) TAGS (code BINARY(25)); [/code]
[*]Затем я успешно создаю вторую супертаблицу (без ошибок): [code]CREATE TABLE IF NOT EXISTS equ_ss (ts TIMESTAMP, run DOUBLE) TAGS (code BINARY(25)); [/code]
[*]При выполнении следующего оператора CREATE STREAM для построения вычислений потока он немедленно завершается с ошибкой синтаксиса: [code]CREATE STREAM IF NOT EXISTS equ_ss_stream INTERVAL(1d) FROM equ_state PARTITION BY code into equ_ss OUTPUT_SUBTABLE(concat('', code)) as select _wstart, round(sum(case when status = 1 then 1 else 0 end)/60,2) run from %%tbname; [/code]
[/list] Информация об ошибке Ошибка TDengine явно указывает на синтаксическую ошибку рядом с выделенным разделом SQL создания потока. Основное сообщение об ошибке: [code]round(sum(case when status = 1 then 1 else 0 end)/60,2) run from %%tbname, desc: syntax error near "from equ_state partition by code into equ_ss output_subtable(concat(‘’, code)) [/code] Что я уже пробовал [list] [*]Проверил SQL создания супертаблицы (обе таблицы существуют и доступны для запроса через SHOW TABLES). [*]Перекрестно проверил официальную документацию TDengine 3.3.8.8 на предмет синтаксиса создания потока (с упором на PARTITION BY, INTO и OUTPUT_SUBTABLE). [*]Удалены лишние пробелы в потоке SQL, чтобы устранить синтаксические проблемы, связанные с пробелами (без улучшений). [*]Протестировано создание минимального потока (без PARTITION BY/)[code]OUTPUT_SUBTABLE[/code]), который работает, подтверждая, что основные функции потока не повреждены. [/list] Мои вопросы [list] [*]Какая конкретная синтаксическая ошибка вызывает ошибку в моем операторе создания потока TDengine 3.3.8.8?
[*]Существуют ли строгие требования к порядку/формату для PARTITION BY, Предложения INTO и OUTPUT_SUBTABLE в потоке SQL TDengine?
[*]Является ли concat('', code) допустимым способом ссылки на тег code в OUTPUT_SUBTABLE для TDengine 3.3.8.8 или существует правильная альтернатива?