Los tipos unificados son los tipos de datos que aparecen en los eventos Avro o JSON. Son una representación unificada y específica de Datastream de un tipo de datos en varias fuentes y destinos de datos, como una base de datos de Oracle, MySQL o PostgreSQL de origen, y un destino de BigQuery o Cloud Storage.
Los tipos unificados son el superconjunto de todas las representaciones de tipos en todos los tipos de fuente admitidos, que representan el tipo de fuente original de una manera genérica, pero sin pérdidas.
En las siguientes tablas, se incluyen los siguientes datos:
- Los tipos unificados asociados con Datastream
- Las asignaciones entre los tipos de datos de una base de datos de Oracle, una base de datos de MySQL o una base de datos de PostgreSQL, y los tipos unificados de Datastream
Consulta la documentación de 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
Nombre del tipo | Info | Definición de Avro | Definición de JSON |
---|---|---|---|
BOOLEAN |
booleana | booleana | booleana |
BYTES |
Una secuencia de bytes sin firmar | bytes | string |
DATE |
Días desde la época | Un tipo lógico de fecha | string [ISO-8601] |
DATETIME |
La fecha (en días desde la época) 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"} ] } |
string [ISO-8601] |
DECIMAL (p,s) |
Un 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 | double | número |
FLOAT |
Números de punto flotante de 32 bits | float | número |
INTEGER |
Un número entero de 32 bits. | int | número |
INTERVAL |
Es la 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"} ] } |
string [ISO-8601] |
JSON |
Un objeto JSON | Un tipo lógico personalizado { "type": "string", "logicalType": "json" } |
JSON anidado |
LONG |
Un número entero de 64 bits. | long | número |
NUMBER |
Un tipo de datos numérico | Un tipo lógico personalizado { "type": "string", "logicalType": "number" } |
string |
STRING |
Una longitud de cadena ilimitada | string | string |
TIME |
Indica cuántos microsegundos transcurrieron desde la medianoche, independientemente de la zona horaria. | Un tipo lógico de microsegundos de tiempo | string [ISO-8601] |
TIME_INTERVAL |
Indica cuántos microsegundos transcurrieron entre dos eventos. | Un tipo lógico personalizado { "type": "long", "logicalType": "time-interval-micros" } |
long |
TIMESTAMP |
Indica cuántos microsegundos transcurrieron desde la época, independientemente de la zona horaria. | Un tipo lógico de marca de tiempo | string [ISO-8601] |
TIMESTAMP WITH TIME ZONE |
Indica cuántos microsegundos transcurrieron desde la época con una compensación de zona horaria específica en milisegundos. | Un tipo personalizado { "type": "record", "name": "timestampTz", "fields": [ {"name": "timestamp", "type": "long" "logicalType": "timestamp-micros"}, {"name": "offset", "type": "int" "logicalType": "time-millis"} ] } |
string [ISO-8601] |
TIME WITH TIME ZONE |
Indica cuántos microsegundos transcurrieron desde la medianoche con una compensación de zona 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"} ] } |
string [ISO-8601] |
UNION |
Un tipo de datos variable | Unión | array |
UNSUPPORTED |
Un tipo de datos no admitido | Un tipo lógico personalizado { "type": "null", "logicalType": "unsupported" } |
null |
VARCHAR |
Una string con una longitud máxima de n caracteres | Un tipo lógico personalizado { "type": "string", "logicalType": "varchar" "length": N } |
string |
Asigna 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 |
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 |
Asigna 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, usa DECIMAL . Si es Cloud Storage, usa 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, usa DATE . Si es Cloud Storage, usa TIMESTAMP . |
DATETIME(fsp) |
Si el destino es BigQuery, usa DATETIME . Si es Cloud Storage, usa 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, usa JSON ; si es Cloud Storage, usa 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, usa INTERVAL . Si es Cloud Storage, usa TIME_INTERVAL . |
TIMESTAMP(fsp) |
TIMESTAMP |
TINYBLOB |
STRING (hex encoded) |
TINYINT(size) |
INTEGER |
TINYTEXT |
STRING |
VARBINARY(size) |
STRING (hex encoded) |
VARCHAR |
STRING |
YEAR |
INTEGER |
Asigna 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 |
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 |
TIMESTAMP |
TIMESTAMP |
TIMESTAMP_WITH_TIMEZONE |
TIMESTAMP_WITH_TIMEZONE |
TIME_WITH_TIMEZONE |
TIME_WITH_TIMEZONE |
TSQUERY |
STRING |
TSVECTOR |
STRING |
TXID_SNAPSHOT |
STRING |
UUID |
STRING |
XID |
STRING |
XID8 |
STRING |
XML |
STRING |
Asigna tipos de datos de SQL Server a tipos unificados de Datastream
Tipo de datos de SQL Server | Tipo unificado de Datastream |
---|---|
BIGINT |
LONG |
BINARY |
BYTES |
BIT |
BOOLEAN |
CHAR |
STRING |
DATE |
DATE |
DATETIME2 |
DATETIME |
DATETIME |
DATETIME |
DATETIMEOFFSET |
TIMESTAMP WITH TIMEZONE |
DECIMAL |
DECIMAL (p, s) |
FLOAT |
DOUBLE |
INT |
INTEGER |
IMAGE |
BYTES |
MONEY |
DECIMAL |
NCHAR |
STRING |
NVARCHAR |
STRING |
NVARCHAR(MAX) |
STRING |
NTEXT |
STRING |
NUMERIC |
DECIMAL (p, s) |
REAL |
FLOAT |
SMALLDATETIME |
DATETIME |
SMALLINT |
INTEGER |
SMALLMONEY |
DECIMAL |
TEXT |
STRING |
TINYINT |
INTEGER |
TIME |
TIME |
TIMESTAMP/ROWVERSION |
BYTES |
UNIQUEIDENTIFIER |
STRING |
VARCHAR |
STRING |
VARCHAR(MAX) |
STRING |
VARBINARY |
BYTES |
VARBINARY(MAX) |
BYTES |
XML |
STRING |
¿Qué sigue?
- Para obtener más información sobre la configuración de una fuente de Oracle, consulta Configura una base de datos de Oracle de origen.
- Para obtener más información sobre cómo configurar una fuente de MySQL, consulta Configura una base de datos de MySQL de origen.
- Para obtener más información sobre cómo configurar una fuente de PostgreSQL, consulta Configura una base de datos de PostgreSQL de origen.
- Para obtener más información sobre cómo configurar una fuente de SQL Server, consulta Configura una base de datos de SQL Server de origen.