Hi,
I am trying to author a SQL job that does repartitioning a Kafka SQL table
into another Kafka SQL table.
as example input/output tables have exactly the same SQL schema (see below)
and data the only difference is that the new kafka stream need to be
repartition using a simple project like item_id (input stream is
partitioned by user_id)
is there a way to do this via SQL only ? without using
org.apache.flink.streaming.connectors.kafka.partitioner.FlinkKafkaPartitioner

In other words how can we express the stream key (keyedBy) via the SQL
layer ?

For instance in Hive they expose a system column called  __key or
__partition that can be used to do this via SQL layer  (see
https://github.com/apache/hive/tree/master/kafka-handler#table-definitions)

CREATE TABLE input_kafkaTable (
 user_id BIGINT,
 item_id BIGINT,
 category_id BIGINT,
 behavior STRING,
 ts TIMESTAMP(3)
) WITH (
 'connector' = 'kafka',
 'topic' = 'user_behavior_partition_by_uid',
 'properties.bootstrap.servers' = 'localhost:9092',
)

CREATE TABLE output_kafkaTable (
 user_id BIGINT,
 item_id BIGINT,
 category_id BIGINT,
 behavior STRING,
 ts TIMESTAMP(3)
) WITH (
 'connector' = 'kafka',
 'topic' = 'user_behavior_partition_by_iid',
 'properties.bootstrap.servers' = 'localhost:9092',
)



-- 

B-Slim
_______/\/\/\_______/\/\/\_______/\/\/\_______/\/\/\_______/\/\/\_______

Reply via email to