ハイブリッドテーブル¶
ハイブリッドテーブルとは、小さなランダムポイントの読み取りと書き込みで低レイテンシと高スループットを必要とするハイブリッドトランザクションと運用ワークロード用に最適化されたSnowflakeテーブルタイプのことです。ハイブリッドテーブルは、トランザクションワークロードにとって重要な一意制約と参照整合性制約の適用をサポートします。ハイブリッドテーブルを他のSnowflakeテーブルや機能と共に使用することで、トランザクションデータと分析データを単一のプラットフォームに統合する Unistoreワークロード を実現できます。
ハイブリッドテーブルが有効なユースケースには、次があります。
インタラクティブなユーザーインターフェイスを通じて、ターゲットを絞ったマーケティングキャンペーンのためのコホートを構築します。
大規模な並列データ変換パイプラインを調整するために、中央のワークフロー状態を維持します。
ウェブサイトやモバイルアプリにアクセスしているユーザーに対して、事前に計算されたプロモーション処理を提供します。
アーキテクチャ¶
ハイブリッドテーブルは、既存のSnowflakeアーキテクチャにシームレスに統合されます。顧客は同じSnowflakeデータベースサービスに接続します。クエリはクラウドサービスレイヤーでコンパイルおよび最適化され、仮想ウェアハウス内の同じクエリエンジンで実行されます。このアーキテクチャにはいくつかの重要な利点があります。
データガバナンスなどのSnowflakeプラットフォーム機能を、ハイブリッドテーブルですぐに使用できます。
運用クエリと分析クエリを組み合わせたハイブリッドワークロードを実行できます。
ハイブリッドテーブルを他のSnowflakeテーブルと結合でき、クエリは同じクエリエンジンでネイティブかつ効率的に実行されます。フェデレーションは必要ありません。
ハイブリッドテーブルと他のSnowflakeテーブル間でアトミックトランザクションを実行できます。独自の2相コミットをオーケストレーションする必要はありません。

ハイブリッドテーブルは、行ストアをプライマリデータストアとして活用し、優れた運用クエリパフォーマンスを提供します。ハイブリッドテーブルに書き込むと、データは行ストアに直接書き込まれます。進行中の運用ワークロードに影響を与えることなく、大規模なスキャンのパフォーマンスとワークロードの分離を向上させるために、データは非同期的にオブジェクトストレージにコピーされます。分析クエリのパフォーマンスを向上させるために、一部のデータはウェアハウスに列形式でキャッシュされる場合もあります。論理ハイブリッドテーブルに対してSQLステートメントを実行するだけで、最適なパフォーマンスを提供するために、Snowflakeクエリオプティマイザーがデータの読み取り元を決定します。基盤となるインフラストラクチャを気にすることなく、データの一貫したビューを取得できます。
注釈
ハイブリッドテーブルのプライマリストレージは行ストアであるため、ハイブリッドテーブルのストレージフットプリントは通常、標準テーブルよりも大きくなります。この違いの主な理由は、標準テーブルの列データは、しばしば高い圧縮率を達成するからです。ストレージコストの詳細については、 ハイブリッドテーブルのコスト評価 をご参照ください。
機能¶
ハイブリッドテーブルには、他のSnowflakeテーブルタイプではサポートされていない追加機能があります。
機能 |
ハイブリッドテーブル |
標準テーブル |
---|---|---|
プライマリデータレイアウト |
行指向、二次列記憶装置付き |
列指向 マイクロパーティション |
ロック |
行レベルのロック |
パーティションまたはテーブルのロック |
PRIMARY KEYの制約 |
必須、強制 |
オプション、強制ではない |
FOREIGN KEYの制約 |
オプション、参照整合性の強制 |
オプション、強制ではない |
UNIQUEの制約 |
オプション、強制 |
オプション、強制ではない |
NOT NULLの制約 |
オプション、強制 |
オプション、強制 |
インデックス |
パフォーマンスをサポート:書き込み時に同期的に更新 |
検索最適化サービスはポイント検索のパフォーマンスを向上させるために列にインデックスを付けます。バッチは非同期で更新/維持されます |
制約が 強制 されるのは、ある列が特定の方法で更新されないようにする場合です。例えば、 NOT NULL と宣言された列は、 NULL の値を含むことはできません。NOT NULL 列に NULL の値をコピーまたは挿入しようとすると、常にエラーになります。ハイブリッド・テーブルでは、 PRIMARY KEY 、 FOREIGN KEY 、 UNIQUE 制約に NOT ENFORCED プロパティを設定することはできません。このプロパティを設定すると、「無効な制約プロパティ」エラーが発生します。
制約は、テーブル内の1つ以上の列がそのような制約を持たなければならない場合に 必須 となります。これは、ハイブリッドテーブルの PRIMARY KEY 制約にのみ当てはまります。
ハイブリッドテーブルを使用するタイミングの決定¶
Snowflake標準テーブルでは大規模な分析クエリでより優れたパフォーマンスが期待できますが、ハイブリッドテーブルでは実行時間の短い操作クエリでより高速に結果を得ることができます。次のようなクエリにはハイブリッドテーブルが適しています。
高同時実行のランダムポイント読み取りと、大規模な範囲の読み取りの比較。
高同時実行のランダム書き込みと、大規模なシーケンシャル書き込み(例: バルクロード)の比較。
少数の記録全体(例: 顧客オブジェクト)の検索と、分析関数(例: 集計やGROUPBYクエリ)による狭い範囲の予測の比較。
クエリがこれらのモデルのいずれかに当てはまる場合、ハイブリッドテーブルがデータの保存に適した選択肢となる可能性があります。