AlloyDB Omni でカラム型エンジンを構成する

ドキュメントのバージョンを選択してください。

このページでは、AlloyDB Omni データベース クラスタでカラム型エンジンを有効または無効にする方法について説明します。また、カラム型ストアに適切な初期サイズを構成する方法についても説明します。

Google Cloudで AlloyDB for PostgreSQL を使用するときにカラム型エンジンを使用するには、カラム型エンジンを構成するをご覧ください。

AlloyDB カラム型エンジンのコンセプトの概要については、AlloyDB カラム型エンジンについてをご覧ください。

カラム型エンジンを有効にする

インスタンスでカラム型エンジンを使用するには、インスタンスの google_columnar_engine.enabled フラグを on に設定します。

インスタンスにこのフラグを設定する手順は次のとおりです。

  1. ALTER SYSTEM PostgreSQL コマンドを実行します。

    ALTER SYSTEM SET google_columnar_engine.enabled = 'on'
    
  2. カラム型エンジンの構成を調整する場合は、データベース サーバーを再起動する前に、次のセクションの手順に沿って操作します。構成を調整しない場合は、次の 2 つの手順に沿ってデータベース サーバーを再起動します。

  3. データベース サーバーを停止します。

  4. データベース サーバーを起動します。

カラム型ストアのサイズを構成する

インスタンスでカラム型エンジンが有効になっている間、AlloyDB はインスタンスのメモリの一部を割り振り、カラム型データを保存します。高速 RAM をカラムストアに専用にすることで、AlloyDB がカラム型データにできるだけ高速にアクセスできます。

google_columnar_engine.memory_size_in_mb フラグを使用して、割り当てを固定の特定のサイズに設定することもできます。

インスタンスにこのフラグを設定する手順は次のとおりです。

  1. ALTER SYSTEM PostgreSQL コマンドを実行します。

    ALTER SYSTEM SET google_columnar_engine.memory_size_in_mb = COLUMN_STORE_SIZE;
    

    COLUMN_STORE_SIZE は、カラム型ストアの新しいサイズ(メガバイト単位)に置き換えます。

  2. データベース サーバーを停止します。

  3. データベース サーバーを起動します。

ベクトル化結合を有効にする

カラム型エンジンには、ベクトル化結合機能があります。この機能を使用すると、対象となるクエリにベクトル化処理を適用することで、結合のパフォーマンスが向上します。

ベクトル化結合を有効にすると、AlloyDB クエリ プランナーは、標準の PostgreSQL ハッシュ結合演算子ではなく、ベクトル化結合演算子を適用できます。プランナーは、いずれかの方法でクエリを実行するコストを比較して、この決定を行います。

インスタンスでベクトル化結合を有効にするには、インスタンスの google_columnar_engine.enable_vectorized_join フラグを on に設定します。

インスタンスにこのフラグを設定するには、ALTER SYSTEM PostgreSQL コマンドを実行します。

ALTER SYSTEM SET google_columnar_engine.enable_vectorized_join = 'on';

AlloyDB は、デフォルトでベクトル化された結合機能に 1 つのスレッドを割り当てます。google_columnar_engine.vectorized_join_threads フラグを大きい値に設定すると、この機能で使用できるスレッド数を増やすことができます。

カラム型エンジンを手動で更新する

デフォルトでは、カラム型エンジンは、有効になっている場合にバックグラウンドでカラム型ストアを自動的に更新するように設定されています。自動更新で無効なブロックが多い関係が更新されないなど、特定の状況では、カラム型ストアを手動で更新する必要があります。

カラム型エンジンを手動で更新するには、次の SQL クエリを実行します。

SELECT google_columnar_engine_refresh('TABLE_NAME');

TABLE_NAME は、手動で更新するテーブルまたはマテリアライズド ビューの名前に置き換えます。

カラム型エンジンを無効にする

インスタンスでカラム型エンジンを無効にするには、google_columnar_engine.enabled フラグを off に設定します。

インスタンスにこのフラグを設定する手順は次のとおりです。

  1. ALTER SYSTEM PostgreSQL コマンドを実行します。

    ALTER SYSTEM SET google_columnar_engine.enabled = 'off'
    
  2. データベース サーバーを停止します。

  3. データベース サーバーを起動します。

カラム型エンジンのトラブルシューティング

「共有メモリが不足しています」というエラーを修正する

カラム型エンジンが使用できる十分な共有メモリがない状態で AlloyDB Omni を実行すると、次のエラーが表示されることがあります。

Insufficient shared memory for generating the columnar formats.

この問題に対処するには、AlloyDB Omni コンテナで使用可能な共有メモリの量を指定します。方法は、ホストのオペレーティング システムによって異なります。

Linux

/etc/fstab ファイルの編集などの手法を使用して、ホストマシンの /dev/shm パーティションのサイズを増やします。

macOS

--shm-size フラグに大きな共有メモリ値を指定して、新しい AlloyDB Omni コンテナをインストールします。

列にデータが入力されない問題を修正する

列がカラム型エンジンに入力されない場合は、次のいずれかの状況が考えられます。

  • 追加する列にサポートされていないデータ型が含まれている。

  • カラム型エンジンの要件が満たされていない。

この問題の原因を特定するには、次のことを試してください。

  • クエリ内のテーブルまたはマテリアライズド ビューがカラム型エンジンにあることを確認します。

  • EXPLAIN ステートメントを使用して、カラム型エンジンの使用状況を確認します。

次のステップ