JSON/AVRO データ形式用Apache Kafka¶
注釈
コネクタには、 コネクタ利用規約 が適用されます。
このトピックでは、 JSON および AVRO データ形式用のApache Kafkaコネクタについて説明します。これらは、スキーマの進化とトピックからテーブルへのマッピング機能を備えた、基本的なメッセージ取り込みに最適化された簡易コネクタです。
コネクタバリアント¶
JSON データ形式コネクタ¶
JSON データ形式用Apache Kafkaコネクタは、KafkaトピックからSnowflakeテーブルへの簡単な JSON メッセージ取り込み用に設計されています。
主な機能:
JSON メッセージ形式のサポート
スキーマの進化
トピックからテーブルへのマッピング
SASL 認証
AVRO データ形式コネクタ¶
AVRO データ形式用Apache Kafkaコネクタは、スキーマレジストリをサポートするKafkaトピックからSnowflakeテーブルへの AVRO メッセージ取り込み用に設計されています。
主な機能:
AVRO メッセージ形式のサポート
スキーマレジストリの統合
スキーマの進化
トピックからテーブルへのマッピング
SASL 認証
固有パラメーター¶
Openflow Connector for Kafkaを設定する で説明されている共通パラメーターに加えて、これらのコネクタには固有のパラメーターコンテキストがあります。
スキーマレジストリのパラメーター(AVRO コネクタのみ)¶
AVRO コネクタには、スキーマレジストリ統合のための追加パラメーターが含まれます。
パラメーター |
説明 |
必須 |
---|---|---|
スキーマレジストリの認証タイプ |
スキーマレジストリを使用する場合の認証方法。それ以外の場合は、 NONE を使用します。 NONE / BASIC のいずれかです。デフォルト: NONE |
有り |
スキーマレジストリ URL |
スキーマレジストリの URL。 AVRO メッセージ形式には必要です。 |
無し |
Schema Registry Username |
スキーマレジストリのユーザー名。 AVRO メッセージ形式には必要です。 |
無し |
Schema Registry Password |
スキーマレジストリのパスワード。 AVRO メッセージ形式には必要です。 |
無し |
AVRO Schema Access Strategy |
メッセージの AVRO スキーマにアクセスする方法。 AVRO には必要です。 embedded-avro-schema / schema-reference-reader / schema-text-property のいずれかです。デフォルト: embedded-avro-schema |
無し |
AVRO スキーマ |
AVRO メッセージ形式による AVRO Schema Access Strategyでschema-text-propertyが使用される場合のAvroスキーマ。注: これは、構成されたKafkaトピックから消費されるすべてのメッセージが同じスキーマを共有する場合にのみ使用する必要があります。 |
無し |
制限事項¶
これらの簡易コネクタには、フル機能の DLQ やメタデータコネクタと比較して、以下の制限があります。
RECORD_METADATA 列がない - Kafkaメタデータはターゲットテーブルに格納されません。
デッドレターキュー(DLQ)がない - 失敗したメッセージは DLQ トピックにルーティングされません。
Icebergテーブルのサポートがない - 通常のSnowflakeテーブルのみがサポートされます。
固定されたスキーマ化 - スキーマ検出は常に有効で、無効にすることはできません。
注釈
これらのコネクタではスキーマ検出がデフォルトで有効になっており、無効にすることはできません。つまり、メッセージフィールドは、スキーマの自動進化により、自動的に個々のテーブル列にフラット化されます。
ユースケース¶
これらのコネクタは、次のようなケースに最適です。
- シンプルなデータ取り込み
Kafkaメタデータを使用せず、メッセージコンテンツのみが必要な場合。
- ハイスループットシナリオ
データ構造を簡素化することでパフォーマンスが向上する場合。
- スキーマ進化のユースケース
テーブルスキーマの自動更新が必要な場合
- JSON または AVRO メッセージ形式
スキーマの一貫性
Kafkaメタデータ、 DLQ サポート、Icebergテーブルの取り込みが必要な場合は、代わりに DLQ とメタデータを使用したApache Kafka コネクタを使用してください。
スキーマの検出と進化¶
これらのコネクタはスキーマの自動検出と進化をサポートしています。Snowflakeのテーブル構造は、コネクタによってロードされた新しいデータの構造に対応するように定義されており、自動的に進化します。
スキーマ検出を有効にすると(これらのコネクタでは常に有効です)、Snowflakeはストリーミングデータのスキーマを検出し、ユーザー定義のスキーマに自動的に一致するテーブルにデータをロードします。Snowflakeでは、新しい列を追加したり、新しいデータファイルで欠落している列から NOT NULL
制約をドロップしたりすることもできます。
コネクタによるスキーマ検出は、提供されたスキーマレジストリの有無にかかわらずサポートされています。スキーマレジストリ(Avro)を使用する場合、列はスキーマレジストリで定義されたデータ型で作成されます。スキーマレジストリ(JSON)がない場合、データ型は提供されるデータに基づいて推測されます。
それ以上のスキーマ化ではJSONARRAYはサポートされていません。
スキーマ進化の動作¶
コネクタがターゲットテーブルを作成する場合、スキーマ進化はデフォルトで有効になります。
既存のテーブルでスキーマの進化を有効または無効にしたい場合は、 ALTER TABLE コマンドを使用して、 ENABLE_SCHEMA_EVOLUTION
パラメーターを設定します。テーブルで OWNERSHIP
権限を持つロールを使用することも必要です。詳細については、 テーブルスキーマの進化 をご参照ください。