Hi Vincent,

I'm not well into Flink SQL, so I'm pulling in Jark.

I have stopped using union records in your way and instead only use
nullable fields (technically also a union field but much easier to handle
in all languages).

So if you have a way to change the schema, maybe try it out:
  record RowEvent {
    union { null, ItemRow } item_row default null;
    union { null, RefundRow } refund_row default null;
  }



On Thu, Mar 18, 2021 at 7:35 AM Vincent Dong <dyb0...@163.com> wrote:

> Hi All,
>   How does Flink SQL read Kafka Avro message which has union field?
>   For me,  avro schema is defined as following,
> ```
>   record ItemRow {
>     string num_iid;
>     string has_showcase;
>     string jdp_created;
>   }
>
>   record RefundRow {
>     string refund_id;
>     string status;
>     string jdp_created;
>   }
>
>   record RowEvent {
>     union { ItemRow, RefundRow } item_row;
>   }
> ```
> Now I'm sure that for a specific kafka topic, the item_row in all messages
> is RefundRow, but I don't know how to define source table and query the
> table.
> Can I define the table to force Flink SQL converts all messages to
> RefundRow? Then I can `select status, refund_id from the_converted_table`.
>
>
> Thanks
> Vincent Dong
>
>
>
>

Reply via email to