AlloyDB カラム型エンジンのコンセプトの概要については、AlloyDB Omni カラム型エンジンの概要をご覧ください。
カラム型エンジンを有効にする
インスタンスでカラム型エンジンを使用するには、インスタンスの google_columnar_engine.enabled フラグを on に設定します。
google_columnar_engine.enabled パラメータを on に設定する手順は次のとおりです。
DBClusterデータベース クラスタ マニフェストを開きます。primarySpecセクションで、parametersブロックにgoogle_columnar_engine.enabledパラメータを追加します。DBCluster: metadata: name: DB_CLUSTER_NAME spec: # ... existing cluster configuration ... primarySpec: # ... existing primary configuration ... parameters: google_columnar_engine.enabled: "on"DB_CLUSTER_NAMEは、データベース クラスタの名前に置き換えます。RPM オーケストレーターは、パラメータの変更を適用するためにデータベースを自動的に再起動します。次のいずれかの方法で、更新された
DBClusterマニフェストを適用します。alloydbctlalloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "DBCLUSTER_SPECIFICATION"次のように置き換えます。
DEPLOYMENT_SPEC_PATH: デプロイ仕様ディレクトリのパス。DBCLUSTER_SPECIFICATION: 変更したDBClusterマニフェストのパス。
Ansible
update.ymlプレイブック ファイルを作成します。--- - hosts: localhost vars: update_action: "update_resource_spec" ansible_user: SSH_USER ansible_ssh_private_key_file: SSH_KEY_PATH roles: - role: google.alloydbomni_orchestrator.update次のように置き換えます。
SSH_USER: SSH を使用してクラスタ内のノードに接続するために使用するユーザー名。SSH_KEY_PATH: ノードへの接続に使用される SSH 秘密鍵ファイルのローカルパス。
コントロール ノードからプレイブックを実行し、リソース仕様を追加の変数として渡します。
ansible-playbook -i "DEPLOYMENT_SPEC_PATH" update.yml \ -e resource_spec="DBCLUSTER_SPECIFICATION"次のように置き換えます。
DEPLOYMENT_SPEC_PATH: デプロイ仕様ディレクトリのパス。DBCLUSTER_SPECIFICATION: 変更したDBClusterマニフェストのパス。
カラム型ストアのサイズを構成する
インスタンスでカラム型エンジンが有効になっている間、AlloyDB Omni はインスタンスのメモリの一部を割り振り、カラム型データを保存します。高速 RAM をカラムストア専用にすることで、AlloyDB Omni はカラム型データに可能な限り高速にアクセスできます。
メモリ キャッシュとストレージ キャッシュを合わせた容量が、カラム型エンジンの総容量を表します。
メモリを構成する
割り当てを固定サイズに設定するには、google_columnar_engine.memory_size_in_mb フラグを使用します。
google_columnar_engine.memory_size_in_mb パラメータを設定する手順は次のとおりです。
DBClusterデータベース クラスタ マニフェストを開きます。primarySpecセクションで、カラム型エンジンの構成をparametersブロックに追加します。DBCluster: metadata: name: DB_CLUSTER_NAME spec: # ... existing cluster configuration ... primarySpec: # ... existing primary configuration ... parameters: google_columnar_engine.enabled: "on" google_columnar_engine.memory_size_in_mb: "MEMORY_SIZE_MB"次のように置き換えます。
DB_CLUSTER_NAME: データベース クラスタの名前。MEMORY_SIZE_MB: カラム型エンジンに割り当てるメモリ量(メガバイト単位)。
RPM オーケストレーターは、パラメータの変更を適用するためにデータベースを自動的に再起動します。次のいずれかの方法で、更新された
DBClusterマニフェストを適用します。alloydbctlalloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "DBCLUSTER_SPECIFICATION"次のように置き換えます。
DEPLOYMENT_SPEC_PATH: デプロイ仕様ディレクトリのパス。DBCLUSTER_SPECIFICATION: 変更したDBClusterマニフェストのパス。
Ansible
update.ymlプレイブック ファイルを作成します。--- - hosts: localhost vars: update_action: "update_resource_spec" ansible_user: SSH_USER ansible_ssh_private_key_file: SSH_KEY_PATH roles: - role: google.alloydbomni_orchestrator.update次のように置き換えます。
SSH_USER: SSH を使用してクラスタ内のノードに接続するために使用するユーザー名。SSH_KEY_PATH: ノードへの接続に使用される SSH 秘密鍵ファイルのローカルパス。
コントロール ノードからプレイブックを実行し、リソース仕様を追加の変数として渡します。
ansible-playbook -i "DEPLOYMENT_SPEC_PATH" update.yml \ -e resource_spec="DBCLUSTER_SPECIFICATION"次のように置き換えます。
DEPLOYMENT_SPEC_PATH: デプロイ仕様ディレクトリのパス。DBCLUSTER_SPECIFICATION: 変更したDBClusterマニフェストのパス。
ストレージ キャッシュを構成する
カラム型エンジンのストレージ キャッシュは、専用デバイスまたは共有デバイスで構成できます。
専用デバイス
カラム型エンジンのストレージ キャッシュ専用のデバイスを構成する手順は次のとおりです。
DBClusterデータベース クラスタ マニフェストを開きます。primarySpecセクションで、cacheSizeとlocalVolume.pathを含むcolumnarSpillToDisk属性をfeaturesブロックに追加します。DBCluster: metadata: name: DB_CLUSTER_NAME spec: # ... existing cluster configuration ... primarySpec: # ... existing primary configuration ... features: columnarSpillToDisk: cacheSize: STORAGE_CACHE_SIZE localVolume: path: COLUMNAR_CACHE_DIR_PATH次のように置き換えます。
DB_CLUSTER_NAME: データベース クラスタの名前。STORAGE_CACHE_SIZE: カラム型エンジン ストレージ キャッシュのサイズ上限(例:50Gi)。COLUMNAR_CACHE_DIR_PATH: カラム型エンジン ストレージ キャッシュ専用ディレクトリのファイル システム パス(例:/mnt/disks/columnarcache)。
alloydbctlまたは Ansible を使用して、更新されたDBClusterマニフェストを適用します。alloydbctlalloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "DBCLUSTER_SPECIFICATION"次のように置き換えます。
DEPLOYMENT_SPEC_PATH: デプロイ仕様ディレクトリのパス。DBCLUSTER_SPECIFICATION: 変更したDBClusterマニフェストのパス。
Ansible
update.ymlプレイブック ファイルを作成します。--- - hosts: localhost vars: update_action: "update_resource_spec" ansible_user: SSH_USER ansible_ssh_private_key_file: SSH_KEY_PATH roles: - role: google.alloydbomni_orchestrator.update次のように置き換えます。
SSH_USER: SSH を使用してクラスタ内のノードに接続するために使用するユーザー名。SSH_KEY_PATH: ノードへの接続に使用される SSH 秘密鍵ファイルのローカルパス。
コントロール ノードからプレイブックを実行し、リソース仕様を追加の変数として渡します。
ansible-playbook -i "DEPLOYMENT_SPEC_PATH" update.yml \ -e resource_spec="DBCLUSTER_SPECIFICATION"次のように置き換えます。
DEPLOYMENT_SPEC_PATH: デプロイ仕様ディレクトリのパス。DBCLUSTER_SPECIFICATION: 変更したDBClusterマニフェストのパス。
共有デバイス
columnarSpillToDisk で localVolume.path を指定しない場合、カラム型エンジンのストレージ キャッシュは ultraFastCache で構成されたディスク キャッシュ ストレージを共有します。
共有デバイスでカラム型エンジンのストレージ キャッシュを構成するには、次の手順を行います。
DBClusterデータベース クラスタ マニフェストを開きます。primarySpecセクションで、featuresブロックにcolumnarSpillToDisk属性とultraFastCache属性を追加します。DBCluster: metadata: name: DB_CLUSTER_NAME spec: # ... existing cluster configuration ... primarySpec: # ... existing primary configuration ... features: columnarSpillToDisk: cacheSize: STORAGE_CACHE_SIZE ultraFastCache: cacheSize: ULTRAFAST_CACHE_SIZE localVolume: path: DISK_CACHE_DIR_PATH次のように置き換えます。
DB_CLUSTER_NAME: データベース クラスタの名前。STORAGE_CACHE_SIZE: カラム型ストレージ キャッシュのサイズ(例:50Gi)。このフィールドに値を指定しない場合、デフォルトではディスク キャッシュの 5% がカラム型エンジンに割り当てられます。ULTRAFAST_CACHE_SIZE: AlloyDB Omni によって予約される超高速キャッシュ バッファの最大サイズ(100Giなど)。設定しない場合、localVolume.pathの残りのディスク容量がすべて使用されます。DISK_CACHE_DIR_PATH: 超高速キャッシュ ファイルのフォルダパス(例:/mnt/disks/chillcache)。
alloydbctlまたは Ansible を使用して、更新されたDBClusterマニフェストを適用します。alloydbctlalloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "DBCLUSTER_SPECIFICATION"次のように置き換えます。
DEPLOYMENT_SPEC_PATH: デプロイ仕様ディレクトリのパス。DBCLUSTER_SPECIFICATION: 変更したDBClusterマニフェストのパス。
Ansible
update.ymlプレイブック ファイルを作成します。--- - hosts: localhost vars: update_action: "update_resource_spec" ansible_user: SSH_USER ansible_ssh_private_key_file: SSH_KEY_PATH roles: - role: google.alloydbomni_orchestrator.update次のように置き換えます。
SSH_USER: SSH を使用してクラスタ内のノードに接続するために使用するユーザー名。SSH_KEY_PATH: ノードへの接続に使用される SSH 秘密鍵ファイルのローカルパス。
コントロール ノードからプレイブックを実行し、リソース仕様を追加の変数として渡します。
ansible-playbook -i "DEPLOYMENT_SPEC_PATH" update.yml \ -e resource_spec="DBCLUSTER_SPECIFICATION"次のように置き換えます。
DEPLOYMENT_SPEC_PATH: デプロイ仕様ディレクトリのパス。DBCLUSTER_SPECIFICATION: 変更したDBClusterマニフェストのパス。
ベクトル化結合を有効にする
カラム型エンジンには、ベクトル化結合機能があります。この機能を使用すると、対象となるクエリにベクトル化処理を適用することで、結合のパフォーマンスを向上できます。
ベクトル化結合を有効にすると、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 に設定します。
google_columnar_engine.enabled パラメータを off に設定する手順は次のとおりです。
DBClusterデータベース クラスタ マニフェストを開きます。primarySpecセクションで、parametersブロックのgoogle_columnar_engine.enabledパラメータをoffに設定します。DBCluster: metadata: name: DB_CLUSTER_NAME spec: # ... existing cluster configuration ... primarySpec: # ... existing primary configuration ... parameters: google_columnar_engine.enabled: "off"DB_CLUSTER_NAMEは、データベース クラスタの名前に置き換えます。RPM オーケストレーターは、パラメータの変更を適用するためにデータベースを自動的に再起動します。次のいずれかの方法で、更新された
DBClusterマニフェストを適用します。alloydbctlalloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "DBCLUSTER_SPECIFICATION"次のように置き換えます。
DEPLOYMENT_SPEC_PATH: デプロイ仕様ディレクトリのパス。DBCLUSTER_SPECIFICATION: 変更したDBClusterマニフェストのパス。
Ansible
update.ymlプレイブック ファイルを作成します。--- - hosts: localhost vars: update_action: "update_resource_spec" ansible_user: SSH_USER ansible_ssh_private_key_file: SSH_KEY_PATH roles: - role: google.alloydbomni_orchestrator.update次のように置き換えます。
SSH_USER: SSH を使用してクラスタ内のノードに接続するために使用するユーザー名。SSH_KEY_PATH: ノードへの接続に使用される SSH 秘密鍵ファイルのローカルパス。
コントロール ノードからプレイブックを実行し、リソース仕様を追加の変数として渡します。
ansible-playbook -i "DEPLOYMENT_SPEC_PATH" update.yml \ -e resource_spec="DBCLUSTER_SPECIFICATION"次のように置き換えます。
DEPLOYMENT_SPEC_PATH: デプロイ仕様ディレクトリのパス。DBCLUSTER_SPECIFICATION: 変更したDBClusterマニフェストのパス。
次のステップ
カラム型エンジン データベース フラグの一覧を確認する。
Codelab の AlloyDB Omni でカラム型エンジンを使用して分析クエリを高速化するを試す。