В моей производственной среде (контейнерное развертывание Linux) я столкнулся с синтаксической ошибкой при попытке создать потоковые вычисления в TDengine 3.3.8.8. Сбой происходит после успешного создания двух супертаблиц, и это блокирует мой рабочий процесс агрегирования данных в реальном времени, основанный на потоковых вычислениях.
Подробности среды
- Среда развертывания: рабочая
- Версия TDengine: 3.3.8.8
- Операционная система: Linux (универсальный дистрибутив)
- Метод развертывания: контейнерный
- Сначала я успешно создаю первую супертаблицу (без ошибок):
Код: Выделить всё
CREATE TABLE IF NOT EXISTS equ_state (ts TIMESTAMP, status INT) TAGS (code BINARY(25)); - Затем я успешно создаю вторую супертаблицу (без ошибок):
Код: Выделить всё
CREATE TABLE IF NOT EXISTS equ_ss (ts TIMESTAMP, run DOUBLE) TAGS (code BINARY(25)); - При выполнении следующего оператора CREATE STREAM для построения вычислений потока он немедленно завершается с ошибкой синтаксиса:
Код: Выделить всё
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/)), который работает, подтверждая, что основные функции потока не повреждены.
Код: Выделить всё
OUTPUT_SUBTABLE
- Какая конкретная синтаксическая ошибка вызывает ошибку в моем операторе создания потока TDengine 3.3.8.8?
- Существуют ли строгие требования к порядку/формату для PARTITION BY, Предложения INTO и OUTPUT_SUBTABLE в потоке SQL TDengine?
- Является ли concat('', code) допустимым способом ссылки на тег code в OUTPUT_SUBTABLE для TDengine 3.3.8.8 или существует правильная альтернатива?
Подробнее здесь: https://stackoverflow.com/questions/798 ... tainerized