Предоставляет ли Apache Calcite способ добавления пользовательских предложений или выражений?
В настоящее время я работаю над проектом по расширению функциональных возможностей SQL для поддержки дополнительных функций потоковых вычислений на основе Apache Flink.
После тщательного поиска я обнаружил, что Calcite - отличный инструмент, помогающий мне анализировать, проверять и оптимизировать эти SQL-запросы, но потоковая поддержка Calcite все еще не развита, поэтому я должен улучшить ее в соответствии со своими потребностями.
Следовательно, я хотел бы знать, есть ли способ добавить пользовательские предложения, такие как
CREATE TABLE my_table (
id bigint,
user varchar(20)
) PARAMS (
connector 'kafka',
topic 'my_topic'
)
который использует PARAMS, чтобы определить, как получать данные из коннектора Kafka и обрабатывать их как динамическую таблицу как источник данных для Flink.
Поскольку информации об этом так мало, я был бы очень признателен, если бы кто-то из вас мог дать некоторые подсказки.
Спасибо:)
1 ответ
До последнего выпуска (1.15.0, 11 декабря 2017 г.) Apache Calcite не поддерживал операторы DDL, такие как CREATE TABLE
или же DROP TABLE
, Причина была в том, что
SELECT и DML стандартизированы, но DDL, как правило, зависит от базы данных, поэтому наша политика заключается в том, что вы делаете расширения DDL вне Calcite.
(см. список рассылки Dev Calcite).
В Calcite 1.15.0 сообщество добавило базовую поддержку операторов DDL. Эта функция была реализована в виде дополнительного модуля и показывает, как настроить операторы DDL (см. Документацию). Таким образом, все еще ожидается, что системы, которые используют Calcite, настраивают синтаксический анализатор и синтаксис DDL для своих нужд.