ハイブリッドテーブル

ハイブリッドテーブルは、インデックスベースのランダムリード/ライトを使用して低レイテンシと高スループットに最適化されたSnowflakeテーブルタイプです。ハイブリッドテーブルは、高い同時実行性を実現する行ロックをサポートする行ベースのストレージ・エンジンを提供します。また、ハイブリッドテーブルは一意性制約と参照整合性制約を強制しますが、これはトランザクション・ワークロードにとって重要です。ハイブリッドテーブルを他のSnowflakeテーブルや機能と共に使用することで、トランザクションデータと分析データを単一のプラットフォームに統合する Unistoreワークロード を実現できます。

ハイブリッドテーブルが有効なユースケースには、次があります。

  • アプリケーションやワークフロー用のメタデータ。たとえば、何千もの並列ワーカーから1つのテーブルに対して高い並行性で更新が必要な取り込みワークフローの状態を維持します。

  • API かユーザーインターフェイスを通じて、事前計算されたアグリゲートをより低レイテンシーで提供します。

  • リレーショナルデータモデルによる軽量トランザクションアプリケーション。

Tip

ハイブリッドテーブルを作成して使用する前に、 サポートされていない機能と制限 についてよく理解しておく必要があります。

アーキテクチャ

ハイブリッドテーブルは、既存のSnowflakeアーキテクチャにシームレスに統合されます。顧客は同じSnowflakeデータベースサービスに接続します。クエリはクラウドサービス層でコンパイル、最適化され、標準テーブルと同じクエリエンジン、仮想ウェアハウスで実行されます。このアーキテクチャにはいくつかの重要な利点があります。

  • データガバナンスなどのSnowflakeプラットフォーム機能を、ハイブリッドテーブルですぐに使用できます。

  • 運用クエリと分析クエリを組み合わせたハイブリッドワークロードを実行できます。

  • ハイブリッドテーブルを他のSnowflakeテーブルと結合することができます。クエリは同じクエリエンジンでネイティブかつ効率的に実行されます。フェデレーションは必要ありません。

  • ハイブリッドテーブルと他のSnowflakeテーブル間でアトミックトランザクションを実行できます。独自の2相コミットをオーケストレーションする必要はありません。

Unistoreアーキテクチャ

ハイブリッドテーブルは、行ストアをプライマリデータストアとして活用し、優れた運用クエリパフォーマンスを提供します。ハイブリッドテーブルに書き込むと、データは行ストアに直接書き込まれます。進行中の運用ワークロードに影響を与えることなく、大規模なスキャンのパフォーマンスとワークロードの分離を向上させるために、データは非同期的にオブジェクトストレージにコピーされます。また、分析クエリのパフォーマンスを向上させるために、データウェアハウスに列形式でキャッシュされるデータもあります。論理ハイブリッドテーブルに対してSQLステートメントを実行するだけで、最適なパフォーマンスを提供するために、Snowflakeクエリオプティマイザーがデータの読み取り元を決定します。基盤となるインフラストラクチャを気にすることなく、データの一貫したビューを取得できます。

注釈

ハイブリッドテーブルのプライマリストレージは行ストアであるため、ハイブリッドテーブルのストレージフットプリントは通常、標準テーブルよりも大きくなります。この違いの主な理由は、標準テーブルの列データは、しばしば高い圧縮率を達成するからです。ストレージコストの詳細については、 ハイブリッドテーブルのコスト評価 をご参照ください。

機能

ハイブリッドテーブルには、他のSnowflakeテーブルタイプではサポートされていない追加機能があります。

機能

ハイブリッドテーブル

標準テーブル

プライマリデータレイアウト

行指向、二次列記憶装置付き

列指向 マイクロパーティション

ロック

行レベル

パーティションまたはテーブル

PRIMARY KEYの制約

必須、強制

オプション、強制ではない

FOREIGN KEYの制約

オプション、参照整合性の強制

オプション、強制ではない

UNIQUEの制約

任意(PRIMARY KEY を除く)。

オプション、強制ではない

NOT NULLの制約

任意(PRIMARY KEY を除く)。

オプション、強制

インデックス

パフォーマンスをサポート:書き込み時に同期的に更新

検索最適化サービスはポイント検索のパフォーマンスを向上させるために列にインデックスを付けます。バッチは非同期で更新/維持されます

制約が 強制 されるのは、ある列が特定の方法で更新されないようにする場合です。例えば、 NOT NULL と宣言された列は、 NULL の値を含むことはできません。NOT NULL 列に NULL の値をコピーまたは挿入しようとすると、常にエラーになります。

ハイブリッド・テーブルでは、 PRIMARY KEY 、 FOREIGN KEY 、 UNIQUE 制約に NOT ENFORCED プロパティを設定することはできません。このプロパティを設定すると、「無効な制約プロパティ」エラーが発生します。制約のルールの詳細については、 ハイブリッドテーブルの制約 をご参照ください。

制約は、テーブル内の1つ以上の列がそのような制約を持たなければならない場合に 必須 となります。これは、ハイブリッドテーブルの PRIMARY KEY 制約にのみ当てはまります。

ハイブリッドテーブルを使用する場合

Snowflake標準テーブルでは大規模な分析クエリでより優れたパフォーマンスが期待できますが、ハイブリッドテーブルでは実行時間の短い操作クエリでより高速に結果を得ることができます。ハイブリッド・テーブルは、多くのワークロードで高い同時実行性と低いレイテンシを実現します。次のようなクエリにはハイブリッドテーブルが適しています。

  • 顧客オブジェクトなど、小容量の記録を取得するインデックスベースのランダムポイントリード

  • インサート、更新、マージを含む高同時ランダム書き込み:

アプリケーションは通常、ハイブリッドテーブルと標準テーブルを組み合わせて使用し、それぞれのテーブルタイプに異なるデータセットを格納します。例えば、データアナリティクス用に頻繁に一括読み込み、スキャン、集計を行うデータと、 ID の列でフィルターをかけて一度に1行ずつアクセスするデータがあるとします。ワークロードのニーズに応じて、1つのデータベースで標準テーブルとハイブリッドテーブルを混在させることができます。