Descripción general
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 múltiples fuentes de datos y destinos, como una base de datos de origen de Oracle, una base de datos MySQL o una base de datos PostgreSQL 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 sobre destinos de BigQuery para obtener información sobre las asignaciones entre los tipos de datos para 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 el ciclo de entrenamiento | Un tipo lógico de fecha | string [ISO-8601] |
DATETIME |
La fecha (en días desde el ciclo de entrenamiento) 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 |
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 micros de tiempo | string [ISO-8601] |
TIME_INTERVAL |
Cuántos microsegundos transcurrieron entre dos eventos | Un tipo lógico personalizado { "type": "long", "logicalType": "time-interval-micros" } |
long |
TIMESTAMP |
Cantidad de microsegundos que transcurrieron desde el ciclo de entrenamiento, sin importar 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 |
Cantidad de microsegundos que transcurrieron desde la medianoche con un desplazamiento de zona horaria específico | 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 compatible | 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, entonces DECIMAL ; si Cloud Storage, entonces 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, entonces DATE ; si Cloud Storage, entonces 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, entonces INTERVAL ; si Cloud Storage, entonces 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 flujo de datos |
---|---|
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 |
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 |
HIERARCHYID |
STRING |
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.