Creates a Google Cloud Bigtable table inside an instance. For more information see the official documentation and API.
resource "google_bigtable_instance" "instance" {
name = "tf-instance"
cluster {
cluster_id = "tf-instance-cluster"
zone = "us-central1-b"
num_nodes = 3
storage_type = "HDD"
}
lifecycle {
prevent_destroy = true
}
}
resource "google_bigtable_table" "table" {
name = "tf-table"
instance_name = google_bigtable_instance.instance.name
split_keys = ["a", "b", "c"]
lifecycle {
prevent_destroy = true
}
column_family {
family = "family-first"
}
column_family {
family = "family-second"
}
change_stream_retention = "24h0m0s"
}
The following arguments are supported:
name
- (Required) The name of the table. Must be 1-50 characters and must only contain hyphens, underscores, periods, letters and numbers.
instance_name
- (Required) The name of the Bigtable instance.
split_keys
- (Optional) A list of predefined keys to split the table on.
column_family
- (Optional) A group of columns within a table which share a common configuration. This can be specified multiple times. Structure is documented below.
project
- (Optional) The ID of the project in which the resource belongs. If it
is not provided, the provider project is used.
deletion_protection
- (Optional) A field to make the table protected against data loss i.e. when set to PROTECTED, deleting the table, the column families in the table, and the instance containing the table would be prohibited. If not provided, deletion protection will be set to UNPROTECTED.
change_stream_retention
- (Optional) Duration to retain change stream data for the table. Set to 0 to disable. Must be between 1 and 7 days.
column_family
supports the following arguments:
family
- (Optional) The name of the column family.In addition to the arguments listed above, the following computed attributes are exported:
id
- an identifier for the resource with format projects/{{project}}/instances/{{instance_name}}/tables/{{name}}
This resource provides the following Timeouts configuration options:
create
- Default is 45 minutes.update
- Default is 20 minutes.Bigtable Tables can be imported using any of these accepted formats:
projects/{{project}}/instances/{{instance_name}}/tables/{{name}}
{{project}}/{{instance_name}}/{{name}}
{{instance_name}}/{{name}}
In Terraform v1.5.0 and later, use an import
block to import Bigtable Tables using one of the formats above. For example:
import {
id = "projects/{{project}}/instances/{{instance_name}}/tables/{{name}}"
to = google_bigtable_table.default
}
When using the terraform import
command, Bigtable Tables can be imported using one of the formats above. For example:
$ terraform import google_bigtable_table.default projects/{{project}}/instances/{{instance_name}}/tables/{{name}}
$ terraform import google_bigtable_table.default {{project}}/{{instance_name}}/{{name}}
$ terraform import google_bigtable_table.default {{instance_name}}/{{name}}