Каков синтаксис для добавления столбца в таблицу с использованием Flink SQL

#apache-flink

#apache-flink

Вопрос:

ниже приведена инструкция create для таблицы, которую я создал с помощью flink.

 CREATE TABLE event_kafkaTable (
  columnA string,
  columnB string,
  timeofevent string,
  eventTime AS TO_TIMESTAMP(TimestampConverterUtil(timeofevent)),
 WATERMARK FOR eventTime  AS eventTime - INTERVAL '5' SECOND
) WITH (
  'connector' = 'kafka',
  'topic' = 'event_name', 
  'properties.bootstrap.servers'='127.0.0.1:9092',
  'properties.group.id' = 'action_hitGroup',
  'format'= 'json',
  'scan.startup.mode'='earliest-offset',
  'json.fail-on-missing-field'='false', 
  'json.ignore-parse-errors'='true' 
)
 

Приведенная выше таблица прослушивает Kafka и сохраняет данные из темы в Kafka с именем event_name . Теперь я хочу ИЗМЕНИТЬ эту таблицу, добавив новый столбец. Ниже приведены команды ALTER, которые я пытался запустить из своего задания flink:

 1. ALTER TABLE event_kafkaTable ADD COLUMN test6 string;
2. ALTER TABLE event_kafkaTable ADD test6 string;
 

Обе эти команды вызвали исключение синтаксического анализатора Flink SQL.

Официальный сайт Flink, https://ci.apache.org/projects/flink/flink-docs-release-1.11/dev/table/sql/alter.html , не содержит синтаксиса для добавления или удаления столбца из таблицы. Не могли бы вы, пожалуйста, сообщить мне, каков синтаксис для добавления или удаления столбца в таблицу с помощью Flink Table API.

Ответ №1:

Это пока не поддерживается синтаксисом SQL DDL (по умолчанию), но вы можете использовать AddColumns DropColumns методы API и Table для выполнения этих операций.

На этой странице документации приведены примеры их использования для каждого поддерживаемого языка.