Asignaciones de tipos unificados a tipos de datos de origen y de destino

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 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 (vista previa) 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 LONG. Si p>18 o p=*, entonces NUMBER.

s
NUMBER(p,s>0)

Si p=*, entonces DECIMAL(38,s); de lo contrario, DECIMAL(p,s).

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
  • Si hay un límite de longitud, asigna el valor VARCHAR.
  • De lo contrario, asigna el valor STRING.
CHARACTER_VARYING
  • Si hay un límite de longitud, asigna el valor VARCHAR.
  • De lo contrario, asigna el valor STRING.
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
  • Si precision = -1 y scale = -1, asigna el valor NUMBER.
  • De lo contrario, asigna el valor DECIMAL.
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

Asignar 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

Asignar tipos de datos de Salesforce a tipos unificados de Datastream

Salesforce admite dos tipos de datos:

Asignaciones de tipos de datos primitivos

Tipo de datos de Salesforce Tipo unificado de Datastream
BOOLEAN BOOLEAN
BYTE BYTES
DATE Si el destino es BigQuery, DATE; si es Cloud Storage, TIMESTAMP
DATETIME Si el destino es BigQuery, DATETIME; si es Cloud Storage, TIMESTAMP
DOUBLE DOUBLE
INT INTEGER
STRING STRING
TIME TIME

Asignaciones de tipos de datos de campos

Tipo de datos de Salesforce Tipo unificado de Datastream
ADDRESS Los subcampos de este campo compuesto se replican con sus respectivos tipos de datos.
ANYTYPE

(puede ser STRING, DATE, NUMBER o BOOLEAN)

STRING
COMBOBOX STRING
CURRENCY DOUBLE
DATACATEGORYGROUPREFERENCE STRING
EMAIL STRING
ENCRYPTEDSTRING STRING
GEOLOCATION Los subcampos de este campo compuesto se replican con sus respectivos tipos de datos.
ID STRING
JUNCTIONIDLIST STRING
MASTERRECORD STRING
MULTIPICKLIST STRING
PERCENT DOUBLE
PHONE STRING
PICKLIST STRING
REFERENCE STRING
TEXTAREA STRING
URL STRING

Tipos de datos de MongoDB

Cada documento de MongoDB se escribe como un JSON tipo unificado en Datastream. Para ver ejemplos de cómo se escriben los tipos de datos en BigQuery, consulta Configurar un destino de BigQuery.

Siguientes pasos