Documentation ¶
Overview ¶
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.
Setup and Credentials ¶
Use NewClient or NewAdminClient to create a client that can be used to access the data or admin APIs respectively. Both require credentials that have permission to access the Cloud Bigtable API.
If your program is run on Google App Engine or Google Compute Engine, using the Application Default Credentials (https://developers.google.com/accounts/docs/application-default-credentials) is the simplest option. Those credentials will be used by default when NewClient or NewAdminClient are called.
To use alternate credentials, pass them to NewClient or NewAdminClient using option.WithTokenSource. For instance, you can use service account credentials by visiting https://cloud.google.com/console/project/MYPROJECT/apiui/credential, creating a new OAuth "Client ID", storing the JSON key somewhere accessible, and writing
jsonKey, err := ioutil.ReadFile(pathToKeyFile) ... config, err := google.JWTConfigFromJSON(jsonKey, bigtable.Scope) // or bigtable.AdminScope, etc. ... client, err := bigtable.NewClient(ctx, project, instance, option.WithTokenSource(config.TokenSource(ctx))) ...
Here, `google` means the golang.org/x/oauth2/google package and `option` means the google.golang.org/api/option 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 { // do something with r return true // keep going }, bigtable.RowFilter(bigtable.FamilyFilter("links"))) ...
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 ...
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() mut.Set("links", "maps.google.com", bigtable.Now(), []byte("1")) mut.Set("links", "golang.org", bigtable.Now(), []byte("1")) err := tbl.Apply(ctx, "com.google.cloud", mut) ...
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) ...
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.
Index ¶
- Constants
- func GCRuleToString(rule *bttdpb.GcRule) string
- type AdminClient
- func (ac *AdminClient) Close() error
- func (ac *AdminClient) CreateColumnFamily(ctx context.Context, table, family string) error
- func (ac *AdminClient) CreatePresplitTable(ctx context.Context, table string, splitKeys []string) error
- func (ac *AdminClient) CreateTable(ctx context.Context, table string) error
- func (ac *AdminClient) CreateTableFromConf(ctx context.Context, conf *TableConf) error
- func (ac *AdminClient) CreateTableFromSnapshot(ctx context.Context, table, cluster, snapshot string) error
- func (ac *AdminClient) DeleteColumnFamily(ctx context.Context, table, family string) error
- func (ac *AdminClient) DeleteSnapshot(ctx context.Context, cluster, snapshot string) error
- func (ac *AdminClient) DeleteTable(ctx context.Context, table string) error
- func (ac *AdminClient) DropRowRange(ctx context.Context, table, rowKeyPrefix string) error
- func (ac *AdminClient) SetGCPolicy(ctx context.Context, table, family string, policy GCPolicy) error
- func (ac *AdminClient) SnapshotInfo(ctx context.Context, cluster, snapshot string) (*SnapshotInfo, error)
- func (ac *AdminClient) SnapshotTable(ctx context.Context, table, cluster, snapshot string, ttl time.Duration) error
- func (ac *AdminClient) Snapshots(ctx context.Context, cluster string) *SnapshotIterator
- func (ac *AdminClient) TableInfo(ctx context.Context, table string) (*TableInfo, error)
- func (ac *AdminClient) Tables(ctx context.Context) ([]string, error)
- func (ac *AdminClient) WaitForReplication(ctx context.Context, table string) error
- type ApplyOption
- type Client
- type ClientConfig
- type ClusterConfig
- type ClusterInfo
- type FamilyInfo
- type Filter
- func CellsPerRowLimitFilter(n int) Filter
- func CellsPerRowOffsetFilter(n int) Filter
- func ChainFilters(sub ...Filter) Filter
- func ColumnFilter(pattern string) Filter
- func ColumnRangeFilter(family, start, end string) Filter
- func ConditionFilter(predicateFilter, trueFilter, falseFilter Filter) Filter
- func FamilyFilter(pattern string) Filter
- func InterleaveFilters(sub ...Filter) Filter
- func LatestNFilter(n int) Filter
- func RowKeyFilter(pattern string) Filter
- func RowSampleFilter(p float64) Filter
- func StripValueFilter() Filter
- func TimestampRangeFilter(startTime time.Time, endTime time.Time) Filter
- func TimestampRangeFilterMicros(startTime Timestamp, endTime Timestamp) Filter
- func ValueFilter(pattern string) Filter
- func ValueRangeFilter(start, end []byte) Filter
- type GCPolicy
- type InstanceAdminClient
- func (iac *InstanceAdminClient) Close() error
- func (iac *InstanceAdminClient) Clusters(ctx context.Context, instanceID string) ([]*ClusterInfo, error)
- func (iac *InstanceAdminClient) CreateAppProfile(ctx context.Context, profile ProfileConf) (*btapb.AppProfile, error)
- func (iac *InstanceAdminClient) CreateCluster(ctx context.Context, conf *ClusterConfig) error
- func (iac *InstanceAdminClient) CreateInstance(ctx context.Context, conf *InstanceConf) error
- func (iac *InstanceAdminClient) CreateInstanceWithClusters(ctx context.Context, conf *InstanceWithClustersConfig) error
- func (iac *InstanceAdminClient) DeleteAppProfile(ctx context.Context, instanceID, name string) error
- func (iac *InstanceAdminClient) DeleteCluster(ctx context.Context, instanceID, clusterID string) error
- func (iac *InstanceAdminClient) DeleteInstance(ctx context.Context, instanceID string) error
- func (iac *InstanceAdminClient) GetAppProfile(ctx context.Context, instanceID, name string) (*btapb.AppProfile, error)
- func (iac *InstanceAdminClient) GetCluster(ctx context.Context, instanceID, clusterID string) (*ClusterInfo, error)
- func (iac *InstanceAdminClient) InstanceIAM(instanceID string) *iam.Handle
- func (iac *InstanceAdminClient) InstanceInfo(ctx context.Context, instanceID string) (*InstanceInfo, error)
- func (iac *InstanceAdminClient) Instances(ctx context.Context) ([]*InstanceInfo, error)
- func (iac *InstanceAdminClient) ListAppProfiles(ctx context.Context, instanceID string) *ProfileIterator
- func (iac *InstanceAdminClient) UpdateAppProfile(ctx context.Context, instanceID, profileID string, ...) error
- func (iac *InstanceAdminClient) UpdateCluster(ctx context.Context, instanceID, clusterID string, serveNodes int32) error
- type InstanceConf
- type InstanceInfo
- type InstanceType
- type InstanceWithClustersConfig
- type Mutation
- func (m *Mutation) DeleteCellsInColumn(family, column string)
- func (m *Mutation) DeleteCellsInFamily(family string)
- func (m *Mutation) DeleteRow()
- func (m *Mutation) DeleteTimestampRange(family, column string, start, end Timestamp)
- func (m *Mutation) Set(family, column string, ts Timestamp, value []byte)
- type ProfileAttrsToUpdate
- type ProfileConf
- type ProfileIterator
- type ReadItem
- type ReadModifyWrite
- type ReadOption
- type Row
- type RowList
- type RowRange
- type RowRangeList
- type RowSet
- type SnapshotInfo
- type SnapshotIterator
- type StorageType
- type Table
- func (t *Table) Apply(ctx context.Context, row string, m *Mutation, opts ...ApplyOption) error
- func (t *Table) ApplyBulk(ctx context.Context, rowKeys []string, muts []*Mutation, opts ...ApplyOption) ([]error, error)
- func (t *Table) ApplyReadModifyWrite(ctx context.Context, row string, m *ReadModifyWrite) (Row, error)
- func (t *Table) ReadRow(ctx context.Context, row string, opts ...ReadOption) (Row, error)
- func (t *Table) ReadRows(ctx context.Context, arg RowSet, f func(Row) bool, opts ...ReadOption) error
- func (t *Table) SampleRowKeys(ctx context.Context) ([]string, error)
- type TableConf
- type TableInfo
- type Timestamp
Constants ¶
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.
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.
const DefaultSnapshotDuration time.Duration = 0
DefaultSnapshotDuration is the default TTL for a snapshot.
Variables ¶
This section is empty.
Functions ¶
func GCRuleToString ¶ added in v0.8.0
GCRuleToString converts the given GcRule proto to a user-visible string.
Types ¶
type 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) CreateColumnFamily ¶
func (ac *AdminClient) CreateColumnFamily(ctx context.Context, table, family string) error
CreateColumnFamily creates a new column family in a table.
func (*AdminClient) CreatePresplitTable ¶ added in v0.7.0
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 ¶ added in v0.11.0
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 ¶ added in v0.18.0
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) 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 ¶ added in v0.18.0
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) DropRowRange ¶ added in v0.8.0
func (ac *AdminClient) DropRowRange(ctx context.Context, table, rowKeyPrefix string) error
DropRowRange permanently deletes a row range from the specified table.
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) SnapshotInfo ¶ added in v0.18.0
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 ¶ added in v0.18.0
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 ¶ added in v0.24.0
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) Tables ¶
func (ac *AdminClient) Tables(ctx context.Context) ([]string, error)
Tables returns a list of the tables in the instance.
func (*AdminClient) WaitForReplication ¶ added in v0.18.0
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.
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.
type 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 ¶ added in v0.18.0
func NewClientWithConfig(ctx context.Context, project, instance string, config ClientConfig, opts ...option.ClientOption) (*Client, error)
NewClientWithConfig creates a new client with the given config.
type ClientConfig ¶ added in v0.18.0
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 }
ClientConfig has configurations for the client.
type ClusterConfig ¶ added in v0.18.0
type ClusterConfig struct {
InstanceID, ClusterID, Zone string
NumNodes int32
StorageType StorageType
}
ClusterConfig contains the information necessary to create a cluster
type ClusterInfo ¶ added in v0.18.0
type ClusterInfo struct { Name string // name of the cluster Zone string // GCP zone of the cluster (e.g. "us-central1-a") ServeNodes int // number of allocated serve nodes State string // state of the cluster }
ClusterInfo represents information about a cluster.
type FamilyInfo ¶ added in v0.8.0
FamilyInfo represents information about a column family.
type Filter ¶
type Filter interface { String() string // contains filtered or unexported methods }
A Filter represents a row filter.
func CellsPerRowLimitFilter ¶ added in v0.11.0
CellsPerRowLimitFilter returns a filter that matches only the first N cells of each row.
func CellsPerRowOffsetFilter ¶ added in v0.11.0
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 ¶ added in v0.5.0
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 ¶ added in v0.7.0
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 LatestNFilter ¶
LatestNFilter returns a filter that matches the most recent N cells in each column.
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 ¶ added in v0.26.0
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 ¶ added in v0.4.0
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 ¶ added in v0.5.0
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 ¶ added in v0.7.0
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.
type 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 ¶ added in v0.25.0
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.
type 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 ¶ added in v0.18.0
func (iac *InstanceAdminClient) Clusters(ctx context.Context, instanceID string) ([]*ClusterInfo, error)
Clusters lists the clusters in an instance.
func (*InstanceAdminClient) CreateAppProfile ¶ added in v0.24.0
func (iac *InstanceAdminClient) CreateAppProfile(ctx context.Context, profile ProfileConf) (*btapb.AppProfile, error)
CreateAppProfile creates an app profile within an instance.
func (*InstanceAdminClient) CreateCluster ¶ added in v0.18.0
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 ¶ added in v0.7.0
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 ¶ added in v0.18.0
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) DeleteAppProfile ¶ added in v0.24.0
func (iac *InstanceAdminClient) DeleteAppProfile(ctx context.Context, instanceID, name string) error
DeleteAppProfile deletes an app profile from an instance.
func (*InstanceAdminClient) DeleteCluster ¶ added in v0.18.0
func (iac *InstanceAdminClient) DeleteCluster(ctx context.Context, instanceID, clusterID string) error
DeleteCluster deletes a cluster from an instance.
func (*InstanceAdminClient) DeleteInstance ¶ added in v0.7.0
func (iac *InstanceAdminClient) DeleteInstance(ctx context.Context, instanceID string) error
DeleteInstance deletes an instance from the project.
func (*InstanceAdminClient) GetAppProfile ¶ added in v0.24.0
func (iac *InstanceAdminClient) GetAppProfile(ctx context.Context, instanceID, name string) (*btapb.AppProfile, error)
GetAppProfile gets information about an app profile.
func (*InstanceAdminClient) GetCluster ¶ added in v0.19.0
func (iac *InstanceAdminClient) GetCluster(ctx context.Context, instanceID, clusterID string) (*ClusterInfo, error)
GetCluster fetches a cluster in an instance
func (*InstanceAdminClient) InstanceIAM ¶ added in v0.24.0
func (iac *InstanceAdminClient) InstanceIAM(instanceID string) *iam.Handle
InstanceIAM returns the instance's IAM handle.
func (*InstanceAdminClient) InstanceInfo ¶ added in v0.10.0
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.
func (*InstanceAdminClient) ListAppProfiles ¶ added in v0.24.0
func (iac *InstanceAdminClient) ListAppProfiles(ctx context.Context, instanceID string) *ProfileIterator
ListAppProfiles lists information about app profiles in an instance.
func (*InstanceAdminClient) UpdateAppProfile ¶ added in v0.24.0
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 ¶ added in v0.18.0
func (iac *InstanceAdminClient) UpdateCluster(ctx context.Context, instanceID, clusterID string, serveNodes int32) error
UpdateCluster updates attributes of a cluster
type InstanceConf ¶ added in v0.7.0
type InstanceConf struct {
InstanceId, DisplayName, ClusterId, Zone string
// NumNodes must not be specified for DEVELOPMENT instance types
NumNodes int32
StorageType StorageType
InstanceType InstanceType
}
InstanceConf contains the information necessary to create an Instance
type InstanceInfo ¶
type InstanceInfo struct { Name string // name of the instance DisplayName string // display name for UIs }
InstanceInfo represents information about an instance
type InstanceType ¶ added in v0.11.0
type InstanceType int32
InstanceType is the type of the instance
const ( PRODUCTION InstanceType = InstanceType(btapb.Instance_PRODUCTION) DEVELOPMENT = InstanceType(btapb.Instance_DEVELOPMENT) )
type InstanceWithClustersConfig ¶ added in v0.18.0
type InstanceWithClustersConfig struct {
InstanceID, DisplayName string
Clusters []ClusterConfig
InstanceType InstanceType
}
InstanceWithClustersConfig contains the information necessary to create an Instance
type 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.
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) 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.
type ProfileAttrsToUpdate ¶ added in v0.24.0
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 ¶ added in v0.24.0
func (p *ProfileAttrsToUpdate) GetFieldMaskPath() []string
GetFieldMaskPath returns the field mask path.
type ProfileConf ¶ added in v0.24.0
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
type ProfileIterator ¶ added in v0.24.0
type ProfileIterator struct {
// contains filtered or unexported fields
}
ProfileIterator iterates over profiles.
func (*ProfileIterator) Next ¶ added in v0.24.0
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 ¶ added in v0.24.0
func (it *ProfileIterator) PageInfo() *iterator.PageInfo
PageInfo supports pagination. See https://godoc.org/google.golang.org/api/iterator package for details.
type ReadItem ¶
A ReadItem is returned by Read. A ReadItem contains data from a specific row and column.
type 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.
type 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 limit the number of rows to be read.
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.
type 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.
type RowRange ¶
type RowRange struct {
// contains filtered or unexported fields
}
A RowRange is a half-open interval [Start, Limit) encompassing all the rows with keys at least as large as Start, and less than Limit. (Bigtable string comparison is the same as Go's.) A RowRange can be unbounded, encompassing all keys at least as large as Start.
func InfiniteRange ¶
InfiniteRange returns the RowRange consisting of all keys at least as large as start.
func PrefixRange ¶
PrefixRange returns a RowRange consisting of all keys starting with the prefix.
type RowRangeList ¶ added in v0.8.0
type RowRangeList []RowRange
RowRangeList is a sequence of RowRanges representing the union of the ranges.
type 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.
type SnapshotInfo ¶ added in v0.18.0
type SnapshotInfo struct { Name string SourceTable string DataSize int64 CreateTime time.Time DeleteTime time.Time }
SnapshotInfo contains snapshot metadata.
type SnapshotIterator ¶ added in v0.18.0
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 ¶ added in v0.18.0
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 ¶ added in v0.18.0
func (it *SnapshotIterator) PageInfo() *iterator.PageInfo
PageInfo supports pagination. See https://godoc.org/google.golang.org/api/iterator package for details.
type StorageType ¶ added in v0.7.0
type StorageType int
StorageType is the type of storage used for all tables in an instance
const ( SSD StorageType = iota HDD )
type 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 ¶
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) ([]error, error)
ApplyBulk applies multiple Mutations, up to a maximum of 100,000. 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 ¶
ReadRow is a convenience implementation of a single-row reader. A missing row will return a zero-length map and a nil error.
func (*Table) ReadRows ¶
func (t *Table) ReadRows(ctx context.Context, arg RowSet, f func(Row) bool, opts ...ReadOption) 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.
By default, the yielded rows will contain all values in all cells. Use RowFilter to limit the cells returned.
func (*Table) SampleRowKeys ¶ added in v0.20.0
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.
type TableConf ¶ added in v0.11.0
type TableConf struct { TableID string SplitKeys []string // Families is a map from family name to GCPolicy Families map[string]GCPolicy }
TableConf contains all of the information necessary to create a table with column families.
type TableInfo ¶
type TableInfo struct { // DEPRECATED - This field is deprecated. Please use FamilyInfos instead. Families []string FamilyInfos []FamilyInfo }
TableInfo represents information about a table.
type Timestamp ¶
type Timestamp int64
Timestamp is in units of microseconds since 1 January 1970.
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) TruncateToMilliseconds ¶ added in v0.7.0
TruncateToMilliseconds truncates a Timestamp to millisecond granularity, which is currently the only granularity supported.
Directories ¶
Path | Synopsis |
---|---|
Package bttest contains test helpers for working with the bigtable package.
|
Package bttest contains test helpers for working with the bigtable package. |
cmd
|
|
cbt
Cbt is a tool for doing basic interactions with Cloud Bigtable.
|
Cbt is a tool for doing basic interactions with Cloud Bigtable. |
emulator
cbtemulator launches the in-memory Cloud Bigtable server on the given address.
|
cbtemulator launches the in-memory Cloud Bigtable server on the given address. |
loadtest
Loadtest does some load testing through the Go client library for Cloud Bigtable.
|
Loadtest does some load testing through the Go client library for Cloud Bigtable. |
scantest
Scantest does scan-related load testing against Cloud Bigtable.
|
Scantest does scan-related load testing against Cloud Bigtable. |
internal
|
|
cbtconfig
Package cbtconfig encapsulates common code for reading configuration from .cbtrc and gcloud.
|
Package cbtconfig encapsulates common code for reading configuration from .cbtrc and gcloud. |
gax
Package gax is a snapshot from github.com/googleapis/gax-go with minor modifications.
|
Package gax is a snapshot from github.com/googleapis/gax-go with minor modifications. |
option
Package option contains common code for dealing with client options.
|
Package option contains common code for dealing with client options. |