Os tipos unificados são os tipos de dados que aparecem nos eventos Avro ou JSON. Eles são uma representação unificada e específica do Datastream de um tipo de dados em várias fontes e destinos compatíveis com o Datastream.
Os tipos unificados são o superconjunto de todas as representações de tipos compatíveis, que representam o tipo de origem original de maneira genérica, mas sem perdas.
A tabela a seguir lista:
- Os tipos unificados associados ao Datastream
- Os mapeamentos entre os tipos de dados do Oracle, MySQL, SQL Server, PostgreSQL e Salesforce e os tipos unificados do Datastream
Consulte a documentação de destino do BigQuery para informações sobre os mapeamentos entre os tipos de dados das diferentes origens e o BigQuery.
Tipos unificados de fluxo de dados
| Nome do tipo | Informações | Definição do Avro | Definição de JSON |
|---|---|---|---|
BOOLEAN |
boolean | boolean | boolean |
BYTES |
Uma sequência de bytes não assinados | bytes | string |
DATE |
Dias desde a época | Um tipo lógico de data | String (ISO 8601) |
DATETIME |
A data (em dias desde o período) e a hora (em microssegundos desde a meia-noite) | Um 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) |
Um número decimal com precisão arbitrária | Um tipo lógico decimal | número |
DOUBLE |
números de ponto flutuante de 64 bits | duplo | número |
FLOAT |
números de ponto flutuante de 32 bits | float | número |
INTEGER |
Um número inteiro de 64 bits | int | número |
INTERVAL |
Duração entre dois eventos (em meses, horas e microssegundos) | Um tipo personalizado
{
"type": "record",
"name": "interval",
"fields": [
{"name": "months",
"type": "int"}
{"name": "hours",
"type": "int"},
{"name": "micros",
"type": "long"}
]
}
|
String (ISO 8601) |
JSON |
Um objeto JSON | Um tipo lógico personalizado
{
"type": "string",
"logicalType": "json"
}
|
JSON aninhado |
LONG |
Um número inteiro de 64 bits | long | número |
NUMBER |
Um tipo de dados numéricos | Um tipo lógico personalizado
{
"type": "string",
"logicalType": "number"
}
|
string |
STRING |
Um comprimento de string ilimitado | string | string |
TIME |
Quantos microssegundos se passaram desde a meia-noite, independentemente do fuso horário. | Um tipo lógico time-micros | String (ISO 8601) |
TIME_INTERVAL |
Quantos microssegundos se passaram entre dois eventos | Um tipo lógico personalizado
{
"type": "long",
"logicalType": "time-interval-micros"
}
|
long |
TIMESTAMP |
Quantos microssegundos se passaram desde a época, independentemente do fuso horário | Um tipo lógico de carimbo de data/hora | String (ISO 8601) |
TIMESTAMP WITH TIME ZONE |
Quantos microssegundos se passaram desde o período com uma diferença de fuso horário específica em milissegundos | Um 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 |
Quantos microssegundos se passaram desde a meia-noite com uma diferença de fuso horário específica | Um 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 |
Um tipo de dados não compatível | Um tipo lógico personalizado
{
"type": "null",
"logicalType": "unsupported"
}
|
null |
VARCHAR |
Uma string com comprimento máximo de n caracteres. | Um tipo lógico personalizado
{
"type": "string",
"logicalType": "varchar"
"length": N
}
|
string |
Mapear tipos de dados Oracle para tipos unificados do Datastream
| Tipo de dados Oracle | Tipo unificado do 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) |
Se p<=18, então |
NUMBER(p,s>0) |
Se 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 pelo usuário) |
UNSUPPORTED |
UROWID |
UNSUPPORTED |
VARCHAR |
VARCHAR |
VARCHAR2 |
VARCHAR |
XMLTYPE |
UNSUPPORTED |
Mapear tipos de dados MySQL para tipos unificados do Datastream
| Tipo de dados do MySQL | Tipo unificado do Datastream |
|---|---|
BIGINT(size) SIGNED |
LONG |
BIGINT(size) UNSIGNED |
Se o destino for o BigQuery, DECIMAL. Se for o Cloud Storage, NUMBER. |
BINARY(size) |
STRING (hex encoded) |
BIT(size) |
LONG |
BLOB(size) |
STRING (hex encoded) |
BOOL |
INTEGER |
CHAR(size) |
STRING |
DATE |
Se o destino for o BigQuery, DATE. Se for o Cloud Storage, TIMESTAMP. |
DATETIME(fsp) |
Se o destino for o BigQuery, DATETIME. Se for o 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 |
Se o destino for o BigQuery, JSON. Se for o 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) |
Se o destino for o BigQuery, INTERVAL. Se for o 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 |
Mapear tipos de dados PostgreSQL para tipos unificados do Datastream
| Tipo de dados do PostgreSQL | Tipo unificado do 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_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 |
Mapear tipos de dados do SQL Server para tipos unificados do Datastream
| Tipo de dados do SQL Server | Tipo unificado do 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 |
Mapear tipos de dados do Salesforce para tipos unificados do Datastream
Há dois tipos de dados compatíveis com o Salesforce:
Mapeamentos de tipo de dados primitivos
| Tipo de dados do Salesforce | Tipo unificado do Datastream |
|---|---|
BOOLEAN |
BOOLEAN |
BYTE |
BYTES |
DATE |
Se o destino for o BigQuery, DATE. Se for o Cloud Storage, TIMESTAMP. |
DATETIME |
Se o destino for o BigQuery, DATETIME. Se for o Cloud Storage, TIMESTAMP. |
DOUBLE |
DOUBLE |
INT |
INTEGER |
STRING |
STRING |
TIME |
TIME |
Mapeamentos de tipo de dados de campo
| Tipo de dados do Salesforce | Tipo unificado do Datastream |
|---|---|
ADDRESS |
Os subcampos desse campo composto são replicados com os respectivos tipos de dados. |
ANYTYPE
(pode ser |
STRING |
COMBOBOX |
STRING |
CURRENCY |
DOUBLE |
DATACATEGORYGROUPREFERENCE |
STRING |
EMAIL |
STRING |
ENCRYPTEDSTRING |
STRING |
GEOLOCATION |
Os subcampos desse campo composto são replicados com os respectivos tipos de dados. |
ID |
STRING |
JUNCTIONIDLIST |
STRING |
MASTERRECORD |
STRING |
MULTIPICKLIST |
STRING |
PERCENT |
DOUBLE |
PHONE |
STRING |
PICKLIST |
STRING |
REFERENCE |
STRING |
TEXTAREA |
STRING |
URL |
STRING |
Tipos de dados do MongoDB
Cada documento do MongoDB é gravado como um tipo unificado JSON no Datastream.
Para exemplos de como os tipos de dados são gravados no BigQuery, consulte
Configurar um destino do BigQuery.
A seguir
- Para mais informações sobre como configurar uma origem do Oracle, consulte Configurar um banco de dados Oracle de origem.
- Para mais informações sobre como configurar uma origem do MySQL, consulte Configurar um banco de dados MySQL de origem.
- Para mais informações sobre como configurar uma origem do PostgreSQL, consulte Configurar um banco de dados PostgreSQL de origem.
- Para mais informações sobre como configurar uma origem do SQL Server, consulte Configurar um banco de dados de origem do SQL Server.
- Para mais informações sobre como configurar uma origem do Salesforce, consulte Configurar uma organização de origem do Salesforce.
- Para mais informações sobre como configurar uma origem do MongoDB, consulte Configurar um banco de dados de origem do MongoDB.