Modify an instance

After you create a Bigtable instance, you can update the following settings without any downtime:

  • Edition

    You can upgrade to Enterprise Plus or downgrade to Enterprise.

  • In-memory tier (Preview)

    You can enable or disable the in-memory tier for a cluster in an instance.

  • Autoscaling

    You can enable or disable autoscaling for an instance's clusters or configure the settings for clusters that already have autoscaling enabled.

  • The number of nodes in manually scaled clusters

    After you add or remove nodes, it typically takes a few minutes under load for Bigtable to optimize the cluster's performance.

  • The number of clusters in the instance

    After you add a cluster, it takes time for Bigtable to replicate your data to the new cluster. New clusters are replicated from the geographically nearest cluster in the instance. In general, the greater the distance, the longer replication will take.

  • The application profiles for the instance, which contain replication settings

  • The location of your data

  • The labels for the instance, which provide metadata about the instance

  • The display name for the instance

You can change a cluster ID only by deleting and recreating the cluster.

To change any of the following, you must create a new instance with your preferred settings, export your data from the old instance, import your data into the new instance, and then delete the old instance.

  • Instance ID

  • Storage type (SSD or HDD)

  • Customer-managed encryption key (CMEK) configuration

Before you begin

If you want to use the command-line interfaces for Bigtable, install the Google Cloud CLI and the cbt CLI if you haven't already.

Change editions

You can change between editions by upgrading to Enterprise Plus or downgrading to Enterprise.

Upgrade to Enterprise Plus

Once you change the edition, Bigtable automatically updates billing and you have immediate access to Enterprise Plus features.

Console

  1. In the Google Cloud console, open the list of Bigtable instances.

    Open the instance list

  2. Click the Enterprise instance that you want to upgrade, and then click Edit instance.

  3. In the Edition section, select Enterprise Plus.

  4. Click Save.

  5. Optional: enable the in-memory tier.

gcloud

Use the bigtable instances update command to change the edition:

gcloud bigtable instances update INSTANCE_ID \
    --edition=ENTERPRISE_PLUS

Provide the following:

  • INSTANCE_ID: The permanent identifier for the instance.

Downgrade to Enterprise

To downgrade from Enterprise Plus to Enterprise, you must disable features that are exclusive to Enterprise Plus. Once you change the edition, Bigtable automatically updates billing and you lose access to Enterprise Plus features.

Console

  1. In the Google Cloud console, open the list of Bigtable instances.

    Open the instance list

  2. Click the Enterprise instance that you want to downgrade, and then click Edit instance.

  3. In the Edition section, select Enterprise.

  4. Click Save.

gcloud

Use the bigtable instances update command to change the edition:

gcloud bigtable instances update INSTANCE_ID \
    --edition=ENTERPRISE

Provide the following:

  • INSTANCE_ID: The permanent identifier for the instance.

Configure the in-memory tier

You can enable, disable, or view information about the in-memory tier.

Required roles

To get the permissions that you need to configure the in-memory tier, ask your administrator to grant you the Bigtable Admin (roles/bigtable.admin) Identity and Access Management (IAM) role on the instance.

This predefined role contains the permissions that Bigtable requires to work with the in-memory tier. To see the exact permissions that are required, expand the Required permissions section:

Required permissions

  • bigtable.memoryLayer.get
  • bigtable.memoryLayer.list
  • bigtable.memoryLayer.update

You might also be able to get these permissions with custom roles or other predefined roles.

For more information about Bigtable roles and permissions, see Access control with IAM.

Enable the in-memory tier

In the Enterprise Plus edition, you can enable the in-memory tier on a cluster. To use the in-memory tier, you must use an app profile that you configured for in-memory. For more information, see In-memory tier overview.

Console

  1. In the Google Cloud console, open the list of Bigtable instances.

    Open the instance list

  2. Click the Enterprise instance that you want to update, and then click Edit instance.

  3. Click Edit cluster for the cluster where you want to enable the in-memory tier.

  4. Select Enable in-memory.

  5. Click Save.

gcloud

To enable the in-memory tier on a cluster, use the gcloud beta bigtable memory-layers update command.

gcloud beta bigtable memory-layers update CLUSTER_ID \
    --instance=INSTANCE_ID \
    --enable

Provide the following:

  • CLUSTER_ID: The permanent identifier for the cluster.
  • INSTANCE_ID: The permanent identifier for the instance.

Disable the in-memory tier

Before you downgrade from Enterprise Plus to Enterprise, you must disable the in-memory tier.

