建立及管理資料表

Bigtable 資料表可讓您整理及儲存大規模資料,用於低延遲應用程式工作負載。您可以使用 Google Cloud 控制台、Google Cloud CLI、cbt CLI,或透過 Cloud Bigtable 用戶端程式庫,以程式輔助方式建立及管理這些資料表。

如要進一步瞭解如何建立及管理資料表的授權檢視表,請參閱「授權檢視表」。

事前準備

如果您打算使用指令列工具處理資料表,請按照本節中的步驟操作。

  1. 安裝 gcloud CLI。

  2. 選用:如果打算使用 cbt CLI,請按照「安裝 cbt CLI 」中的操作說明進行,包括建立 .cbtrc 檔案的步驟。

    本頁的 cbt CLI 操作說明假設您已在 .cbtrc 檔案中設定專案 ID 和執行個體 ID。或者,您也可以使用 -project 和 -instance 旗標,在每次執行 cbt CLI 指令時設定這些值。

建立資料表

建立資料表時,您不需要指定要在資料表中使用的資料欄系列。您之後可以新增或刪除資料欄系列。

控制台

如要在執行個體中建立資料表,請按照下列步驟操作:

  1. 在 Google Cloud 控制台中,開啟 Bigtable 執行個體清單。

    開啟執行個體清單

  2. 按一下要建立資料表的執行個體。

  3. 在 Bigtable 導覽選單中,點選「資料表」。

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

  4. 按一下「 建立資料表」。

  5. 在「Create a table」(建立資料表) 窗格的「Table ID」(資料表 ID) 欄位中,輸入資料表的永久 ID。

  6. 選用:新增資料欄系列。

    您可以在建立資料表時或之後新增資料欄系列。資料表必須至少有一個資料欄系列,才能寫入資料或讀取變更串流。

  7. 選用步驟:在 Enterprise Plus 版本中,如要使用微秒時間戳記精細程度,請在「Timestamp granularity」(時間戳記精細程度) 區段中,選取「Use microsecond timestamps」(使用微秒時間戳記)。

  8. 選用:啟用資料表的變更串流。啟用異動串流前,請務必瞭解相關影響,包括儲存空間費用增加和應用程式設定檔使用需求。詳情請參閱「變更串流總覽」。

    1. 選取「啟用變更串流」。

    2. 在「Retention time」(保留時間) 欄位中,輸入 1 到 7 之間的整數,指定變更串流資料的保留天數。

  9. 選用:在「Configure automated backup」(設定自動備份) 區段中,設定資料表的自動備份功能。根據預設,系統會選取「Enable automated backup」(啟用自動備份),Bigtable 會每天為執行個體中的所有叢集建立標準備份,並將每個備份保留七天。詳情請參閱「使用自動備份」。

    • 如果不希望 Bigtable 每天建立資料表備份,請清除「Enable automated backup」(啟用自動備份)。
    • 在 SSD 執行個體上,如要建立每日熱備份而非標準備份,請在「Backup type」(備份類型) 區段中選取「Hot」(熱),然後在「Set hot to standard」(將熱備份設為標準備份) 欄位中輸入 1 到 10 之間的整數,指定每個備份自動轉換為標準備份前的天數。預設值為 3 天,且不得超過保留期限。如果已啟用分級儲存,則無法選取「Hot」(熱)。詳情請參閱「設定熱自動備份」。
    • 如要設定自訂保留期限,請在「Backup configuration」(備份設定) 區段的「Retention period」(保留期限) 欄位中輸入 3 到 90 之間的整數,指定備份保留天數。
    • 在 Enterprise Plus 版本中,如要選擇 Bigtable 建立每日備份的特定叢集,請在「Backup configuration」(備份設定) 區段中,選取「Select clusters to back up」(選取要備份的叢集) 清單中的叢集,然後按一下「OK」(確定)。詳情請參閱「設定自動備份叢集位置」。
  10. 選用:在「Configure tiered storage」(設定分級式儲存空間) 區段,啟用資料表的低頻率存取儲存空間,做為分級式儲存空間 (預先發布版) 的一部分。如果自動備份選取「Hot」(熱),就無法啟用分級式儲存空間。

    1. 勾選「Enable tiered storage」(啟用分級式儲存空間) 核取方塊。

    2. 在「Age threshold」(時間長度門檻) 欄位中,輸入 30 以上的整數,指定 Bigtable 將資料從 SSD 儲存空間移至不常存取儲存空間的天數。

  11. 選用:如要設定資料列索引鍵結構定義,請選取「Define row key schema」(定義資料列索引鍵結構定義),然後執行下列操作:

    1. 在「Encoding」(編碼) 清單中,選取資料列索引鍵結構定義的編碼類型。

    2. 如果選取「DelimitedBytes」,請在「Delimiter」(分隔符號) 欄位中,輸入分隔現有資料列索引鍵中區隔的分隔符號。預設值為井字號 (#)。

    3. 在「Segment」(區隔) 欄位中,輸入區隔名稱,例如 device_type。

    4. 在「Type」(類型) 清單中,選取資料列索引鍵區隔的資料類型。

    5. 視所選資料類型而定,在「Byte encoding」(位元組編碼) 清單中,保留資料列索引鍵區隔的預設編碼類型,或加以變更。

    6. 選用:如果資料列索引鍵區隔有多個部分,請按一下「Add row key segment」(新增資料列索引鍵區隔),新增其他欄位。

  12. 點選「建立」。

gcloud

執行下列指令,建立資料表。如需完整的選項清單,請參閱 gcloud bigtable instances tables create。

gcloud bigtable instances tables create TABLE_ID \
    --instance=INSTANCE_ID \
    --project=PROJECT_ID \
    --column-families=COLUMN_FAMILIES

更改下列內容:

  • TABLE_ID:新資料表的專屬 ID
  • INSTANCE_ID:執行個體 ID
  • PROJECT_ID:要存放新資料表的專案
  • COLUMN_FAMILIES:以半形逗號分隔的資料欄系列名稱清單。您之後可以新增更多資料欄系列。

選用:

  • 如要防止資料表遭到刪除,請在指令後方附加 --deletion-protection。如未套用這項設定,資料表可能會遭到刪除。您也可以附加 --no-deletion-protection,明確允許刪除資料表。

  • 如要啟用資料表的變更串流,請指定變更串流資料的保留期限。啟用變更串流前,請務必瞭解相關影響,包括儲存空間費用增加和應用程式設定檔用量需求。詳情請參閱「變更串流總覽」。

    --change-stream-retention-period=RETENTION_PERIOD
    

    將 RETENTION_PERIOD 替換為 Bigtable 應保留資料表變更串流資料的時間長度。時間必須介於一到七天之間。可接受的單位為天 (d)、小時 (h)、分鐘 (m) 和秒 (s),例如 48h 或 6d。

  • 如要讓 Bigtable 每天備份資料表,並將每個備份保留預設的七天,請在建立資料表時使用 --enable-automated-backup 旗標。

    gcloud bigtable instances tables create TABLE_ID \
        --instance=INSTANCE_ID \
        --project=PROJECT_ID \
        --column-families=COLUMN_FAMILIES \
        --enable-automated-backup
    

    如要設定不同的保留期限,請使用 --automated-backup-retention-period 旗標,而非 --enable-automated-backup 旗標,並提供最多 90 天的值。這個值必須以數字表示,單位為 m、h 或 d (分鐘、小時或天),例如 15d 代表 15 天。

    在 SSD 執行個體上,如要設定 Bigtable 建立熱自動備份,並自動轉換為標準備份,請使用 --automated-backup-keep-hot-duration 旗標,而非 --enable-automated-backup 旗標。請提供 24h (1 天) 到 10d (10 天) 之間的時間長度,不得超過保留期限。請以數字表示值,並加上 s、m、h 或 d (秒、分、小時或天) 單位,例如 24h 或 2d。詳情請參閱「設定熱自動備份」。

    Enterprise Plus 版:根據預設,Bigtable 每天會在資料表執行個體的所有叢集中建立備份。如要設定 Bigtable 必須建立資料表每日備份的叢集位置,請使用 --automated-backup-locations 旗標,而非 --enable-automated-backup 旗標。請提供叢集位置清單,並以半形逗號分隔,例如 us-central1-a,us-east1-b,europe-west1-c。這些位置必須啟用自動備份功能。

  • 如要啟用不常存取功能,做為分級式儲存空間 (預先發布版) 的一部分,請使用 --tiered-storage-infrequent-access-older-than 旗標:

    gcloud beta bigtable instances tables create TABLE_ID \
        --instance=INSTANCE_ID \
        --project=PROJECT_ID \
        --tiered-storage-infrequent-access-older-than=AGE_THRESHOLD
    

    將 AGE_THRESHOLD 替換為至少 30 天的值。可接受的單位為天 (d)、小時 (h)、分鐘 (m) 和秒 (s),例如 32d 或 32d12h。

  • 如要設定資料表的時間戳記精細程度,請使用 --timestamp-granularity 旗標:

    gcloud bigtable instances tables create TABLE_ID \
        --instance=INSTANCE_ID \
        --project=PROJECT_ID \
        --column-families=COLUMN-FAMILIES \
        --timestamp-granularity=TIMESTAMP_GRANULARITY
    

    將 TIMESTAMP_GRANULARITY 替換為精確度等級。預設精確度為毫秒,值為 MILLIS。如要讓資料表接受精確度達微秒的時間戳記,請將值設為 MICROS。微秒精確度時間戳記僅適用於 Enterprise Plus 版執行個體。

cbt

您無法使用 cbt CLI 建立已啟用變更串流的資料表。

執行下列指令來建立資料表:

cbt createtable TABLE_ID

將 TABLE_ID 替換為新資料表的專屬 ID。

選用:如要在資料表中建立匯總資料欄系列,請在資料欄系列名稱後方加上匯總類型。下列指令會建立匯總資料欄系列,並設定 never 垃圾收集政策:

cbt createtable TABLE_ID families=FAMILY_NAME:never:TYPE

更改下列內容:

  • TABLE_ID:新資料表的專屬 ID
  • FAMILY_NAME:以半形逗號分隔的資料欄系列名稱清單。您之後可以新增更多資料欄系列。
  • TYPE:匯總類型。必須是 intsum、intmin、intmax 或 inthll。

如需更多選項,請參閱 cbt CLI 參考資料中的「建立資料表」。

如果不小心刪除資料表,請勿嘗試手動建立已刪除的資料表。使用 gcloud CLI 指令 bigtable instances tables undelete 復原資料表。

選用:依資料列索引鍵分割資料表

為達到最佳效能,Bigtable 會持續將資料表分割至多個節點,平均分配每個節點儲存的資料量,並盡可能分散經常存取的資料列。這項程序會持續自動進行。

建立新資料表時,您可以指定初始資料表分割。Bigtable 會在您提供的資料列索引鍵處分割資料表。如果鍵空間過大,Bigtable 會進一步分割資料表。資料表建立完成後,初始分割會保留約 24 小時。您最多可以提供 100 個資料列索引鍵,用於指定初始分割位置。

舉例來說,如果您即將在資料表中寫入多個資料列,可以指定特定資料列來預先分割資料表。

預先分割資料表並非必要,但這麼做有助於 Bigtable 瞭解資料表建立時,負載和資料足跡可能落在哪裡。預先分割可避免 Bigtable 在資料送達時,必須一次分割資料表並重新平衡負載。

控制台

使用Google Cloud 控制台建立資料表時,無法預先分割資料列。

gcloud

如要依資料列索引鍵分割資料表,請執行下列指令。如需完整的選項清單,請參閱 gcloud bigtable instances tables create。

gcloud bigtable instances tables create TABLE_ID \
    --instance=INSTANCE_ID \
    --project=PROJECT_ID \
    --column-families=COLUMN_FAMILIES \
    --splits=SPLITS

更改下列內容:

  • TABLE_ID:新資料表的專屬 ID
  • INSTANCE_ID:執行個體 ID
  • PROJECT_ID:要存放新資料表的專案
  • COLUMN_FAMILIES:以半形逗號分隔的資料欄系列名稱清單。您之後可以新增更多資料欄系列。
  • SPLITS:資料表一開始應分割的資料列索引鍵,例如 10,20。

cbt

如要根據資料列索引鍵預先分割資料表,請執行下列指令:

cbt createtable TABLE_ID splits=SPLITS

更改下列內容:

  • TABLE_ID:新資料表的專屬 ID
  • SPLITS:以半形逗號分隔的資料列索引鍵前置字元清單,用於預先分割

舉例來說,如要預先分割資料表 my-table,並以 10 和 20 開頭的資料列索引鍵做為分割點,請執行下列指令:

cbt createtable my-table splits=10,20

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

您可以在建立資料表時新增資料欄系列,也可以在現有資料表中新增。如果資料表未啟用防刪除功能,您就可以刪除資料表中的資料欄系列。

新增資料欄系列

控制台

將資料欄系列新增至新資料表

  1. 在「Create table」(建立資料表) 窗格中,針對要新增的每個資料欄系列,按一下「Add a column family」(新增資料欄系列)。

  2. 在「Column family name」(資料欄系列名稱) 欄位中,輸入資料欄系列的專屬 ID。

  3. 選擇資料欄系列類型:

  4. 如果選取「Aggregate」(匯總),請在「Aggregator」(匯總器) 欄位中選取下列其中一個選項:

    • 加總:匯總所有儲存格值的總和。
    • Min:匯總儲存格最小值。
    • 最大值:匯總最大儲存格值。
    • HyperLogLog:匯總儲存格值的近似基數。
  5. 設定資料欄系列的垃圾收集政策。

  6. 按一下「完成」。

在現有資料表新增資料欄系列

  1. 在 Google Cloud 控制台中,開啟 Bigtable 執行個體清單。

    開啟執行個體清單

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

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

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

  4. 按一下要修改的資料表 「Edit」(編輯)。

  5. 針對要新增的每個資料欄系列,執行下列操作:

    1. 點選「新增資料欄系列」。
    2. 在「Column family name」(資料欄系列名稱) 欄位中,輸入資料欄系列的專屬 ID。
    3. 選擇資料欄系列類型:

    4. 如果選取「Aggregate」(匯總),請在「Aggregator」(匯總器) 欄位中選取下列其中一個選項:

      • 加總:匯總所有儲存格值的總和。
      • Min:匯總儲存格最小值。
      • 最大值:匯總最大儲存格值。
      • HyperLogLog:匯總儲存格值的近似基數。
    5. 設定資料欄系列的垃圾收集政策。

    6. 按一下「完成」。

  6. 按一下「儲存」。

gcloud

您無法使用 gcloud CLI 將資料欄系列新增至資料表。

cbt

執行下列指令,將資料欄系列新增至資料表:

cbt createfamily TABLE_ID FAMILY_NAME

更改下列內容:

  • TABLE_ID:要新增資料欄系列的資料表 ID
  • FAMILY_NAME:要新增的資料欄系列名稱

舉例來說,如要將資料欄系列 cf1 和 cf2 新增至資料表 my-table,請執行下列指令:

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

選用:如要在資料表中新增匯總資料欄系列,請在資料欄系列名稱後方加上匯總類型。下列指令會建立資料表,其中包含垃圾收集政策為 never 的匯總資料欄系列。

cbt createfamily TABLE_ID FAMILY_NAME:never:TYPE

更改下列內容:

  • TABLE_ID:資料表 ID
  • FAMILY_NAME:以半形逗號分隔的資料欄系列名稱清單。您之後可以新增更多資料欄系列。
  • TYPE:匯總類型。必須是 intsum、intmin、intmax 或 inthll。

刪除資料欄系列

如果資料表未啟用防刪除功能,您就可以刪除其中的資料欄系列。

控制台

  1. 在 Google Cloud 控制台中,開啟 Bigtable 執行個體清單。

    開啟執行個體清單

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

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

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

  4. 按一下要修改的資料表 「Edit」(編輯)。

  5. 針對要刪除的每個資料欄系列,完成下列步驟:

    1. 將滑鼠游標懸停在要刪除的資料欄系列所在的資料列上。
    2. 按一下「」。
  6. 按一下「儲存」。

  7. 請在文字欄位中輸入「刪除資料欄系列」,確認您瞭解刪除資料欄系列是永久操作,且資料欄系列中的所有資料都會刪除。

  8. 按一下「確認」。

gcloud

您無法使用 gcloud CLI 刪除資料表中的資料欄系列。

cbt

如要從資料表刪除資料欄系列,請執行下列指令:

cbt deletefamily TABLE_ID FAMILY_NAME

更改下列內容:

  • TABLE_ID:要刪除資料欄系列的資料表 ID
  • FAMILY_NAME:要刪除的資料欄系列名稱

舉例來說,如要從資料表 my-table 刪除資料欄系列 cf2,請執行下列指令:

cbt deletefamily my-table cf2

查看資料表清單

控制台

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

  1. 在 Google Cloud 控制台中,開啟 Bigtable 執行個體清單。

    開啟執行個體清單

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

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

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

gcloud

如要查看資料表清單,請執行 gcloud bigtable instances tables list 指令:

gcloud bigtable instances tables list --instances=INSTANCE_IDS

將 INSTANCE_IDS 替換為以半形逗號分隔的執行個體 ID 清單。

cbt

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

cbt ls INSTANCE_ID

將 INSTANCE_ID 替換為執行個體的永久 ID。

C++

如要瞭解如何安裝及使用 Bigtable 的用戶端程式庫,請參閱「Bigtable 用戶端程式庫」。

如要向 Bigtable 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。

namespace cbt = ::google::cloud::bigtable;
namespace cbta = ::google::cloud::bigtable_admin;
using ::google::cloud::StreamRange;
[](cbta::BigtableTableAdminClient admin, std::string const& project_id,
   std::string const& instance_id) {
  std::string instance_name = cbt::InstanceName(project_id, instance_id);

  google::bigtable::admin::v2::ListTablesRequest r;
  r.set_parent(instance_name);
  r.set_view(google::bigtable::admin::v2::Table::NAME_ONLY);

  StreamRange<google::bigtable::admin::v2::Table> tables =
      admin.ListTables(std::move(r));
  for (auto& table : tables) {
    if (!table) throw std::move(table).status();
    std::cout << table->name() << "\n";
  }
}

C#

如要瞭解如何安裝及使用 Bigtable 的用戶端程式庫,請參閱「Bigtable 用戶端程式庫」。

如要向 Bigtable 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。

// Lists tables in intance.
// Initialize request argument(s).
ListTablesRequest request = new ListTablesRequest
{
    ParentAsInstanceName = s_instanceName
};
try
{
    // Make the request.
    PagedEnumerable<ListTablesResponse, Table> response = bigtableTableAdminClient.ListTables(request);

}
catch (Exception ex)
{
    Console.WriteLine($"Error listing tables {ex.Message}");
}

Java

如要瞭解如何安裝及使用 Bigtable 的用戶端程式庫,請參閱「Bigtable 用戶端程式庫」。

如要向 Bigtable 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。

// Lists tables in the current instance.
try {
  String parent = "projects/" + projectId + "/instances/" + instanceId;
  ListTablesRequest request = ListTablesRequest.newBuilder().setParent(parent).build();
  for (Table table : adminClient.listTables(request).iterateAll()) {
    System.out.println(table.getName());
  }
} catch (NotFoundException e) {
  System.err.println("Failed to list tables from a non-existent instance: " + e.getMessage());
}

Node.js

如要瞭解如何安裝及使用 Bigtable 的用戶端程式庫,請參閱「Bigtable 用戶端程式庫」。

如要向 Bigtable 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。

// List tables in current project
const [tables] = await adminClient.listTables({parent: instance.name});
tables.forEach(table => {
  console.log(table.name);
});

PHP

如要瞭解如何安裝及使用 Bigtable 的用戶端程式庫,請參閱「Bigtable 用戶端程式庫」。

如要向 Bigtable 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。

use Google\Cloud\Bigtable\Admin\V2\Client\BigtableInstanceAdminClient;
use Google\Cloud\Bigtable\Admin\V2\Client\BigtableTableAdminClient;
use Google\Cloud\Bigtable\Admin\V2\ListTablesRequest;

/**
 * List tables in an instance
 *
 * @param string $projectId The Google Cloud project ID
 * @param string $instanceId The ID of the Bigtable instance
 */
function list_tables(
    string $projectId,
    string $instanceId
): void {
    $instanceAdminClient = new BigtableInstanceAdminClient();
    $tableAdminClient = new BigtableTableAdminClient();

    $instanceName = $instanceAdminClient->instanceName($projectId, $instanceId);

    printf('Listing Tables:' . PHP_EOL);
    $listTablesRequest = (new ListTablesRequest())
        ->setParent($instanceName);
    $tables = $tableAdminClient->listTables($listTablesRequest)->iterateAllElements();
    $tables = iterator_to_array($tables);
    if (empty($tables)) {
        print('No table exists.' . PHP_EOL);
        return;
    }
    foreach ($tables as $table) {
        print($table->getName() . PHP_EOL);
    }
}

Python

如要瞭解如何安裝及使用 Bigtable 的用戶端程式庫,請參閱「Bigtable 用戶端程式庫」。

如要向 Bigtable 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。

tables = instance.list_tables()
print("Listing tables in current project...")
if tables != []:
    for tbl in tables:
        print(tbl.table_id)
else:
    print("No table exists in current project...")

小茹

如要瞭解如何安裝及使用 Bigtable 的用戶端程式庫,請參閱「Bigtable 用戶端程式庫」。

如要向 Bigtable 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。

# instance_id = "my-instance"
bigtable.tables(instance_id).all.each do |t|
  puts "Table: #{t.name}"
end

查看資料表相關資訊

控制台

如要查看資料表相關資訊,請按照下列步驟操作:

  1. 在 Google Cloud 控制台中,開啟 Bigtable 執行個體清單。

    開啟執行個體清單

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

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

    「Tables」(資料表) 頁面會顯示執行個體中的資料表清單。 Google Cloud 控制台會顯示每個資料表的儲存叢集數量、狀態、儲存空間使用率,以及目前備份的 ID。如果資料表已啟用分級式儲存空間 (預先發布版),您可以查看 SSD 儲存空間使用率和不常存取儲存空間使用率。

  4. 如要查看資料表的資料欄系列名稱,請按一下 。如要關閉「Edit table」(編輯資料表) 窗格,請按一下「Cancel」(取消)。

  5. 如要查看資料表的其他詳細資料,包括資料表層級指標和複製狀態,請按一下資料表名稱。

gcloud

如要查看資料表的相關資訊,請執行 gcloud bigtable instances tables describe 指令。

gcloud bigtable instances tables describe TABLE_ID \
    --instance=INSTANCE_ID

更改下列內容:

  • TABLE_ID:資料表的專屬 ID
  • INSTANCE_ID:執行個體 ID

cbt

您可以使用 cbt CLI 取得資料表中現有資料欄系列的清單。

如要查看資料表中的資料欄系列,請執行下列指令:

cbt ls TABLE_ID

將 TABLE_ID 替換為資料表的專屬 ID。

設定垃圾收集政策

垃圾收集政策會指示 Bigtable 應保留哪些資料,以及應將哪些資料標示為刪除。您可以在建立資料表時或之後,在資料欄系列層級設定垃圾收集政策。

建立資料欄系列時,您可以指定要在該資料欄系列的每個資料欄中保留多少個儲存格。如未指定這項設定,Bigtable 會使用下列其中一項預設設定:

  • 如果您使用 Cloud Bigtable HBase Java 用戶端或 HBase 殼層建立資料欄系列,或其他使用 HBase Java 用戶端的工具,Bigtable 只會保留資料欄系列中每個資料列或資料欄交集的一個儲存格。此預設的設定與 HBase 一致。

  • 如果您使用 Google Cloud 控制台、任何其他用戶端程式庫或 cbt CLI 建立資料欄系列 ,Bigtable 會在每個資料欄中保留無限數量的儲存格。

如要瞭解如何查看、設定及更新垃圾收集政策,請參閱「設定垃圾收集政策」一文。

備份及還原資料表

如需備份資料表及從備份還原至新資料表的操作說明,請參閱「管理備份」。

如果在建立資料表時啟用自動備份功能,之後可以修改資料表的自動備份設定。您可以啟用或停用自動備份、在 SSD 執行個體上設定熱自動備份、將保留期限變更為最多 90 天,或在 Enterprise Plus 版中選取 Bigtable 儲存備份的叢集。詳情請參閱「使用自動備份」。

啟用、停用或設定變更串流

如需下列工作的操作說明,請參閱「設定變更串流」。

  • 為現有資料表啟用變更串流
  • 停用變更串流
  • 更新變更串流的保留期限

刪除資料表

刪除資料表時,也會一併刪除資料表的所有授權檢視表。如果資料表的任何授權檢視表已啟用防刪除功能,您就無法刪除資料表。此外,如果資料表有連續 materialized view,也無法刪除。

控制台

  1. 在 Google Cloud 控制台中,開啟 Bigtable 執行個體清單。

    開啟執行個體清單

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

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

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

  4. 按一下要刪除的資料表 。

  5. 點選「刪除」。

  6. 請在「Delete table」(刪除資料表) 方塊中輸入資料表 ID,確認您瞭解這項操作會刪除執行個體中所有叢集的資料表,且您只有七天的時間可以取消刪除資料表。

  7. 點選「刪除」。

gcloud

  1. 如要刪除資料表,請執行 gcloud bigtable instances tables delete 指令。

    gcloud bigtable instances tables delete TABLE_ID --instance=INSTANCE_ID
    

    更改下列內容:

    • TABLE_ID:資料表的專屬 ID
    • INSTANCE_ID:執行個體 ID
  2. 在終端機輸入 y,確認刪除資料表。

cbt

如要刪除資料表,請執行下列指令:

cbt deletetable TABLE_ID

將 TABLE_ID 替換為資料表的專屬 ID。

取消刪除資料表

如果不小心刪除資料表,可以使用 gcloud CLI 指令 bigtable instances tables undelete 取消刪除或復原資料表。請勿嘗試手動重新建立已刪除的資料表。

如要取消刪除資料表,請在終端機中執行下列指令:

gcloud bigtable instances tables undelete TABLE_ID --instance=INSTANCE_ID

更改下列內容:

  • TABLE_ID:資料表的專屬 ID
  • INSTANCE_ID:執行個體 ID

取消刪除資料表時,Bigtable 會自動啟用資料表的防刪除功能。

限制如下:

  • 資料表刪除後,約七天內可取消刪除。
  • 您無法使用 Google Cloud 控制台、Cloud Bigtable 用戶端程式庫或 cbt CLI 取消刪除資料表。
  • 您無法從已刪除的執行個體取消刪除資料表。
  • 您無法取消刪除已啟用 CMEK 的資料表。
  • 如果將執行個體降級至 Enterprise 版本,就無法取消刪除時間戳記精細程度為微秒的資料表。如要取消刪除資料表,執行個體必須為 Enterprise Plus 版本。
  • 取消刪除資料表時,Bigtable 不會將任何精細的 IAM 政策繫結還原至已刪除的資料表。

您也可以在稽核記錄中查看 undelete 作業的狀態。

修改防刪除功能

如果主體具備包含 bigtable.tables.update 權限的角色 (例如 roles/bigtable.admin),就能啟用或停用資料表的防刪除功能。防刪除功能可防止資料表、資料表中的所有資料欄系列,以及包含資料表的執行個體遭到刪除。

為資料表啟用防刪除功能,並不會為資料表的授權檢視表啟用這項功能。同樣地,停用資料表的防刪除功能,不會一併停用資料表授權檢視表的防刪除功能。您必須另外更新資料表的授權檢視表。

控制台

  1. 在 Google Cloud 控制台中,開啟 Bigtable 執行個體清單。

    開啟執行個體清單

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

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

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

  4. 按一下資料表 ID 旁的 。

  5. 如要啟用防刪除功能,請按一下「防止刪除」。如要停用防刪除功能,請按一下「Enable deletion」(啟用刪除功能)。只會顯示有效選項。

gcloud

如要啟用資料表的防刪除功能,請執行 gcloud bigtable instances tables update 指令:

gcloud bigtable instances tables update TABLE_ID \
    --instance=INSTANCE_ID \
    --deletion-protection

更改下列內容:

  • TABLE_ID:資料表的專屬 ID
  • INSTANCE_ID:執行個體 ID

如要停用資料表的防刪除功能,請執行下列指令:

gcloud bigtable instances tables update TABLE_ID \
    --instance=INSTANCE_ID \
    --no-deletion-protection

更改下列內容:

  • TABLE_ID:資料表的專屬 ID
  • INSTANCE_ID:執行個體 ID

cbt

您無法使用 cbt CLI 啟用或停用防刪除功能。

修改不常存取儲存空間的年齡門檻

您隨時可以修改不常存取資料的年齡門檻,這是分級儲存空間的一部分。

控制台

  1. 在 Google Cloud 控制台中,開啟 Bigtable 執行個體清單。

    開啟執行個體清單

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

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

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

  4. 按一下要修改的資料表 「Edit」(編輯)。

  5. 在「Age threshold」(保留期限) 欄位中,輸入新的天數,Bigtable 會在該天數後將資料從 SSD 儲存空間移至不常存取儲存空間。數字必須大於或等於 30。

gcloud

如要修改不常存取儲存空間的年齡門檻,請執行 gcloud beta bigtable instances tables update 指令並加上 --tiered-storage-infrequent-access-older-than 旗標:

gcloud beta bigtable instances tables update TABLE_ID \
    --instance=INSTANCE_ID \
    --project=PROJECT_ID \
    --tiered-storage-infrequent-access-older-than=AGE_THRESHOLD

更改下列內容:

  • TABLE_ID:要更新的資料表 ID
  • INSTANCE_ID:執行個體 ID
  • PROJECT_ID:要更新的資料表所在專案
  • AGE_THRESHOLD:時間門檻,必須至少為 30 天。可接受的單位為天 (d)、小時 (h)、分鐘 (m) 和秒 (s),例如從先前的 32d 到 33d。

停用不常存取的儲存空間

您隨時可以停用分層儲存空間的不常存取功能。因此,Bigtable 會將不常存取儲存空間中的所有資料移至 SSD 儲存空間。停用不常存取儲存空間前,請務必瞭解費用影響。

控制台

  1. 在 Google Cloud 控制台中,開啟 Bigtable 執行個體清單。

    開啟執行個體清單

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

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

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

  4. 按一下要修改的資料表 「Edit」(編輯)。

  5. 取消勾選「啟用分級式儲存空間」核取方塊。

  6. 按一下「儲存」。

gcloud

如要停用不常存取的儲存空間,請使用 gcloud beta bigtable instances tables update 指令並加上 --clear-tiered-storage-config 旗標:

gcloud beta bigtable instances tables update TABLE_ID \
    --instance=INSTANCE_ID \
    --project=PROJECT_ID \
    --clear-tiered-storage-config

更改下列內容:

  • TABLE_ID:要更新的資料表 ID
  • INSTANCE_ID:執行個體 ID
  • PROJECT_ID:要更新的資料表所在專案

後續步驟