Classes
AddToCell
Representation of an AddToCell mod in a data change.
AuthorizedViewId
An implementation of a TargetId for authorized views.
See com.google.cloud.bigtable.admin.v2.models.AuthorizedView for more details about an authorized view.
BulkMutation
Represents a list of mutations for multiple rows. Each mutation contains multiple changes that will be atomically applied to each row. However, ordering between rows is not guaranteed.
This class is meant for manual batching.
ChangeStreamContinuationToken
A simple wrapper for StreamContinuationToken.
ChangeStreamMutation
A ChangeStreamMutation represents a list of mods(represented by List<Entry>) targeted at a single row, which is concatenated by ChangeStreamRecordMerger. It represents a logical row mutation and can be converted to the original write request(i.e. RowMutation or RowMutationEntry.
A ChangeStreamMutation can be constructed in two ways, depending on whether it's a user
initiated mutation or a Garbage Collection mutation. Either way, the caller should explicitly set
token
and estimatedLowWatermark
before build(), otherwise it'll raise an error.
Case 1) User initiated mutation.
ChangeStreamMutation.Builder builder = ChangeStreamMutation.createUserMutation(...);
builder.setCell(...);
builder.deleteFamily(...);
builder.deleteCells(...);
ChangeStreamMutation changeStreamMutation = builder.setToken(...).setEstimatedLowWatermark().build();
Case 2) Garbage Collection mutation.
ChangeStreamMutation.Builder builder = ChangeStreamMutation.createGcMutation(...);
builder.setCell(...);
builder.deleteFamily(...);
builder.deleteCells(...);
ChangeStreamMutation changeStreamMutation = builder.setToken(...).setEstimatedLowWatermark().build();
CloseStream
A simple wrapper for ReadChangeStreamResponse.CloseStream. This message is received when the stream reading is finished(i.e. read past the stream end time), or an error has occurred.
ConditionalRowMutation
Mutates a row atomically based on the output of a condition filter.
DefaultChangeStreamRecordAdapter
Default implementation of a ChangeStreamRecordAdapter that uses ChangeStreamRecords to represent change stream records.
DefaultRowAdapter
Default implementation of a RowAdapter that uses Rows to represent logical rows.
DefaultRowAdapter.DefaultRowBuilder
Internal implementation detail for DefaultRowAdapter.
DeleteCells
Representation of a DeleteCells mod in a data change.
DeleteFamily
Representation of a DeleteFamily mod in a data change.
Filters
A Fluent DSL to create a hierarchy of filters for the CheckAndMutateRow RPCs and ReadRows Query.
Intended usage is to statically import, or in case of conflict, assign the static variable FILTERS and use its fluent API to build filters.
Sample code:
import static com.google.cloud.bigtable.data.v2.models.Filters.FILTERS;
void main() {
// Build the filter expression
RowFilter filter = FILTERS.chain()
.filter(FILTERS.qualifier().regex("prefix.*"))
.filter(FILTERS.limit().cellsPerRow(10));
// Use it in a Query
Query query = Query.create("[TABLE]")
.filter(filter);
}
Filters.ChainFilter
DSL for adding filters to a chain.
Filters.ConditionFilter
DSL for configuring a conditional filter.
Filters.FamilyFilter
Filters.InterleaveFilter
DSL for adding filters to the interleave list.
Filters.KeyFilter
Filters.LimitFilter
Filters.OffsetFilter
Filters.QualifierFilter
Filters.QualifierRangeFilter
Matches only cells from columns within the given range.
Filters.TimestampFilter
Filters.TimestampRangeFilter
Matches only cells with microsecond timestamps within the given range.
Filters.ValueFilter
Filters.ValueRangeFilter
Matches only cells with values that fall within the given value range.
Heartbeat
A simple wrapper for ReadChangeStreamResponse.Heartbeat.
KeyOffset
Represents the offset of a row key in a table.
MutateRowsException.FailedMutation
Identifies which mutation failed and the reason it failed. The mutation is identified by it's index in the original request's MutateRowsRequest#getEntriesList().
Mutation
The concrete implementation of MutationApi that can be used to create and represent a list of mutations. It used by RowMutation and ConditionalRowMutation to encapsulate a list of mutations that will to be applied to a single row.
Query
A simple wrapper to construct a query for the ReadRows RPC.
Query.QueryPaginator
A Query Paginator that will split a query into small chunks. See Query#createPaginator(int) for example usage.
Range<T,R>
Range API.
This base class represents the API for all ranges in the Cloud Bigtable client. Please note this mutable type. It's intended to support fluent DSLs.For example:
// A Range that encloses all strings
ByteStringRange.unbounded();
// Range that includes all strings including "begin" up until "end"
ByteStringRange.unbounded().of("start", "end");
// Create a Bytestring range with an unbounded start and the inclusive end "end"
ByteStringRange.unbounded().endClosed("end");
// Ranges are mutable, so take care to clone them to get a new instance
ByteStringRange r1 = ByteStringRange.of("a", "z");
ByteStringRange r2 = r1.clone().endUnbounded();
Range.ByteStringRange
Concrete Range for ByteStrings
Range.TimestampRange
Concrete Range for timestamps
ReadChangeStreamQuery
A simple wrapper to construct a query for the ReadChangeStream RPC.
ReadModifyWriteRow
Wraps a ReadModifyWriteRowRequest.
Row
Default representation of a logical row.
The cells contained within, will be sorted by the native order. Please see RowCell#compareByNative() for details.
RowCell
Default representation of a cell in a Row.
RowMutation
Represents a list of mutations targeted at a single row. It's meant to be used as an parameter for com.google.cloud.bigtable.data.v2.BigtableDataClient#mutateRowAsync(RowMutation).
RowMutationEntry
Represents a list of mutations targeted at a single row. It is meant to be used as an parameter for com.google.cloud.bigtable.data.v2.BigtableDataClient#newBulkMutationBatcher(String).
Note: The changes in the mutation will be applied atomically but the ordering between different RowMutationEntry instances is not guaranteed.
SampleRowKeysRequest
Wraps a com.google.bigtable.v2.SampleRowKeysRequest.
SetCell
Representation of a SetCell mod in a data change, whose value is concatenated by ChangeStreamRecordMerger in case of SetCell value chunking.
TableId
An implementation of a TargetId for tables.
Value
Wrapper class for the com.google.bigtable.v2.Value protobuf message. See Also: com.google.bigtable.v2.Value
Value.IntValue
Value.RawTimestamp
Value.RawValue
Interfaces
ChangeStreamRecord
Default representation of a change stream record, which can be a Heartbeat, a CloseStream, or a logical mutation.
ChangeStreamRecordAdapter<ChangeStreamRecordT>
An extension point that allows end users to plug in a custom implementation of logical change stream records. This is useful in cases where the user would like to apply advanced client side filtering(for example, only keep DeleteFamily in the mutations). This adapter acts like a factory for a SAX style change stream record builder.
ChangeStreamRecordAdapter.ChangeStreamRecordBuilder<ChangeStreamRecordT>
A SAX style change stream record factory. It is responsible for creating one of the three types of change stream record: heartbeat, close stream, and a change stream mutation.
State management is handled external to the implementation of this class:
-
Case 1: Heartbeat
- Exactly 1
onHeartbeat
.
-
Case 2: CloseStream
- Exactly 1
onCloseStream
.
-
Case 3: ChangeStreamMutation. A change stream mutation consists of one or more mods, where
the SetCells might be chunked. There are 3 different types of mods that a ReadChangeStream
response can have:
- DeleteFamily -> Exactly 1
deleteFamily
- DeleteCell -> Exactly 1
deleteCell
- SetCell -> Exactly 1
startCell
, At least 1CellValue
, Exactly 1finishCell
.
The whole flow of constructing a ChangeStreamMutation is:
- Exactly 1
startUserMutation
orstartGcMutation
. - At least 1 DeleteFamily/DeleteCell/SetCell mods.
- Exactly 1
finishChangeStreamMutation
.
Note: For a non-chunked SetCell, only 1 CellValue
will be called. For a chunked
SetCell, more than 1 CellValue
s will be called.
Note: DeleteRow's won't appear in data changes since they'll be converted to multiple DeleteFamily's.
Entry
Default representation of a mod in a data change, which can be a DeleteFamily, a DeleteCells, or a SetCell This class will be used by ChangeStreamMutation to represent a list of mods in a logical change stream mutation.
Filters.Filter
MutationApi<T>
The API for creating mutations for a single row.
RowAdapter<RowT>
An extension point that allows end users to plug in a custom implementation of logical rows. This useful in cases where the user would like to apply advanced client side filtering of cells. This adapter acts like a factory for a SAX style row builder.
RowAdapter.RowBuilder<RowT>
A SAX style row factory. It is responsible for creating two types of rows: standard data rows and special marker rows. Marker rows are emitted when skipping lots of rows due to filters. The server notifies the client of the last row it skipped to help client resume in case of error.
State management is handled external to the implementation of this class and guarantees the following order:
- Exactly 1
startRow
for each row. - Exactly 1
startCell
for each cell. - At least 1
cellValue
for each cell. - Exactly 1
finishCell
for each cell. - Exactly 1
finishRow
for each row.
createScanMarkerRow
can be called one or more times between finishRow
and
startRow
. reset
can be called at any point and can be invoked multiple times in
a row.
TargetId
TargetId defines the scope a data operation can be applied to. See Also: TableId, AuthorizedViewId
Enums
ChangeStreamMutation.MutationType
Range.BoundType
Value.ValueType
Exceptions
MutateRowsException
Thrown by the MutateRows when at least one Mutation failed. If the last failure was caused by an RPC error (as opposed to a single entry failing), then this exception's cause will be set to that error and #getFailedMutations() will contain synthetic errors for all of the entries that were part of that RPC.