Tipos de datos de Arrow y búfer de protocolo admitidos
La API de BigQuery Storage Write (gRPC) asigna cada tipo de datos de columna de BigQuery a búferes de protocolo específicos y tipos de entrada y formatos de codificación de Apache Arrow. En las tablas de referencia de este documento, se enumeran las asignaciones de tipos, los rangos de valores y los parámetros de conversión admitidos. Para conocer los conceptos básicos de la API, consulta Descripción general de la API de BigQuery Storage Write (gRPC).
Tipos de datos de búfer de protocolo admitidos
En la siguiente tabla, se muestran los tipos de datos admitidos en los búferes de protocolo y el formato de entrada correspondiente en BigQuery:
| Tipo de datos de BigQuery | Tipos de búfer de protocolo admitidos |
|---|---|
BOOL |
bool, int32, int64,
uint32, uint64, google.protobuf.BoolValue |
BYTES |
bytes, string, google.protobuf.BytesValue |
DATE |
int32 (preferido), int64, string
El valor es la cantidad de días transcurridos desde el tiempo Unix (1970-01-01). El
rango válido es |
DATETIME, TIME |
string
|
int64
Usa la
clase |
|
FLOAT |
double, float, google.protobuf.DoubleValue, google.protobuf.FloatValue |
GEOGRAPHY |
string
El valor es una geometría en formato WKT o GeoJson. |
INTEGER |
int32, int64, uint32,
enum, google.protobuf.Int32Value,
google.protobuf.Int64Value,
google.protobuf.UInt32Value |
JSON |
string |
NUMERIC, BIGNUMERIC |
int32, int64, uint32,
uint64, double, float,
string |
bytes, google.protobuf.BytesValueUsa la
clase |
|
STRING |
string, enum, google.protobuf.StringValue |
TIME |
string
El valor debe ser un literal de |
TIMESTAMP |
int64 (recomendado), int32,
uint32, google.protobuf.Timestamp
El valor se proporciona en microsegundos desde el tiempo Unix (1970-01-01). |
INTERVAL |
string, google.protobuf.Duration
El valor de cadena debe ser un literal de |
RANGE<T> |
message
Un tipo de mensaje anidado en el proto con dos campos, |
REPEATED FIELD |
array
Un tipo de array en el proto corresponde a un campo repetido en BigQuery. |
RECORD |
message
Un tipo de mensaje anidado en el proto corresponde a un campo de registro en BigQuery. |
Tipos de datos de Apache Arrow admitidos
En la siguiente tabla, se muestran los tipos de datos admitidos en Apache Arrow y el formato de entrada correspondiente en BigQuery.
| Tipo de datos de BigQuery | Tipos de Apache Arrow compatibles | Parámetros de tipo admitidos |
|---|---|---|
BOOL |
Boolean |
|
BYTES |
Binary |
|
DATE |
Date |
unit = Day |
String, int32 |
||
DATETIME |
Timestamp |
unit = MICROSECONDS
La zona horaria está vacía |
FLOAT |
FloatingPoint |
Precisión en {SINGLE, DOUBLE} |
GEOGRAPHY |
Utf8
El valor es una geometría en formato WKT o GeoJson. |
|
INTEGER |
int |
bitWidth en {8, 16, 32, 64}
is_signed = false |
JSON |
Utf8 |
|
NUMERIC |
Decimal128 |
Puedes proporcionar un NUMERIC que tenga cualquier precisión o escala que sea menor que el rango compatible con BigQuery. |
BIGNUMERIC |
Decimal256 |
Puedes proporcionar un BIGNUMERIC que tenga cualquier precisión o escala que sea menor que el rango admitido por BigQuery. |
STRING |
Utf8 |
|
TIMESTAMP |
Timestamp |
unit= MICROSECONDS
timezone = UTC |
INTERVAL |
Interval |
unidad en {YEAR_MONTH, DAY_TIME, MONTH_DAY_NANO} |
Utf8 |
||
RANGE<T> |
Struct
El Struct de Arrow debe tener dos subcampos llamados Para la columna Para la columna Para Un valor |
|
REPEATED FIELD |
List |
Un valor NULL se debe representar con una lista vacía. |
RECORD |
Struct |