修改实例

创建 Bigtable 实例后,您可以在不停机的情况下更新以下设置:

  • 自动扩缩

    您可以为实例的集群启用或停用自动扩缩功能,也可以为已启用自动扩缩的集群配置设置。

  • 手动扩缩集群中的节点数

    添加或移除节点后,负载状态下的 Bigtable 通常需要几分钟时间来优化集群的性能。

  • 实例中集群的数量

    添加集群后,Bigtable 需要一些时间将您的数据复制到新集群。系统将从实例中地理位置最近的集群中复制新集群。通常,距离越远复制时间越长。

  • 实例的应用配置文件,其中包含复制功能设置

  • 数据的位置

  • 实例的标签,用于提供实例的相关元数据

  • 实例的显示名

只能通过删除再重新创建集群来更改集群 ID。

如需更改下列任何项,您必须使用首选设置新建一个实例,从旧实例中导出数据将数据导入到新实例,然后删除旧实例

  • 实例 ID

  • 存储类型(SSD 或 HDD)

  • CMEK(客户管理的加密密钥)配置

准备工作

如果您要将命令行界面用于 Bigtable,请安装 Google Cloud CLIcbt CLI(如果您尚未安装)。

配置自动扩缩

您可以为任何现有集群启用或停用自动扩缩功能。您还可以更改集群的 CPU 利用率目标、节点数下限和节点数上限。如需了解如何选择自动扩缩设置,请参阅自动扩缩。您无法使用 cbt CLI 配置自动扩缩。

启用自动扩缩功能

控制台

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

    打开实例列表

  2. 点击要更改的实例,然后点击修改实例

  3. 配置集群下,点击要更新的集群对应的修改

  4. 选择自动扩缩

  5. 输入以下项的值:

    • 节点数下限
    • 节点数上限
    • CPU 利用率目标
    • 存储空间利用率目标
  6. 点击保存

gcloud

  1. 如果您不知道实例 ID,请使用 bigtable instances list 命令查看项目的实例列表:

    gcloud bigtable instances list
    
  2. 如果您不知道实例的集群 ID,请使用 bigtable clusters list 命令查看实例中的集群列表:

    gcloud bigtable clusters list --instances=INSTANCE_ID
    

    INSTANCE_ID 替换为实例的永久标识符。

  3. 使用 bigtable clusters update 命令启用自动扩缩:

    gcloud bigtable clusters update CLUSTER_ID \
        --instance=INSTANCE_ID \
        --autoscaling-max-nodes=AUTOSCALING_MAX_NODES \
        --autoscaling-min-nodes=AUTOSCALING_MIN_NODES \
        --autoscaling-cpu-target=AUTOSCALING_CPU_TARGET \
        --autoscaling-storage-target=AUTOSCALING_STORAGE_TARGET
    

    提供以下信息:

    • CLUSTER_ID:集群的永久性标识符。
    • INSTANCE_ID:实例的永久性标识符。
    • AUTOSCALING_MAX_NODES:节点数下限
    • AUTOSCALING_MIN_NODES:节点数上限
    • AUTOSCALING_CPU_TARGET:Bigtable 通过添加或移除节点来维持的 CPU 利用率目标百分数。此值必须介于 10 到 80 之间。
    • AUTOSCALING_STORAGE_TARGET:Bigtable 通过添加或移除节点维护的存储利用率目标,以 GiB/节点为单位。

      在许多情况下,实例中每个集群的节点数量应当相同,但也存在例外情况。了解节点和复制功能

停用自动扩缩

控制台

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

    打开实例列表

  2. 点击要更改的实例,然后点击修改实例

  3. 配置集群下,点击要更新的集群对应的

  4. 选择手动节点分配

  5. 数量字段中输入集群的节点数。

    在许多情况下,实例中每个集群的节点数量应当相同,但也存在例外情况。了解节点和复制功能

  6. 点击保存

