管理資料表

管理 Cloud BigTable 資料表最簡單的方法就是使用 cbt 指令列工具。本頁說明如何使用 cbt 來建立、修改及刪除資料表,以及如何使用 cbt 或 Google Cloud Platform 主控台來取得現有資料表的相關資訊。

cbt 工具支援本頁並未說明的幾個指令。如需指令的完整清單,請參閱 cbt 參考資料

您也可以使用其中一個 Cloud BigTable 用戶端程式庫服務 API 透過程式來管理資料表,或是使用 HBase shell 指令列工具來管理資料表。如需使用 HBase shell 的操作說明,請參閱 HBase 說明文件

事前準備

開始之前,您必須先安裝 cbt 工具

設定 cbt 工具

您可以為以下的 cbt 設置設定指定預設值:

  • Cloud Bigtable 執行個體所在位置的專案。
  • 要連結的 Cloud Bigtable 執行個體。
  • JSON 格式的憑證檔案,該檔案用於連結您的執行個體。 請參考建立服務帳戶金鑰的說明。若您執行 gcloud auth application-default login 後獲得認證,或是您使用 cbt 工具計算引擎執行個體,則不需要憑證檔案。
  • 要使用的 API 端點。您通常不需要更改這些值。

要指定這些設定的預設值,請在主目錄中建立 .cbtrc 檔案。您可以使用指令列標記來覆寫 .cbtrc 的預設值。

如要建立 .cbtrc 檔案,請執行下列指令,並將 [PROJECT_ID][INSTANCE_ID] 替換為適當的值:

echo -e "project = [PROJECT_ID]\ninstance = [INSTANCE_ID]" > ~/.cbtrc

為求說明簡潔,本頁其餘的操作說明假設您已在 .cbtrc 檔案中設定專案 ID 和執行個體 ID。您亦可以使用 -project-instance 標記在每次執行 cbt 時設置這些值。

建立資料表

當您透過 cbt 工具建立資料表時,您不需要指定資料表中所使用的資料欄系列。您可以在稍後新增或刪除資料欄系列。

若要建立資料表,請使用以下指令;請先將 [TABLE_NAME] 替換為您的資料表名稱:

cbt createtable [TABLE_NAME]

以資料列索引鍵來分割資料表

當您建立資料表時,您可以根據資料列索引鍵預先分割資料表,以將負載分散至多個 Cloud Bigtable 節點上。例如,若您要將大量的資料列寫入資料表中,即可預先分割資料表。

通常,預先分割資料表並不重要,因為 Cloud Bigtable 會在後端視需要自動分割資料表。另外請注意,Cloud Bigtable 最終會根據資料表中的資料量以及存取各個資料列的頻率,將資料表分割至不同的資料列索引鍵上。

若要基於資料列索引鍵來預先分割資料表,請使用以下的語法來建立資料表,請先將 [TABLE_NAME] 替換為資料表名稱,並將 [SPLITS] 替換為逗號分隔的資料列索引鍵前置字元清單,以用於預先分割。

cbt createtable [TABLE_NAME] splits=[SPLITS]

例如,要將 my-table 資料表預先分割為以 1020 作為開頭的資料列索引鍵:

cbt createtable my-table splits=10,20

修該資料表中的資料欄系列

您可以使用 cbt 工具在既有的資料表中新增或刪除資料欄系列。

新增資料欄系列

若要新增資料欄系列至資料表,請使用以下指令;請先將 [TABLE_NAME] 替換為資料表名稱,並將 [FAMILY_NAME] 替換為資料欄系列名稱:

cbt createfamily [TABLE_NAME] [FAMILY_NAME]

例如,若您要將 cf1cf2 資料欄系列新增至 my-table 資料表中:

cbt createfamily my-table cf1
cbt createfamily my-table cf2

刪除資料欄系列

若要從資料表中刪除資料欄系列,請使用以下指令;請先將 [TABLE_NAME] 替換為資料表名稱,並將 [FAMILY_NAME] 替換為資料欄系列名稱:

cbt deletefamily [TABLE_NAME] [FAMILY_NAME]

例如,若您要從 my-table 資料表中刪除 cf2 資料欄系列:

cbt deletefamily my-table cf2

查看資料表的清單

主控台

如要查看執行個體中的資料表清單:

  1. 在 GCP 主控台中開啟 Cloud BigTable 執行個體清單。

    開啟執行個體清單

  2. 按一下您要查看其資料表的執行個體。

  3. 按一下左側窗格中的 [Tables] (資料表)。

    「Tables」(資料表) 頁面會顯示執行個體中的資料表清單。

    • 按一下資料表 ID 旁的箭頭,即可展開該資料表的複製清單。
    • 按一下資料表名稱旁的 [View Metrics] (查看指標),即可查看資料表的監控資料

cbt

如要查看執行個體中的資料表清單,請執行下列指令:

cbt ls

查看資料表的相關資訊

您可以使用 cbt 工具來取得資料表中既有的資料欄系列清單。

若要查看資料表的資料欄系列,請使用以下指令;請先將 [TABLE_NAME] 替換為資料表名稱:

cbt ls [TABLE_NAME]

設定垃圾收集政策

本節說明如何使用 cbt 工具控制 Cloud BigTable 保留的每個值的版本數量,以及如何為值提供到期時間。您也可以在使用 Cloud BigTable 用戶端程式庫時透過程式設定垃圾收集政策

保留每個值的多個版本

當您建立資料欄系列時,您可以指定要在該資料欄系列中保留每個值的版本數量。若您未指定此設定,Cloud Bigtable 將使用以下預設的設定之一:

  • 若使用適用於 Java 語言的 HBase 用戶端或 HBase shell,或是其他使用適用於 Java 語言 HBase 用戶端的工具建立資料欄系列,則 Cloud Bigtable 僅保留資料欄系列中每個值的一個版本。此預設的設定與 HBase 一致。
  • 如果您使用任何其他用戶端程式庫或工具 (包含 cbt) 來建立資料欄系列,Cloud BigTable 會為每個值保留無限個版本。

若要更改資料欄系列中保留的版本數量,請使用以下指令,並將 [TABLE_NAME] 替換為資料表名稱、 [FAMILY_NAME] 替換為資料欄系列名稱,以及 [VERSIONS] 替換為要保留的版本數量:

cbt setgcpolicy [TABLE_NAME] [FAMILY_NAME] maxversions=[VERSIONS]

例如,若要在 my-table 資料表中更新 cf1 資料欄系列,以便資料表保留每個值的五個版本:

cbt setgcpolicy my-table cf1 maxversions=5

設定值的到期時間

當您要建立資料欄系列時,您可以指定該資料欄系列中每個值到期的時間。若您未指定此設定,則資料欄系列中的值將永遠不會過期。

如要讓值在指定的時間後過期,請使用以下指令,將 [TABLE_NAME] 替換為資料表名稱、[FAMILY_NAME] 替換為資料欄系列名稱,以及將 [DAYS] 替換為要保留每個值的天數。

cbt setgcpolicy [TABLE_NAME] [FAMILY_NAME] maxage=[DAYS]d

例如,如要在一天後移除 cf1 資料欄系列中的值:

cbt setgcpolicy my-table cf1 maxage=1d

刪除資料表

如要刪除資料表,請使用下列指令,並將 [TABLE_NAME] 替換為資料表名稱:

cbt deletetable [TABLE_NAME]
本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Cloud Bigtable 說明文件