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

Los tipos unificados son los tipos de datos que aparecen en los eventos de Avro o JSON. Son una representación unificada y específica de Datastream de un tipo de datos en múltiples fuentes y destinos de datos que admite Datastream.

Los tipos unificados son el superconjunto de todas las representaciones de tipos en todos los tipos de fuentes admitidos, que representan el tipo de fuente original de una manera genérica, pero sin pérdidas.

En las siguientes tablas, se enumeran los siguientes elementos:

  • Los tipos unificados asociados con Datastream
  • Las asignaciones entre los tipos de datos de Oracle, MySQL, SQL Server, PostgreSQL, Salesforce, Spanner, ServiceNow y MongoDB, y los tipos unificados de Datastream

Consulta la documentación del 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 signo bytes cadena
DATE Cantidad de días desde la época 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) Número decimal con signo y 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éricos

Un tipo lógico personalizado

{
  "type": "string",
  "logicalType": "number"
}
cadena
STRING Una longitud de cadena ilimitada string cadena
TIME Cantidad de microsegundos transcurridos desde la medianoche, independientemente de la zona horaria. Un tipo lógico de time-micros string [ISO-8601]
TIME INTERVAL Cantidad de microsegundos transcurridos entre dos eventos

Un tipo lógico personalizado

{
  "type": "long",
  "logicalType": "time-interval-micros"
}
long
TIMESTAMP Cantidad de microsegundos transcurridos desde la época, independientemente de la zona horaria Un tipo lógico de marca de tiempo string [ISO-8601]
TIMESTAMP WITH TIME ZONE Cuántos microsegundos transcurrieron desde la época con un desplazamiento de zona horaria 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"}
  ]
}
    
string [ISO-8601]
TIME WITH TIME ZONE Cantidad de microsegundos transcurridos 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]
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 LONG. Si p>18 o p=*, entonces NUMBER.

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

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 es 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 es Cloud Storage, entonces TIMESTAMP
DATETIME(fsp) Si el destino es BigQuery, entonces DATETIME; si es Cloud Storage, entonces 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, entonces JSON; si es Cloud Storage, entonces 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 es 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 Datastream
ARRAY JSON
BIGINT LONG
BIT BYTES
BIT VARYING BYTES
BOOLEAN BOOLEAN
BOX UNSUPPORTED
BYTEA BYTES
CHARACTER
  • Si hay un límite de longitud, se asigna a VARCHAR.
  • De lo contrario, se asigna a STRING.
CHARACTER VARYING
  • Si hay un límite de longitud, se asigna a VARCHAR.
  • De lo contrario, se asigna a 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, se asigna a NUMBER.
  • De lo contrario, se asigna a 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 TIME ZONE TIMESTAMP WITH TIME ZONE
TIME WITH TIME ZONE TIME WITH TIME ZONE
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 TIME ZONE
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

Asigna tipos de datos de Salesforce a tipos unificados de Datastream

Salesforce admite dos tipos de datos:

Asignaciones de tipos de datos básicos

Tipo de datos de Salesforce Tipo unificado de Datastream
BOOLEAN BOOLEAN
BYTE BYTES
DATE Si el destino es BigQuery, entonces DATE; si es Cloud Storage, entonces TIMESTAMP
DATETIME Si el destino es BigQuery, entonces DATETIME; si es Cloud Storage, entonces 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

Asigna tipos de datos de Spanner (GoogleSQL) a tipos unificados de Datastream

Tipo de datos de Spanner Tipo de datos unificado
ARRAY ARRAY
BOOL BOOLEAN
BYTES BYTES
DATE DATE
FLOAT32 FLOAT
FLOAT64 DOUBLE
INT64 LONG
JSON JSON
NUMERIC NUMBER
STRING STRING
TIMESTAMP TIMESTAMP WITH TIME ZONE
UUID STRING
PROTO UNSUPPORTED
ENUM UNSUPPORTED

Asigna tipos de datos de Spanner (PostgreSQL) a tipos unificados de Datastream

