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にデータをストリームするための慣れ親しんだ確立されたアプローチを提供します。

ソフトウェア要件

従来のアーキテクチャと高性能アーキテクチャの違いについては、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 をご参照ください。