gcloud

  1. 如果您不知道实例 ID,请使用 bigtable instances list 命令查看项目的实例列表:

    gcloud bigtable instances list
    
  2. 如果您不知道实例的集群 ID,请使用 bigtable clusters list 命令查看实例中的集群列表:

    gcloud bigtable clusters list --instances=INSTANCE_ID
    

    INSTANCE_ID 替换为实例的永久标识符。

  3. 使用 bigtable clusters update 命令停用自动扩缩并配置固定数量的节点:

    gcloud bigtable clusters update CLUSTER_ID \
        --instance=INSTANCE_ID \
        --num-nodes=NUM_NODES --disable-autoscaling
    

    提供以下信息:

    • CLUSTER_ID:集群的永久性标识符。
    • INSTANCE_ID: 实例的永久性标识符。
    • NUM_NODES:此字段是可选字段。如果未设置任何值,Bigtable 会根据您的数据占用空间自动分配节点,并针对 50% 的存储利用率进行优化。如果您想控制集群中的节点数量,请更新 NUM_NODES 值。确保将节点数设置为非零值。

      在许多情况下,实例中每个集群的节点数量应当相同,但也存在例外情况。了解节点和复制功能

更改自动扩缩设置

控制台

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

    打开实例列表

  2. 点击要更改的实例,然后点击修改实例

  3. 配置集群下,点击要更新的集群对应的

  4. 为以下要更改的任何项输入新值:

    • 节点数下限
    • 节点数上限
    • CPU 利用率目标
    • 存储空间利用率目标
  5. 点击保存

gcloud

  1. 如果您不知道实例 ID,请使用 bigtable instances list 命令查看项目的实例列表:

    gcloud bigtable instances list
    
  2. 如果您不知道实例的集群 ID,请使用 bigtable clusters list 命令查看实例中的集群列表:

    gcloud bigtable clusters list --instances=INSTANCE_ID
    

    INSTANCE_ID 替换为实例的永久标识符。

  3. 使用 bigtable clusters update 命令更新自动扩缩的设置:

    gcloud bigtable clusters update CLUSTER_ID \
        --instance=INSTANCE_ID \
        --autoscaling-max-nodes=AUTOSCALING_MAX_NODES \
        --autoscaling-min-nodes=AUTOSCALING_MIN_NODES \
        --autoscaling-cpu-target=AUTOSCALING_CPU_TARGET \
        --autoscaling-storage-target=AUTOSCALING_STORAGE_TARGET
    

    提供以下信息:

    • CLUSTER_ID:集群的永久性标识符。
    • INSTANCE_ID:实例的永久性标识符。

    此命令接受可选的自动扩缩标志。您可以使用所有标志,也可以仅查看要更改的值的标志。

    • AUTOSCALING_MAX_NODES:节点数下限。
    • AUTOSCALING_MIN_NODES:节点数上限。
    • AUTOSCALING_CPU_TARGET:Bigtable 通过添加或移除节点来维持的 CPU 利用率目标百分数。此值必须介于 10 到 80 之间。
    • AUTOSCALING_STORAGE_TARGET:Bigtable 通过添加或移除节点维护的存储利用率目标,以 GiB/节点为单位。

      在许多情况下,实例中每个集群的节点数量应当相同,但也存在例外情况。了解节点和复制功能

手动添加或移除节点

在大多数情况下,我们建议您启用自动扩缩。如果您选择不进行预配,并且集群的节点扩缩模式手动,您可以添加或移除节点,但节点数量保持不变,直到您再次更改。如需查看每个可用区每个 Google Cloud 项目的默认节点配额,请参阅节点配额。如果您需要预配超出默认数量的节点,可以申请更多

要更改集群中使用手动扩缩功能的节点数量,请执行以下操作:

控制台

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

    打开实例列表

  2. 点击要更改的实例,然后点击修改实例

  3. 配置集群下,点击要更新的集群对应的修改

  4. 手动节点分配部分的数量字段中,输入集群的节点数。

    在许多情况下,实例中每个集群的节点数量应当相同,但也存在例外情况。了解节点和复制功能

  5. 点击保存

