Предположим, мы определили пользовательский TableSource и TableSink, тогда как интегрировать с SQL Client? Нужно ли вручную регистрировать пользовательское имя TableSource \ Sink, как показано ниже? Если не регистрировать вручную, как тип коннектора custom1 map \ связан с custom1TableSource?
StreamTableEnvironment tableEnv = TableEnvironment.getTableEnvironment(env);
TableSource custom1TableSource = new custom1TableSource ( );
tableEnv.registerTableSource("custom1", custom1TableSource);
Затем настроить файл среды ниже?
tables:
- name: custom1TableSource
type: Source
update-mode: append
connector:
property-version: 1
type: ***custom1****
Источник и приемник, которые я объявил:
package com.abc;
public static class custom1TableSource implements StreamTableSource<Row>, DefinedRowtimeAttributes, DefinedProctimeAttribute {
package com.abc;
public static class custom1TableSink implements TableSink<Row>, AppendStreamTableSink<Row> {
https://ci.apache.org/projects/flink/flink-docs-release-1.6/dev/table/sqlClient.html#configuration
Обновление:
После некоторой проверки из исходного кода я обнаружил, что Flink создает экземпляр приемника и источника с помощью реализаций StreamTableSinkFactory и фабрики, созданной ServiceLoader, однако как зарегистрировать имя приемника и источника в классах TableSource и TabSink?