public sealed class Type : IMessage<Type>, IEquatable<Type>, IDeepCloneable<Type>, IBufferMessage, IMessage
Reference documentation and code samples for the Google Bigtable 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.
Each encoding also defines the following properties:
Order-preserving: 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: BYTES values sort in the same order as their raw encodings.
Counterexample: Encoding INT64 as a fixed-width decimal string does
not preserve sort order when dealing with negative numbers.
INT64(1) > INT64(-1), but STRING("-00001") > STRING("00001).
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.
Compatibility: Which other systems have matching encoding schemes? For
example, does this encoding have a GoogleSQL equivalent? HBase? Java?
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-12 UTC."],[[["\u003cp\u003eThe latest version of the Google.Cloud.Bigtable.V2 API is 3.17.0, with multiple previous versions available, ranging back to version 2.2.0.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eType\u003c/code\u003e class in the Google Bigtable v2 API represents the data type used for reading, writing, and storing data in Bigtable, based on the GoogleSQL standard for consistency.\u003c/p\u003e\n"],["\u003cp\u003eEach \u003ccode\u003eType\u003c/code\u003e in Bigtable includes an \u003ccode\u003eEncoding\u003c/code\u003e that is able to convert data to and from the underlying format, including features such as order-preserving and self-delimiting qualities.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eType\u003c/code\u003e class includes properties for various data types, such as Aggregate, Array, Bool, Bytes, Date, Float32, Float64, Int64, Map, String, Struct, and Timestamp, each with its corresponding data type, \u003ccode\u003eKindOneofCase\u003c/code\u003e as well.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eType\u003c/code\u003e class inherits from \u003ccode\u003eobject\u003c/code\u003e and implements interfaces like \u003ccode\u003eIMessage\u003c/code\u003e, \u003ccode\u003eIEquatable\u003c/code\u003e, \u003ccode\u003eIDeepCloneable\u003c/code\u003e, and \u003ccode\u003eIBufferMessage\u003c/code\u003e, and has inherited members such as \u003ccode\u003eGetHashCode()\u003c/code\u003e, \u003ccode\u003eGetType()\u003c/code\u003e, and \u003ccode\u003eToString()\u003c/code\u003e.\u003c/p\u003e\n"]]],[],null,["# Google Bigtable v2 API - Class Type (3.23.0)\n\nVersion latestkeyboard_arrow_down\n\n- [3.23.0 (latest)](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/latest/Google.Cloud.Bigtable.V2.Type)\n- [3.22.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/3.22.0/Google.Cloud.Bigtable.V2.Type)\n- [3.21.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/3.21.0/Google.Cloud.Bigtable.V2.Type)\n- [3.20.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/3.20.0/Google.Cloud.Bigtable.V2.Type)\n- [3.19.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/3.19.0/Google.Cloud.Bigtable.V2.Type)\n- [3.18.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/3.18.0/Google.Cloud.Bigtable.V2.Type)\n- [3.17.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/3.17.0/Google.Cloud.Bigtable.V2.Type)\n- [3.16.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/3.16.0/Google.Cloud.Bigtable.V2.Type)\n- [3.15.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/3.15.0/Google.Cloud.Bigtable.V2.Type)\n- [3.14.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/3.14.0/Google.Cloud.Bigtable.V2.Type)\n- [3.13.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/3.13.0/Google.Cloud.Bigtable.V2.Type)\n- [3.12.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/3.12.0/Google.Cloud.Bigtable.V2.Type)\n- [3.11.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/3.11.0/Google.Cloud.Bigtable.V2.Type)\n- [3.10.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/3.10.0/Google.Cloud.Bigtable.V2.Type)\n- [3.9.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/3.9.0/Google.Cloud.Bigtable.V2.Type)\n- [3.8.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/3.8.0/Google.Cloud.Bigtable.V2.Type)\n- [3.7.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/3.7.0/Google.Cloud.Bigtable.V2.Type)\n- [3.6.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/3.6.0/Google.Cloud.Bigtable.V2.Type)\n- [3.5.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/3.5.0/Google.Cloud.Bigtable.V2.Type)\n- [3.4.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/3.4.0/Google.Cloud.Bigtable.V2.Type)\n- [3.3.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/3.3.0/Google.Cloud.Bigtable.V2.Type)\n- [3.2.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/3.2.0/Google.Cloud.Bigtable.V2.Type)\n- [3.1.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/3.1.0/Google.Cloud.Bigtable.V2.Type)\n- [3.0.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/3.0.0/Google.Cloud.Bigtable.V2.Type)\n- [2.6.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/2.6.0/Google.Cloud.Bigtable.V2.Type)\n- [2.5.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/2.5.0/Google.Cloud.Bigtable.V2.Type)\n- [2.4.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/2.4.0/Google.Cloud.Bigtable.V2.Type)\n- [2.3.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/2.3.0/Google.Cloud.Bigtable.V2.Type)\n- [2.2.0](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/2.2.0/Google.Cloud.Bigtable.V2.Type) \n\n public sealed class Type : IMessage\u003cType\u003e, IEquatable\u003cType\u003e, IDeepCloneable\u003cType\u003e, IBufferMessage, IMessage\n\nReference documentation and code samples for the Google Bigtable v2 API class Type.\n\n`Type` represents the type of data that is written to, read from, or stored\nin Bigtable. It is heavily based on the GoogleSQL standard to help maintain\nfamiliarity and consistency across products and features.\n\nFor compatibility with Bigtable's existing untyped APIs, each `Type` includes\nan `Encoding` which describes how to convert to/from the underlying data.\n\nEach encoding also defines the following properties:\n\n- Order-preserving: 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.\n - Example: BYTES values sort in the same order as their raw encodings.\n - Counterexample: Encoding INT64 as a fixed-width decimal string does *not* preserve sort order when dealing with negative numbers. `INT64(1) \u003e INT64(-1)`, but `STRING(\"-00001\") \u003e STRING(\"00001)`.\n- Self-delimiting: If we concatenate two encoded values, can we always tell where the first one ends and the second one begins?\n - Example: If we encode INT64s to fixed-width STRINGs, the first value will always contain exactly N digits, possibly preceded by a sign.\n - Counterexample: If we concatenate two UTF-8 encoded STRINGs, we have no way to tell where the first one ends.\n- Compatibility: Which other systems have matching encoding schemes? For example, does this encoding have a GoogleSQL equivalent? HBase? Java? \n\nInheritance\n-----------\n\n[object](https://learn.microsoft.com/dotnet/api/system.object) \\\u003e Type \n\nImplements\n----------\n\n[IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage-1.html)[Type](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/latest/Google.Cloud.Bigtable.V2.Type), [IEquatable](https://learn.microsoft.com/dotnet/api/system.iequatable-1)[Type](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/latest/Google.Cloud.Bigtable.V2.Type), [IDeepCloneable](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IDeepCloneable-1.html)[Type](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/latest/Google.Cloud.Bigtable.V2.Type), [IBufferMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IBufferMessage.html), [IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage.html) \n\nInherited Members\n-----------------\n\n[object.GetHashCode()](https://learn.microsoft.com/dotnet/api/system.object.gethashcode) \n[object.GetType()](https://learn.microsoft.com/dotnet/api/system.object.gettype) \n[object.ToString()](https://learn.microsoft.com/dotnet/api/system.object.tostring)\n\nNamespace\n---------\n\n[Google.Cloud.Bigtable.V2](/dotnet/docs/reference/Google.Cloud.Bigtable.V2/latest/Google.Cloud.Bigtable.V2)\n\nAssembly\n--------\n\nGoogle.Cloud.Bigtable.V2.dll\n\nConstructors\n------------\n\n### Type()\n\n public Type()\n\n### Type(Type)\n\n public Type(Type other)\n\nProperties\n----------\n\n### AggregateType\n\n public Type.Types.Aggregate AggregateType { get; set; }\n\nAggregate\n\n### ArrayType\n\n public Type.Types.Array ArrayType { get; set; }\n\nArray\n\n### BoolType\n\n public Type.Types.Bool BoolType { get; set; }\n\nBool\n\n### BytesType\n\n public Type.Types.Bytes BytesType { get; set; }\n\nBytes\n\n### DateType\n\n public Type.Types.Date DateType { get; set; }\n\nDate\n\n### EnumType\n\n public Type.Types.Enum EnumType { get; set; }\n\nEnum\n\n### Float32Type\n\n public Type.Types.Float32 Float32Type { get; set; }\n\nFloat32\n\n### Float64Type\n\n public Type.Types.Float64 Float64Type { get; set; }\n\nFloat64\n\n### Int64Type\n\n public Type.Types.Int64 Int64Type { get; set; }\n\nInt64\n\n### KindCase\n\n public Type.KindOneofCase KindCase { get; }\n\n### MapType\n\n public Type.Types.Map MapType { get; set; }\n\nMap\n\n### ProtoType\n\n public Type.Types.Proto ProtoType { get; set; }\n\nProto\n\n### StringType\n\n public Type.Types.String StringType { get; set; }\n\nString\n\n### StructType\n\n public Type.Types.Struct StructType { get; set; }\n\nStruct\n\n### TimestampType\n\n public Type.Types.Timestamp TimestampType { get; set; }\n\nTimestamp"]]