gcloud

  1. 如果您不知道实例 ID,请使用 bigtable instances list 命令查看项目的实例列表:

    gcloud bigtable instances list
    
  2. 如果您不知道实例的集群 ID,请使用 bigtable clusters list 命令查看实例中的集群列表:

    gcloud bigtable clusters list --instances=INSTANCE_ID
    

    INSTANCE_ID 替换为实例的永久标识符。

  3. 使用 bigtable clusters update 命令更改节点数量:

    gcloud bigtable clusters update CLUSTER_ID \
        --instance=INSTANCE_ID \
        --num-nodes=NUM_NODES
    

    提供以下信息:

    • CLUSTER_ID:集群的永久性标识符。
    • INSTANCE_ID: 实例的永久性标识符。
    • NUM_NODES:此字段是可选字段。如果未设置任何值,Bigtable 会根据您的数据占用空间自动分配节点,并针对 50% 的存储利用率进行优化。如果您想控制集群中的节点数量,请更新 NUM_NODES 值。确保将节点数设置为非零值。

      在许多情况下,实例中每个集群的节点数量应当相同,但也存在例外情况。了解节点和复制功能

cbt

  1. 如果您不知道实例 ID,请使用 listinstances 命令查看项目的实例列表:

    cbt listinstances
    
  2. 如果您不知道实例的集群 ID,请使用 listclusters 命令查看实例中的集群列表:

    cbt -instance=INSTANCE_ID listclusters
    

    INSTANCE_ID 替换为实例的永久标识符。

  3. 使用 updatecluster 命令更改节点数量:

    cbt -instance=INSTANCE_ID updatecluster CLUSTER_ID NUM_NODES
    

    提供以下信息:

    • INSTANCE_ID:实例的永久性标识符。
    • CLUSTER_ID: 集群的永久性标识符。
    • NUM_NODES:此字段是可选字段。如果未设置任何值,Bigtable 会自动 根据数据量分配节点,并针对 50% 的存储空间进行优化 利用率。如果您想控制集群中的节点数量,请更新 NUM_NODES 值。确保将节点数量设置为非零值。

      在许多情况下,实例中每个集群的节点数量应当相同,但也存在例外情况。了解节点和复制功能

添加集群

您可以将集群添加到现有实例。一个实例最多可以在 8 个提供 Bigtable 的区域中具有集群。一个区域中的每个可用区只能包含一个集群。 新增集群的理想位置取决于您的用例。

如果您的实例受 CMEK 保护,则每个新集群都必须使用与集群位于同一区域的 CMEK 密钥。在向受 CMEK 保护的实例添加新集群之前,请在计划找到集群的区域中识别或创建 CMEK 密钥

在将集群添加到单集群实例之前,请先阅读更改复制表的垃圾回收政策时的适用限制,然后查看复制功能设置示例以了解相关建议。

如需向实例添加集群,请执行以下操作:

控制台

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

    打开实例列表

  2. 点击要更改的实例,然后点击修改实例

  3. 配置集群下,点击添加集群

    如果此按钮处于停用状态,则表示实例所含的集群已达到最大数量。

  4. 输入集群 ID,然后选择集群所在的区域和可用区。

  5. 输入集群的节点数量。

    在许多情况下,实例中每个集群的节点数量应当相同,但也存在例外情况。了解节点和复制功能

  6. 如果实例受 CMEK 保护,请选择或输入客户管理的密钥。CMEK 密钥必须与集群位于同一区域。

  7. 点击添加

  8. 对其他每个集群重复上述步骤,然后点击保存。Bigtable 便会创建集群并开始将数据复制到新集群。复制开始时,您可能会发现 CPU 使用率有所增加。

  9. 查看默认应用配置文件中的复制功能设置,确认这些设置是否适用于您的复制功能使用场景。您可能需要更新默认应用配置文件创建自定义应用配置文件

