[ 
https://issues.apache.org/jira/browse/FLINK-15869?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Timo Walther updated FLINK-15869:
---------------------------------
    Description: 
Besides the main payload, the majority of connectors (and also many formats) 
expose additional information that should be readable and (depending on the use 
case) also writable as metadata.

It can simply be read-only metadata such as a Kafka read-offset or ingestion 
time. But can also add or remove header information (e.g. a message hash, or 
record version) to every Kafka ProducerRecord. Additionally, users might want 
to read and write only parts of the record that contain data but additionally 
serve different purposes (e.g. compaction by key).

We should make it possible to read and write data from all of those locations.

Kafka is the source with the most intricacies as it allows storing data in 
multiple different places of the records. Each of those places is/can be 
serialized differently. Moreover some of them might serve different purposes:

- all of them can be just a data container,
- key for partitioning (hash on the key), 
- key for compacting (if topic is compacted records with same key within a 
partition are merged), 
- timestamp for log retention
- header for metadata

Also formats should be able to expose metadata, FLIP-132 is just one example 
where the Debezium format might expose a "db_operation_time" that is not part 
of the schema itself.

Other use cases could be exposing Avro version or Avro schema as meta 
information per record.

See FLIP-107 for more information:
https://cwiki.apache.org/confluence/display/FLINK/FLIP-107%3A+Handling+of+metadata+in+SQL+connectors

  was:
Suppoort to read and write meta information of connectors, for example, 
currently we only support to read&write value part of Kafka, we should also 
support to read&wirte key part and 
timestamp, partition, topic meta information.

This an umbrella issue for the feature. It can be used to collect initial ideas 
and use cases until a FLIP is proposed.


FLIP-107: 
https://cwiki.apache.org/confluence/display/FLINK/FLIP-107%3A+Reading+table+columns+from+different+parts+of+source+records


> FLIP-107: Handling of metadata in SQL connectors
> ------------------------------------------------
>
>                 Key: FLINK-15869
>                 URL: https://issues.apache.org/jira/browse/FLINK-15869
>             Project: Flink
>          Issue Type: New Feature
>          Components: Table SQL / API
>            Reporter: Jark Wu
>            Assignee: Timo Walther
>            Priority: Major
>             Fix For: 1.12.0
>
>
> Besides the main payload, the majority of connectors (and also many formats) 
> expose additional information that should be readable and (depending on the 
> use case) also writable as metadata.
> It can simply be read-only metadata such as a Kafka read-offset or ingestion 
> time. But can also add or remove header information (e.g. a message hash, or 
> record version) to every Kafka ProducerRecord. Additionally, users might want 
> to read and write only parts of the record that contain data but additionally 
> serve different purposes (e.g. compaction by key).
> We should make it possible to read and write data from all of those locations.
> Kafka is the source with the most intricacies as it allows storing data in 
> multiple different places of the records. Each of those places is/can be 
> serialized differently. Moreover some of them might serve different purposes:
> - all of them can be just a data container,
> - key for partitioning (hash on the key), 
> - key for compacting (if topic is compacted records with same key within a 
> partition are merged), 
> - timestamp for log retention
> - header for metadata
> Also formats should be able to expose metadata, FLIP-132 is just one example 
> where the Debezium format might expose a "db_operation_time" that is not part 
> of the schema itself.
> Other use cases could be exposing Avro version or Avro schema as meta 
> information per record.
> See FLIP-107 for more information:
> https://cwiki.apache.org/confluence/display/FLINK/FLIP-107%3A+Handling+of+metadata+in+SQL+connectors



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

Reply via email to