在 AlloyDB Omni 中配置列式引擎

选择文档版本:

本页面介绍了如何在 AlloyDB Omni 数据库集群上启用或停用列式引擎。还介绍了如何为其列存储区配置适当的初始大小。

如需查看 AlloyDB 列式引擎的概念性概览,请参阅 AlloyDB Omni 列式引擎概览

启用列式引擎

如需在实例上使用列式引擎,请将实例的 google_columnar_engine.enabled 标志设置为 on

单个服务器

如需将 google_columnar_engine.enabled 设置为 on,请执行以下步骤:

  1. 运行 ALTER SYSTEM PostgreSQL 命令

    ALTER SYSTEM SET google_columnar_engine.enabled = 'on'
    
  2. 如果您想调整列式引擎的配置,请先按照下一部分中的说明操作,然后再重启数据库服务器。否则,请立即完成以下步骤以重启数据库服务器。

  3. 如需使配置参数更改生效,请重启数据库服务器:

     sudo systemctl restart alloydbomni18

配置列存储区的大小

在实例上启用列式引擎后,AlloyDB Omni 会分配一部分实例内存来存储其列式数据。将高速 RAM 专用于列存储区可确保 AlloyDB Omni 能够尽可能快地访问列式数据。

内存和存储空间缓存共同代表列式引擎的总容量。

配置内存

您可以使用 google_columnar_engine.memory_size_in_mb 标志将内存分配设置为固定大小。

单个服务器

如需在实例上设置 google_columnar_engine.memory_size_in_mb 标志,请执行以下操作:

  1. 通过运行 ALTER SYSTEM PostgreSQL 命令来配置内存:

    ALTER SYSTEM SET google_columnar_engine.memory_size_in_mb = COLUMN_MEMORY_SIZE;
    

    COLUMN_MEMORY_SIZE 替换为列存储空间的新大小(以兆字节为单位),例如 256

  2. 如需使配置参数更改生效,请重启数据库服务器:

    sudo systemctl restart alloydbomni18

配置存储空间缓存

单个服务器

共享设备或专用设备

您可以在专用设备或共用设备上配置列式引擎存储缓存。

预配并装载缓存目录

在专用设备上,您需要预配磁盘、创建文件系统、将缓存目录装载到主机路径(例如 /var/lib/postgresql/18/data/columnar_cache),并确保该目录对 postgres 用户具有写入权限。

启用列式存储缓存
  1. 运行 ALTER SYSTEM 以配置缓存目录路径和大小:

    ALTER SYSTEM SET google_columnar_engine.omni_storage_cache_directory = 'CACHE_DIR_PATH';
    ALTER SYSTEM SET google_columnar_engine.storage_cache_size = STORAGE_CACHE_SIZE;
    

    替换以下内容:

    • CACHE_DIR_PATH:缓存目录的路径(例如 /var/lib/postgresql/18/data/columnar_cache)。
    • STORAGE_CACHE_SIZE:列式引擎存储空间缓存的大小(以兆字节为单位)。
  2. 重启数据库服务器:

    sudo systemctl restart alloydbomni18

启用向量化联接

列式引擎具有向量化联接功能,可通过对符合条件的查询应用向量化处理来提高联接性能。

启用向量化联接后,AlloyDB 查询规划工具可以选择应用向量化联接运算符,而不是标准 PostgreSQL 哈希联接运算符。规划工具通过比较使用每种方法执行查询的成本来做出此决策。

如需在实例上启用向量化联接,请将实例的 google_columnar_engine.enable_vectorized_join 标志设置为 on

如需在实例上设置此标志,请运行 ALTER SYSTEM PostgreSQL 命令

ALTER SYSTEM SET google_columnar_engine.enable_vectorized_join = 'on';

默认情况下,AlloyDB Omni 会将一个线程分配给向量化联接功能。您可以通过将 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,请执行以下步骤:

  1. 运行 ALTER SYSTEM PostgreSQL 命令
ALTER SYSTEM SET google_columnar_engine.enabled = 'off'
  1. 如需使配置参数更改生效,请重启数据库服务器:

    sudo systemctl restart alloydbomni18

后续步骤