Предоставляет ли 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 для своих нужд.

Другие вопросы по тегам