ハイブリッドテーブル¶
ハイブリッドテーブルとは、小さなランダムポイントの読み取りと書き込みで低レイテンシと高スループットを必要とするハイブリッドトランザクションと運用ワークロード用に最適化されたSnowflakeテーブルタイプのことです。ハイブリッドテーブルは、トランザクションワークロードにとって重要な一意制約と参照整合性制約の適用をサポートします。ハイブリッドテーブルを他のSnowflakeテーブルや機能と共に使用することで、トランザクションデータと分析データを単一のプラットフォームに統合する Unistoreワークロード を実現できます。
ハイブリッドテーブルが有効なユースケースには、次があります。
インタラクティブなユーザーインターフェイスを通じて、ターゲットを絞ったマーケティングキャンペーンのためのコホートを構築します。
大規模な並列データ変換パイプラインを調整するために、中央のワークフロー状態を維持します。
ウェブサイトやモバイルアプリにアクセスしているユーザーに対して、事前に計算されたプロモーション処理を提供します。
アーキテクチャ¶
ハイブリッドテーブルは、既存のSnowflakeアーキテクチャにシームレスに統合されます。顧客は同じSnowflakeデータベースサービスに接続します。クエリはクラウドサービスレイヤーでコンパイルおよび最適化され、仮想ウェアハウス内の同じクエリエンジンで実行されます。これにはいくつかの次のような重要な利点があります。
データガバナンスなどのSnowflakeプラットフォーム機能を、ハイブリッドテーブルですぐに使用できます。
運用クエリと分析クエリを組み合わせたハイブリッドワークロードを実行できます。
ハイブリッドテーブルを他のSnowflakeテーブルと結合でき、クエリは同じクエリエンジンでネイティブかつ効率的に実行されます。フェデレーションは必要ありません。
ハイブリッドテーブルと他のSnowflakeテーブル間でアトミックトランザクションを実行できます。独自の2相コミットをオーケストレーションする必要はありません。
ハイブリッドテーブルは、行ストアをプライマリデータストアとして活用し、優れた運用クエリパフォーマンスを提供します。ハイブリッドテーブルに書き込むと、データは行ストアに直接書き込まれます。進行中の運用ワークロードに影響を与えることなく、大規模なスキャンのパフォーマンスとワークロードの分離を向上させるために、データは非同期的にオブジェクトストレージにコピーされます。分析クエリのパフォーマンスを向上させるために、一部のデータはウェアハウスに列形式でキャッシュされる場合もあります。論理ハイブリッドテーブルに対して SQL ステートメントを実行するだけで、最適なパフォーマンスを提供するために、Snowflakeのクエリオプティマイザーがデータの読み取り元を決定します。基盤となるインフラストラクチャを気にすることなく、データの一貫したビューを取得できます。
機能¶
ハイブリッドテーブルには、他のSnowflakeテーブルタイプではサポートされていない追加機能があります。
機能 |
ハイブリッドテーブル |
標準テーブル |
---|---|---|
プライマリデータレイアウト |
行指向、セカンダリ列指向化あり |
列指向 マイクロパーティション |
ロック |
列ロック |
パーティションまたはテーブルのロック |
主キー |
必須、一意性が強制される |
オプション、強制ではない |
外部キー |
オプション、参照整合性の強制 |
オプション、強制ではない |
制約 |
一意制約、参照整合性制約の強制をサポート |
サポート対象外 |
インデックス |
パフォーマンスをサポート、書き込み時にインデックスが同期的に更新 |
検索最適化でポイント検索のパフォーマンスを向上させるために列にインデックスを付ける、バッチは非同期で更新/維持される |
ハイブリッドテーブルを使用するタイミングの決定¶
Snowflake標準テーブルでは大規模な分析クエリでより優れたパフォーマンスが期待できますが、ハイブリッドテーブルでは実行時間の短い操作クエリでより高速に結果を得ることができます。次のようなクエリにはハイブリッドテーブルが適しています。
高同時実行のランダムポイント読み取りと、大規模な範囲の読み取りの比較。
高同時実行のランダム書き込みと、大規模なシーケンシャル書き込み(例: バルクロード)の比較。
少数の記録全体(例: 顧客オブジェクト)の検索と、分析関数(例: 集計やgroup by)による狭い範囲の予測の比較。
クエリがこれらのモデルのいずれかに当てはまる場合、ハイブリッドテーブルがデータの保存に適した選択肢となる可能性があります。