JSON/AVRO データ形式用Apache Kafka

注釈

このコネクタは、 Snowflakeコネクタ規約 に従うものとします。

このトピックでは、 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 権限を持つロールを使用することも必要です。詳細については、 テーブルスキーマの進化 をご参照ください。