Datastream convierte los tipos de datos específicos de la fuente en un conjunto estándar de tipos unificados en los eventos de cambio de Avro y JSON. Los tipos unificados representan el superconjunto de todos los tipos de datos de origen admitidos para que Datastream pueda replicar datos entre fuentes y destinos sin pérdida de datos.
En este documento, se enumeran los tipos unificados de Datastream y las asignaciones de tipos de datos para las siguientes fuentes:
- Oracle
- MySQL
- PostgreSQL
- SQL Server
- Salesforce
- Workday (versión preliminar)
- GoogleSQL de Spanner
- Spanner PostgreSQL
- ServiceNow (versión preliminar)
- MongoDB
- Microsoft Dataverse (versión preliminar)
- Salesforce Marketing Cloud (versión preliminar)
Para conocer las asignaciones de destino de BigQuery, consulta Asignaciones de tipos de datos en BigQuery.
Tipos unificados de Datastream
| Nombre del tipo | Info | Definición de Avro | Definición de JSON |
|---|---|---|---|
BOOLEAN |
booleana | booleana | booleana |
BYTES |
Es una secuencia de bytes sin firma. | bytes | cadena |
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 |
GEOMETRY |
Un objeto de geometría o geografía espacial | Un tipo personalizado
{
"type": "record",
"name": "geometry",
"fields": [
{"name": "value",
"type": "bytes"},
{"name": "srid",
"type": "int"},
{"name": "type",
"type": "string"}
]
}
|
JSON anidado |
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"
}
|
cadena |
STRING |
Una longitud de cadena ilimitada | string | cadena |
TIME |
Es la cantidad de microsegundos transcurridos desde la medianoche, independientemente de la zona horaria. | Un tipo lógico de microsegundos 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 |
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 |
Cuántos microsegundos transcurrieron desde la época con una diferencia 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 |
Cuántos microsegundos transcurrieron desde la medianoche con una diferencia 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] |
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, 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 |
|
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 |
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 |
GEOGRAPHY |
GEOMETRY |
GEOMETRY |
GEOMETRY |
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 primitivos
| 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 |
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 Workday a tipos unificados de Datastream
| Tipo de datos de Workday | Tipo unificado de Datastream |
|---|---|
ARRAYS |
ARRAY |
BASE64BINARY |
BYTES |
BOOLEAN |
BOOLEAN |
COMPLEX TYPES |
JSON |
DATE |
DATE |
DATETIME |
TIMESTAMP |
DECIMAL |
DECIMAL |
STRING |
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.
Tipos de datos de Microsoft Dataverse
Cada registro de Microsoft Dataverse se escribe como un tipo unificado de JSON en
Datastream.
Tipos de datos de Salesforce Marketing Cloud
Cada registro de Salesforce Marketing Cloud se escribe como un tipo unificado de JSON en
Datastream.
¿Qué sigue?
- Para obtener más información sobre cómo configurar 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.
- Para obtener más información sobre cómo configurar una fuente de Salesforce, consulta Configura una organización de Salesforce de origen.
- Para obtener más información sobre cómo configurar una fuente de ServiceNow, consulta Configura una instancia de ServiceNow de origen.
- Para obtener más información sobre cómo configurar una fuente de Workday, consulta Configura una instancia de Workday de origen.
- Para obtener más información sobre cómo configurar una fuente de MongoDB, consulta Configura una base de datos de MongoDB de origen.
- Para obtener más información sobre cómo configurar una fuente de Salesforce Marketing Cloud, consulta Configura una fuente de Salesforce Marketing Cloud.