Tipo de datos de Spanner Tipo de datos unificado
ARRAY ARRAY
BIGINT LONG
BOOL BOOLEAN
BYTEA BYTES
CHARACTER VARYING STRING
DATE DATE
DECIMAL NUMBER
DOUBLE PRECISION DOUBLE
FLOAT8 DOUBLE
INT8 LONG
JSONB JSON
NUMERIC NUMBER
TEXT STRING
TIMESTAMP WITH TIME ZONE TIMESTAMP WITH TIME ZONE
TIMESTAMPTZ TIMESTAMP WITH TIME ZONE
VARCHAR STRING
UUID STRING

Asigna tipos de datos de ServiceNow a tipos unificados de Datastream

Tipo de datos de ServiceNow Tipo unificado de Datastream
action_conditions STRING
approval_rules STRING
audio STRING
auto_increment LONG
auto_number STRING
boolean BOOLEAN
bootstrap_color STRING
breakdown_element STRING
calendar_date_time DATETIME
catalog_preview STRING
char STRING
choice STRING
collection STRING
color STRING
color_display STRING
composite_field STRING
composite_name STRING
compressed STRING
conditions STRING
condition_string STRING
counter STRING
css STRING
currency DOUBLE
currency2 JSON
data_array STRING
data_object JSON
data_structure JSON
date STRING
datetime DATETIME
days_of_week STRING
day_of_week INTEGER
decimal DOUBLE
documentation_field STRING
document_id JSON
domain_id JSON
domain_path STRING
due_date DATETIME
dynamic_attribute_store STRING
email STRING
email_script STRING
expression STRING
external_names STRING
field_list STRING
field_name STRING
file_attachment STRING
float DOUBLE
formula STRING
geo_point STRING
glide_action_list STRING
glide_date DATE
glide_date_time DATETIME
glide_duration TIME INTERVAL
glide_encrypted STRING
glide_list STRING
glide_precise_time DATETIME
glide_time DATETIME
glide_utc_time TIME
glide_var STRING
glyphicon STRING
graphql_schema STRING
guid STRING
hash STRING
html STRING
html_script STRING
html_template STRING
icon STRING
image STRING
index_name STRING
insert_timestamp DATETIME
int INTEGER
integer INTEGER
integer_date DATE
integer_time TIME
internal_type STRING
ip_addr STRING
ip_address STRING
journal STRING
journal_input STRING
journal_list STRING
json JSON
json_translations JSON
language STRING
le_progress STRING
long LONG
longint LONG
mask_code STRING
metric_absolute DOUBLE
metric_counter DOUBLE
metric_derive DOUBLE
metric_gauge DOUBLE
mid_config STRING
month_of_year INTEGER
multi_small STRING
multi_two_lines STRING
name_values JSON
nds_icon STRING
nl_task_int1 INTEGER
order_index INTEGER
password STRING
password2 STRING
percent_complete DOUBLE
phone_number STRING
phone_number_e164 STRING
ph_number STRING
price DOUBLE
properties STRING
radio STRING
records STRING
record_hierarchy_path STRING
reference JSON
reference_name STRING
related_tags STRING
reminder_field_name STRING
repeat_count INTEGER
repeat_type STRING
replication_payload STRING
schedule_date_time TIMESTAMP WITH TIME ZONE
schedule_interval_count INTEGER
script STRING
script_client STRING
script_plain STRING
script_server STRING
short_field_name STRING
short_table_name STRING
simple_name_values JSON
slushbucket STRING
snapshot_template_value STRING
source_id JSON
source_name STRING
source_table STRING
string STRING
string_boolean STRING
string_full_utf8 STRING
structure STRING
sysevent_name STRING
sysrule_field_name STRING
sys_class_name STRING
sys_class_path STRING
table_name STRING
template_value STRING
timer TIME INTERVAL
time TIME
translated STRING
translated_field STRING
translated_html STRING
translated_text STRING
tree_code STRING
tree_path STRING
url STRING
user_image STRING
user_input STRING
user_roles STRING
variables STRING
variable_conditions STRING
variable_template_value STRING
version STRING
video STRING
week_of_month INTEGER
wide_text STRING
wiki_text STRING
wms_job STRING
workflow STRING
workflow_conditions STRING
xml STRING

Tipos de datos de MongoDB

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

¿Qué sigue?