gcloud

  1. 如果您不知道实例 ID,请使用 bigtable instances list 命令查看项目的实例列表:

    gcloud bigtable instances list
    
  2. 如果您不知道实例的集群 ID,请使用 bigtable clusters list 命令查看实例中的集群列表:

    gcloud bigtable clusters list --instances=INSTANCE_ID
    

    INSTANCE_ID 替换为实例的永久标识符。

  3. 使用 bigtable clusters create 命令添加集群:

    gcloud bigtable clusters create CLUSTER_ID \
        --async \
        --instance=INSTANCE_ID \
        --zone=ZONE \
        [--num-nodes=NUM_NODES] \
        [--autoscaling-min-nodes=AUTOSCALING_MIN_NODES, \
        --autoscaling-max-nodes=AUTOSCALING_MAX_NODES, \
        --autoscaling-cpu-target=AUTOSCALING_CPU_TARGET \
        --autoscaling-storage-target=AUTOSCALING_STORAGE_TARGET] \
        [--kms-key=KMS_KEY --kms-keyring=KMS_KEYRING \
        --kms-location=KMS_LOCATION --kms-project=KMS_PROJECT] \
    

    提供以下信息:

    • CLUSTER_ID:集群的永久性标识符。
    • INSTANCE_ID: 实例的永久性标识符。
    • ZONE: 运行集群的地区

      一个区域中的每个可用区只能包含一个集群。 例如,如果实例在 us-east1-b 具有集群,您可以添加集群 位于同一区域的不同可用区中(例如 us-east1-c),或位于不同可用区的可用区中 例如 europe-west2-a查看地区列表

    --async 标志并非必需,但强烈建议使用。如果没有此标记,此命令可能会在操作完成之前发生超时。Bigtable 将继续在后台创建集群。

    此命令接受以下可选标志:

    • --kms-key=KMS_KEY:集群正在使用的 CMEK 密钥。您只能将 CMEK 集群添加到受 CMEK 保护的实例。
    • --kms-keyring=KMS_KEYRING:密钥的 KMS 密钥环 ID。
    • --kms-location=KMS_LOCATION:密钥的 Google Cloud 位置。
    • --kms-project=KMS_PROJECT:密钥的 Google Cloud 项目 ID。
    • --storage-type=STORAGE_TYPE:供集群使用的存储设备类型。实例中的每个集群都必须使用相同类型的存储设备。接受的值为 SSDHDD。 默认值为 SSD

    如果未为 --num-nodes 选项设置任何值,Bigtable 会根据您的数据占用情况自动向集群分配节点,并针对 50% 的存储利用率进行优化。这种自动 节点分配会对价格产生影响如果您想控制集群中的节点数量,请更新 NUM_NODES 值。确保将节点数量设置为非零值。 在许多情况下,实例中每个集群的节点数量应当相同,但也存在例外情况。了解节点和复制功能

    对于自动扩缩,请提供所有 autoscaling- 标志,并且不要使用 num-nodes。如需了解如何为自动扩缩设置选择值,请参阅自动扩缩。替换以下内容:

    • AUTOSCALING_MIN_NODES:集群的节点数下限。
    • AUTOSCALING_MAX_NODES:集群的节点数上限。
    • AUTOSCALING_CPU_TARGET:集群的目标 CPU 利用率。此值必须介于 10 到 80 之间。
    • AUTOSCALING_STORAGE_TARGET:Bigtable 通过添加或移除节点维护的存储利用率目标(以 GiB 为单位)。
  4. 查看默认应用配置文件中的复制功能设置,确认这些设置是否适用于您的复制功能使用场景。您可能需要更新默认应用配置文件创建自定义应用配置文件

cbt

  1. 如果您不知道实例 ID,请使用 listinstances 命令查看项目的实例列表:

    cbt listinstances
    
  2. 如果您不知道实例的集群 ID,请使用 listclusters 命令查看实例中的集群列表:

    cbt -instance=INSTANCE_ID listclusters
    

    INSTANCE_ID 替换为实例的永久标识符。

  3. 使用 createcluster 命令添加集群:

    
    cbt -instance=INSTANCE_ID \
    createcluster CLUSTER_ID \
    ZONE \
    NUM_NODES \
    STORAGE_TYPE
    
    

    提供以下信息:

    • INSTANCE_ID:实例的永久性标识符。
    • CLUSTER_ID: 集群的永久性标识符。
    • ZONE: 运行集群的地区

      一个区域中的每个可用区只能包含一个集群。 例如,如果实例在 us-east1-b 具有集群,您可以添加集群 位于同一区域的不同可用区中(例如 us-east1-c),或位于不同可用区的可用区中 例如 europe-west2-a查看地区列表

    • NUM_NODES:此字段是可选字段。如果未设置任何值,Bigtable 会自动 根据数据量分配节点,并针对 50% 的存储空间进行优化 利用率。如果您想控制集群中的节点数量,请更新 NUM_NODES 值。确保将节点数设置为非零值。

      在许多情况下,实例中每个集群的节点数量应当相同,但也存在例外情况。了解节点和复制功能

    • STORAGE_TYPE:供集群使用的存储设备类型。实例中的每个集群都必须使用相同类型的存储设备。接受的值为 SSDHDD

  4. 查看默认应用配置文件中的复制功能设置,确认这些设置是否适用于您的复制功能使用场景。您可能需要更新默认应用配置文件创建自定义应用配置文件

