このトピックでは、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"]}]}