建立及管理資料表

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. 按一下左側窗格中的 [Tables] (資料表)。

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

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

  5. 輸入資料表 ID。

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

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

  7. 選用,Enterprise Plus 版:如要使用微秒時間戳記精細程度,請選取「Use microsecond timestamps」(使用微秒時間戳記)。

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

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

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

  9. 選用:如果不想讓 Bigtable 每天建立資料表備份,請清除「Enable automated backup」(啟用自動備份) 核取方塊。詳情請參閱「使用自動備份」。

  10. 選用:啟用資料表的不常存取功能,做為分級式儲存空間 (預先發布版) 的一部分:

    1. 選取「啟用分級式儲存空間」。

    2. 在「Age threshold」(時間長度門檻) 欄位中,輸入 Bigtable 將資料從 SSD 儲存空間移至不常存取儲存空間的天數。數字必須大於或等於 30。

  11. 選用,Enterprise Plus 版:根據預設,系統每天會在資料表執行個體的所有叢集中建立備份。如要選擇 Bigtable 必須建立資料表每日備份的叢集,請在「Select clusters to back up」(選取要備份的叢集) 欄位中選取叢集位置。詳情請參閱「設定自動備份叢集位置」。

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

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

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

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

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

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

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

  13. 點選「建立」。

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 天。

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

  • 如要啟用不常存取功能,做為分級儲存 (預先發布版) 的一部分,請使用
    --tiered-storage-infrequent-access-older-than 旗標,並將 AGE_THRESHOLD 替換為至少 30 天的值。可接受的單位為天 (d)、小時 (h)、分鐘 (m) 和秒 (s)。範例:32d 或 32d12h。

    gcloud beta bigtable instances tables create TABLE_ID \
        --instance=INSTANCE_ID \
        --project=PROJECT_ID \
        --tiered-storage-infrequent-access-older-than=AGE_THRESHOLD
    
  • 如要設定資料表的時間戳記精細程度,請使用 --timestamp-granularity 旗標,並將 TIMESTAMP_GRANULARITY 替換為精確度等級。預設精確度為毫秒,值為 MILLIS。如要讓資料表接受精確度達微秒的時間戳記,請將值設為 MICROS。微秒精確度時間戳記僅適用於 Enterprise Plus 版本的執行個體。

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

cbt

請使用下列指令,並將 TABLE_NAME 替換為資料表名稱。您無法使用 cbt CLI 建立已啟用變更串流的資料表。

cbt createtable TABLE_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

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

```none
cbt createtable [TABLE_NAME] splits=[SPLITS]
```

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

```none
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

舉例來說,如要將資料欄系列 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

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

cbt deletefamily [TABLE_NAME] [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 取得資料表中現有資料欄系列的清單。

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

cbt ls [TABLE_NAME]

設定垃圾收集政策

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

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

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

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

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

備份及還原資料表

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

如果在建立資料表時啟用了自動備份功能,可以修改資料表的自動備份設定,啟用或停用自動備份,或將保留期限變更為最多 90 天。詳情請參閱「使用自動備份」。

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

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

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

刪除資料表

刪除資料表時,也會一併刪除資料表的所有授權檢視表。如果資料表的任何授權檢視表已啟用防刪除功能,您就無法刪除資料表。此外,如果資料表有連續 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

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

cbt deletetable [TABLE_NAME]

取消刪除資料表

如果不小心刪除資料表,可以使用 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 table update 指令:

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

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

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

更改下列內容:

+ TABLE_ID: the unique identifier for the table
+ INSTANCE_ID: the ID of the instance

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:要更新的資料表所在專案

後續步驟