AlloyDB カラム型エンジンのコンセプトの概要については、AlloyDB Omni カラム型エンジンの概要をご覧ください。
カラム型エンジンを有効にする
インスタンスでカラム型エンジンを使用するには、インスタンスの google_columnar_engine.enabled フラグを on に設定します。
インスタンスにこのフラグを設定する手順は、AlloyDB Omni をコンテナで実行する場合と、Kubernetes クラスタで実行する場合で異なります。
単一サーバー
  google_columnar_engine.enabled を on に設定する手順は次のとおりです。
- ALTER SYSTEMPostgreSQL コマンドを実行します。- ALTER SYSTEM SET google_columnar_engine.enabled = 'on'
- カラム型エンジンの構成を調整する場合は、データベース サーバーを再起動する前に、次のセクションの手順に沿って操作します。構成を調整しない場合は、次の手順でデータベース サーバーを再起動します。 
- 構成パラメータの変更を有効にするには、AlloyDB Omni で実行中のコンテナを再起動します。 - Docker- sudo docker restart CONTAINER_NAME- Podman- sudo podman restart CONTAINER_NAME
Kubernetes
  google_columnar_engine.enabled フラグを on に設定するには、データベース クラスタ マニフェストを変更して、primarySpec セクションに parameters 属性を追加します。
    apiVersion: alloydbomni.dbadmin.goog/v1
    kind: DBCluster
    metadata:
      name: CLUSTER_NAME
    spec:
      databaseVersion: "16.3.0"
      primarySpec:
        parameters:
          google_columnar_engine.enabled: "on"
CLUSTER_NAME は、実際のデータベース クラスタの名前に置き換えます。これは、作成時に宣言したデータベース クラスタ名と同じです。
カラム型ストアのサイズを構成する
インスタンスでカラム型エンジンが有効になっている間、AlloyDB Omni はインスタンスのメモリの一部を割り振り、カラム型データを保存します。高速 RAM をカラムストア専用にすることで、AlloyDB Omni はカラム型データに可能な限り高速にアクセスできます。
メモリ キャッシュとストレージ キャッシュを合わせた容量が、カラム型エンジンの総容量を表します。
メモリを構成する
割り当てを固定サイズに設定するには、google_columnar_engine.memory_size_in_mb フラグを使用します。
AlloyDB Omni のカラム型ストアのメモリを構成する手順は、AlloyDB Omni をコンテナで実行する場合と、Kubernetes クラスタで実行する場合によって異なります。
単一サーバー
インスタンスに google_columnar_engine.memory_size_in_mb フラグを設定する手順は次のとおりです。
- ALTER SYSTEMPostgreSQL コマンドを実行してメモリを構成します。- ALTER SYSTEM SET google_columnar_engine.memory_size_in_mb = COLUMN_MEMORY_SIZE;- COLUMN_MEMORY_SIZEは、カラム型ストレージの新しいサイズ(メガバイト単位)に置き換えます(例:- 256)。
- 構成パラメータの変更を有効にするには、AlloyDB Omni で実行中のコンテナを再起動します。 - Docker- sudo docker restart CONTAINER_NAME- Podman- sudo podman restart CONTAINER_NAME
Kubernetes
google_columnar_engine.memory_size_in_mb フラグを設定するには、データベース クラスタ マニフェストを変更して、primarySpec セクションに parameters 属性を追加します。
    apiVersion: alloydbomni.dbadmin.goog/v1
    kind: DBCluster
    metadata:
      name: CLUSTER_NAME
    spec:
      databaseVersion: "16.3.0"
      primarySpec:
        parameters:
          google_columnar_engine.memory_size_in_mb: "COLUMN_MEMORY_SIZE"
次のように置き換えます。
- CLUSTER_NAME: データベース クラスタの名前。これは、作成時に宣言したデータベース クラスタ名と同じです。
- COLUMN_MEMORY_SIZE: カラム型ストレージの新しいサイズ(メガバイト単位)。例:- 256。
ストレージ キャッシュを構成する
ストレージ キャッシュを構成する前に、AlloyDB Omni ディスク キャッシュを有効にする必要があります。
AlloyDB Omni のストレージ キャッシュを有効にするために使用する手順は、AlloyDB Omni をコンテナで実行する場合と、Kubernetes クラスタで実行する場合によって異なります。
単一サーバー
- ストレージ キャッシュを次のように構成します。 - ALTER SYSTEM SET google_columnar_engine.storage_cache_size = STORAGE_CACHE_SIZE;- STORAGE_CACHE_SIZEは、必要なストレージ キャッシュのサイズ(メガバイト単位)に置き換えます。デフォルトでは、ディスク キャッシュの 5% がカラム型エンジンに割り当てられます。このフラグに許可される最大値は、ディスク キャッシュの合計の 50% または 1000 * google_columnar_engine.memory_size_in_mb のいずれか小さい方です。
- 構成パラメータの変更を有効にするには、AlloyDB Omni で実行中のコンテナを再起動します。 - Docker- sudo docker restart CONTAINER_NAME- Podman- sudo podman restart CONTAINER_NAME
Kubernetes
データベースのストレージ キャッシュを有効にするには、データベース クラスタ マニフェストを変更して、primarySpec セクションの features セクションに columnarSpillToDisk 属性を追加します。
apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
  name: CLUSTER_NAME
