Los tipos unificados son los tipos de datos que aparecen en los eventos Avro o JSON. Se trata de una representación unificada y específica de Datastream de un tipo de datos en varios orígenes y destinos de datos que admite Datastream.
Los tipos unificados son el superconjunto de todas las representaciones de tipos de todos los tipos de origen admitidos, que representan el tipo de origen original de forma genérica, pero sin pérdida.
En las siguientes tablas se indica lo siguiente:
- Los tipos unificados asociados a Datastream
- Las asignaciones entre los tipos de datos de Oracle, MySQL, SQL Server, PostgreSQL y Salesforce, y los tipos unificados de Datastream
Consulta la documentación sobre el destino de BigQuery para obtener información sobre las asignaciones entre los tipos de datos de las diferentes fuentes y BigQuery.
Tipos unificados de Datastream
| Escribe el nombre | Información | Definición de Avro | Definición de JSON |
|---|---|---|---|
BOOLEAN |
booleano | booleano | booleano |
BYTES |
Una secuencia de bytes sin signo | bytes | cadena |
DATE |
Días desde el inicio del registro de tiempo | Tipo lógico de fecha | Cadena [ISO-8601] |
DATETIME |
La fecha (en días desde el inicio del registro de tiempo) y la hora (en microsegundos desde la medianoche). | Un tipo personalizado
{
"type": "record",
"name": "datetime",
"fields": [
{"name": "date",
"type": "int",
"logicalType": "date"},
{"name": "time",
"type": "long",
"logicalType": "time-micros"}
]
}
|
Cadena [ISO-8601] |
DECIMAL (p,s) |
Número decimal con signo de precisión arbitraria | Un tipo lógico decimal | número |
DOUBLE |
Números de punto flotante de 64 bits | doble | número |
FLOAT |
Números de punto flotante de 32 bits | flotante | número |
INTEGER |
Un entero de 32 bits | int | número |
INTERVAL |
Duración entre dos eventos (en meses, horas y microsegundos) | Un tipo personalizado
{
"type": "record",
"name": "interval",
"fields": [
{"name": "months",
"type": "int"}
{"name": "hours",
"type": "int"},
{"name": "micros",
"type": "long"}
]
}
|
cadena [ISO-8601] |
JSON |
Un objeto JSON | Un tipo lógico personalizado
{
"type": "string",
"logicalType": "json"
}
|
JSON anidado |
LONG |
Un entero de 64 bits | long | número |
NUMBER |
Un tipo de datos numérico | Un tipo lógico personalizado
{
"type": "string",
"logicalType": "number"
}
|
cadena |
STRING |
Una longitud de cadena ilimitada | cadena | cadena |
TIME |
Número de microsegundos transcurridos desde la medianoche, independientemente de la zona horaria. | Un tipo lógico de tiempo-micros | cadena [ISO-8601] |
TIME_INTERVAL |
Número de microsegundos transcurridos entre dos eventos. | Un tipo lógico personalizado
{
"type": "long",
"logicalType": "time-interval-micros"
}
|
long |
TIMESTAMP |
Número de microsegundos transcurridos desde el inicio del registro de tiempo, independientemente de la zona horaria. | Un tipo lógico de marca de tiempo | cadena [ISO-8601] |
TIMESTAMP WITH TIME ZONE |
Número de microsegundos transcurridos desde el inicio del registro de tiempo con un desfase horario específico en milisegundos. | Un tipo personalizado
{
"type": "record",
"name": "timestampTz",
"fields": [
{"name": "timestamp",
"type": "long"
"logicalType": "timestamp-micros"},
{"name": "offset",
"type": "int"
"logicalType": "time-millis"}
]
}
|
cadena [ISO-8601] |
TIME WITH TIME ZONE |
Número de microsegundos transcurridos desde la medianoche con una diferencia horaria específica. | Un tipo personalizado
{
"type": "record",
"name": "timeTz",
"fields": [
{"name": "time",
"type": "long"
"logicalType": "time-micros"},
{"name": "offset",
"type": "int",
"logicalType": "time-millis"}
]
}
|
cadena [ISO-8601] |
UNSUPPORTED |
Un tipo de datos no admitido | Un tipo lógico personalizado
{
"type": "null",
"logicalType": "unsupported"
}
|
null |
VARCHAR |
Una cadena con una longitud máxima de n caracteres | Un tipo lógico personalizado
{
"type": "string",
"logicalType": "varchar"
"length": N
}
|
cadena |
Asignar tipos de datos de Oracle a tipos unificados de Datastream
| Tipo de datos de Oracle | Tipo unificado de Datastream |
|---|---|
ANYDATA |
UNSUPPORTED |
BFILE |
STRING |
BINARY DOUBLE |
DOUBLE |
BINARY FLOAT |
FLOAT |
BLOB |
BYTES |
CHAR |
VARCHAR |
CLOB |
STRING |
DATE |
DATETIME
|
DOUBLE PRECISION |
DOUBLE |
FLOAT(p) |
DOUBLE |
INTERVAL DAY TO SECOND |
UNSUPPORTED |
INTERVAL YEAR TO MONTH |
UNSUPPORTED |
LONG/LONG RAW |
UNSUPPORTED |
NCHAR |
STRING |
NCLOB |
STRING |
NUMBER |
NUMBER |
NUMBER(p,s<=0) |
Si p<=18, entonces s |
NUMBER(p,s>0) |
Si p= |
NVARCHAR2 |
STRING |
RAW |
STRING |
ROWID |
STRING |
SDO_GEOMETRY |
UNSUPPORTED |
SMALLINT |
INTEGER |
TIMESTAMP |
TIMESTAMP
|
TIMESTAMP WITH TIME ZONE |
TIMESTAMP WITH TIME ZONE
|
UDT (tipo definido por el usuario) |
UNSUPPORTED |
UROWID |
UNSUPPORTED |
VARCHAR |
VARCHAR |
VARCHAR2 |
VARCHAR |
XMLTYPE |
UNSUPPORTED |
Asignar tipos de datos de MySQL a tipos unificados de Datastream
| Tipo de datos de MySQL | Tipo unificado de Datastream |
|---|---|
BIGINT(size) SIGNED |
LONG |
BIGINT(size) UNSIGNED |
Si el destino es BigQuery, DECIMAL; si es Cloud Storage, NUMBER. |
BINARY(size) |
STRING (hex encoded) |
BIT(size) |
LONG |
BLOB(size) |
STRING (hex encoded) |
BOOL |
INTEGER |
CHAR(size) |
STRING |
DATE |
Si el destino es BigQuery, DATE; si es Cloud Storage, TIMESTAMP. |
DATETIME(fsp) |
Si el destino es BigQuery, DATETIME; si es Cloud Storage, TIMESTAMP. |
DECIMAL(size, d) |
DECIMAL(size, d) |
DOUBLE(size, d) |
DOUBLE |
ENUM(val1, val2, val3, ...) |
STRING |
FLOAT(p) |
FLOAT |
FLOAT(size, d) |
FLOAT |
GEOMETRY |
UNSUPPORTED |
INTEGER(size) SIGNED |
INTEGER |
INTEGER(size) UNSIGNED |
LONG |
JSON |
Si el destino es BigQuery, JSON; si es Cloud Storage, STRING.
|
LONGBLOB |
STRING (hex encoded) |
LONGTEXT |
STRING |
MEDIUMBLOB |
STRING (hex encoded) |
MEDIUMINT(size) |
INTEGER |
MEDIUMTEXT |
STRING |
SET(val1, val2, val3, ...) |
STRING |
SMALLINT(size) |
INTEGER |
TEXT(size) |
STRING |
TIME(fsp) |
Si el destino es BigQuery, INTERVAL; si es Cloud Storage, TIME_INTERVAL. |
TIMESTAMP(fsp) |
TIMESTAMP |
TINYBLOB |
STRING (hex encoded) |
TINYINT(size) |
INTEGER |
TINYTEXT |
STRING |
VARBINARY(size) |
STRING (hex encoded) |
VARCHAR |
STRING |
YEAR |
INTEGER |
Asignar tipos de datos de PostgreSQL a tipos unificados de Datastream
| Tipo de datos de PostgreSQL | Tipo unificado de Datastream |
|---|---|
ARRAY |
JSON
|
BIGINT |
LONG |
BIT |
BYTES |
BIT_VARYING |
BYTES |
BOOLEAN |
BOOLEAN |
BOX |
UNSUPPORTED |
BYTEA |
BYTES |
CHARACTER |
|
CHARACTER_VARYING |
|
CIDR |
STRING |
CIRCLE |
UNSUPPORTED |
CITEXT |
STRING |
COMPOSITE |
UNSUPPORTED |
DATE |
DATE |
DOUBLE_PRECISION |
DOUBLE |
ENUM |
STRING |
INET |
STRING |
INTEGER |
INTEGER |
INTERVAL |
INTERVAL |
JSON |
JSON |
JSONB |
JSON |
LINE |
UNSUPPORTED |
LSEG |
UNSUPPORTED |
MACADDR |
STRING |
MONEY |
DOUBLE |
NUMERIC |
|
OID |
LONG |
PATH |
UNSUPPORTED |
POINT |
UNSUPPORTED |
POLYGON |
UNSUPPORTED |
REAL |
FLOAT |
SMALLINT |
INTEGER |
SMALLSERIAL |
INTEGER |
SERIAL |
INTEGER |
TEXT |
STRING |
TIME |
TIME |