Snowpipe ストリーミング - クラシックアーキテクチャ¶
Snowpipeストリーミングクラシックアーキテクチャは、実績のある効率的な方法で、低レイテンシで行ベースのデータを継続的にSnowflakeテーブルに直接取り込みます。ドキュメントではSnowpipe Streaming Classicと呼ばれるこの実装は、アプリケーションのイベントデータ、Internet of Things (IoT) センサーの読み取り、低レイテンシのChange Data Capture (CDC) など、多様なストリーミングワークロードに対応する信頼性の高い選択肢です。
Snowpipe Streaming Classicは snowflake-ingest-java SDK、Snowpipe Streamingハイパフォーマンスアーキテクチャの中心であるデータフローを管理するための明示的な PIPE オブジェクトコンセプトなしで動作します。その代わりに、Snowpipe Streaming Classicでは、チャンネルはテーブルに対してより直接的に構成され、Snowflakeにデータをストリームするための慣れ親しんだ確立されたアプローチを提供します。
ソフトウェア要件¶
SDK:Snowflake-ingest-sdk バージョン 4.X 以降を使用してください。
Javaバージョン:Java 8以降が必要です。
追加の前提条件:Java Cryptography Extension(JCE)Unlimited Strength Jurisdiction Policy Files をJava 8環境用にインストールする必要があります。
クラシックアーキテクチャのクラスとインターフェイスのドキュメントについては、 Snowflake Ingest SDK API をご参照ください。
従来のアーキテクチャと高性能アーキテクチャの違いについては、API の違い をご参照ください。
カスタムのクライアントアプリケーション¶
その API には、データ行を受け入れ、発生したエラーを処理できるカスタムJavaアプリケーションインターフェースが必要です。アプリケーションが継続的に実行され、障害から復旧できるようにする必要があります。指定した行のバッチに対して、 API は ON_ERROR = CONTINUE | SKIP_BATCH | ABORT に同等のものをサポートします。
CONTINUE: 許容できるデータ行のロードを続け、すべてのエラーを返します。SKIP_BATCH: バッチ全体の行で何らかのエラーが発生した場合、ロードをスキップしてすべてのエラーを返します。ABORT(デフォルト設定): 行のバッチ全体を中止し、最初のエラーが発生したときに例外をスローします。
Snowpipe Streaming Classicの場合、アプリケーションは insertRow`(単一行)または :code:`insertRows`(行のセット)メソッドからの応答を使用してスキーマ検証を行います。高性能アーキテクチャのエラー処理については、:doc:`エラー処理 </user-guide/snowpipe-streaming/snowpipe-streaming-high-performance-error-handling> をご参照ください。
データを Apache Iceberg™ テーブルにロードする¶
Snowflake Ingest SDK バージョン3.0.0以降では、Snowpipe StreamingはSnowflake管理 Apache Iceberg テーブルにデータをインジェストできます。Snowpipe Streaming Ingest Java SDK は、標準のSnowflakeテーブル(非Iceberg)とIcebergテーブルの両方へのロードをサポートしています。
詳細については、 Snowpipe ストリーミング クラシックを Apache Iceberg™ テーブルで使用します。 をご参照ください。
クラシック・アーキテクチャにおける最適化ファイルへの移行¶
API は、チャネルからの行をクラウドストレージのBLOBに書き込み、ターゲットテーブルにコミットします。最初に、ターゲットテーブルに書き込まれたストリームデータは、仮の中間ファイル形式で格納されます。このステージでは、テーブルは「混合テーブル」と見なされます。これは、ネイティブファイルと中間ファイルが混ざった状態でパーティションされたデータが格納されているためです。自動化されたバックグラウンド・プロセスにより、アクティブな中間ファイルから、必要に応じてクエリや DML の操作に最適化されたネイティブ・ファイルにデータが移行されます。
クラシック・アーキテクチャにおける複製¶
Snowpipe Streamingは、Snowpipe Streamingとそれに関連するチャネルオフセットによって入力されたSnowflakeテーブルの 複製とフェールオーバー を、異なる リージョン のソースアカウントとターゲットアカウント間、また クラウドプラットフォーム 間でサポートしています。
複製はハイ パフォーマンス アーキテクチャではサポートされていません。
詳細については、 複製およびSnowpipe Streaming をご参照ください。