创建和管理表

您可以使用Google Cloud 控制台、Google Cloud CLI 或 cbt CLI 创建 Bigtable 表并对其执行操作。

cbt CLI 支持若干命令,本页面未对这些命令进行介绍。如需查看完整的命令列表,请参阅 cbt 参考文档。

您还可以使用 Cloud Bigtable 客户端库或服务 API 以编程方式创建和管理表。

如需了解如何创建和管理表的授权视图,请参阅授权视图。

准备工作

如果您打算使用命令行工具来处理表,请按照本部分中的步骤操作。

  1. 安装 gcloud CLI。

  2. 可选:如果您计划使用 cbt CLI,请按照安装 cbt CLI 中的说明(包括创建 .cbtrc 文件的步骤)操作。

    本页面上的 cbt CLI 说明假定您已在 .cbtrc 文件中设置了项目 ID 和实例 ID。此外,每次运行 cbt CLI 命令时,您都可以使用 -project 和 -instance 标志设置这些值。

创建表

创建表时,您无需指定要在表中使用的列族。您可以稍后添加或删除列族。

控制台

要在实例中创建新表,请执行以下操作:

  1. 在 Google Cloud 控制台中,打开 Bigtable 实例列表。

    打开实例列表

  2. 点击要查看其表的实例。

  3. 在左侧窗格中,点击表。

    表页面显示实例中的表列表。

  4. 点击 创建表。

  5. 输入表 ID。

  6. 可选:添加列族。

    您可以现在添加列,也可以稍后添加。表必须至少有一个列族才能向其中写入数据或从中读取变更数据流。

  7. 可选:为表启用变更数据流。在启用变更数据流之前,请务必了解影响,包括存储费用和应用配置文件使用需求增多。如需查看这些详细信息,请参阅变更数据流概览。

    1. 选择启用变更数据流。

    2. 在保留时间字段中,输入一个介于 1 到 7 之间的数字,以指定变更数据流数据应保留的天数。

  8. 可选:如果您不希望 Bigtable 每天创建表的备份,请取消选中启用自动备份复选框。如需了解详情,请参阅使用自动备份。

  9. 可选:启用表的低频访问,作为分层存储(预览版)的一部分:

    1. 选择启用分层存储。

    2. 在老化阈值字段中,输入一个天数,表示 Bigtable 在经过该天数后将数据从 SSD 存储移至不常访问的存储。该数字必须大于或等于 30。

  10. 可选,企业 Plus 版:默认情况下,系统会在表实例中的所有集群中创建每日备份。如需选择 Bigtable 必须每天备份相应表的集群,请在选择要备份的集群字段中选择集群位置。 如需了解详情,请参阅配置自动备份集群位置。

  11. 可选:如需配置行键架构,请选择定义行键架构,然后执行以下操作:

    1. 在编码列表中,为行键架构选择一种编码类型。

    2. 如果您选择了 DelimitedBytes,请在 Delimiter 字段中输入用于分隔现有行键中各个段的分隔符。 默认值为井号 (#)。

    3. 在细分字段中,输入细分的名称,例如 device_type。

    4. 在类型列表中,选择行键段的数据类型。

    5. 根据所选的数据类型,在字节编码列表中,保留行键段的默认编码类型或更改该类型。

    6. 可选:如果您的行键区段包含多个部分,请点击添加行键区段以添加其他字段。

  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 应将表的变更数据流数据保留的时长。时间必须介于 1 到 7 天之间。可接受的单位包括天 (d)、小时 (h)、分钟 (m) 和秒 (s)。示例:48h 或 6d

  • 如需让 Bigtable 每天备份您的表,并将每个备份保留默认保留期限(7 天),请在创建表时使用 --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 天。

    企业 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
    

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

例如,如需使用以 10 和 20 开头的行键预拆分 my-table 表,请运行以下命令:

```none
cbt createtable my-table splits=10,20
```

修改表中的列族

您可以在创建表时或向现有表添加列族。如果表未启用防删除保护,则可以删除表中的列族。

添加列族

控制台

向新表添加列族

  1. 在创建表窗格中,针对要添加的每个列族,点击添加列族。

  2. 在列族名称字段中,输入列族的唯一标识符。

  3. 选择列族类型:

    • 标准:创建由垃圾回收政策管理的标准列族。
    • 汇总:创建一个在写入时自动汇总数据的列族。 您可以配置特定于聚合的垃圾回收政策来管理数据保留政策,例如时间桶。
  4. 如果您选择了汇总,请在聚合器字段中选择以下选项之一:

    • 总和:汇总所有单元格值的总和。
    • 最小值:汇总最小单元格值。
    • 最大值:汇总最大单元格值。
    • HyperLogLog:聚合单元格值的近似基数。
  5. 为列族设置垃圾回收政策。

  6. 点击完成。

向现有表添加列族

  1. 在 Google Cloud 控制台中,打开 Bigtable 实例列表。

    打开实例列表

  2. 点击要查看其表的实例。

  3. 在左侧窗格中,点击表。

    表页面显示实例中的表列表。

  4. 点击要修改的表的 修改。

  5. 对于要添加的每个列族,请执行以下操作:

    1. 点击添加列族。
    2. 在列族名称字段中,输入列族的唯一标识符。
    3. 选择列族类型:

      • 标准:创建由垃圾回收政策管理的标准列族。
      • 汇总:创建一个在写入时自动汇总数据的列族。 您可以配置特定于聚合的垃圾回收政策来管理数据保留政策,例如时间桶。
    4. 如果您选择了汇总,请在聚合器字段中选择以下选项之一:

      • 总和:汇总所有单元格值的总和。
      • 最小值:汇总最小单元格值。
      • 最大值:汇总最大单元格值。
      • HyperLogLog:聚合单元格值的近似基数。
    5. 为列族设置垃圾回收政策。

    6. 点击完成。

  6. 点击保存。

gcloud

您无法使用 gcloud CLI 向表中添加列族。

cbt

如需将列族添加到表中,请使用以下命令:

cbt createfamily TABLE_ID FAMILY_NAME

例如,如要向 my-table 表中添加 cf1 和 cf2 列族,请使用以下命令:

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. 在左侧窗格中,点击表。

    表页面显示实例中的表列表。

  4. 点击要修改的表的 修改。

  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. 在左侧窗格中,点击表。

    表页面显示实例中的表列表。

gcloud

如需查看表列表,请运行 gcloud bigtable instances tables list 命令。

gcloud bigtable instances tables list --instances=INSTANCE_IDS

替换以下内容:

  • INSTANCE_IDS:以英文逗号分隔的实例 ID 列表。

cbt

如需查看实例中的表列表,请运行以下命令:

    cbt ls INSTANCE_ID

替换以下内容:

  • INSTANCE_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...")

Ruby

如需了解如何安装和使用 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. 在左侧窗格中,点击表。

    表页面显示实例中的表列表。 对于每个表, Google Cloud 控制台会显示存储该表的集群数量、表的状态、存储空间利用率以及表的任何当前备份的标识符。对于启用了分层存储(预览版)的表,您可以查看 SSD 存储空间利用率和非频繁访问存储空间利用率。

  4. 如需查看表的列族名称,请点击 。如需关闭修改表窗格,请点击取消。

  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 将使用以下任一默认设置:

  • 如果您使用 Java 版 Cloud Bigtable HBase 客户端或 HBase shell 创建列族,或通过使用 Java 版 HBase 客户端的其他工具创建列族,Bigtable 会为列族中的每个行/列交集仅保留一个单元。此默认设置与 HBase 一致。

  • 如果您使用 Google Cloud 控制台、任何其他客户端库或 cbt CLI 创建列族 ,则 Bigtable 会在每一列中保留无限数量的单元。

如需详细了解如何查看、设置和更新垃圾回收政策,请参阅配置垃圾回收政策。

备份和恢复表

如需了解如何备份表以及从备份恢复到新表,请参阅管理备份。

如果您在创建表时启用了自动备份,则可以修改表的自动备份配置,以启用或停用自动备份,或者将保留期限更改为最多 90 天。如需了解详情,请参阅使用自动备份。

启用、停用或配置变更数据流

如需了解以下任务,请参阅配置变更数据流。

  • 在现有表上启用变更数据流
  • 停用变更数据流
  • 更新变更数据流的保留期限

删除表

删除表也会删除该表的所有授权视图。如果表的任何授权视图启用了防删除保护,您将无法删除该表。您也无法删除基于某个表创建了持续具体化视图的表。

控制台

  1. 在 Google Cloud 控制台中,打开 Bigtable 实例列表。

    打开实例列表

  2. 点击要查看其表的实例。

  3. 在左侧窗格中,点击表。

    表页面显示实例中的表列表。

  4. 点击要删除的表的 。

  5. 点击删除。

  6. 如需确认此操作将从实例的所有集群中删除该表,并且只能在七天内恢复删除的表,请在删除表框中输入表 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:表的唯一标识符
  • INSTANCE_ID:实例的 ID

恢复删除表后,Bigtable 会自动为该表启用防删除保护功能。

存在以下限制:

  • 您只能在表删除后的约七天内恢复删除的表。
  • 您无法使用 Google Cloud 控制台、Cloud Bigtable 客户端库或 cbt CLI 恢复删除的表。
  • 您无法从已删除的实例中恢复删除的表。
  • 如果删除的表启用了 CMEK,则无法恢复。
  • 恢复已删除的表时,Bigtable 不会恢复已删除的表的任何精细 IAM 政策绑定。

您可以视需要在审核日志中查看 undelete 操作的状态。

修改防删除保护

如果您是包含 bigtable.tables.update 权限的角色中的正文(例如 roles/bigtable.admin),则可以为表启用或停用防删除保护。防删除保护可防止删除表、表中的所有列族以及包含表的实例。

为表启用防删除保护功能不会为该表的授权视图启用此功能。同样,停用表的删除防护功能不会停用该表的已获授权视图的删除防护功能。您必须单独更新表的授权视图。

控制台

  1. 在 Google Cloud 控制台中,打开 Bigtable 实例列表。

    打开实例列表

  2. 点击要查看其表的实例。

  3. 在左侧窗格中,点击表。

    表页面显示实例中的表列表。

  4. 点击表 ID 旁边的 。

  5. 如需启用防删除保护,请点击防止删除。如需停用防删除保护,请点击启用删除。只有有效选项才可见。

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. 在左侧窗格中,点击表。

    表页面显示实例中的表列表。

  4. 点击要修改的表的 修改。

  5. 在年龄阈值字段中,输入新的天数,Bigtable 会在该天数之后将数据从 SSD 存储空间移至低频访问存储空间。该数字必须大于或等于 30。

gcloud

如需修改不频繁访问存储空间的年龄阈值,请运行带有 --tiered-storage-infrequent-access-older-than 标志的 gcloud beta bigtable instances tables update 命令:

    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. 在左侧窗格中,点击表。

    表页面显示实例中的表列表。

  4. 点击要修改的表的 修改。

  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:包含要更新的表的项目

后续步骤

  • 了解如何将数据导入和导出到表格中以及从表格中导出数据。