このトピックでは、Kafka データテーブルの使用方法について説明します。

構文

CREATE TABLE tbName[(columnName dataType [,columnName dataType]*)]
USING kafka
OPTIONS(propertyName=propertyValue[,propertyName=propertyValue]*);

設定パラメーター

パラメーター 説明 必須
kafka.schema.registry.url Kafka Schema Registry の URL。 はい
subsribe 関連付けられた Kafka トピックの名前。 はい
kafka.bootstrap.servers Kafka クラスターの接続アドレス。 はい
kafka.schema.record.name Avro の RecordName パラメーターの定義。 いいえ
kafka.schema.record.namespace Avro の RecordNameSpace パラメーターの定義。 いいえ

テーブルスキーマ

Kafka データテーブルを作成するとき、 必要に応じて、データテーブルのフィールドを定義するかどうかを選択できます。
トピックのスキーマが Kafka Schema Registry に定義されている場合のシステムの処理 トピックのスキーマが Kafka Schema Registry に定義されていない場合のシステムの処理
データテーブルのフィールドを定義しない。 トピックスキーマに基づいてテーブルスキーマが定義されます。 テーブルの作成に失敗します。
データテーブルのフィールドを定義する。 テーブルスキーマがトピックスキーマと互換性があるかどうかのチェックが行われます。 互換性がない場合、エラーが返されます。 互換性がある場合、カスタムフィールドタイプに基づいてテーブルスキーマが定義されます。 Kafka データの Avro データスキーマが Kafka Schema Registry に自動的に登録されます。 これには、 kafka.schema.record.name フィールドと kafka.schema.record.namespace フィールドを指定する必要があります。
Kafka Schema Registry にトピックのスキーマを定義する場合、次の制限が適用されます。
  • すべてのフィールドは、null 許容型でなければなりません。 たとえば、次のコードの f1 フィールドのタイプは null です。
    {"type":"record","name":"myrecord","namespace":"test","fields":[{"name":"f1","type":["string","null"]}]}