删除集群

如果某个实例包含多个集群,您可以保留一个集群而删除其他所有集群。 保留一个集群而删除其他所有集群时,复制功能也会自动停用。

在某些情况下,Bigtable 不允许删除集群:

  • 如果您的某个应用配置文件将所有流量路由到单个集群,则 Bigtable 将不允许您删除该集群。如需移除该集群,您必须先修改或删除应用配置文件
  • 如果您向现有实例添加新集群,则只有在初始数据全部复制到新集群之后,您才能删除该实例中的集群。

如需删除实例中的集群,请执行以下操作:

控制台

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

    打开实例列表

  2. 点击要更改的实例,然后点击修改实例

  3. 配置集群下,点击要删除的集群对应的删除集群

  4. 要取消删除操作,请点击撤消(在点击保存之前可用)。否则,请点击保存

gcloud

  1. 如果您不知道实例 ID,请使用 bigtable instances list 命令查看项目的实例列表:

    gcloud bigtable instances list
    
  2. 如果您不知道实例的集群 ID,请使用 bigtable clusters list 命令查看实例中的集群列表:

    gcloud bigtable clusters list --instances=INSTANCE_ID
    

    INSTANCE_ID 替换为实例的永久标识符。

  3. 使用 bigtable clusters delete 命令删除该集群:

    gcloud bigtable clusters delete CLUSTER_ID \
        --instance=INSTANCE_ID
    

    提供以下信息:

    • CLUSTER_ID:集群的永久性标识符。
    • INSTANCE_ID: 实例的永久性标识符。

cbt

  1. 如果您不知道实例 ID,请使用 listinstances 命令查看项目的实例列表:

    cbt listinstances
    
  2. 如果您不知道实例的集群 ID,请使用 listclusters 命令查看实例中的集群列表:

    cbt -instance=INSTANCE_ID listclusters
    

    INSTANCE_ID 替换为实例的永久标识符。

  3. 使用 deletecluster 命令删除该集群:

    cbt -instance=INSTANCE_ID deletecluster CLUSTER_ID
    

    提供以下信息:

    • INSTANCE_ID:实例的永久性标识符。
    • CLUSTER_ID: 集群的永久性标识符。

将数据移至新位置

如需将 Bigtable 实例中的数据移至新可用区或区域,请在要移至的位置添加新集群,然后在要移出的位置删除集群。在将数据复制到新集群之前,已删除的集群仍然可用,因此您不必担心任何请求失败。Bigtable 会自动将所有数据复制到新集群。

管理应用配置文件

应用配置文件可以控制您的应用与使用复制功能的实例之间的连接方式。每个拥有多个集群的实例都会有自己的默认应用配置文件。您还可以为每个实例创建许多不同的自定义应用配置文件,以便在您运行的每种应用中使用不同的应用配置文件。

如需了解如何设置实例的应用配置文件,请参阅配置应用配置文件。 有关可用于实现常见使用场景的设置示例,请参阅 复制配置示例

管理标签

标签采用键值对形式,可用于对相关实例进行分组并存储实例的相关元数据。

如需了解如何管理标签,请参阅为实例添加或更新标签以及移除实例的标签

更改实例的显示名称

如需更改实例的显示名称(Google Cloud 控制台会使用该名称来识别实例),请执行以下操作:

控制台

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

    打开实例列表

  2. 点击要更改的实例,然后点击修改实例

  3. 修改实例名称,然后点击保存

gcloud

  1. 如果您不知道实例 ID,请使用 bigtable instances list 命令查看项目的实例列表:

    gcloud bigtable instances list
    
  2. 使用 bigtable instances update 命令更新显示名:

    gcloud bigtable instances update INSTANCE_ID \
        --display-name=DISPLAY_NAME
    

    提供以下信息:

    • INSTANCE_ID:实例的永久性标识符。
    • DISPLAY_NAME: 在 Google Cloud 控制台中用于标识实例的直观易懂的名称。

cbt

此功能在 cbt CLI 中不可用。

后续步骤