如要在 AlloyDB Omni 中使用資料欄引擎,請參閱「在 AlloyDB Omni 中啟用資料欄引擎」。
每項操作都會變更 AlloyDB 執行個體的資料庫旗標值。如要進一步瞭解如何設定資料庫旗標,請參閱「設定執行個體的資料庫旗標」。
如需 AlloyDB 資料欄引擎的概念總覽,請參閱「關於 AlloyDB 資料欄引擎」。
啟用資料欄引擎
如要在執行個體上使用資料欄引擎,請將執行個體的 google_columnar_engine.enabled 旗標設為 on。
如要進一步瞭解如何在 AlloyDB 設定資料庫旗標,請參閱「設定執行個體的資料庫旗標」。
設定資料欄儲存庫的大小
在執行個體上啟用資料欄引擎後,AlloyDB 會分配一部分的執行個體記憶體,用於儲存資料欄資料。將高速 RAM 專用於資料欄儲存庫,可確保 AlloyDB 盡可能快速存取資料欄資料。
記憶體和儲存空間快取共同代表資料欄引擎的整體容量。
設定資料欄引擎的記憶體
如果資料欄儲存庫的大小超過執行個體記憶體的分配部分,AlloyDB 會自動使用執行個體的基礎快取層,儲存額外的資料欄資料。在 AlloyDB 中,您可以將關係、materialized view 和向量索引載入資料欄引擎,加快查詢速度。
根據預設,AlloyDB 會將執行個體 30% 的記憶體分配給資料欄儲存庫。如果是 1 個 vCPU 的執行個體,預設分配量為 10%。如果您調整執行個體大小,AlloyDB 會自動調整總分配量。您可以將執行個體的記憶體修改為建議的上限 50%,但允許 70%。如果是 1 個 vCPU 的執行個體,上限為 20%。無論執行個體大小為何,最低分配量為 128 MB。如要查看執行個體建議的資料欄引擎記憶體大小,請參閱「建議的資料欄儲存庫記憶體大小」。
您也可以使用 google_columnar_engine.memory_size_in_mb 旗標,將分配量設為固定且特定的大小。如要讓 AlloyDB 恢復預設分配,請從執行個體移除旗標。
如要進一步瞭解如何設定或刪除旗標,請參閱「設定執行個體的資料庫旗標」。
設定將向量索引載入資料欄引擎
將 HNSW 或 ScaNN 向量索引填入資料欄引擎後,資料欄引擎會加快向量搜尋速度。HNSW 索引的資料欄引擎加速功能已正式發布 (GA),ScaNN 索引的加速功能則處於預先發布版階段。
如要啟用資料欄索引快取,請將 google_columnar_engine.enable_index_caching 旗標設為 on。
如要停用這項功能,請將旗標設為 off。
設定資料欄引擎的儲存空間快取
您必須根據 google_columnar_engine.memory_size_in_mb 設定調整 google_columnar_engine.storage_cache_size 的大小,因為資料欄引擎記憶體會用於儲存空間快取的記憶體內中繼資料。建議的大小比例約為記憶體大小的 100 到 1000 倍。舉例來說,如果 google_columnar_engine.memory_size_in_mb 為 1024 (1 GB),則必須將 google_columnar_engine.storage_cache_size 設為 100 GB 至 1000 GB 之間。
資料欄引擎的儲存空間快取會依據執行個體級別佈建。
| 執行個體層級 | 預設資料欄引擎快取大小 | ||
|---|---|---|---|
| N2 | C4A | ||
| 主要 | 讀取集區 | 主要或讀取集區 | |
| 1 個 vCPU | 不適用 | 不適用 | 0 |
| 2 個 vCPU | 18.75 GB | 37.5 GB | 18.75 GB |
| 4 個 vCPU | 18.75 GB | 37.5 GB | 18.75 GB |
| 8 個 vCPU | 18.75 GB | 37.5 GB | 37.5 GB |
| 16 個 vCPU | 37.5 GB | 37.5 GB | 75 GB |
| 32 個 vCPU | 75 GB | 75 GB | 112.5 GB |
| 48 個 vCPU | 不適用 | 不適用 | 187.5 GB |
| 64 個 vCPU | 150 GB | 150 GB | 262.5 GB |
| 72 個 vCPU | 不適用 | 不適用 | 300 GB |
| 96 個 vCPU | 300 GB | 300 GB | 不適用 |
| 128 個 vCPU | 450 GB | 450 GB | 不適用 |
google_columnar_engine.storage_cache_size 旗標可讓您調整資料欄引擎儲存空間快取,但有下表列出的最小值和最大值限制:
| 執行個體層級 | 資料欄引擎快取大小下限 | 資料欄引擎快取大小上限 | ||
|---|---|---|---|---|
| N2 | C4A | |||
| 主要 | 讀取集區 | 主要或讀取集區 | ||
| 1 個 vCPU | 不適用 | 不適用 | 不適用 | 0 |
| 2 個 vCPU | 0 | 187.5 GB | 375 GB | 187.5 GB |
| 4 個 vCPU | 0 | 187.5 GB | 375 GB | 187.5 GB |
| 8 個 vCPU | 0 | 187.5 GB | 375 GB | 375 GB |
| 16 個 vCPU | 0 | 375 GB | 375 GB | 750 GB |
| 32 個 vCPU | 0 | 750 GB | 750 GB | 1125 GB |
| 48 個 vCPU | 0 | 不適用 | 不適用 | 1875 GB |
| 64 個 vCPU | 0 | 1500 GB | 1500 GB | 2625 GB |
| 72 個 vCPU | 0 | 不適用 | 不適用 | 3000 GB |
| 96 個 vCPU | 0 | 3000 GB | 3000 GB | 不適用 |
| 128 個 vCPU | 0 | 4500 GB | 4500 GB | 不適用 |
監控資料欄引擎的儲存空間快取資料
如要查看及監控資料欄引擎儲存空間快取的資料,可以使用下列指令:
| 指令 | 說明 |
|---|---|
SELECT google_columnar_engine_storage_cache_used(); |
傳回已使用的資料欄引擎儲存空間快取大小。 |
SELECT google_columnar_engine_storage_cache_available(); |
傳回未使用的資料欄引擎儲存空間快取大小。 |
SHOW google_columnar_engine.storage_cache_size; |
傳回資料欄引擎儲存體快取的設定大小總量。 |
啟用向量化 join
資料欄引擎具備向量化 join 功能,可對符合條件的查詢套用向量化處理,提升 join 效能。
啟用向量化 join 後,AlloyDB 查詢計畫工具可選擇套用向量化 join 運算子,而非標準 PostgreSQL 雜湊 join 運算子。規劃器會比較兩種方法的查詢執行成本,然後做出決定。
如要為執行個體啟用向量化 join,請將執行個體的 google_columnar_engine.enable_vectorized_join 旗標設為 on。
AlloyDB 預設會將一個執行緒分配給向量化 join 功能。如要增加這項功能可用的執行緒數量,請將 google_columnar_engine.vectorized_join_threads 旗標設為較大的值。
手動重新整理資料欄引擎
根據預設,啟用資料欄引擎後,系統會自動在背景重新整理資料欄儲存庫。
如果工作負載的資料修改率很高,例如頻繁執行 INSERT、UPDATE 或 DELETE 作業,您可以在這些變更後手動重新整理資料欄儲存庫,確保索引保持最新狀態。
如要手動重新整理資料欄引擎,請執行下列 SQL 查詢:
SELECT google_columnar_engine_refresh('TABLE_NAME');
將 TABLE_NAME 替換為要手動重新整理的資料表或 materialized view 名稱。
停用資料欄引擎
如要停用執行個體的資料欄引擎,請將 google_columnar_engine.enabled 旗標設為 off。
設定這個旗標後,執行個體會自動重新啟動。
疑難排解資料欄引擎問題
如果資料欄引擎中未填入資料欄,可能是下列其中一種情況:
您要新增的資料欄包含不支援的資料類型。
不符合資料欄引擎的需求。
如要找出問題原因,請嘗試下列做法:
後續步驟
瞭解自動分欄。