如需 AlloyDB 資料欄引擎的概念總覽,請參閱「AlloyDB Omni 資料欄引擎總覽」。
啟用資料欄引擎
如要在執行個體上使用資料欄引擎,請將執行個體的 google_columnar_engine.enabled 旗標設為 on。
Kubernetes
如要將 google_columnar_engine.enabled 旗標設為 on,請修改資料庫叢集資訊清單,將 parameters 屬性新增至 primarySpec 區段:
apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
name: CLUSTER_NAME
spec:
databaseVersion: "16.11.0"
primarySpec:
parameters:
google_columnar_engine.enabled: "on"
將 CLUSTER_NAME 替換為資料庫叢集名稱。這個名稱與您建立資料庫叢集時宣告的名稱相同。
設定資料欄儲存庫的大小
在執行個體上啟用資料欄引擎後,AlloyDB Omni 會分配一部分的執行個體記憶體,用於儲存資料欄資料。將高速 RAM 專門用於資料欄儲存庫,可確保 AlloyDB Omni 能盡快存取資料欄資料。
記憶體和儲存空間快取共同代表資料欄引擎的整體容量。
設定記憶
您可以使用 google_columnar_engine.memory_size_in_mb 旗標,將分配量設為固定大小。
Kubernetes
如要設定 google_columnar_engine.memory_size_in_mb 旗標,請修改資料庫叢集資訊清單,將 parameters 屬性新增至 primarySpec 區段:
apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
name: CLUSTER_NAME
spec:
databaseVersion: "16.11.0"
primarySpec:
parameters:
google_columnar_engine.memory_size_in_mb: "COLUMN_MEMORY_SIZE"
更改下列內容:
CLUSTER_NAME:資料庫叢集的名稱。這個名稱與您建立資料庫叢集時宣告的名稱相同。COLUMN_MEMORY_SIZE:資料欄儲存空間的新大小,以 MB 為單位,例如256。
設定儲存空間快取
Kubernetes
如要為資料庫啟用儲存空間快取,請修改資料庫叢集資訊清單,將 columnarSpillToDisk 屬性新增至 primarySpec 區段的 features 區段:
apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
name: CLUSTER_NAME
spec:
databaseVersion: "16.11.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 會使用磁碟上的所有剩餘空間,這適用於容器和 Kubernetes 叢集中的 AlloyDB Omni。如要進一步瞭解測量單位,請參閱「記憶體資源單位」。STORAGE_CLASS_NAME:超快速快取磁碟區的儲存空間類別名稱,例如local-storage。
啟用向量化 join
資料欄引擎具備向量化 join 功能,可對符合條件的查詢套用向量化處理,提升 join 效能。
啟用向量化 join 後,AlloyDB 查詢規劃器可以選擇套用向量化 join 運算子,而非標準 PostgreSQL 雜湊 join 運算子。規劃器會比較使用各個方法執行查詢的成本,然後做出決定。
如要為執行個體啟用向量化 join,請將執行個體的 google_columnar_engine.enable_vectorized_join 旗標設為 on。
google_columnar_engine.enable_vectorized_join: "on" 新增至 DBCluster 資訊清單的 parameters 區段。詳情請參閱「設定 AlloyDB Omni 資料庫旗標」。
AlloyDB Omni 預設會將一個執行緒分配給向量化 join 功能。您可以將 google_columnar_engine.vectorized_join_threads 旗標設為較大的值,增加這項功能可用的執行緒數量。最大值為 cpu_count * 2。
手動重新整理資料欄引擎
根據預設,資料欄引擎啟用後,會在背景重新整理資料欄儲存庫。
如要手動重新整理資料欄引擎,請執行下列 SQL 查詢:
SELECT google_columnar_engine_refresh(relation =>'TABLE_NAME');
將 TABLE_NAME 替換為要手動重新整理的資料表或 materialized view 名稱。
停用資料欄引擎
如要停用執行個體的資料欄引擎,請將 google_columnar_engine.enabled 旗標設為 off。
Kubernetes
如要將 google_columnar_engine.enabled 旗標設為 off,請修改資料庫叢集資訊清單,將 parameters 屬性新增至 primarySpec 區段:
apiVersion: alloydbomni.dbadmin.goog/v1
kind: DBCluster
metadata:
name: CLUSTER_NAME
spec:
databaseVersion: "16.11.0"
primarySpec:
parameters:
google_columnar_engine.enabled: "off"
將 CLUSTER_NAME 替換為資料庫叢集名稱。這個名稱與您建立資料庫叢集時宣告的名稱相同。
後續步驟
完成 Google 程式碼實驗室教學課程「在 AlloyDB Omni 使用資料欄引擎,加快數據分析查詢速度」。