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