Elakiya created FLINK-33425:
-------------------------------
Summary: Flink SQL doesn't support a inline field in struct type
as primary key
Key: FLINK-33425
URL: https://issues.apache.org/jira/browse/FLINK-33425
Project: Flink
Issue Type: New Feature
Components: Table SQL / API
Affects Versions: 1.16.2
Reporter: Elakiya
I have a Kafka topic named employee which uses confluent avro schema and will
emit the payload as below:
{
"employee": {
"id": "123456",
"name": "sampleName"
}
}
I am using the upsert-kafka connector to consume the events from the above
Kafka topic as below using the Flink SQL DDL statement, also here I want to use
the id field as the Primary key. But I am unable to use the id field since it
is inside the object and currently Flink doesn't support this feature. I am
using Apache Flink 16.2 and its dependent versions
DDL Statement:
String statement = "CREATE TABLE Employee (\r\n" +
" employee ROW(id STRING, name STRING\r\n" +
" ),\r\n" +
" PRIMARY KEY ([employee.id|http://employee.id/]) NOT ENFORCED\r\n" +
") WITH (\r\n" +
" 'connector' = 'upsert-kafka',\r\n" +
" 'topic' = 'employee',\r\n" +
" 'properties.bootstrap.servers' = 'kafka-cp-kafka:9092',\r\n" +
" 'key.format' = 'raw',\r\n" +
" 'value.format' = 'avro-confluent',\r\n" +
" 'value.avro-confluent.url' =
'[http://kafka-cp-schema-registry:8081|http://kafka-cp-schema-registry:8081/]',\r\n"
+
")";
A new feature to use the property of a Row datatype (in this case employee.id)
as a primary key would be helpful in many scenarios.
Let me know if more details are required.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)