spec:
  databaseVersion: "16.3.0"
  primarySpec:
    features:
      columnarSpillToDisk:
        cacheSize: STORAGE_CACHE_SIZE
      ultraFastCache:
        cacheSize: ULTRAFAST_CACHE_SIZE
        genericVolume:
          storageClass: "STORAGE_CLASS_NAME"
...
次のように置き換えます。
- CLUSTER_NAME: データベース クラスタの名前。これは、作成時に宣言したデータベース クラスタ名と同じです。
- STORAGE_CACHE_SIZE: カラム型ストレージ キャッシュのサイズ(例:- 5Gi)。このフィールドに値を指定しない場合、デフォルトではディスク キャッシュの 5% がカラム型エンジンに割り当てられます。
- ULTRAFAST_CACHE_SIZE: キャッシュのサイズ(例:- 100Gi)。- shared_buffersよりも大きい値にしてください。このフィールドは省略可能です。このフィールドの値を指定しない場合、AlloyDB Omni はディスク上の残りのスペースをすべて使用します。これは、コンテナ内の AlloyDB Omni と Kubernetes クラスタの両方に適用されます。測定単位の詳細については、メモリリソース ユニットをご覧ください。
- STORAGE_CLASS_NAME: 超高速キャッシュ ボリュームのストレージ クラスの名前(例:- local-storage)。
ベクトル化結合を有効にする
カラム型エンジンには、ベクトル化結合機能があります。この機能を使用すると、対象となるクエリにベクトル化処理を適用することで、結合のパフォーマンスを向上できます。
ベクトル化結合を有効にすると、AlloyDB クエリ プランナーは、標準の PostgreSQL ハッシュ結合演算子ではなく、ベクトル化結合演算子を適用できます。プランナーは、各方法でクエリを実行するコストを比較して、この決定を行います。
インスタンスでベクトル化結合を有効にするには、インスタンスの google_columnar_engine.enable_vectorized_join フラグを on に設定します。
インスタンスにこのフラグを設定するには、ALTER SYSTEM PostgreSQL コマンドを実行します。
ALTER SYSTEM SET google_columnar_engine.enable_vectorized_join = 'on';
AlloyDB Omni は、デフォルトでベクトル化された結合機能に 1 つのスレッドを割り当てます。google_columnar_engine.vectorized_join_threads フラグを大きい値に設定すると、この機能で使用できるスレッド数を増やすことができます。最大値は cpu_count * 2 です。
カラム型エンジンを手動で更新する
デフォルトでは、カラム型エンジンが有効になっていると、バックグラウンドでカラム型ストアが更新されます。
カラム型エンジンを手動で更新するには、次の SQL クエリを実行します。
SELECT google_columnar_engine_refresh(relation =>'TABLE_NAME');
TABLE_NAME は、手動で更新するテーブルまたはマテリアライズド ビューの名前に置き換えます。
カラム型エンジンを無効にする
インスタンスでカラム型エンジンを無効にするには、google_columnar_engine.enabled フラグを off に設定します。
インスタンスにこのフラグを設定する手順は、AlloyDB Omni を単一サーバーのコンテナで実行する場合と、Kubernetes クラスタで実行する場合によって異なります。
単一サーバー
google_columnar_engine.enabled を off に設定する手順は次のとおりです。
- ALTER SYSTEMPostgreSQL コマンドを実行します。
ALTER SYSTEM SET google_columnar_engine.enabled = 'off'
- 構成パラメータの変更を有効にするには、AlloyDB Omni で実行中のコンテナを再起動します。
Docker
  AlloyDB Omni コンテナを再起動するには、docker container restart コマンドを実行します。
  sudo docker restart CONTAINER_NAMECONTAINER_NAME は、AlloyDB Omni コンテナのインストール時に割り当てた名前に置き換えます。
Podman
  AlloyDB Omni コンテナを再起動するには、podman container start コマンドを実行します。
  sudo podman restart CONTAINER_NAMECONTAINER_NAME は、AlloyDB Omni コンテナのインストール時に割り当てた名前に置き換えます。
Kubernetes
google_columnar_engine.enabled フラグを off に設定するには、データベース クラスタ マニフェストを変更して、primarySpec セクションに parameters 属性を追加します。
  apiVersion: alloydbomni.dbadmin.goog/v1
  kind: DBCluster
  metadata:
    name: CLUSTER_NAME
  spec:
    databaseVersion: "16.3.0"
    primarySpec:
      parameters:
        google_columnar_engine.enabled: "off"
CLUSTER_NAME は、実際のデータベース クラスタの名前に置き換えます。これは、作成時に宣言したデータベース クラスタ名と同じです。
次のステップ
- カラム型エンジン データベース フラグの一覧を確認する。 
- Google Codelab チュートリアルの AlloyDB Omni でカラム型エンジンを使用して分析クエリを高速化する に沿って学習する。