Mapping messages to table that has a User Defined Type
Write complex types directly into User-defined Types (UDT).
The DataStax Apache Kafka Connector processes JSON, Avro, and complex types, such as Kafka Structs or maps, directly into a user-defined type column in the supported database. The Kafka message embedded field names and the UDT field names must match.
In the example
stocks_topic
, the key
is a basic string and the value is regular JSON.key | value |
---|---|
APPLE |
|
EXXON MOBIL |
|
GENERAL MOTORS |
|
AT&T |
|
FORD MOTOR |
|
The DataStax keyspace name is
stocks_keyspace
. In the stocks
keyspace create the user defined type,
stocks_type
:CREATE TYPE stocks_keyspace.stocks_type ( symbol text, ts timestamp, exchange text, industry text, value double);
Define a table named
stocks_udt_table
that has a column for the
primitive string field name
and a second column that uses the type,
stocks_type
:CREATE TABLE stocks_keyspace.stocks_table ( name text primary key, stocks FROZEN<stocks_type>);
Configure the connector settings and use the following for the map
specification:
“topic.stocks_topic.stocks_keyspace.stocks_udt_table.mapping”:
“name=key,stocks=value”