Package bigtable is an API to Google Cloud Bigtable.
See https://cloud.google.com/bigtable/docs/ for general product documentation.
See https://godoc.org/cloud.google.com/go for authentication, timeouts, connection pooling and similar aspects of this package.
Reading
The principal way to read from a Bigtable is to use the ReadRows method on *Table. A RowRange specifies a contiguous portion of a table. A Filter may be provided through RowFilter to limit or transform the data that is returned.
tbl := client . Open ( "mytable" ) // Read all the rows starting with "com.google.", but only fetch the columns // in the "links" family. rr := bigtable . PrefixRange ( "com.google." ) err := tbl . ReadRows ( ctx , rr , func ( r Row ) bool { // TODO: do something with r. return true // Keep going. }, bigtable . RowFilter ( bigtable . FamilyFilter ( "links" ))) if err != nil { // TODO: handle err. }
To read a single row, use the ReadRow helper method:
r , err := tbl . ReadRow ( ctx , "com.google.cloud" ) // "com.google.cloud" is the entire row key if err != nil { // TODO: handle err. } // TODO: use r.
Writing
This API exposes two distinct forms of writing to a Bigtable: a Mutation and a ReadModifyWrite. The former expresses idempotent operations. The latter expresses non-idempotent operations and returns the new values of updated cells. These operations are performed by creating a Mutation or ReadModifyWrite (with NewMutation or NewReadModifyWrite), building up one or more operations on that, and then using the Apply or ApplyReadModifyWrite methods on a Table.
For instance, to set a couple of cells in a table:
tbl := client . Open ( "mytable" ) mut := bigtable . NewMutation () // To use numeric values that will later be incremented, // they need to be big-endian encoded as 64-bit integers. buf := new ( bytes . Buffer ) initialLinkCount := 1 // The initial number of links. if err := binary . Write ( buf , binary . BigEndian , initialLinkCount ); err != nil { // TODO: handle err. } mut . Set ( "links" , "maps.google.com" , bigtable . Now (), buf . Bytes ()) mut . Set ( "links" , "golang.org" , bigtable . Now (), buf . Bytes ()) err := tbl . Apply ( ctx , "com.google.cloud" , mut ) if err != nil { // TODO: handle err. }
To increment an encoded value in one cell:
tbl := client . Open ( "mytable" ) rmw := bigtable . NewReadModifyWrite () rmw . Increment ( "links" , "golang.org" , 12 ) // add 12 to the cell in column "links:golang.org" r , err := tbl . ApplyReadModifyWrite ( ctx , "com.google.cloud" , rmw ) if err != nil { // TODO: handle err. } // TODO: use r.
Retries
If a read or write operation encounters a transient error it will be retried until a successful response, an unretryable error or the context deadline is reached. Non-idempotent writes (where the timestamp is set to ServerTime) will not be retried. In the case of ReadRows, retried calls will not re-scan rows that have already been processed.
Constants
NotKnown, Ready, Creating
const
(
// NotKnown represents the state of an instance that could not be determined.
NotKnown
InstanceState
=
InstanceState
(
btapb
.
Instance_STATE_NOT_KNOWN
)
// Ready represents the state of an instance that has been successfully created.
Ready
=
InstanceState
(
btapb
.
Instance_READY
)
// Creating represents the state of an instance that is currently being created.
Creating
=
InstanceState
(
btapb
.
Instance_CREATING
)
)
UNSPECIFIED, PRODUCTION, DEVELOPMENT
const
(
// UNSPECIFIED instance types default to PRODUCTION
UNSPECIFIED
InstanceType
=
InstanceType
(
btapb
.
Instance_TYPE_UNSPECIFIED
)
PRODUCTION
=
InstanceType
(
btapb
.
Instance_PRODUCTION
)
DEVELOPMENT
=
InstanceType
(
btapb
.
Instance_DEVELOPMENT
)
)
MultiClusterRouting, SingleClusterRouting
const
(
// MultiClusterRouting is a policy that allows read/write requests to be
// routed to any cluster in the instance. Requests will will fail over to
// another cluster in the event of transient errors or delays. Choosing
// this option sacrifices read-your-writes consistency to improve
// availability.
MultiClusterRouting
=
"multi_cluster_routing_use_any"
// SingleClusterRouting is a policy that unconditionally routes all
// read/write requests to a specific cluster. This option preserves
// read-your-writes consistency, but does not improve availability.
SingleClusterRouting
=
"single_cluster_routing"
)
Routing policies.
Scope, ReadonlyScope, AdminScope, InstanceAdminScope
const
(
// Scope is the OAuth scope for Cloud Bigtable data operations.
Scope
=
"https://www.googleapis.com/auth/bigtable.data"
// ReadonlyScope is the OAuth scope for Cloud Bigtable read-only data
// operations.
ReadonlyScope
=
"https://www.googleapis.com/auth/bigtable.readonly"
// AdminScope is the OAuth scope for Cloud Bigtable table admin operations.
AdminScope
=
"https://www.googleapis.com/auth/bigtable.admin.table"
// InstanceAdminScope is the OAuth scope for Cloud Bigtable instance (and
// cluster) admin operations.
InstanceAdminScope
=
"https://www.googleapis.com/auth/bigtable.admin.cluster"
)
Scope constants for authentication credentials. These should be used when using credential creation functions such as oauth.NewServiceAccountFromFile.
DefaultSnapshotDuration
DefaultSnapshotDuration is the default TTL for a snapshot.
Functions
func Equal
Equal compares Type objects.
func GCRuleToString
func
GCRuleToString
(
rule
*
bttdpb
.
GcRule
)
string
GCRuleToString converts the given GcRule proto to a user-visible string.
func MarshalJSON
MarshalJSON returns the string representation of the Type protobuf.
AdminClient
type
AdminClient
struct
{
// contains filtered or unexported fields
}
AdminClient is a client type for performing admin operations within a specific instance.
func NewAdminClient
func
NewAdminClient
(
ctx
context
.
Context
,
project
,
instance
string
,
opts
...
option
.
ClientOption
)
(
*
AdminClient
,
error
)
NewAdminClient creates a new AdminClient for a given project and instance.
func (*AdminClient) AuthorizedViewIAM
func
(
ac
*
AdminClient
)
AuthorizedViewIAM
(
table
,
authorizedView
string
)
*
iam
.
Handle
AuthorizedViewIAM creates an IAM Handle specific to a given Table and AuthorizedView.
func (*AdminClient) AuthorizedViewInfo
func
(
ac
*
AdminClient
)
AuthorizedViewInfo
(
ctx
context
.
Context
,
tableID
,
authorizedViewID
string
)
(
*
AuthorizedViewInfo
,
error
)
AuthorizedViewInfo retrieves information about an authorized view.
func (*AdminClient) AuthorizedViews
func
(
ac
*
AdminClient
)
AuthorizedViews
(
ctx
context
.
Context
,
tableID
string
)
([]
string
,
error
)
AuthorizedViews returns a list of the authorized views in the table.
func (*AdminClient) BackupIAM
func
(
ac
*
AdminClient
)
BackupIAM
(
cluster
,
backup
string
)
*
iam
.
Handle
BackupIAM creates an IAM Handle specific to a given Cluster and Backup.
func (*AdminClient) BackupInfo
func
(
ac
*
AdminClient
)
BackupInfo
(
ctx
context
.
Context
,
cluster
,
backup
string
)
(
*
BackupInfo
,
error
)
BackupInfo gets backup metadata.
func (*AdminClient) Backups
func
(
ac
*
AdminClient
)
Backups
(
ctx
context
.
Context
,
cluster
string
)
*
BackupIterator
Backups returns a BackupIterator for iterating over the backups in a cluster. To list backups across all of the clusters in the instance specify "-" as the cluster.
func (*AdminClient) Close
func
(
ac
*
AdminClient
)
Close
()
error
Close closes the AdminClient.
func (*AdminClient) CopyBackup
func
(
ac
*
AdminClient
)
CopyBackup
(
ctx
context
.
Context
,
sourceCluster
,
sourceBackup
,
destProject
,
destInstance
,
destCluster
,
destBackup
string
,
expireTime
time
.
Time
)
error
CopyBackup copies the specified source backup with the user-provided expire time.
func (*AdminClient) CreateAuthorizedView
func
(
ac
*
AdminClient
)
CreateAuthorizedView
(
ctx
context
.
Context
,
conf
*
AuthorizedViewConf
)
error
CreateAuthorizedView creates a new authorized view in a table.
func (*AdminClient) CreateBackup
func
(
ac
*
AdminClient
)
CreateBackup
(
ctx
context
.
Context
,
table
,
cluster
,
backup
string
,
expireTime
time
.
Time
)
error
CreateBackup creates a new backup in the specified cluster from the specified source table with the user-provided expire time.
func (*AdminClient) CreateBackupWithOptions
func
(
ac
*
AdminClient
)
CreateBackupWithOptions
(
ctx
context
.
Context
,
table
,
cluster
,
backup
string
,
opts
...
BackupOption
)
error
CreateBackupWithOptions is similar to CreateBackup but lets the user specify additional options.
func (*AdminClient) CreateColumnFamily
func
(
ac
*
AdminClient
)
CreateColumnFamily
(
ctx
context
.
Context
,
table
,
family
string
)
error
CreateColumnFamily creates a new column family in a table.
func (*AdminClient) CreateColumnFamilyWithConfig
func
(
ac
*
AdminClient
)
CreateColumnFamilyWithConfig
(
ctx
context
.
Context
,
table
,
family
string
,
config
Family
)
error
CreateColumnFamilyWithConfig creates a new column family in a table with an optional GC policy and value type.
func (*AdminClient) CreatePresplitTable
func
(
ac
*
AdminClient
)
CreatePresplitTable
(
ctx
context
.
Context
,
table
string
,
splitKeys
[]
string
)
error
CreatePresplitTable creates a new table in the instance. The list of row keys will be used to initially split the table into multiple tablets. Given two split keys, "s1" and "s2", three tablets will be created, spanning the key ranges: [, s1), [s1, s2), [s2, ). This method may return before the table's creation is complete.
func (*AdminClient) CreateTable
func
(
ac
*
AdminClient
)
CreateTable
(
ctx
context
.
Context
,
table
string
)
error
CreateTable creates a new table in the instance. This method may return before the table's creation is complete.
func (*AdminClient) CreateTableFromConf
func
(
ac
*
AdminClient
)
CreateTableFromConf
(
ctx
context
.
Context
,
conf
*
TableConf
)
error
CreateTableFromConf creates a new table in the instance from the given configuration.
func (*AdminClient) CreateTableFromSnapshot
func
(
ac
*
AdminClient
)
CreateTableFromSnapshot
(
ctx
context
.
Context
,
table
,
cluster
,
snapshot
string
)
error
CreateTableFromSnapshot creates a table from snapshot. The table will be created in the same cluster as the snapshot.
This is a private alpha release of Cloud Bigtable snapshots. This feature is not currently available to most Cloud Bigtable customers. This feature might be changed in backward-incompatible ways and is not recommended for production use. It is not subject to any SLA or deprecation policy.
func (*AdminClient) DeleteAuthorizedView
func
(
ac
*
AdminClient
)
DeleteAuthorizedView
(
ctx
context
.
Context
,
tableID
,
authorizedViewID
string
)
error
DeleteAuthorizedView deletes an authorized view in a table.
func (*AdminClient) DeleteBackup
func
(
ac
*
AdminClient
)
DeleteBackup
(
ctx
context
.
Context
,
cluster
,
backup
string
)
error
DeleteBackup deletes a backup in a cluster.
func (*AdminClient) DeleteColumnFamily
func
(
ac
*
AdminClient
)
DeleteColumnFamily
(
ctx
context
.
Context
,
table
,
family
string
)
error
DeleteColumnFamily deletes a column family in a table and all of its data.
func (*AdminClient) DeleteSnapshot
func
(
ac
*
AdminClient
)
DeleteSnapshot
(
ctx
context
.
Context
,
cluster
,
snapshot
string
)
error
DeleteSnapshot deletes a snapshot in a cluster.
This is a private alpha release of Cloud Bigtable snapshots. This feature is not currently available to most Cloud Bigtable customers. This feature might be changed in backward-incompatible ways and is not recommended for production use. It is not subject to any SLA or deprecation policy.
func (*AdminClient) DeleteTable
func
(
ac
*
AdminClient
)
DeleteTable
(
ctx
context
.
Context
,
table
string
)
error
DeleteTable deletes a table and all of its data.
func (*AdminClient) DropAllRows
func
(
ac
*
AdminClient
)
DropAllRows
(
ctx
context
.
Context
,
table
string
)
error
DropAllRows permanently deletes all rows from the specified table.
func (*AdminClient) DropRowRange
func
(
ac
*
AdminClient
)
DropRowRange
(
ctx
context
.
Context
,
table
,
rowKeyPrefix
string
)
error
DropRowRange permanently deletes a row range from the specified table.
func (*AdminClient) EncryptionInfo
func
(
ac
*
AdminClient
)
EncryptionInfo
(
ctx
context
.
Context
,
table
string
)
(
EncryptionInfoByCluster
,
error
)
EncryptionInfo gets the current encryption info for the table across all of the clusters. The returned map will be keyed by cluster id and contain a status for all of the keys in use.
func (*AdminClient) RestoreTable
func
(
ac
*
AdminClient
)
RestoreTable
(
ctx
context
.
Context
,
table
,
cluster
,
backup
string
)
error
RestoreTable creates a table from a backup. The table will be created in the same cluster as the backup. To restore a table to a different instance, see RestoreTableFrom.
func (*AdminClient) RestoreTableFrom
func
(
ac
*
AdminClient
)
RestoreTableFrom
(
ctx
context
.
Context
,
sourceInstance
,
table
,
sourceCluster
,
backup
string
)
error
RestoreTableFrom creates a new table in the admin's instance by restoring from the given backup and instance. To restore within the same instance, see RestoreTable. sourceInstance (ex. "my-instance") and sourceCluster (ex. "my-cluster") are the instance and cluster in which the new table will be restored from. tableName (ex. "my-restored-table") will be the name of the newly created table. backupName (ex. "my-backup") is the name of the backup to restore.
func (*AdminClient) SetGCPolicy
func
(
ac
*
AdminClient
)
SetGCPolicy
(
ctx
context
.
Context
,
table
,
family
string
,
policy
GCPolicy
)
error
SetGCPolicy specifies which cells in a column family should be garbage collected. GC executes opportunistically in the background; table reads may return data matching the GC policy.
func (*AdminClient) SetGCPolicyWithOptions
func
(
ac
*
AdminClient
)
SetGCPolicyWithOptions
(
ctx
context
.
Context
,
table
,
family
string
,
policy
GCPolicy
,
opts
...
GCPolicyOption
)
error
SetGCPolicyWithOptions is similar to SetGCPolicy but allows passing options
func (*AdminClient) SnapshotInfo
func
(
ac
*
AdminClient
)
SnapshotInfo
(
ctx
context
.
Context
,
cluster
,
snapshot
string
)
(
*
SnapshotInfo
,
error
)
SnapshotInfo gets snapshot metadata.
This is a private alpha release of Cloud Bigtable snapshots. This feature is not currently available to most Cloud Bigtable customers. This feature might be changed in backward-incompatible ways and is not recommended for production use. It is not subject to any SLA or deprecation policy.
func (*AdminClient) SnapshotTable
func
(
ac
*
AdminClient
)
SnapshotTable
(
ctx
context
.
Context
,
table
,
cluster
,
snapshot
string
,
ttl
time
.
Duration
)
error
SnapshotTable creates a new snapshot in the specified cluster from the
specified source table. Setting the TTL to DefaultSnapshotDuration
will
use the server side default for the duration.
This is a private alpha release of Cloud Bigtable snapshots. This feature is not currently available to most Cloud Bigtable customers. This feature might be changed in backward-incompatible ways and is not recommended for production use. It is not subject to any SLA or deprecation policy.
func (*AdminClient) Snapshots
func
(
ac
*
AdminClient
)
Snapshots
(
ctx
context
.
Context
,
cluster
string
)
*
SnapshotIterator
Snapshots returns a SnapshotIterator for iterating over the snapshots in a cluster. To list snapshots across all of the clusters in the instance specify "-" as the cluster.
This is a private alpha release of Cloud Bigtable snapshots. This feature is not currently available to most Cloud Bigtable customers. This feature might be changed in backward-incompatible ways and is not recommended for production use. It is not subject to any SLA or deprecation policy.
func (*AdminClient) TableIAM
func
(
ac
*
AdminClient
)
TableIAM
(
tableID
string
)
*
iam
.
Handle
TableIAM creates an IAM Handle specific to a given Instance and Table within the configured project.
func (*AdminClient) TableInfo
func
(
ac
*
AdminClient
)
TableInfo
(
ctx
context
.
Context
,
table
string
)
(
*
TableInfo
,
error
)
TableInfo retrieves information about a table.
func (*AdminClient) Tables
func
(
ac
*
AdminClient
)
Tables
(
ctx
context
.
Context
)
([]
string
,
error
)
Tables returns a list of the tables in the instance.
func (*AdminClient) UpdateAuthorizedView
func
(
ac
*
AdminClient
)
UpdateAuthorizedView
(
ctx
context
.
Context
,
conf
UpdateAuthorizedViewConf
)
error
UpdateAuthorizedView updates an authorized view in a table according to the given configuration.
func (*AdminClient) UpdateBackup
func
(
ac
*
AdminClient
)
UpdateBackup
(
ctx
context
.
Context
,
cluster
,
backup
string
,
expireTime
time
.
Time
)
error
UpdateBackup updates the backup metadata in a cluster. The API only supports updating expire time.
func (*AdminClient) UpdateBackupHotToStandardTime
func
(
ac
*
AdminClient
)
UpdateBackupHotToStandardTime
(
ctx
context
.
Context
,
cluster
,
backup
string
,
hotToStandardTime
time
.
Time
)
error
UpdateBackupHotToStandardTime updates the HotToStandardTime of a hot backup.
func (*AdminClient) UpdateBackupRemoveHotToStandardTime
func
(
ac
*
AdminClient
)
UpdateBackupRemoveHotToStandardTime
(
ctx
context
.
Context
,
cluster
,
backup
string
)
error
UpdateBackupRemoveHotToStandardTime removes the HotToStandardTime of a hot backup.
func (*AdminClient) UpdateFamily
func
(
ac
*
AdminClient
)
UpdateFamily
(
ctx
context
.
Context
,
table
,
familyName
string
,
family
Family
,
opts
...
UpdateFamilyOption
)
error
UpdateFamily updates column families' garbage collection policies and value type.
func (*AdminClient) UpdateTableDisableAutomatedBackupPolicy
func
(
ac
*
AdminClient
)
UpdateTableDisableAutomatedBackupPolicy
(
ctx
context
.
Context
,
tableID
string
)
error
UpdateTableDisableAutomatedBackupPolicy updates a table to disable automated backups for table ID.
func (*AdminClient) UpdateTableDisableChangeStream
func
(
ac
*
AdminClient
)
UpdateTableDisableChangeStream
(
ctx
context
.
Context
,
tableID
string
)
error
UpdateTableDisableChangeStream updates a table to disable change stream for table ID.
func (*AdminClient) UpdateTableRemoveRowKeySchema
func
(
ac
*
AdminClient
)
UpdateTableRemoveRowKeySchema
(
ctx
context
.
Context
,
tableID
string
)
error
UpdateTableRemoveRowKeySchema removes a RowKeySchema from a table.
func (*AdminClient) UpdateTableWithAutomatedBackupPolicy
func
(
ac
*
AdminClient
)
UpdateTableWithAutomatedBackupPolicy
(
ctx
context
.
Context
,
tableID
string
,
automatedBackupPolicy
TableAutomatedBackupPolicy
)
error
UpdateTableWithAutomatedBackupPolicy updates a table to with the given table ID and automated backup policy config.
func (*AdminClient) UpdateTableWithChangeStream
func
(
ac
*
AdminClient
)
UpdateTableWithChangeStream
(
ctx
context
.
Context
,
tableID
string
,
changeStreamRetention
ChangeStreamRetention
)
error
UpdateTableWithChangeStream updates a table to with the given table ID and change stream config.
func (*AdminClient) UpdateTableWithDeletionProtection
func
(
ac
*
AdminClient
)
UpdateTableWithDeletionProtection
(
ctx
context
.
Context
,
tableID
string
,
deletionProtection
DeletionProtection
)
error
UpdateTableWithDeletionProtection updates a table with the given table ID and deletion protection parameter.
func (*AdminClient) UpdateTableWithRowKeySchema
func
(
ac
*
AdminClient
)
UpdateTableWithRowKeySchema
(
ctx
context
.
Context
,
tableID
string
,
rowKeySchema
StructType
)
error
UpdateTableWithRowKeySchema updates a table with RowKeySchema.
func (*AdminClient) WaitForReplication
func
(
ac
*
AdminClient
)
WaitForReplication
(
ctx
context
.
Context
,
table
string
)
error
WaitForReplication waits until all the writes committed before the call started have been propagated to all the clusters in the instance via replication.
AggregateType
type
AggregateType
struct
{
Input
Type
Aggregator
Aggregator
}
AggregateType represents an aggregate. See types.proto for more details on aggregate types.
Aggregator
type
Aggregator
interface
{
// contains filtered or unexported methods
}
Aggregator represents an aggregation function for an aggregate type.
ApplyOption
type
ApplyOption
interface
{
// contains filtered or unexported methods
}
An ApplyOption is an optional argument to Apply.
func GetCondMutationResult
func
GetCondMutationResult
(
matched
bool
)
ApplyOption
GetCondMutationResult returns an ApplyOption that reports whether the conditional mutation's condition matched.
ArraySQLType
type
ArraySQLType
struct
{
ElemType
SQLType
}
ArraySQLType represents an ordered list of elements of a given type.
AuthorizedViewConf
type
AuthorizedViewConf
struct
{
TableID
string
AuthorizedViewID
string
// Types that are valid to be assigned to AuthorizedView:
// *SubsetViewConf
AuthorizedView
isAuthorizedView
DeletionProtection
DeletionProtection
}
AuthorizedViewConf contains information about an authorized view.
AuthorizedViewInfo
type
AuthorizedViewInfo
struct
{
TableID
string
AuthorizedViewID
string
AuthorizedView
isAuthorizedViewInfo
DeletionProtection
DeletionProtection
}
AuthorizedViewInfo contains authorized view metadata. This struct is read-only.
AutoscalingConfig
type
AutoscalingConfig
struct
{
// MinNodes sets the minimum number of nodes in a cluster. MinNodes must
// be 1 or greater.
MinNodes
int
// MaxNodes sets the maximum number of nodes in a cluster. MaxNodes must be
// equal to or greater than MinNodes.
MaxNodes
int
// CPUTargetPercent sets the CPU utilization target for your cluster's
// workload.
CPUTargetPercent
int
// StorageUtilizationPerNode sets the storage usage target, in GB, for
// each node in a cluster. This number is limited between 2560 (2.5TiB) and
// 5120 (5TiB) for a SSD cluster and between 8192 (8TiB) and 16384 (16 TiB)
// for an HDD cluster. If set to zero, the default values are used:
// 2560 for SSD and 8192 for HDD.
StorageUtilizationPerNode
int
}
AutoscalingConfig contains autoscaling configuration for a cluster. For details, see https://cloud.google.com/bigtable/docs/autoscaling .
BackupInfo
type
BackupInfo
struct
{
Name
string
SourceTable
string
SourceBackup
string
SizeBytes
int64
StartTime
time
.
Time
EndTime
time
.
Time
ExpireTime
time
.
Time
State
string
EncryptionInfo
*
EncryptionInfo
BackupType
BackupType
// The time at which the hot backup will be converted to a standard backup.
// Once the `hot_to_standard_time` has passed, Cloud Bigtable will convert the
// hot backup to a standard backup. This value must be greater than the backup
// creation time by at least 24 hours
//
// This field only applies for hot backups.
HotToStandardTime
*
time
.
Time
}
BackupInfo contains backup metadata. This struct is read-only.
BackupIterator
type
BackupIterator
struct
{
// contains filtered or unexported fields
}
BackupIterator is an EntryIterator that iterates over log entries.
func (*BackupIterator) Next
func
(
it
*
BackupIterator
)
Next
()
(
*
BackupInfo
,
error
)
Next returns the next result. Its second return value is iterator.Done ( https://godoc.org/google.golang.org/api/iterator ) if there are no more results. Once Next returns Done, all subsequent calls will return Done.
func (*BackupIterator) PageInfo
func
(
it
*
BackupIterator
)
PageInfo
()
*
iterator
.
PageInfo
PageInfo supports pagination. See https://godoc.org/google.golang.org/api/iterator package for details.
BackupOption
type
BackupOption
func
(
*
backupOptions
)
BackupOption can be used to specify parameters for backup operations.
func WithExpiry
func
WithExpiry
(
expireTime
time
.
Time
)
BackupOption
WithExpiry option can be used to create backup that expires after time 'expireTime'. Once the 'expireTime' has passed, Cloud Bigtable will delete the backup.
func WithHotBackup
func
WithHotBackup
()
BackupOption
WithHotBackup option can be used to create backup with type [BackupTypeHot]
func WithHotToStandardBackup
func
WithHotToStandardBackup
(
hotToStandardTime
time
.
Time
)
BackupOption
WithHotToStandardBackup option can be used to create backup with type [BackupTypeHot] and specify time at which the hot backup will be converted to a standard backup. Once the 'hotToStandardTime' has passed, Cloud Bigtable will convert the hot backup to a standard backup. This value must be greater than the backup creation time by at least 24 hours
BackupType
type
BackupType
int32
BackupType denotes the type of the backup.
BackupTypeUnspecified, BackupTypeStandard, BackupTypeHot
const
(
// BackupTypeUnspecified denotes that backup type has not been specified.
BackupTypeUnspecified
BackupType
=
0
// BackupTypeStandard is the default type for Cloud Bigtable managed backups. Supported for
// backups created in both HDD and SSD instances. Requires optimization when
// restored to a table in an SSD instance.
BackupTypeStandard
BackupType
=
1
// BackupTypeHot is a backup type with faster restore to SSD performance. Only supported for
// backups created in SSD instances. A new SSD table restored from a hot
// backup reaches production performance more quickly than a standard
// backup.
BackupTypeHot
BackupType
=
2
)
BigEndianBytesEncoding
type
BigEndianBytesEncoding
struct
{
}
BigEndianBytesEncoding represents an Int64 encoding where the value is encoded as an 8-byte big-endian value.
BoolSQLType
type
BoolSQLType
struct
{}
BoolSQLType represents a boolean.
BoundStatement
type
BoundStatement
struct
{
// contains filtered or unexported fields
}
BoundStatement is a statement that has been bound to a set of parameters. It is created by calling [PreparedStatement.Bind].
func (*BoundStatement) Execute
func
(
bs
*
BoundStatement
)
Execute
(
ctx
context
.
Context
,
f
func
(
ResultRow
)
bool
,
opts
...
ExecuteOption
)
(
err
error
)
Execute executes a previously prepared query. f is called for each row in result set. If f returns false, the stream is shut down and Execute returns. f owns its argument, and f is called serially in order of results returned. f will be executed in the same Go routine as the caller.
BytesEncoding
type
BytesEncoding
interface
{
// contains filtered or unexported methods
}
BytesEncoding represents the encoding of a Bytes type.
BytesSQLType
type
BytesSQLType
struct
{}
BytesSQLType represents a slice of bytes.
BytesType
type
BytesType
struct
{
Encoding
BytesEncoding
}
BytesType represents a string of bytes.
ChangeStreamRetention
ChangeStreamRetention indicates how long bigtable should retain change data. Minimum is 1 day. Maximum is 7. nil to not change the retention period. 0 to disable change stream retention.
Client
type
Client
struct
{
// contains filtered or unexported fields
}
Client is a client for reading and writing data to tables in an instance.
A Client is safe to use concurrently, except for its Close method.
func NewClient
func
NewClient
(
ctx
context
.
Context
,
project
,
instance
string
,
opts
...
option
.
ClientOption
)
(
*
Client
,
error
)
NewClient creates a new Client for a given project and instance. The default ClientConfig will be used.
func NewClientWithConfig
func
NewClientWithConfig
(
ctx
context
.
Context
,
project
,
instance
string
,
config
ClientConfig
,
opts
...
option
.
ClientOption
)
(
*
Client
,
error
)
NewClientWithConfig creates a new client with the given config.
func (*Client) Close
Close closes the Client.
func (*Client) Open
Open opens a table.
func (*Client) OpenAuthorizedView
OpenAuthorizedView opens an authorized view.
func (*Client) OpenMaterializedView
OpenMaterializedView opens a materialized view.
func (*Client) OpenTable
OpenTable opens a table.
func (*Client) PrepareStatement
func
(
c
*
Client
)
PrepareStatement
(
ctx
context
.
Context
,
query
string
,
paramTypes
map
[
string
]
SQLType
,
opts
...
PrepareOption
)
(
preparedStatement
*
PreparedStatement
,
err
error
)
PrepareStatement prepares a query for execution. If possible, this should be called once and reused across requests. This will amortize the cost of query preparation.
The query string can be a parameterized query containing placeholders in the form of @ followed by the parameter name Parameter names may consist of any combination of letters, numbers, and underscores.
Parameters can appear anywhere that a literal value is expected. The same parameter name can be used more than once, for example: WHERE cf["qualifier1"] = @value OR cf["qualifier2"] = @value
ClientConfig
type
ClientConfig
struct
{
// The id of the app profile to associate with all data operations sent from this client.
// If unspecified, the default app profile for the instance will be used.
AppProfile
string
// If not set or set to nil, client side metrics will be collected and exported
//
// To disable client side metrics, set 'MetricsProvider' to 'NoopMetricsProvider'
//
// TODO: support user provided meter provider
MetricsProvider
MetricsProvider
}
ClientConfig has configurations for the client.
ClusterConfig
type
ClusterConfig
struct
{
// InstanceID specifies the unique name of the instance. Required.
InstanceID
string
// ClusterID specifies the unique name of the cluster. Required.
ClusterID
string
// Zone specifies the location where this cluster's nodes and storage reside.
// For best performance, clients should be located as close as possible to this
// cluster. Required.
Zone
string
// NumNodes specifies the number of nodes allocated to this cluster. More
// nodes enable higher throughput and more consistent performance. One of
// NumNodes or AutoscalingConfig is required. If both are set,
// AutoscalingConfig takes precedence.
NumNodes
int32
// StorageType specifies the type of storage used by this cluster to serve
// its parent instance's tables, unless explicitly overridden. Required.
StorageType
StorageType
// KMSKeyName is the name of the KMS customer managed encryption key (CMEK)
// to use for at-rest encryption of data in this cluster. If omitted,
// Google's default encryption will be used. If specified, the requirements
// for this key are:
// 1) The Cloud Bigtable service account associated with the
// project that contains the cluster must be granted the
// ``cloudkms.cryptoKeyEncrypterDecrypter`` role on the
// CMEK.
// 2) Only regional keys can be used and the region of the
// CMEK key must match the region of the cluster.
// 3) All clusters within an instance must use the same CMEK
// key.
// Optional. Immutable.
KMSKeyName
string
// AutoscalingConfig configures the autoscaling properties on a cluster.
// One of NumNodes or AutoscalingConfig is required.
AutoscalingConfig
*
AutoscalingConfig
// NodeScalingFactor controls the scaling factor of the cluster (i.e. the
// increment in which NumNodes can be set). Node scaling delivers better
// latency and more throughput by removing node boundaries. It is optional,
// with the default being 1X.
NodeScalingFactor
NodeScalingFactor
}
ClusterConfig contains the information necessary to create a cluster
ClusterInfo
type
ClusterInfo
struct
{
// Name is the name of the cluster.
Name
string
// Zone is the GCP zone of the cluster (e.g. "us-central1-a").
Zone
string
// ServeNodes is the number of allocated serve nodes.
ServeNodes
int
// State is the state of the cluster.
State
string
// StorageType is the storage type of the cluster.
StorageType
StorageType
// KMSKeyName is the customer managed encryption key for the cluster.
KMSKeyName
string
// AutoscalingConfig are the configured values for a cluster.
AutoscalingConfig
*
AutoscalingConfig
// NodeScalingFactor controls the scaling factor of the cluster.
NodeScalingFactor
NodeScalingFactor
}
ClusterInfo represents information about a cluster.
ColumnMetadata
type
ColumnMetadata
struct
{
// Name is the name of the column as returned by the query (e.g., alias or derived name).
Name
string
// SQLType provides the original Bigtable SQL type information. This can be useful
// for understanding the underlying storage or type details.
SQLType
SQLType
}
ColumnMetadata describes a single column in a ResultRowMetadata.
DateSQLType
type
DateSQLType
struct
{}
DateSQLType represents a calendar date.
DeletionProtection
type
DeletionProtection
int
DeletionProtection indicates whether the table is 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.
None, Protected, Unprotected
const
(
None
DeletionProtection
=
iota
Protected
Unprotected
)
None indicates that deletion protection is unset Protected indicates that deletion protection is enabled Unprotected indicates that deletion protection is disabled
EncryptionInfo
type
EncryptionInfo
struct
{
Status
*
Status
Type
EncryptionType
KMSKeyVersion
string
}
EncryptionInfo represents the encryption info of a table.
EncryptionInfoByCluster
type
EncryptionInfoByCluster
map
[
string
][]
*
EncryptionInfo
EncryptionInfoByCluster is a map of cluster name to EncryptionInfo
EncryptionType
type
EncryptionType
int32
EncryptionType is the type of encryption for an instance.
EncryptionTypeUnspecified, GoogleDefaultEncryption, CustomerManagedEncryption
const
(
// EncryptionTypeUnspecified is the type was not specified, though data at rest remains encrypted.
EncryptionTypeUnspecified
EncryptionType
=
iota
// GoogleDefaultEncryption represents that data backing this resource is
// encrypted at rest with a key that is fully managed by Google. No key
// version or status will be populated. This is the default state.
GoogleDefaultEncryption
// CustomerManagedEncryption represents that data backing this resource is
// encrypted at rest with a key that is managed by the customer.
// The in-use version of the key and its status are populated for
// CMEK-protected tables.
// CMEK-protected backups are pinned to the key version that was in use at
// the time the backup was taken. This key version is populated but its
// status is not tracked and is reported as `UNKNOWN`.
CustomerManagedEncryption
)
ErrPartiallyUnavailable
type
ErrPartiallyUnavailable
struct
{
Locations
[]
string
// unavailable locations
}
ErrPartiallyUnavailable is returned when some locations (clusters) are unavailable. Both partial results (retrieved from available locations) and the error are returned when this exception occurred.
func (ErrPartiallyUnavailable) Error
func
(
e
ErrPartiallyUnavailable
)
Error
()
string
ExecuteOption
type
ExecuteOption
interface
{}
ExecuteOption is an optional argument to Execute.
Family
Family represents a column family with its optional GC policy and value type.
FamilyInfo
FamilyInfo represents information about a column family.
FamilySubset
FamilySubset represents a subset of a column family.
Filter
type
Filter
interface
{
String
()
string
// contains filtered or unexported methods
}
A Filter represents a row filter.
func BlockAllFilter
func
BlockAllFilter
()
Filter
BlockAllFilter returns a filter that matches nothing.
func CellsPerRowLimitFilter
CellsPerRowLimitFilter returns a filter that matches only the first N cells of each row.
func CellsPerRowOffsetFilter
CellsPerRowOffsetFilter returns a filter that skips the first N cells of each row, matching all subsequent cells.
func ChainFilters
ChainFilters returns a filter that applies a sequence of filters.
func ColumnFilter
ColumnFilter returns a filter that matches cells whose column name matches the provided RE2 pattern. See https://github.com/google/re2/wiki/Syntax for the accepted syntax.
func ColumnRangeFilter
ColumnRangeFilter returns a filter that matches a contiguous range of columns within a single family, as specified by an inclusive start qualifier and exclusive end qualifier.
func ConditionFilter
ConditionFilter returns a filter that evaluates to one of two possible filters depending on whether or not the given predicate filter matches at least one cell. If the matched filter is nil then no results will be returned. IMPORTANT NOTE: The predicate filter does not execute atomically with the true and false filters, which may lead to inconsistent or unexpected results. Additionally, condition filters have poor performance, especially when filters are set for the false condition.
func FamilyFilter
FamilyFilter returns a filter that matches cells whose family name matches the provided RE2 pattern. See https://github.com/google/re2/wiki/Syntax for the accepted syntax.
func InterleaveFilters
InterleaveFilters returns a filter that applies a set of filters in parallel and interleaves the results.
func LabelFilter
LabelFilter returns a filter that applies the given label to all cells in the output row.
func LatestNFilter
LatestNFilter returns a filter that matches the most recent N cells in each column.
func PassAllFilter
func
PassAllFilter
()
Filter
PassAllFilter returns a filter that matches everything.
func RowKeyFilter
RowKeyFilter returns a filter that matches cells from rows whose key matches the provided RE2 pattern. See https://github.com/google/re2/wiki/Syntax for the accepted syntax.
func RowSampleFilter
RowSampleFilter returns a filter that matches a row with a probability of p (must be in the interval (0, 1)).
func StripValueFilter
func
StripValueFilter
()
Filter
StripValueFilter returns a filter that replaces each value with the empty string.
func TimestampRangeFilter
TimestampRangeFilter returns a filter that matches any cells whose timestamp is within the given time bounds. A zero time means no bound. The timestamp will be truncated to millisecond granularity.
func TimestampRangeFilterMicros
TimestampRangeFilterMicros returns a filter that matches any cells whose timestamp is within the given time bounds, specified in units of microseconds since 1 January 1970. A zero value for the end time is interpreted as no bound. The timestamp will be truncated to millisecond granularity.
func ValueFilter
ValueFilter returns a filter that matches cells whose value matches the provided RE2 pattern. See https://github.com/google/re2/wiki/Syntax for the accepted syntax.
func ValueRangeFilter
ValueRangeFilter returns a filter that matches cells with values that fall within the given range, as specified by an inclusive start value and exclusive end value.
Float32SQLType
type
Float32SQLType
struct
{}
Float32SQLType represents a 32-bit floating-point number.
Float64SQLType
type
Float64SQLType
struct
{}
Float64SQLType represents a 64-bit floating-point number.
FullReadStats
type
FullReadStats
struct
{
// Iteration stats describe how efficient the read is, e.g. comparing rows seen vs. rows
// returned or cells seen vs cells returned can provide an indication of read efficiency
// (the higher the ratio of seen to retuned the better).
ReadIterationStats
ReadIterationStats
// Request latency stats describe the time taken to complete a request, from the server
// side.
RequestLatencyStats
RequestLatencyStats
}
FullReadStats captures all known information about a read.
FullReadStatsFunc
type
FullReadStatsFunc
func
(
*
FullReadStats
)
FullReadStatsFunc describes a callback that receives a FullReadStats for evaluation.
GCPolicy
type
GCPolicy
interface
{
String
()
string
// contains filtered or unexported methods
}
A GCPolicy represents a rule that determines which cells are eligible for garbage collection.
func IntersectionPolicy
IntersectionPolicy returns a GC policy that only applies when all its sub-policies apply.
func MaxAgePolicy
MaxAgePolicy returns a GC policy that applies to all cells older than the given age.
func MaxVersionsPolicy
MaxVersionsPolicy returns a GC policy that applies to all versions of a cell except for the most recent n.
func NoGcPolicy
func
NoGcPolicy
()
GCPolicy
NoGcPolicy applies to all cells setting maxage and maxversions to nil implies no gc policies
func UnionPolicy
UnionPolicy returns a GC policy that applies when any of its sub-policies apply.
GCPolicyOption
type
GCPolicyOption
interface
{
// contains filtered or unexported methods
}
GCPolicyOption is deprecated, kept for backwards compatibility, use UpdateFamilyOption in new code
func IgnoreWarnings
func
IgnoreWarnings
()
GCPolicyOption
IgnoreWarnings returns a updateFamilyOption that ignores safety checks when modifying the column families
HllppUniqueCountAggregator
type
HllppUniqueCountAggregator
struct
{}
HllppUniqueCountAggregator is an aggregation function that calculates the unique count of inputs and the accumulator.
InstanceAdminClient
type
InstanceAdminClient
struct
{
// contains filtered or unexported fields
}
InstanceAdminClient is a client type for performing admin operations on instances. These operations can be substantially more dangerous than those provided by AdminClient.
func NewInstanceAdminClient
func
NewInstanceAdminClient
(
ctx
context
.
Context
,
project
string
,
opts
...
option
.
ClientOption
)
(
*
InstanceAdminClient
,
error
)
NewInstanceAdminClient creates a new InstanceAdminClient for a given project.
func (*InstanceAdminClient) Close
func
(
iac
*
InstanceAdminClient
)
Close
()
error
Close closes the InstanceAdminClient.
func (*InstanceAdminClient) Clusters
func
(
iac
*
InstanceAdminClient
)
Clusters
(
ctx
context
.
Context
,
instanceID
string
)
([]
*
ClusterInfo
,
error
)
Clusters lists the clusters in an instance. If any location (cluster) is unavailable due to some transient conditions, Clusters returns partial results and ErrPartiallyUnavailable error with unavailable locations list.
func (*InstanceAdminClient) CreateAppProfile
func
(
iac
*
InstanceAdminClient
)
CreateAppProfile
(
ctx
context
.
Context
,
profile
ProfileConf
)
(
*
btapb
.
AppProfile
,
error
)
CreateAppProfile creates an app profile within an instance.
func (*InstanceAdminClient) CreateCluster
func
(
iac
*
InstanceAdminClient
)
CreateCluster
(
ctx
context
.
Context
,
conf
*
ClusterConfig
)
error
CreateCluster creates a new cluster in an instance. This method will return when the cluster has been created or when an error occurs.
func (*InstanceAdminClient) CreateInstance
func
(
iac
*
InstanceAdminClient
)
CreateInstance
(
ctx
context
.
Context
,
conf
*
InstanceConf
)
error
CreateInstance creates a new instance in the project. This method will return when the instance has been created or when an error occurs.
func (*InstanceAdminClient) CreateInstanceWithClusters
func
(
iac
*
InstanceAdminClient
)
CreateInstanceWithClusters
(
ctx
context
.
Context
,
conf
*
InstanceWithClustersConfig
)
error
CreateInstanceWithClusters creates a new instance with configured clusters in the project. This method will return when the instance has been created or when an error occurs.
func (*InstanceAdminClient) CreateLogicalView
func
(
iac
*
InstanceAdminClient
)
CreateLogicalView
(
ctx
context
.
Context
,
instanceID
string
,
conf
*
LogicalViewInfo
)
error
CreateLogicalView creates a new logical view in an instance.
func (*InstanceAdminClient) CreateMaterializedView
func
(
iac
*
InstanceAdminClient
)
CreateMaterializedView
(
ctx
context
.
Context
,
instanceID
string
,
conf
*
MaterializedViewInfo
)
error
CreateMaterializedView creates a new materialized view in an instance.
func (*InstanceAdminClient) DeleteAppProfile
func
(
iac
*
InstanceAdminClient
)
DeleteAppProfile
(
ctx
context
.
Context
,
instanceID
,
name
string
)
error
DeleteAppProfile deletes an app profile from an instance.
func (*InstanceAdminClient) DeleteCluster
func
(
iac
*
InstanceAdminClient
)
DeleteCluster
(
ctx
context
.
Context
,
instanceID
,
clusterID
string
)
error
DeleteCluster deletes a cluster from an instance.
func (*InstanceAdminClient) DeleteInstance
func
(
iac
*
InstanceAdminClient
)
DeleteInstance
(
ctx
context
.
Context
,
instanceID
string
)
error
DeleteInstance deletes an instance from the project.
func (*InstanceAdminClient) DeleteLogicalView
func
(
iac
*
InstanceAdminClient
)
DeleteLogicalView
(
ctx
context
.
Context
,
instanceID
,
logicalViewID
string
)
error
DeleteLogicalView deletes a logical view in an instance.
func (*InstanceAdminClient) DeleteMaterializedView
func
(
iac
*
InstanceAdminClient
)
DeleteMaterializedView
(
ctx
context
.
Context
,
instanceID
,
materializedViewID
string
)
error
DeleteMaterializedView deletes a materialized view in an instance.
func (*InstanceAdminClient) GetAppProfile
func
(
iac
*
InstanceAdminClient
)
GetAppProfile
(
ctx
context
.
Context
,
instanceID
,
name
string
)
(
*
btapb
.
AppProfile
,
error
)
GetAppProfile gets information about an app profile.
func (*InstanceAdminClient) GetCluster
func
(
iac
*
InstanceAdminClient
)
GetCluster
(
ctx
context
.
Context
,
instanceID
,
clusterID
string
)
(
*
ClusterInfo
,
error
)
GetCluster fetches a cluster in an instance
func (*InstanceAdminClient) InstanceIAM
func
(
iac
*
InstanceAdminClient
)
InstanceIAM
(
instanceID
string
)
*
iam
.
Handle
InstanceIAM returns the instance's IAM handle.
func (*InstanceAdminClient) InstanceInfo
func
(
iac
*
InstanceAdminClient
)
InstanceInfo
(
ctx
context
.
Context
,
instanceID
string
)
(
*
InstanceInfo
,
error
)
InstanceInfo returns information about an instance.
func (*InstanceAdminClient) Instances
func
(
iac
*
InstanceAdminClient
)
Instances
(
ctx
context
.
Context
)
([]
*
InstanceInfo
,
error
)
Instances returns a list of instances in the project. If any location (cluster) is unavailable due to some transient conditions, Instances returns partial results and ErrPartiallyUnavailable error with unavailable locations list.
func (*InstanceAdminClient) ListAppProfiles
func
(
iac
*
InstanceAdminClient
)
ListAppProfiles
(
ctx
context
.
Context
,
instanceID
string
)
*
ProfileIterator
ListAppProfiles lists information about app profiles in an instance.
func (*InstanceAdminClient) LogicalViewInfo
func
(
iac
*
InstanceAdminClient
)
LogicalViewInfo
(
ctx
context
.
Context
,
instanceID
,
logicalViewID
string
)
(
*
LogicalViewInfo
,
error
)
LogicalViewInfo retrieves information about a logical view.
func (*InstanceAdminClient) LogicalViews
func
(
iac
*
InstanceAdminClient
)
LogicalViews
(
ctx
context
.
Context
,
instanceID
string
)
([]
LogicalViewInfo
,
error
)
LogicalViews returns a list of the logical views in the instance.
func (*InstanceAdminClient) MaterializedViewInfo
func
(
iac
*
InstanceAdminClient
)
MaterializedViewInfo
(
ctx
context
.
Context
,
instanceID
,
materializedViewID
string
)
(
*
MaterializedViewInfo
,
error
)
MaterializedViewInfo retrieves information about a materialized view.
func (*InstanceAdminClient) MaterializedViews
func
(
iac
*
InstanceAdminClient
)
MaterializedViews
(
ctx
context
.
Context
,
instanceID
string
)
([]
MaterializedViewInfo
,
error
)
MaterializedViews returns a list of the materialized views in the instance.
func (*InstanceAdminClient) SetAutoscaling
func
(
iac
*
InstanceAdminClient
)
SetAutoscaling
(
ctx
context
.
Context
,
instanceID
,
clusterID
string
,
conf
AutoscalingConfig
)
error
SetAutoscaling enables autoscaling on a cluster. To remove autoscaling, use UpdateCluster. See AutoscalingConfig documentation for details.
func (*InstanceAdminClient) UpdateAppProfile
func
(
iac
*
InstanceAdminClient
)
UpdateAppProfile
(
ctx
context
.
Context
,
instanceID
,
profileID
string
,
updateAttrs
ProfileAttrsToUpdate
)
error
UpdateAppProfile updates an app profile within an instance. updateAttrs should be set. If unset, all fields will be replaced.
func (*InstanceAdminClient) UpdateCluster
func
(
iac
*
InstanceAdminClient
)
UpdateCluster
(
ctx
context
.
Context
,
instanceID
,
clusterID
string
,
serveNodes
int32
)
error
UpdateCluster updates attributes of a cluster. If Autoscaling is configured for the cluster, it will be removed and replaced by the static number of serve nodes specified.
func (*InstanceAdminClient) UpdateInstanceWithClusters
func
(
iac
*
InstanceAdminClient
)
UpdateInstanceWithClusters
(
ctx
context
.
Context
,
conf
*
InstanceWithClustersConfig
)
error
UpdateInstanceWithClusters updates an instance and its clusters. Updateable fields are instance display name, instance type and cluster size. The provided InstanceWithClustersConfig is used as follows:
- InstanceID is required
- DisplayName and InstanceType are updated only if they are not empty
- ClusterID is required for any provided cluster
- All other cluster fields are ignored except for NumNodes and AutoscalingConfig, which if set will be updated. If both are provided, AutoscalingConfig takes precedence.
This method may return an error after partially succeeding, for example if the instance is updated but a cluster update fails. If an error is returned, InstanceInfo and Clusters may be called to determine the current state.
func (*InstanceAdminClient) UpdateLogicalView
func
(
iac
*
InstanceAdminClient
)
UpdateLogicalView
(
ctx
context
.
Context
,
instanceID
string
,
conf
LogicalViewInfo
)
error
UpdateLogicalView updates a logical view in an instance according to the given configuration.
func (*InstanceAdminClient) UpdateMaterializedView
func
(
iac
*
InstanceAdminClient
)
UpdateMaterializedView
(
ctx
context
.
Context
,
instanceID
string
,
conf
MaterializedViewInfo
)
error
UpdateMaterializedView updates a materialized view in an instance according to the given configuration.
InstanceConf
type
InstanceConf
struct
{
InstanceId
,
DisplayName
,
ClusterId
,
Zone
string
// NumNodes must not be specified for DEVELOPMENT instance types
NumNodes
int32
StorageType
StorageType
InstanceType
InstanceType
Labels
map
[
string
]
string
// AutoscalingConfig configures the autoscaling properties on the cluster
// created with the instance. It is optional.
AutoscalingConfig
*
AutoscalingConfig
// NodeScalingFactor controls the scaling factor of the cluster (i.e. the
// increment in which NumNodes can be set). Node scaling delivers better
// latency and more throughput by removing node boundaries. It is optional,
// with the default being 1X.
NodeScalingFactor
NodeScalingFactor
}
InstanceConf contains the information necessary to create an Instance
InstanceInfo
type
InstanceInfo
struct
{
Name
string
// name of the instance
DisplayName
string
// display name for UIs
InstanceState
InstanceState
InstanceType
InstanceType
Labels
map
[
string
]
string
}
InstanceInfo represents information about an instance
InstanceState
type
InstanceState
int32
InstanceState is the state of the instance. This is output-only.
InstanceType
type
InstanceType
int32
InstanceType is the type of the instance.
InstanceWithClustersConfig
type
InstanceWithClustersConfig
struct
{
InstanceID
,
DisplayName
string
Clusters
[]
ClusterConfig
InstanceType
InstanceType
Labels
map
[
string
]
string
}
InstanceWithClustersConfig contains the information necessary to create an Instance
Int64Encoding
type
Int64Encoding
interface
{
// contains filtered or unexported methods
}
Int64Encoding represents the encoding of an Int64 type.
Int64OrderedCodeBytesEncoding
type
Int64OrderedCodeBytesEncoding
struct
{
}
Int64OrderedCodeBytesEncoding represents an Int64 encoding where the value is encoded to a variable length binary format of up to 10 bytes.
Int64SQLType
type
Int64SQLType
struct
{}
Int64SQLType represents an 8-byte integer.
Int64Type
type
Int64Type
struct
{
Encoding
Int64Encoding
}
Int64Type represents an 8-byte integer.
IntersectionGCPolicy
type
IntersectionGCPolicy
struct
{
// List of children policy in the intersection
Children
[]
GCPolicy
}
IntersectionGCPolicy with list of children
func (IntersectionGCPolicy) String
func
(
ip
IntersectionGCPolicy
)
String
()
string
LogicalViewInfo
LogicalViewInfo contains logical view metadata. This struct is read-only.
MapSQLType
MapSQLType represents a map from a key type to a value type for query parameters.
MaterializedViewInfo
type
MaterializedViewInfo
struct
{
MaterializedViewID
string
Query
string
DeletionProtection
DeletionProtection
}
MaterializedViewInfo contains materialized view metadata. This struct is read-only.
MaxAgeGCPolicy
MaxAgeGCPolicy type alias
func (MaxAgeGCPolicy) GetDurationString
func
(
ma
MaxAgeGCPolicy
)
GetDurationString
()
string
GetDurationString returns the duration string of the MaxAgeGCPolicy
func (MaxAgeGCPolicy) String
func
(
ma
MaxAgeGCPolicy
)
String
()
string
MaxAggregator
type
MaxAggregator
struct
{}
MaxAggregator is an aggregation function that finds the maximum between the input and the accumulator.
MaxVersionsGCPolicy
type
MaxVersionsGCPolicy
int
MaxVersionsGCPolicy type alias
func (MaxVersionsGCPolicy) String
func
(
mvp
MaxVersionsGCPolicy
)
String
()
string
MetricsProvider
type
MetricsProvider
interface
{
// contains filtered or unexported methods
}
MetricsProvider is a wrapper for built in metrics meter provider
MinAggregator
type
MinAggregator
struct
{}
MinAggregator is an aggregation function that finds the minimum between the input and the accumulator.
Mutation
type
Mutation
struct
{
// contains filtered or unexported fields
}
Mutation represents a set of changes for a single row of a table.
func NewCondMutation
NewCondMutation returns a conditional mutation. The given row filter determines which mutation is applied: If the filter matches any cell in the row, mtrue is applied; otherwise, mfalse is applied. Either given mutation may be nil.
The application of a ReadModifyWrite is atomic; concurrent ReadModifyWrites will be executed serially by the server.
func NewMutation
func
NewMutation
()
*
Mutation
NewMutation returns a new mutation.
func (*Mutation) AddIntToCell
AddIntToCell adds an int64 value to a cell in an aggregate column family. The column family must have an input type of Int64 or this mutation will fail.
func (*Mutation) DeleteCellsInColumn
DeleteCellsInColumn will delete all the cells whose columns are family:column.
func (*Mutation) DeleteCellsInFamily
DeleteCellsInFamily will delete all the cells whose columns are family:*.
func (*Mutation) DeleteRow
func
(
m
*
Mutation
)
DeleteRow
()
DeleteRow deletes the entire row.
func (*Mutation) DeleteTimestampRange
DeleteTimestampRange deletes all cells whose columns are family:column and whose timestamps are in the half-open interval [start, end). If end is zero, it will be interpreted as infinity. The timestamps will be truncated to millisecond granularity.
func (*Mutation) MergeBytesToCell
MergeBytesToCell merges a bytes accumulator value to a cell in an aggregate column family.
func (*Mutation) Set
Set sets a value in a specified column, with the given timestamp. The timestamp will be truncated to millisecond granularity. A timestamp of ServerTime means to use the server timestamp.
NodeScalingFactor
type
NodeScalingFactor
int32
NodeScalingFactor controls the scaling factor of the cluster (i.e. the increment in which NumNodes can be set). Node scaling delivers better latency and more throughput by removing node boundaries.
NodeScalingFactorUnspecified, NodeScalingFactor1X, NodeScalingFactor2X
const
(
// NodeScalingFactorUnspecified default to 1X.
NodeScalingFactorUnspecified
NodeScalingFactor
=
iota
// NodeScalingFactor1X runs the cluster with a scaling factor of 1.
NodeScalingFactor1X
// NodeScalingFactor2X runs the cluster with a scaling factor of 2.
// All node count values must be in increments of 2 with this scaling
// factor enabled, otherwise an INVALID_ARGUMENT error will be returned.
NodeScalingFactor2X
)
NoopMetricsProvider
type
NoopMetricsProvider
struct
{}
NoopMetricsProvider can be used to disable built in metrics
PolicyType
type
PolicyType
int
PolicyType represents the type of GCPolicy
PolicyUnspecified, PolicyMaxAge, PolicyMaxVersion, PolicyUnion, PolicyIntersection
const
(
// PolicyUnspecified represents type of NoGCPolicy
PolicyUnspecified
PolicyType
=
iota
// PolicyMaxAge represents type of MaxAgeGCPolicy
PolicyMaxAge
// PolicyMaxVersion represents type of MaxVersionGCPolicy
PolicyMaxVersion
// PolicyUnion represents type of UnionGCPolicy
PolicyUnion
// PolicyIntersection represents type of IntersectionGCPolicy
PolicyIntersection
)
func GetPolicyType
func
GetPolicyType
(
gc
GCPolicy
)
PolicyType
GetPolicyType takes a gc policy and return appropriate PolicyType
PrepareOption
type
PrepareOption
interface
{}
PrepareOption can be passed while preparing a query statement.
PreparedStatement
type
PreparedStatement
struct
{
// contains filtered or unexported fields
}
PreparedStatement stores the results of query preparation that can be used to create [BoundStatements]s to execute queries.
Whenever possible this should be shared across different instances of the same query, in order to amortize query preparation costs.
func (*PreparedStatement) Bind
func
(
ps
*
PreparedStatement
)
Bind
(
values
map
[
string
]
any
)
(
*
BoundStatement
,
error
)
Bind binds a set of parameters to a prepared statement.
Allowed parameter value types are []byte, string, int64, float32, float64, bool, time.Time, civil.Date, array, slice and nil
ProfileAttrsToUpdate
type
ProfileAttrsToUpdate
struct
{
// If set, updates the description.
Description
optional
.
String
//If set, updates the routing policy.
RoutingPolicy
optional
.
String
//If RoutingPolicy is updated to SingleClusterRouting, set these fields as well.
ClusterID
string
AllowTransactionalWrites
bool
// If true, warnings are ignored
IgnoreWarnings
bool
}
ProfileAttrsToUpdate define addrs to update during an Update call. If unset, no fields will be replaced.
func (*ProfileAttrsToUpdate) GetFieldMaskPath
func
(
p
*
ProfileAttrsToUpdate
)
GetFieldMaskPath
()
[]
string
GetFieldMaskPath returns the field mask path.
ProfileConf
type
ProfileConf
struct
{
Name
string
ProfileID
string
InstanceID
string
Etag
string
Description
string
RoutingPolicy
string
ClusterID
string
AllowTransactionalWrites
bool
// If true, warnings are ignored
IgnoreWarnings
bool
}
ProfileConf contains the information necessary to create an profile
ProfileIterator
type
ProfileIterator
struct
{
// contains filtered or unexported fields
}
ProfileIterator iterates over profiles.
func (*ProfileIterator) Next
func
(
it
*
ProfileIterator
)
Next
()
(
*
btapb
.
AppProfile
,
error
)
Next returns the next result. Its second return value is iterator.Done ( https://godoc.org/google.golang.org/api/iterator ) if there are no more results. Once Next returns Done, all subsequent calls will return Done.
func (*ProfileIterator) PageInfo
func
(
it
*
ProfileIterator
)
PageInfo
()
*
iterator
.
PageInfo
PageInfo supports pagination. See https://godoc.org/google.golang.org/api/iterator package for details.
RawBytesEncoding
type
RawBytesEncoding
struct
{
}
RawBytesEncoding represents a Bytes encoding with no additional encodings.
ReadItem
A ReadItem is returned by Read. A ReadItem contains data from a specific row and column.
ReadIterationStats
type
ReadIterationStats
struct
{
// The cells returned as part of the request.
CellsReturnedCount
int64
// The cells seen (scanned) as part of the request. This includes the count of cells returned, as
// captured below.
CellsSeenCount
int64
// The rows returned as part of the request.
RowsReturnedCount
int64
// The rows seen (scanned) as part of the request. This includes the count of rows returned, as
// captured below.
RowsSeenCount
int64
}
ReadIterationStats captures information about the iteration of rows or cells over the course of a read, e.g. how many results were scanned in a read operation versus the results returned.
ReadModifyWrite
type
ReadModifyWrite
struct
{
// contains filtered or unexported fields
}
ReadModifyWrite represents a set of operations on a single row of a table. It is like Mutation but for non-idempotent changes. When applied, these operations operate on the latest values of the row's cells, and result in a new value being written to the relevant cell with a timestamp that is max(existing timestamp, current server time).
The application of a ReadModifyWrite is atomic; concurrent ReadModifyWrites will be executed serially by the server.
func NewReadModifyWrite
func
NewReadModifyWrite
()
*
ReadModifyWrite
NewReadModifyWrite returns a new ReadModifyWrite.
func (*ReadModifyWrite) AppendValue
func
(
m
*
ReadModifyWrite
)
AppendValue
(
family
,
column
string
,
v
[]
byte
)
AppendValue appends a value to a specific cell's value. If the cell is unset, it will be treated as an empty value.
func (*ReadModifyWrite) Increment
func
(
m
*
ReadModifyWrite
)
Increment
(
family
,
column
string
,
delta
int64
)
Increment interprets the value in a specific cell as a 64-bit big-endian signed integer, and adds a value to it. If the cell is unset, it will be treated as zero. If the cell is set and is not an 8-byte value, the entire ApplyReadModifyWrite operation will fail.
ReadOption
type
ReadOption
interface
{
// contains filtered or unexported methods
}
A ReadOption is an optional argument to ReadRows.
func LimitRows
func
LimitRows
(
limit
int64
)
ReadOption
LimitRows returns a ReadOption that will end the number of rows to be read.
func ReverseScan
func
ReverseScan
()
ReadOption
ReverseScan returns a RadOption that will reverse the results of a Scan. The rows will be streamed in reverse lexiographic order of the keys. The row key ranges of the RowSet are still expected to be oriented the same way as forwards. ie [a,c] where a <= c. The row content will remain unchanged from the ordering forward scans. This is particularly useful to get the last N records before a key:
table.ReadRows(ctx, NewOpenClosedRange("", "key"), func(row bigtable.Row) bool {
return true
}, bigtable.ReverseScan(), bigtable.LimitRows(10))
func RowFilter
func
RowFilter
(
f
Filter
)
ReadOption
RowFilter returns a ReadOption that applies f to the contents of read rows.
If multiple RowFilters are provided, only the last is used. To combine filters, use ChainFilters or InterleaveFilters instead.
func WithFullReadStats
func
WithFullReadStats
(
f
FullReadStatsFunc
)
ReadOption
WithFullReadStats returns a ReadOption that will request FullReadStats and invoke the given callback on the resulting FullReadStats.
RequestLatencyStats
type
RequestLatencyStats
struct
{
// The latency measured by the frontend server handling this request, from when the request was
// received, to when this value is sent back in the response. For more context on the component
// that is measuring this latency, see: https://cloud.google.com/bigtable/docs/overview
FrontendServerLatency
time
.
Duration
}
RequestLatencyStats provides a measurement of the latency of the request as it interacts with different systems over its lifetime, e.g. how long the request took to execute within a frontend server.
ResultRow
type
ResultRow
struct
{
Metadata
*
ResultRowMetadata
// contains filtered or unexported fields
}
ResultRow represents a single row in the result set returned on executing a GoogleSQL query in Cloud Bigtable
func (*ResultRow) GetByIndex
GetByIndex returns the value of the column at the specified zero-based index and stores it in the value pointed to by dest.
The dest argument must be a non-nil pointer. It performs basic type conversions. It converts columns to the following Go types where possible:
- string
- []byte
- int64 (and other integer types like int, int32, uint64 etc.)
- float32, float64
- bool
- time.Time (for TIMESTAMP)
- civil.Date (for DATE)
- Slice types (e.g., []string, []int64) for ARRAY
- Map types (e.g., map[string]any) for MAP
- Struct for STRUCT
- any (interface{})
- Pointers to the above types
SQL NULL values are converted to Go nil, which can only be assigned to pointer types (*T), interfaces (any), or other nillable types (slices, maps). Attempting to scan a SQL NULL into a non-nillable Go type (like int64, string, bool) will result in an error.
For SQL ARRAY columns containing NULL elements, dest should typically be a pointer to a slice of pointers (e.g., [] int64) or a slice of interfaces ( []any). Assigning to a non-pointer slice (e.g., *[]int64) will fail if the array contains NULLs. For SQL STRUCT or MAP columns, dest should typically be a pointer to a map type (e.g., *map[string]any, *map[string] int64).
When (WITH_HISTORY=>TRUE) is used in the query, the value of versioned column is of the form []Struct i.e. []{{"timestamp":
BYTES Keys in MAPs: For SQL MAP columns where the key type is BYTES
(e.g., MAP<BYTES, INT64>),
the Go map representation assigned to dest will use string
keys. These string keys are the
Base64 standard encoding of the original BYTES
keys. This conversion is necessary due to
Go's map key restrictions. Callers interacting with these maps must Base64 encode their []byte
keys when performing lookups.
Returns an error if the index is out of bounds, dest is invalid (nil, not a pointer, pointer to struct other than time.Time and civil.Date), or if a type conversion fails.
func (*ResultRow) GetByName
GetByName returns the value of the column with the specified name and stores it in the value pointed to by dest. Column name matching is case-sensitive.
See the documentation for [ResultRow.GetByIndex] for details on destination types, NULL handling, and type conversions.
Returns an error if dest is invalid, if a type conversion fails or if no/multiple columns with the specified name are found.
ResultRowMetadata
type
ResultRowMetadata
struct
{
// the order of values returned by [ResultRow.Scan].
Columns
[]
ColumnMetadata
// contains filtered or unexported fields
}
ResultRowMetadata provides information about the schema of the ResultRow
Row
A Row is returned by ReadRows. The map is keyed by column family (the prefix of the column name before the colon). The values are the returned ReadItems for that column family in the order returned by Read.
func (Row) Key
Key returns the row's key, or "" if the row is empty.
RowList
type
RowList
[]
string
RowList is a sequence of row keys.
RowRange
type
RowRange
struct
{
// contains filtered or unexported fields
}
A RowRange describes a range of rows between the start and end key. Start and end keys may be rangeOpen, rangeClosed or rangeUnbounded.
func InfiniteRange
InfiniteRange returns the RowRange consisting of all keys at least as large as start: [start, ∞).
func InfiniteReverseRange
InfiniteReverseRange returns the RowRange consisting of all keys less than or equal to the end: (∞, end].
func NewClosedOpenRange
NewClosedOpenRange returns the RowRange consisting of all greater than or equal to the start and less than the end: [start, end).
func NewClosedRange
NewClosedRange returns the RowRange consisting of all keys greater than or equal to the start and less than or equal to the end: [start, end].
func NewOpenClosedRange
NewOpenClosedRange returns the RowRange consisting of all keys greater than the start and less than or equal to the end: (start, end].
func NewOpenRange
NewOpenRange returns the RowRange consisting of all keys greater than the start and less than the end: (start, end).
func NewRange
NewRange returns the new RowRange [begin, end).
func PrefixRange
PrefixRange returns a RowRange consisting of all keys starting with the prefix.
func (RowRange) Contains
Contains says whether the RowRange contains the key.
func (RowRange) String
String provides a printable description of a RowRange.
func (RowRange) Unbounded
Unbounded tests whether a RowRange is unbounded.
RowRangeList
type
RowRangeList
[]
RowRange
RowRangeList is a sequence of RowRanges representing the union of the ranges.
RowSet
type
RowSet
interface
{
// contains filtered or unexported methods
}
RowSet is a set of rows to be read. It is satisfied by RowList, RowRange and RowRangeList. The serialized size of the RowSet must be no larger than 1MiB.
func SingleRow
SingleRow returns a RowSet for reading a single row.
SQLType
type
SQLType
interface
{
// contains filtered or unexported methods
}
SQLType represents the type of data that can be used to query Cloud Bigtable. It is based on the GoogleSQL standard.
SnapshotInfo
type
SnapshotInfo
struct
{
Name
string
SourceTable
string
DataSize
int64
CreateTime
time
.
Time
DeleteTime
time
.
Time
}
SnapshotInfo contains snapshot metadata.
SnapshotIterator
type
SnapshotIterator
struct
{
// contains filtered or unexported fields
}
SnapshotIterator is an EntryIterator that iterates over log entries.
This is a private alpha release of Cloud Bigtable snapshots. This feature is not currently available to most Cloud Bigtable customers. This feature might be changed in backward-incompatible ways and is not recommended for production use. It is not subject to any SLA or deprecation policy.
func (*SnapshotIterator) Next
func
(
it
*
SnapshotIterator
)
Next
()
(
*
SnapshotInfo
,
error
)
Next returns the next result. Its second return value is iterator.Done ( https://godoc.org/google.golang.org/api/iterator ) if there are no more results. Once Next returns Done, all subsequent calls will return Done.
func (*SnapshotIterator) PageInfo
func
(
it
*
SnapshotIterator
)
PageInfo
()
*
iterator
.
PageInfo
PageInfo supports pagination. See https://godoc.org/google.golang.org/api/iterator package for details.
Status
Status references google.golang.org/grpc/status. It represents an RPC status code, message, and details of EncryptionInfo. https://pkg.go.dev/google.golang.org/grpc/internal/status
StorageType
type
StorageType
int
StorageType is the type of storage used for all tables in an instance
SSD, HDD
const
(
SSD
StorageType
=
iota
HDD
)
StringEncoding
type
StringEncoding
interface
{
// contains filtered or unexported methods
}
StringEncoding represents the encoding of a String.
StringSQLType
type
StringSQLType
struct
{}
StringSQLType represents a string.
StringType
type
StringType
struct
{
Encoding
StringEncoding
}
StringType represents a string
StringUtf8BytesEncoding
type
StringUtf8BytesEncoding
struct
{}
StringUtf8BytesEncoding represents an UTF-8 bytes encoding for a string.
StringUtf8Encoding
type
StringUtf8Encoding
struct
{}
StringUtf8Encoding represents an UTF-8 raw encoding for a string. DEPRECATED: Please use StringUtf8BytesEncoding.
Struct
type
Struct
struct
{
// contains filtered or unexported fields
}
Struct represents a value read from a SQL STRUCT column. It preserves the original order and names of the fields from the STRUCT definition, correctly handling duplicate names and unnamed fields (where Name==""). Use the provided methods (Field, Value, ValueByName, etc.) to access field data.
func (Struct) GetByIndex
GetByIndex returns the value of the field at the specified zero-based index and stores it in the value pointed to by dest.
The dest argument must be a non-nil pointer. See documentation for [ResultRow.GetByIndex] for details on type conversions and NULL handling performed during assignment. Returns an error if the index is out of bounds, dest is invalid, or assignment fails.
func (Struct) GetByName
GetByName returns the value of the field matching the specified name (case-sensitive) and stores it in the value pointed to by dest.
The dest argument must be a non-nil pointer. See documentation for [ResultRow.GetByIndex] for details on type conversions and NULL handling performed during assignment. Returns an error if no/multiple field matches the name, dest is invalid, or assignment fails.
func (Struct) Len
Len returns the number of fields in the Struct.
StructDelimitedBytesEncoding
type
StructDelimitedBytesEncoding
struct
{
Delimiter
[]
byte
}
StructDelimitedBytesEncoding represents a delimited bytes struct encoding, where each field will be individually encoded and concatenated by the delimiter in the middle.
StructEncoding
type
StructEncoding
interface
{
// contains filtered or unexported methods
}
StructEncoding represents the encoding of a struct type.
StructField
StructField represents a field within a StructType.
StructOrderedCodeBytesEncoding
type
StructOrderedCodeBytesEncoding
struct
{}
StructOrderedCodeBytesEncoding an encoding where each field will be individually encoded. Each null byte (0x00) in the encoded fields will be escaped by 0xff before concatenate together by this {0x00, 0x01} byte sequence.
StructSQLField
StructSQLField defines a single named and typed field within a StructSQLType.
StructSQLType
type
StructSQLType
struct
{
// Fields defines the ordered sequence of fields within the struct parameter.
Fields
[]
StructSQLField
}
StructSQLType represents a struct with named fields for query parameters.
Field order specified in Fields
is significant for the protobuf representation.
Struct values in result rows are typically represented as map[string]any.
StructSingletonEncoding
type
StructSingletonEncoding
struct
{}
StructSingletonEncoding represents a singleton struct encoding where this mode only accepts a single field.
StructType
type
StructType
struct
{
Fields
[]
StructField
Encoding
StructEncoding
}
StructType represents a struct type.
SubsetViewConf
type
SubsetViewConf
struct
{
RowPrefixes
[][]
byte
FamilySubsets
map
[
string
]
FamilySubset
}
SubsetViewConf contains configuration specific to an authorized view of subset view type.
func (*SubsetViewConf) AddFamilySubsetQualifier
func
(
s
*
SubsetViewConf
)
AddFamilySubsetQualifier
(
familyName
string
,
qualifier
[]
byte
)
AddFamilySubsetQualifier adds an individual column qualifier to be included in a subset view.
func (*SubsetViewConf) AddFamilySubsetQualifierPrefix
func
(
s
*
SubsetViewConf
)
AddFamilySubsetQualifierPrefix
(
familyName
string
,
qualifierPrefix
[]
byte
)
AddFamilySubsetQualifierPrefix adds a prefix for column qualifiers to be included in a subset view.
func (*SubsetViewConf) AddRowPrefix
func
(
s
*
SubsetViewConf
)
AddRowPrefix
(
prefix
[]
byte
)
AddRowPrefix adds a new row prefix to the subset view.
SubsetViewInfo
type
SubsetViewInfo
struct
{
RowPrefixes
[][]
byte
FamilySubsets
map
[
string
]
FamilySubset
}
SubsetViewInfo contains read-only SubsetView metadata.
SumAggregator
type
SumAggregator
struct
{}
SumAggregator is an aggregation function that sums inputs together into its accumulator.
Table
type
Table
struct
{
// contains filtered or unexported fields
}
A Table refers to a table.
A Table is safe to use concurrently.
func (*Table) Apply
func
(
t
*
Table
)
Apply
(
ctx
context
.
Context
,
row
string
,
m
*
Mutation
,
opts
...
ApplyOption
)
(
err
error
)
Apply mutates a row atomically. A mutation must contain at least one operation and at most 100000 operations.
func (*Table) ApplyBulk
func
(
t
*
Table
)
ApplyBulk
(
ctx
context
.
Context
,
rowKeys
[]
string
,
muts
[]
*
Mutation
,
opts
...
ApplyOption
)
(
errs
[]
error
,
err
error
)
ApplyBulk applies multiple Mutations. Each mutation is individually applied atomically, but the set of mutations may be applied in any order.
Two types of failures may occur. If the entire process fails, (nil, err) will be returned. If specific mutations fail to apply, ([]err, nil) will be returned, and the errors will correspond to the relevant rowKeys/muts arguments.
Conditional mutations cannot be applied in bulk and providing one will result in an error.
func (*Table) ApplyReadModifyWrite
func
(
t
*
Table
)
ApplyReadModifyWrite
(
ctx
context
.
Context
,
row
string
,
m
*
ReadModifyWrite
)
(
Row
,
error
)
ApplyReadModifyWrite applies a ReadModifyWrite to a specific row. It returns the newly written cells.
func (*Table) ReadRow
func
(
t
*
Table
)
ReadRow
(
ctx
context
.
Context
,
row
string
,
opts
...
ReadOption
)
(
Row
,
error
)
ReadRow is a convenience implementation of a single-row reader. A missing row will return nil for both Row and error.
func (*Table) ReadRows
func
(
t
*
Table
)
ReadRows
(
ctx
context
.
Context
,
arg
RowSet
,
f
func
(
Row
)
bool
,
opts
...
ReadOption
)
(
err
error
)
ReadRows reads rows from a table. f is called for each row. If f returns false, the stream is shut down and ReadRows returns. f owns its argument, and f is called serially in order by row key. f will be executed in the same Go routine as the caller.
By default, the yielded rows will contain all values in all cells. Use RowFilter to limit the cells returned.
func (*Table) SampleRowKeys
SampleRowKeys returns a sample of row keys in the table. The returned row keys will delimit contiguous sections of the table of approximately equal size, which can be used to break up the data for distributed tasks like mapreduces.
TableAPI
type
TableAPI
interface
{
ReadRows
(
ctx
context
.
Context
,
arg
RowSet
,
f
func
(
Row
)
bool
,
opts
...
ReadOption
)
error
ReadRow
(
ctx
context
.
Context
,
row
string
,
opts
...
ReadOption
)
(
Row
,
error
)
SampleRowKeys
(
ctx
context
.
Context
)
([]
string
,
error
)
Apply
(
ctx
context
.
Context
,
row
string
,
m
*
Mutation
,
opts
...
ApplyOption
)
error
ApplyBulk
(
ctx
context
.
Context
,
rowKeys
[]
string
,
muts
[]
*
Mutation
,
opts
...
ApplyOption
)
([]
error
,
error
)
ApplyReadModifyWrite
(
ctx
context
.
Context
,
row
string
,
m
*
ReadModifyWrite
)
(
Row
,
error
)
}
TableAPI interface allows existing data APIs to be applied to either an authorized view, a materialized view or a table. A materialized view is a read-only entity.
TableAutomatedBackupConfig
type
TableAutomatedBackupConfig
interface
{
// contains filtered or unexported methods
}
TableAutomatedBackupConfig generalizes automated backup configurations. Currently, the only supported type of automated backup configuration is TableAutomatedBackupPolicy.
TableAutomatedBackupPolicy
type
TableAutomatedBackupPolicy
struct
{
// How long the automated backups should be retained. The only
// supported value at this time is 3 days.
RetentionPeriod
optional
.
Duration
// How frequently automated backups should occur. The only
// supported value at this time is 24 hours.
Frequency
optional
.
Duration
}
TableAutomatedBackupPolicy defines an automated backup policy for a table. Use nil TableAutomatedBackupPolicy to disable Automated Backups on a table. Use nil for a specific field to ignore that field when updating the policy on a table.
TableConf
type
TableConf
struct
{
TableID
string
SplitKeys
[]
string
// DEPRECATED: Use ColumnFamilies instead.
// Families is a map from family name to GCPolicy.
// Only one of Families or ColumnFamilies may be set.
Families
map
[
string
]
GCPolicy
// ColumnFamilies is a map from family name to family configuration.
// Only one of Families or ColumnFamilies may be set.
ColumnFamilies
map
[
string
]
Family
// DeletionProtection can be none, protected or unprotected
// set to protected to make the table protected against data loss
DeletionProtection
DeletionProtection
ChangeStreamRetention
ChangeStreamRetention
// Configure an automated backup policy for the table
AutomatedBackupConfig
TableAutomatedBackupConfig
// Configure a row key schema for the table
RowKeySchema
*
StructType
}
TableConf contains all the information necessary to create a table with column families.
TableInfo
type
TableInfo
struct
{
// DEPRECATED - This field is deprecated. Please use FamilyInfos instead.
Families
[]
string
FamilyInfos
[]
FamilyInfo
// DeletionProtection indicates whether the table is protected against data loss
// DeletionProtection could be None depending on the table view
// for example when using NAME_ONLY, the response does not contain DeletionProtection and the value should be None
DeletionProtection
DeletionProtection
ChangeStreamRetention
ChangeStreamRetention
AutomatedBackupConfig
TableAutomatedBackupConfig
RowKeySchema
*
StructType
}
TableInfo represents information about a table.
Timestamp
type
Timestamp
int64
Timestamp is in units of microseconds since 1 January 1970.
ServerTime
const
ServerTime
Timestamp
=
-
1
ServerTime is a specific Timestamp that may be passed to (*Mutation).Set. It indicates that the server's timestamp should be used.
func Now
func
Now
()
Timestamp
Now returns the Timestamp representation of the current time on the client.
func (Timestamp) Time
Time converts a Timestamp into a time.Time.
func (Timestamp) Time
Time converts a Timestamp into a time.Time.
func (Timestamp) TruncateToMilliseconds
TruncateToMilliseconds truncates a Timestamp to millisecond granularity, which is currently the only granularity supported.
TimestampEncoding
type
TimestampEncoding
interface
{
// contains filtered or unexported methods
}
TimestampEncoding represents the encoding of the Timestamp type.
TimestampSQLType
type
TimestampSQLType
struct
{}
TimestampSQLType represents a point in time.
TimestampType
type
TimestampType
struct
{
Encoding
TimestampEncoding
}
TimestampType represents the timestamp.
TimestampUnixMicrosInt64Encoding
type
TimestampUnixMicrosInt64Encoding
struct
{
UnixMicrosInt64Encoding
Int64Encoding
}
TimestampUnixMicrosInt64Encoding represents a timestamp encoding where the the number of microseconds in the timestamp value since the Unix epoch is encoded by the given Int64Encoding. Values must be microsecond-aligned.
Type
type
Type
interface
{
// contains filtered or unexported methods
}
Type wraps the protobuf representation of a type. See the protobuf definition for more details on types.
func ProtoToType
ProtoToType converts a protobuf *btapb.Type to an instance of the Type interface, for use of the admin API.
func UnmarshalJSON
UnmarshalJSON returns a Type object from json bytes.
TypeUnspecified
type
TypeUnspecified
struct
{}
TypeUnspecified represents the absence of a type.
UnionGCPolicy
type
UnionGCPolicy
struct
{
// List of children policy in the union
Children
[]
GCPolicy
}
UnionGCPolicy with list of children
func (UnionGCPolicy) String
func
(
up
UnionGCPolicy
)
String
()
string
UpdateAuthorizedViewConf
type
UpdateAuthorizedViewConf
struct
{
AuthorizedViewConf
AuthorizedViewConf
IgnoreWarnings
bool
}
UpdateAuthorizedViewConf contains all the information necessary to update or partial update an authorized view.
UpdateFamilyOption
type
UpdateFamilyOption
GCPolicyOption
UpdateFamilyOption is the interface to update family settings
UpdateInstanceResults
type
UpdateInstanceResults
struct
{
InstanceUpdated
bool
CreatedClusters
[]
string
DeletedClusters
[]
string
UpdatedClusters
[]
string
}
UpdateInstanceResults contains information about the changes made after invoking UpdateInstanceAndSyncClusters.
func UpdateInstanceAndSyncClusters
func
UpdateInstanceAndSyncClusters
(
ctx
context
.
Context
,
iac
*
InstanceAdminClient
,
conf
*
InstanceWithClustersConfig
)
(
*
UpdateInstanceResults
,
error
)
UpdateInstanceAndSyncClusters updates an instance and its clusters, and will synchronize the clusters in the instance with the provided clusters, creating and deleting them as necessary. The provided InstanceWithClustersConfig is used as follows:
- InstanceID is required
- DisplayName and InstanceType are updated only if they are not empty
- ClusterID is required for any provided cluster
- Any cluster present in conf.Clusters but not part of the instance will be created using CreateCluster and the given ClusterConfig.
- Any cluster missing from conf.Clusters but present in the instance will be removed from the instance using DeleteCluster.
- Any cluster in conf.Clusters that also exists in the instance will be updated either to contain the provided number of nodes or to use the provided autoscaling config. If both the number of nodes and autoscaling are configured, autoscaling takes precedence. If the number of nodes is zero and autoscaling is not provided in InstanceWithClustersConfig, the cluster is not updated.
This method may return an error after partially succeeding, for example if the instance is updated but a cluster update fails. If an error is returned, InstanceInfo and Clusters may be called to determine the current state. The return UpdateInstanceResults will describe the work done by the method, whether partial or complete.
func (*UpdateInstanceResults) String
func
(
r
*
UpdateInstanceResults
)
String
()
string
UpdateTableConf
type
UpdateTableConf
struct
{}
UpdateTableConf is unused