Snowflake High Performance connector for Kafka¶
このトピックでは、|KAFKAOFHP|の基本概念、ユースケース、利点、主な機能、および制限について説明します。
注釈
|KAFKAOFHP|は、Kafkaトピックからデータを読み取り、そのデータをSnowflakeテーブルにロードする :emph:` シンクコネクタ` です。Kafka Connectとそのフレームワークの詳細については、 Apache KafkaおよびKafka Connectフレームワーク をご参照ください。
利点¶
|KAFKAOFHP|は、ほぼリアルタイムの分析情報を必要とする現代のデータ集約型組織向けに設計された、Snowflakeの 高性能Snowpipe Streamingアーキテクチャ を活用します。この次世代アーキテクチャは、Snowflakeへのリアルタイムインジェスチョンのスループット、効率、柔軟性を大幅に向上させます。
高性能アーキテクチャには、いくつかの重要な利点があります。
優れたスループットとレイテンシ:テーブルあたり最大10GB/秒の取り込み速度をサポートするように設計されており、エンドツーエンドの取り込みからクエリまでのレイテンシは5~10秒以内で、ほぼリアルタイムの分析が可能になります。
請求の簡略化:透明性が高くスループットに基づいて請求を行うため、コストの予測と理解がしやすくなります。
パフォーマンスの強化:以前の実装と比較して、クライアント側のパフォーマンス向上とリソース使用量の削減を実現するRustベースのクライアントコアを使用します。
同時進行の変換:PIPEオブジェクト内のCOPYコマンド構文を使用して、取り込み中にデータのクレンジングと再形成をサポートし、データがターゲットテーブルに到達する前に変換できるようにします。
サーバー側のスキーマ検証:PIPEオブジェクトを介してスキーマ検証をクライアント側からサーバー側に移動するため、データの品質を確保しクライアントの複雑さを軽減します。
事前クラスタリング機能:ターゲットテーブルにクラスタリングキーが定義されている場合は、インジェスチョン中にデータをクラスタリングできるため、取り込み後のメンテナンスを必要とせずにクエリパフォーマンスが向上します。
コネクタは、インジェスチョンを管理するための中心コンポーネントとしてSnowflake PIPE オブジェクトを使用します。PIPEオブジェクトは、すべてのストリーミングデータのエントリポイントおよび定義レイヤーとして機能し、データがターゲットテーブルにコミットされる前にどのように処理、変換、検証されるかを定義します。コネクタがテーブルとパイプで動作する方法の詳細については、 コネクタがテーブルとパイプで動作する方法 をご参照ください。
コネクタのバージョンの選択¶
KafkaコネクタはKafka Connectクラスターで実行され、Kafkaトピックからデータを読み取り、Snowflakeテーブルに書き込みます。
Snowflakeは、次の2つのバージョンのコネクタを提供します。どちらのバージョンのコネクタも、KafkaからSnowflakeにデータをストリーミングするコア機能は同じです。
コネクタのConfluentバージョン
Kafka向け高性能Snowflakeコネクタは、Confluent Cloudではまだ利用できません。Confluent Cloudを使用している場合は、カスタムプラグインコネクタとしてコネクタを手動でインストールする必要があります。
Confluentバージョンは、Confluent HubまたはConfluent Control Centerを介してインストールするzipファイルとしてパッケージ化されており、コネクタの実行に必要なすべての外部ライブラリが含まれています。
Confluent PlatformまたはConfluent Cloudを使用している場合は、このバージョンを選択してください。
Confluentバージョンのコネクタを入手してインストールするには、Snowflakeサポートにお問い合わせください。
詳細については、 Kafka Connect をご参照ください。
コネクタの OSS Apache Kafkaバージョン
オープンソースソフトウェア( OSS )Apache Kafkaパッケージ から入手可能です。
Apacheバージョンは標準のfat JAR ファイルとして配布されており、Apache Kafka Connectクラスターに手動でインストールする必要があります。このバージョンには、個別にダウンロードする必要がある Bouncy Castle 暗号化ライブラリが必要です。
詳細については、 Apache Kafka をご参照ください。
Apache Iceberg™ テーブルでのコネクタの使用¶
コネクタは、Snowflakeが管理する Apache Iceberg™テーブル にデータを取り込むことができます。Icebergテーブルの取り込みにKafkaコネクタを構成する前に、Icebergテーブルを作成する必要があります。詳細については、 インジェスチョン用の Apache Iceberg™ テーブルを作成する をご参照ください。
制限事項¶
|KAFKAOFHP|には、以下の制限があります。
- Apache Iceberg™ テーブルとスキーマの進化
コネクタは Apache Iceberg™ テーブルのスキーマ進化をサポートしません。
- バージョン3.x以前の既存パイプラインの移行
コネクタは、バージョン3.x以前の既存のパイプラインの移行をサポートしていません。既存のパイプラインを新しいコネクタに手動で移行する必要があります。既存のパイプラインが、このコネクタでまだ利用できない機能に依存しないことを確認してください。
- 単一メッセージ変換(SMTs):
コミュニテ コンバーターを使用する場合、ほとんどの単一メッセージ変換(SMTs)がサポートされますが、現在サポートされていない
regex.routerは例外です。- すべての破損した記録がコネクタによって配信不能キュー( DLQ )に送信されるわけではありません
errors.tolerance=allおよびerrors.deadletterqueue.topic.nameが構成されている場合、コネクタは 最大1回 の配信を保証します。変換できない記録のみがKafka Connectによって DLQ に送信されます。Snowflakeの取り込みに失敗した記録はそこにルーティングされません。Snowpipe Streamingは、失敗した記録は検出できますが、特定の記録は検出できません。- インジェストに失敗した破損した記録は、手動で再試行する必要があります
errors.tolerance=noneおよびrows_error_countが増加すると、コネクタタスクは失敗します。破損した記録を再試行するには、チャネル履歴を確認して破損した記録を見つけます。破損した記録とインジェスチョンエラーのトラブルシューティングの詳細については、 エラー処理 をご参照ください。メタデータオフセットを使用したエラーの検出と復旧 で説明されているギャップ検出テクニックを使用することもできます。この手法を使用するために必要なKafkaオフセット情報は、RECORD_METADATA列で確認できます。
コネクタのフォールトトレランスの制限¶
Kafkaトピックは、ストレージスペースまたは保持時間の制限で構成できます。
保持時間を超えてシステムがオフラインしている場合、期限切れの記録はロードされません。同様に、Kafkaのストレージスペースの制限を超えると、一部のメッセージは配信されません。
Kafkaトピックのメッセージが削除された場合、これらの変更はSnowflakeテーブルに反映されません。
SMTsの詳細については、 Confluent CloudまたはConfluent Platform向けKafka Connect単一メッセージ変換の参照情報 をご参照ください。
コネクタのSnowflakeサポート¶
次のテーブルは、サポートされているバージョンと、プレリリースおよびリリース候補に関する情報について説明しています。
リリースシリーズ |
ステータス |
メモ |
|---|---|---|
4.x.x |
プライベートプレビュー |
早期アクセス。現在、3.xおよび2.xからの移行はサポートされていません。 |
3.x.x |
正式にサポート |
最新バージョンで、強くお勧めします。 |
2.x.x |
正式にサポート |
アップグレードをお勧めします。 |
1.x.x |
サポート対象外 |
以下の機能はサポートされていません。
プレビューバージョンの破壊的変更¶
破壊的変更のリストについては、プレビューバージョンのリリースノートをご参照ください。
次のステップ¶
コネクタがテーブルおよびパイプでどのように機能するかの詳細については、 コネクタの動作 のトピックをご参照ください。 . Snowflake High Performance connector for Kafka をセットアップする手順については、 Snowflake High Performance connector for Kafka のタスクの設定 のトピックをご確認ください。