126 lines
5.8 KiB
YAML
126 lines
5.8 KiB
YAML
- release_tracks: [GA, BETA, ALPHA]
|
|
help_text:
|
|
brief: Create a new Cloud Bigtable table.
|
|
description: Create a new Cloud Bigtable table.
|
|
examples: |
|
|
To create a table `my-table` in instance `my-instance` with a column family `my-family`, run:
|
|
|
|
$ {command} my-table --instance=my-instance --column-families="my-family"
|
|
|
|
To create a table that has a column family named `my-instance`, a garbage collection policy
|
|
that lets data expire after 864,000 seconds, and initial table splits on row keys `car` and `key`, run:
|
|
|
|
$ {command} my-table --instance=my-instance --column-families="my-family:maxage=864000s" --splits=car,key
|
|
|
|
To create a table `my-table` in instance `my-instance` that lets data in column family `my-family1`
|
|
expire after 10 days and keeps a maximum of 5 cells per column in column family `my-family-2` if the data is less than 5 days old, run:
|
|
|
|
$ {command} my-table --instance=my-instance --column-families="my-family-1:maxage=10d,my-family-2:maxversions=5||maxage=5d"
|
|
|
|
To create a table `my-table` that has one column family `my-family` that lets data expire after 10 days, and to enable a change stream
|
|
for the table to be kept for 7 days, run:
|
|
|
|
$ {command} my-table --instance=my-instance --column-families="my-family:maxage=10d" --change-stream-retention-period=7d
|
|
|
|
To create a deletion-protected table `my-table` in instance `my-instance` with a column family `my-family`, run:
|
|
|
|
$ {command} my-table --instance=my-instance --column-families="my-family" --deletion-protection
|
|
|
|
To create a table `my-table` without deletion protection in instance `my-instance` with a column family `my-family`, run:
|
|
|
|
$ {command} my-table --instance=my-instance --column-families="my-family" --no-deletion-protection
|
|
|
|
To create a table `my-table` with the default automated backup policy (retention_period=7d, frequency=1d) enabled in instance `my-instance` with a column family `my-family`, run:
|
|
|
|
$ {command} my-table --instance=my-instance --column-families="my-family" --enable-automated-backup
|
|
|
|
To create a table `my-table` with a custom automated backup policy configured to retain backups for 30 days in instance `my-instance` with a column family `my-family`, run:
|
|
|
|
$ {command} my-table --instance=my-instance --column-families="my-family" --automated-backup-retention_period=30d
|
|
|
|
request:
|
|
collection: bigtableadmin.projects.instances.tables
|
|
modify_request_hooks:
|
|
- googlecloudsdk.api_lib.bigtable.tables:UpdateRequestWithInput
|
|
- googlecloudsdk.api_lib.bigtable.tables:HandleAutomatedBackupPolicyCreateTableArgs
|
|
- googlecloudsdk.api_lib.bigtable.tables:HandleRowKeySchemaCreateTableArgs
|
|
|
|
arguments:
|
|
resource:
|
|
help_text: Cloud Bigtable table to create.
|
|
spec: !REF googlecloudsdk.command_lib.bigtable.resources:table
|
|
additional_arguments_hook: googlecloudsdk.api_lib.bigtable.tables:AddAutomatedBackupPolicyCreateTableArgs
|
|
|
|
params:
|
|
- api_field: createTableRequest.table.columnFamilies
|
|
arg_name: column-families
|
|
required: true
|
|
type: "arg_list"
|
|
help_text: |
|
|
A double-quote (`"`) wrapped list of family name and corresponding garbage collection rules
|
|
concatenated by `:`, where the rules are optional. For example:
|
|
`"family_1,family_2:maxage=5d&&maxversions=2,family_3:maxage=10d||maxversions=5"`
|
|
processor: googlecloudsdk.api_lib.bigtable.tables:ParseColumnFamilies
|
|
- api_field: createTableRequest.initialSplits
|
|
arg_name: splits
|
|
help_text: |
|
|
Row keys where the table should initially be split. For example: `car,key`
|
|
type: "arg_list"
|
|
processor: googlecloudsdk.api_lib.bigtable.tables:MakeSplits
|
|
- api_field: createTableRequest.table.changeStreamConfig.retentionPeriod
|
|
arg_name: change-stream-retention-period
|
|
help_text: |
|
|
The length of time to retain change stream data for the table, in the range of
|
|
[1 day, 7 days]. Acceptable units are days (d), hours (h), minutes (m), and seconds (s).
|
|
Passing in a value for this option enables a change stream for the table. Examples: `5d` or
|
|
`48h`.
|
|
processor: googlecloudsdk.api_lib.bigtable.tables:ParseChangeStreamRetentionPeriod
|
|
- api_field: createTableRequest.table.tieredStorageConfig.infrequentAccess.includeIfOlderThan
|
|
arg_name: tiered-storage-infrequent-access-older-than
|
|
release_tracks: [ALPHA, BETA]
|
|
help_text: |
|
|
The age at which data should be moved to infrequent access storage.
|
|
|
|
See `$ gcloud topic datetimes` for information on absolute duration formats.
|
|
processor: googlecloudsdk.api_lib.bigtable.tables:ParseTieredStorageConfigDuration
|
|
- api_field: createTableRequest.table.deletionProtection
|
|
arg_name: deletion-protection
|
|
type: bool
|
|
help_text: |
|
|
Once specified, the table is deletion protected.
|
|
- arg_name: row-key-schema-definition-file
|
|
required: false
|
|
help_text: |
|
|
The row key schema for the table. The schema is defined in a YAML or JSON file, equivalent
|
|
to the StructType protobuf message.
|
|
|
|
Example YAML:
|
|
|
|
```yaml
|
|
encoding:
|
|
delimitedBytes:
|
|
delimiter: '#'
|
|
fields:
|
|
- fieldName: field1
|
|
type:
|
|
bytesType:
|
|
encoding:
|
|
raw: {}
|
|
- fieldName: field2
|
|
type:
|
|
bytesType:
|
|
encoding:
|
|
raw: {}
|
|
```
|
|
|
|
- arg_name: row-key-schema-pre-encoded-bytes
|
|
type: bool
|
|
default: false
|
|
required: false
|
|
help_text: |
|
|
By default, Base64 encoding is applied to all binary fields in the YAML/JSON file (for
|
|
example, `encoding.delimitedBytes.delimiter`).
|
|
|
|
Use this to indicate that all binary fields are already encoded in the YAML/JSON file and
|
|
should not be encoded again.
|