public sealed class Type : IMessage<Type>, IEquatable<Type>, IDeepCloneable<Type>, IBufferMessage, IMessage
Reference documentation and code samples for the Google Cloud Bigtable Administration v2 API class Type.
Type
represents the type of data that is written to, read from, or stored
in Bigtable. It is heavily based on the GoogleSQL standard to help maintain
familiarity and consistency across products and features.
For compatibility with Bigtable's existing untyped APIs, each Type
includes
an Encoding
which describes how to convert to/from the underlying data.
This might involve composing a series of steps into an "encoding chain," for
example to convert from INT64 -> STRING -> raw bytes. In most cases, a "link"
in the encoding chain will be based an on existing GoogleSQL conversion
function like CAST
.
Each link in the encoding chain also defines the following properties:
- Natural sort: Does the encoded value sort consistently with the original
typed value? Note that Bigtable will always sort data based on the raw
encoded value, not the decoded type.
- Example: STRING values sort in the same order as their UTF-8 encodings.
- Counterexample: Encoding INT64 to a fixed-width STRING does not preserve sort order when dealing with negative numbers. INT64(1) > INT64(-1), but STRING("-00001") > STRING("00001).
- The overall encoding chain sorts naturally if every link does.
- Self-delimiting: If we concatenate two encoded values, can we always tell
where the first one ends and the second one begins?
- Example: If we encode INT64s to fixed-width STRINGs, the first value will always contain exactly N digits, possibly preceded by a sign.
- Counterexample: If we concatenate two UTF-8 encoded STRINGs, we have no way to tell where the first one ends.
- The overall encoding chain is self-delimiting if any link is.
- Compatibility: Which other systems have matching encoding schemes? For example, does this encoding have a GoogleSQL equivalent? HBase? Java?
Namespace
Google.Cloud.Bigtable.Admin.V2Assembly
Google.Cloud.Bigtable.Admin.V2.dll
Constructors
Type()
public Type()
Type(Type)
public Type(Type other)
Parameter | |
---|---|
Name | Description |
other | Type |
Properties
AggregateType
public Type.Types.Aggregate AggregateType { get; set; }
Aggregate
Property Value | |
---|---|
Type | Description |
TypeTypesAggregate |
BytesType
public Type.Types.Bytes BytesType { get; set; }
Bytes
Property Value | |
---|---|
Type | Description |
TypeTypesBytes |
Int64Type
public Type.Types.Int64 Int64Type { get; set; }
Int64
Property Value | |
---|---|
Type | Description |
TypeTypesInt64 |
KindCase
public Type.KindOneofCase KindCase { get; }
Property Value | |
---|---|
Type | Description |
TypeKindOneofCase |