Spanner カラム型エンジンの概要

このページでは、Spanner のカラム型エンジンの概要と、その使用方法について説明します。

オペレーショナル データベースは通常、分析のためにデータの抽出、変換、読み込み(ETL)を実行し、OLAP システムに格納します。多くの場合、このシステムはデータ ウェアハウスの一部です。Data Boost を使用すると、Spanner は分析コンピューティングを分離し、トランザクションの安定性を確保します。

カラム型エンジンは、バッチベースのスキャンよりもスキャンを高速化するために分析システムで使用されるストレージ技術です。Spanner のカラム型エンジンを使用すると、最新のオペレーション データに対する分析のパフォーマンスを大幅に向上させることができます。Spanner カラム型エンジンは、スキャン パフォーマンスを最大 200 倍に向上させ、厳密な整合性を維持しながら ETL の必要性を排除します。

Spanner の Ressi 形式では、データブロック内の効率的なスキャンに、パーティション属性間の(PAX)列単位のレイアウトを使用します。ただし、この形式では、高速な単一行ルックアップのために、行のすべての列が特定のブロック内に配置されます。Ressi とは異なり、Spanner のカラム型エンジンはブロックの実行を単一のカラムに専用化します。このアプローチは、Spanner がクエリで参照されている列のみを読み取る必要があるため、シーケンシャル スキャンでより効率的です。

Spanner は、バックグラウンドで(圧縮の一部として)列形式の表現を構築し、クエリ時に表現を最新の更新と自動的にマージして、強整合性を提供します。カラム型ストレージのメリットがないクエリは、引き続き PAX を使用できます。

カラム型エンジンの使用が有効なワークロードは次のとおりです。

  • 運用レポート。最新の運用データから最新のビジネス インテリジェンスを抽出します。
  • サービス提供型アナリティクス。インタラクティブなレイテンシでダッシュボードとカスタム ドリルダウンを強化します。
  • フェデレーション分析。BigQuery の Spanner や他のソースのデータをシームレスに結合します。

Spanner インスタンスのバックアップには、カラム形式は含まれません。

カラム型エンジンを使用するためのベスト プラクティス

このセクションでは、カラム型エンジンを使用する際のベスト プラクティスについて説明します。

大規模スキャンの最適化

カラム型エンジンは、大量のデータをスキャンするクエリを最適化します。データスキャンや、LIMIT 句がすぐに満たされるクエリが小さい場合は、行ベースのスキャンのほうが効率的になることがあります。

必須の列

SELECT * を使用すると、Spanner はカラム型ストレージからすべての列を読み取ります。パフォーマンスを最大化するには、必要な列のみを指定します。例: SELECT column1, column2 FROM ...

パフォーマンス ボトルネックの特定

カラム型エンジンは、スキャン バウンド ワークロードに効果的です。スキャン バウンド ワークロードを特定するには、テーブル スキャン ノードでレイテンシ レベルが高いクエリプランを確認します。クエリがスキャン バウンドでない場合は、他の最適化を優先します。最適化によってクエリがスキャン バウンドになった場合、カラム型エンジンのメリットは後から利用できます。

最適なカラム カバレッジ

すでにデータが含まれているデータベースでカラム型エンジンを有効にすると、Spanner の自動圧縮プロセスにより、データがバックグラウンドで非同期的にカラム型ストレージに変換されます。クエリのメリットを確認するには、クエリプランのカラム型読み取り共有の割合を確認します。

チャーン率の高いデータの管理

更新やランダム挿入による書き込み率が高いと、カラム型エンジンのパフォーマンスに影響する可能性があります。追加専用のワークロードでは、列形式エンジンを使用しても影響は最小限に抑えられます。圧縮はバックグラウンド プロセスであり、通常は数日間にわたって行われますが、データベースのサイズが大幅に増加した場合は、より早く行われることがあります。または、分割レベルで追記専用の書き込みを優先するようにスキーマを設計します。詳細については、Spanner 内のタイムスタンプ順データのシャーディングをご覧ください。

ワークロードの分離

分析クエリをトランザクションから分離するには、次の 2 つの方法があります。

料金

Spanner カラム型エンジンの課金は、ストレージの使用量に基づいて行われます。Spanner カラム型エンジンを有効にして、Spanner がデータ圧縮を完了すると、新しいカラム型表現を含むためストレージ使用量が増加します。カラム型エンジンは、ストレージへの影響をモニタリングできるストレージ指標を提供します。詳細については、列形式のデータ ストレージ指標をご覧ください。

Spanner カラム型エンジンは、セルあたりの 8 バイトのオーバーヘッドの影響を受けません。

プレビュー版の制限

  • Spanner に直接クエリを実行する場合、または BigQuery EXTERNAL_QUERY を使用してクエリを実行する場合は、明示的なヒントを使用して列形式の読み取りを有効にする必要があります。詳細については、列データにクエリを実行するをご覧ください。
  • カラム型エンジンは GoogleSQL インターフェースのみをサポートします。
  • 選択的フィルタがないスキャンでは、改善の度合いが小さくなる可能性があります。

次のステップ