Console

  1. In the Google Cloud console, open the list of Bigtable instances.

    Open the instance list

  2. Click the Enterprise instance that you want to update, and then click Edit instance.

  3. Click Edit cluster for the cluster where you want to disable the in-memory tier.

  4. Clear Enable in-memory.

  5. Click Save.

gcloud

To disable the in-memory tier on a cluster, use the gcloud beta bigtable memory-layers update command.

gcloud beta bigtable memory-layers update CLUSTER_ID \
    --instance=INSTANCE_ID \
    --disable

Provide the following:

  • CLUSTER_ID: The permanent identifier for the cluster.
  • INSTANCE_ID: The permanent identifier for the instance.

Get a list of clusters with the in-memory tier

Console

To view clusters with in-memory tier enabled on the instance overview page, follow these steps:

  1. In the Google Cloud console, open the list of Bigtable instances.

    Open the instance list

  2. Click the ID of the instance that has the cluster that you want to view.

  3. In the cluster table, view the In-memory tier column.

gcloud

To list the clusters with in-memory tier enabled on an instance, use the gcloud beta bigtable memory-layers list command.

gcloud beta bigtable memory-layers list \
    --instance=INSTANCE_ID

Provide the following:

  • INSTANCE_ID: The permanent identifier for the instance.

View information about the in-memory tier

You can view the status and capacity of a cluster's in-memory tier.

Console

  1. In the Google Cloud console, open the list of Bigtable instances.

    Open the instance list

  2. Click the ID of the instance that has the cluster that you want to view.

  3. In the cluster table, view the In-memory column of your cluster.

gcloud

To view information about the in-memory tier on a cluster, such as the in-memory tier state, use the gcloud beta bigtable memory-layers describe command.

gcloud beta bigtable memory-layers describe CLUSTER_ID \
    --instance=INSTANCE_ID

Provide the following:

  • CLUSTER_ID: The permanent identifier for the cluster.
  • INSTANCE_ID: The permanent identifier for the instance.

Configure autoscaling

You can enable or disable autoscaling for any existing cluster. You can also change the CPU utilization target, minimum number of nodes, and maximum number of nodes for a cluster. For guidance on choosing your autoscaling settings, see Autoscaling. You are not able to use the cbt CLI to configure autoscaling.

Enable autoscaling

Console

  1. In the Google Cloud console, open the list of Bigtable instances.

    Open the instance list

  2. Click the instance that you want to change, then click Edit instance.

  3. Under Configure clusters, click Edit for the cluster that you want to update.

  4. Select Autoscaling.

  5. Enter values for the following:

    • Minimum number of nodes
    • Maximum number of nodes
    • CPU utilization target
    • Storage utilization target
  6. Click Save.

gcloud

  1. If you don't know the instance ID, use the bigtable instances list command to view a list of your project's instances:

    gcloud bigtable instances list
    
  2. If you don't know the instance's cluster IDs, use the bigtable clusters list command to view a list of clusters in the instance:

    gcloud bigtable clusters list --instances=INSTANCE_ID
    

    Replace INSTANCE_ID with the permanent identifier for the instance.

  3. Use the bigtable clusters update command to enable autoscaling:

    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
    

    Provide the following:

    • CLUSTER_ID: The permanent identifier for the cluster.
    • INSTANCE_ID: The permanent identifier for the instance.
    • AUTOSCALING_MAX_NODES: The minimum number of nodes
    • AUTOSCALING_MIN_NODES: The maximum number of nodes
    • AUTOSCALING_CPU_TARGET: The CPU utilization target percentage that Bigtable maintains by adding or removing nodes. This value must be from 10 to 80.
    • AUTOSCALING_STORAGE_TARGET: The storage utilization target in GiB per node that Bigtable maintains by adding or removing nodes

      In many cases, each cluster in an instance should have the same number of nodes, but there are exceptions. Learn about nodes and replication.

Disable autoscaling

Console

  1. In the Google Cloud console, open the list of Bigtable instances.

    Open the instance list

  2. Click the instance that you want to change, then click Edit instance.

  3. Under Configure clusters, click for the cluster that you want to update.

  4. Select Manual node allocation.

  5. Enter the number of nodes for the cluster in the Quantity field.

    In many cases, each cluster in an instance should have the same number of nodes, but there are exceptions. Learn about nodes and replication.

  6. Click Save.

