手動管理資料欄商店內容

選取說明文件版本:

本頁說明如何手動新增及移除資料欄,藉此管理資料欄引擎的資料欄儲存庫內容。

您可以根據工作負載,手動將資料欄新增至資料欄存放區,或從資料欄存放區捨棄資料表或具體化檢視的某些或所有資料欄。查詢評估作業會自動使用儲存的資料欄資料來回答查詢。

選擇要新增至資料欄存放區的資料表、具體化檢視區塊和資料欄時,請同時考量資料欄存放區的大小和工作負載的形狀。適合選取的項目包括經常掃描的大型資料表或檢視區塊。在這些資料表或檢視區塊中,找出 OLAP 工作負載使用的任何大型非專屬索引。您可以將這些索引的資料欄新增至資料欄存放區,並可能捨棄索引,藉此消除與主要執行個體維護相關的效能成本。

如要管理資料欄引擎的資料欄儲存空間內容,請使用下列其中一種方法:

如要瞭解將資料表、資料欄和具體化檢視區塊新增至資料欄儲存庫時,可使用的資料類型和資料來源,請參閱「可新增至資料欄儲存庫的資料」。

更新資料庫旗標,管理資料欄儲存內容

您可以更新 google_columnar_engine.relations 資料庫標記,手動管理資料欄儲存內容。這個旗標只有一個值,可指定資料欄商店的所有資料來源。重新啟動期間,系統會自動將這個旗標中指定的資料欄填入資料欄存放區。

您可以搭配自動欄狀化使用這個旗標。如果資料欄引擎在填入您透過 google_columnar_engine.relations 旗標指定的資料欄後,仍有可用記憶體,自動資料欄化功能就會視需要將更多資料欄新增至資料欄儲存庫。

使用標記新增資料欄

如要將資料欄新增至資料欄存放區,請定義執行個體的 google_columnar_engine.relations 標記。將值設為以逗號分隔的清單,每個項目指定要從特定資料表納入的資料欄清單,格式如下:

DATABASE_NAME.SCHEMA_NAME.TABLE_NAME(COLUMN_LIST)

更改下列內容:

  • DATABASE_NAME:包含要新增至資料欄儲存區的資料欄的資料庫。

  • SCHEMA_NAME:識別要新增至資料欄存放區的資料表或具體化檢視區塊的結構定義,例如 public

  • TABLE_NAME:包含要新增至資料欄存放區的資料欄的資料表或具體化檢視區塊。

  • COLUMN_LIST:以半形逗號分隔的清單,列出要新增至資料欄儲存庫的資料欄。

如要新增資料表或具體化檢視表的所有資料欄,請省略資料欄清單:

DATABASE_NAME.SCHEMA_NAME.TABLE_NAME
ALTER SYSTEM SET google_columnar_engine.relations='DATABASE_NAME.SCHEMA_NAME.TABLE_NAME(COLUMN_1,COLUMN_2)';

使用標記捨棄資料欄

如要從資料欄存放區捨棄資料欄,請為google_columnar_engine.relations標記設定新值 (如「使用標記新增資料欄」所述),並省略要捨棄的資料欄。

如要從資料欄儲存庫捨棄所有資料欄,請從執行個體取消設定 google_columnar_engine.relations 旗標。

如要進一步瞭解如何在執行個體上設定資料庫旗標,請參閱「設定 AlloyDB Omni 資料庫參數」。

使用 SQL 函式管理資料欄儲存區內容

您可以使用 SQL 函式手動管理資料欄儲存區內容。

使用 SQL 函式新增資料欄

執行 google_columnar_engine_add SQL 函式,將資料欄新增至資料欄存放區。

這個方法會將指定資料欄新增至資料欄存放區,並管理連結節點中的資料欄。新資料欄不會在執行個體重新啟動後保留在存放區中。

這個方法不會變更 google_columnar_engine.relations 資料庫旗標。自動欄狀化不會將這個 SQL 函式新增的欄納入考量。

psql 用戶端

SELECT google_columnar_engine_add(
    relation => 'TABLE_NAME',
    columns => 'COLUMN_LIST'
);
    更改下列內容:
  • TABLE_NAME」:包含資料表或具體化檢視表名稱的字串。如果資料表或檢視畫面位於 public 以外的結構定義中,請指定結構定義名稱、半形句號,以及資料表或檢視畫面的名稱,例如 'myschema.mytable'
  • COLUMN_LIST」:字串,內含以半形逗號分隔的清單,列出要新增的資料欄名稱 (區分大小寫)。如要將資料表或 materialized view 的全部資料欄新增至資料欄儲存庫,請省略這個參數。

使用 SQL 函式捨棄資料欄

執行 google_columnar_engine_drop SQL 函式,如下所示:

psql 用戶端

SELECT google_columnar_engine_drop(
    relation => 'TABLE_NAME',
    columns => 'COLUMN_LIST'
);
取代下列項目:
  • TABLE_NAME」:包含資料表或具體化檢視表名稱的字串。如果資料表或檢視畫面位於 public 以外的結構定義中,請指定結構定義名稱、半形句號,以及資料表或檢視畫面的名稱,例如 'myschema.mytable'
  • COLUMN_LIST」:字串,內含以半形逗號分隔的清單,列出要新增的資料欄名稱 (區分大小寫)。如要將資料表或 materialized view 的全部資料欄新增至資料欄儲存庫,請省略這個參數。

您可以透過編輯 google_columnar_engine.relations 資料庫旗標,使用 google_columnar_engine_drop 函式移除新增的資料欄。不過,這麼做的話,執行個體重新啟動時,這些資料欄會重新加入資料欄式存放區。