You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flink.apache.org by "Jark Wu (Jira)" <ji...@apache.org> on 2020/05/22 14:39:00 UTC

[jira] [Created] (FLINK-17887) Improve interface of ScanFormatFactory and SinkFormatFactory

Jark Wu created FLINK-17887:
-------------------------------

             Summary: Improve interface of ScanFormatFactory and SinkFormatFactory
                 Key: FLINK-17887
                 URL: https://issues.apache.org/jira/browse/FLINK-17887
             Project: Flink
          Issue Type: Sub-task
          Components: Table SQL / API
            Reporter: Jark Wu
             Fix For: 1.11.0


There is some problem with current ScanForamtFactory and SinkFormatFactory interfaces:
1) {{ScanFormat#createScanFormat}} only accepts {{ScanTableSource.Context}}, which means it can’t work in lookup source.
2) The naming of {{ScanFormat}} also indicates it is only used in scan source. But a lookup source should be able to work with format too.
3) It’s confusing that {{ScanFormatFactory#createScanFormat}} and {{ScanFormat#createScanFormat}} (create itself?)

The proposed new interface strucutre:

{code:java}

interface DeserializationFormatFactory {
  DeserializationSchemaProvider createDeserializationSchemaProvider(
      DynamicTableFactory.Context context, ReadableConfig formatOptions);
}

interface SerializationFormatFactory {
  SerializationSchemaProvider createSerializationSchemaProvider(
       DynamicTableFactory.Context context, ReadableConfig formatOptions);
}

interface DeserializationSchemaProvider {
  DeserializationSchema createDeserializationSchema(
      DynamicTableSource.Context context, DataType producedDataType)
}

interface SerializationSchemaProvider{
  SerializationSchema createSerializationSchema(
      DynamicTableSink.Context context, DataType consumedDataType); 
}
{code}






--
This message was sent by Atlassian Jira
(v8.3.4#803005)