gcloud

  1. If you don't know the instance ID, use the bigtable instances list command to view a list of your project's instances:

    gcloud bigtable instances list
    
  2. If you don't know the instance's cluster IDs, use the bigtable clusters list command to view a list of clusters in the instance:

    gcloud bigtable clusters list --instances=INSTANCE_ID
    

    Replace INSTANCE_ID with the permanent identifier for the instance.

  3. Use the bigtable clusters update command to disable autoscaling and configure a constant number of nodes:

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

    Provide the following:

    • CLUSTER_ID: The permanent identifier for the cluster.
    • INSTANCE_ID: The permanent identifier for the instance.
    • NUM_NODES: This field is optional. If no value is set, Bigtable automatically allocates nodes based on your data footprint and optimizes for 50% storage utilization. If you want to control the number of nodes in a cluster, update the NUM_NODES value. Ensure that number of nodes is set to a non-zero value.

      In many cases, each cluster in an instance should have the same number of nodes, but there are exceptions. Learn about nodes and replication.

Change autoscaling settings

Console

  1. In the Google Cloud console, open the list of Bigtable instances.

    Open the instance list

  2. Click the instance that you want to change, then click Edit instance.

  3. Under Configure clusters, click for the cluster that you want to update.

  4. Enter new values for any of the floowing that you want to change:

    • Minimum number of nodes
    • Maximum number of nodes
    • CPU utilization target
    • Storage utilization target
  5. Click Save.

gcloud

  1. If you don't know the instance ID, use the bigtable instances list command to view a list of your project's instances:

    gcloud bigtable instances list
    
  2. If you don't know the instance's cluster IDs, use the bigtable clusters list command to view a list of clusters in the instance:

    gcloud bigtable clusters list --instances=INSTANCE_ID
    

    Replace INSTANCE_ID with the permanent identifier for the instance.

  3. Use the bigtable clusters update command to update the settings for autoscaling:

    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
    

    Provide the following:

    • CLUSTER_ID: The permanent identifier for the cluster.
    • INSTANCE_ID: The permanent identifier for the instance.

    The command accepts optional autoscaling flags. You can use all of the flags or just the flags for the values that you want to change.

    • AUTOSCALING_MAX_NODES: The minimum number of nodes.
    • AUTOSCALING_MIN_NODES: The maximum number of nodes.
    • AUTOSCALING_CPU_TARGET: The CPU utilization target percentage that Bigtable maintains by adding or removing nodes. This value must be from 10 to 80.
    • AUTOSCALING_STORAGE_TARGET: The storage utilization target in GiB per node that Bigtable maintains by adding or removing nodes.

      In many cases, each cluster in an instance should have the same number of nodes, but there are exceptions. Learn about nodes and replication.

Add or remove nodes manually

In most cases, we recommend that you enable autoscaling. If you choose not to, and your cluster's node scaling mode is manual, you can add or remove nodes, and the number of nodes remains constant until you change it again. To review the default node quotas per zone per Google Cloud project, see Node quotas. If you need to provision more nodes than the default, you can request more.

To change the number of nodes in a cluster that uses manual scaling:

Console

  1. In the Google Cloud console, open the list of Bigtable instances.

    Open the instance list

  2. Click the instance that you want to change, then click Edit instance.

  3. Under Configure clusters, click Edit for the cluster that you want to update.

  4. In the Manual node allocation section, enter the number of nodes for the cluster in the Quantity field.

    In many cases, each cluster in an instance should have the same number of nodes, but there are exceptions. Learn about nodes and replication.

  5. Click Save.

gcloud

  1. If you don't know the instance ID, use the bigtable instances list command to view a list of your project's instances:

    gcloud bigtable instances list
    
  2. If you don't know the instance's cluster IDs, use the bigtable clusters list command to view a list of clusters in the instance:

    gcloud bigtable clusters list --instances=INSTANCE_ID
    

    Replace INSTANCE_ID with the permanent identifier for the instance.

  3. Use the bigtable clusters update command to change the number of nodes:

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

    Provide the following:

    • CLUSTER_ID: The permanent identifier for the cluster.
    • INSTANCE_ID: The permanent identifier for the instance.
    • NUM_NODES: This field is optional. If no value is set, Bigtable automatically allocates nodes based on your data footprint and optimizes for 50% storage utilization. If you want to control the number of nodes in a cluster, update the NUM_NODES value. Ensure that number of nodes is set to a non-zero value.

      In many cases, each cluster in an instance should have the same number of nodes, but there are exceptions. Learn about nodes and replication.

cbt

  1. If you don't know the instance ID, use the listinstances command to view a list of your project's instances:

    cbt listinstances
    
  2. If you don't know the instance's cluster IDs, use the listclusters command to view a list of clusters in the instance:

    cbt -instance=INSTANCE_ID listclusters
    

    Replace