Я хотел бы создать таблицу кустов с помощью клиента flink sql.
Я мог успешно создать таблицу t2, но когда я запрашиваю t2, он жалуется
Table options do not contain an option key 'connector' for discovering a connector.
Я установил пакетный тип выполнения в файле conf/sql-client-defaults.yaml,
Я бы спросил, в чем здесь проблема. Спасибо!
Flink SQL> use testdb1;
Flink SQL> create table t2(id int,name string);
[INFO] Table has been created.
Flink SQL> select * from t2;
[ERROR] Could not execute SQL statement. Reason:
org.apache.flink.table.api.ValidationException: Table options do not contain an option key 'connector' for discovering a connector.
Проблема в том, что Flink не знает, где найти или поместить t2 — он должен быть связан с каким-либо источником данных или приемником, таким как файл, тема kafka или база данных jdbc. Вам также необходимо указать формат, чтобы данные можно было сериализовать/десериализовать. Например:
CREATE TABLE KafkaTable (
`id` BIGINT,
`name` STRING
) WITH (
'connector' = 'kafka',
'topic' = 'data',
'properties.bootstrap.servers' = 'localhost:9092',
'properties.group.id' = 'testGroup',
'scan.startup.mode' = 'earliest-offset',
'format' = 'csv'
)
См. документы для конкретного используемого соединителя для получения дополнительной информации.
В конкретном случае Hive см. Hive Read & Write . Пример настройки таблицы для записи в Hive здесь, который выглядит примерно так:
SET table.sql-dialect=hive;
CREATE TABLE hive_table (
id BIGINT,
name STRING
) PARTITIONED BY (dt STRING, hr STRING) STORED AS parquet TBLPROPERTIES (
'partition.time-extractor.timestamp-pattern'='$dt $hr:00:00',
'sink.partition-commit.trigger'='partition-time',
'sink.partition-commit.delay'='1 h',
'sink.partition-commit.policy.kind'='metastore,success-file'
);