Os tipos unificados são os tipos de dados que aparecem nos eventos Avro ou JSON. São uma representação unificada específica do fluxo de dados de um tipo de dados em várias origens de dados e destinos suportados pelo fluxo de dados.
Os tipos unificados são o superconjunto de todas as representações de tipos em todos os tipos de origens suportados, que representam o tipo de origem original de forma genérica, mas sem perdas.
As tabelas seguintes indicam:
- 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 do destino do BigQuery para obter informações sobre os mapeamentos entre os tipos de dados das diferentes origens e o BigQuery.
Tipos unificados do fluxo de dados
| Introduza o nome | Informações | Definição do Avro | Definição de JSON |
|---|---|---|---|
BOOLEAN |
booleano | booleano | booleano |
BYTES |
Uma sequência de bytes não assinados | bytes | de string |
DATE |
Dias desde a época | Um tipo lógico de data | string [ISO-8601] |
DATETIME |
A data (em dias desde a época) 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 sinal de precisão arbitrária | Um tipo lógico decimal | número |
DOUBLE |
Números de vírgula flutuante de 64 bits | dupla | número |
FLOAT |
Números de vírgula flutuante de 32 bits | flutuante | número |
INTEGER |
Um número inteiro de 32 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 | longo | número |
NUMBER |
Um tipo de dados numérico | Um tipo lógico personalizado
{
"type": "string",
"logicalType": "number"
}
|
de string |
STRING |
Um comprimento de string ilimitado | de string | de string |
TIME |
Quantos microssegundos decorreram desde a meia-noite, independentemente do fuso horário. | Um tipo lógico de tempo-micros | string [ISO-8601] |
TIME_INTERVAL |
Quantos microssegundos decorreram entre dois eventos | Um tipo lógico personalizado
{
"type": "long",
"logicalType": "time-interval-micros"
}
|
longo |
TIMESTAMP |
Quantos microssegundos decorreram desde a época, independentemente do fuso horário | Um tipo lógico de data/hora | string [ISO-8601] |
TIMESTAMP WITH TIME ZONE |
Quantos microssegundos decorreram desde a época com um desvio de fuso horário específico 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 decorreram desde a meia-noite com um desvio de fuso horário específico | 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 suportado | Um tipo lógico personalizado
{
"type": "null",
"logicalType": "unsupported"
}
|
nulo |
VARCHAR |
Uma string com um comprimento máximo de n carateres | Um tipo lógico personalizado
{
"type": "string",
"logicalType": "varchar"
"length": N
}
|
de string |
Mapeie tipos de dados Oracle para tipos unificados do Datastream
| Tipo de dados Oracle | Tipo unificado de fluxo de dados |
|---|---|
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) |
If 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 utilizador) |
UNSUPPORTED |
UROWID |
UNSUPPORTED |
VARCHAR |
VARCHAR |
VARCHAR2 |
VARCHAR |
XMLTYPE |
UNSUPPORTED |
Mapeie tipos de dados do MySQL para tipos unificados do fluxo de dados
| Tipo de dados do MySQL | Tipo unificado de fluxo de dados |
|---|---|
BIGINT(size) SIGNED |
LONG |
BIGINT(size) UNSIGNED |
Se o destino for o BigQuery, então DECIMAL. Se for o Cloud Storage, então 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, então DATE. Se for o Cloud Storage, então TIMESTAMP |
DATETIME(fsp) |
Se o destino for o BigQuery, então DATETIME. Se for o Cloud Storage, então 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, então JSON. Se for o Cloud Storage, então 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, então INTERVAL. Se for o Cloud Storage, então TIME_INTERVAL |
TIMESTAMP(fsp) |
TIMESTAMP |
TINYBLOB |
STRING (hex encoded) |
TINYINT(size) |
INTEGER |
TINYTEXT |
STRING |
VARBINARY(size) |
STRING (hex encoded) |
VARCHAR |
STRING |
YEAR |
INTEGER |
Mapeie os tipos de dados do PostgreSQL para os tipos unificados do Datastream
| Tipo de dados do PostgreSQL | Tipo unificado de fluxo de dados |
|---|---|
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 |
Mapeie tipos de dados do SQL Server para tipos unificados do Datastream
| Tipo de dados do SQL Server | Tipo unificado de fluxo de dados |
|---|---|
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 |
Mapeie tipos de dados do Salesforce para tipos unificados do Datastream
Existem dois tipos de tipos de dados suportados pelo Salesforce:
Mapeamentos de tipos de dados primitivos
| Tipo de dados do Salesforce | Tipo unificado de fluxo de dados |
|---|---|
BOOLEAN |
BOOLEAN |
BYTE |
BYTES |
DATE |
Se o destino for o BigQuery, então DATE. Se for o Cloud Storage, então TIMESTAMP |
DATETIME |
Se o destino for o BigQuery, então DATETIME. Se for o Cloud Storage, então TIMESTAMP |
DOUBLE |
DOUBLE |
INT |
INTEGER |
STRING |
STRING |
TIME |
TIME |
Mapeamentos de tipos de dados de campos
| Tipo de dados do Salesforce | Tipo unificado de fluxo de dados |
|---|---|
ADDRESS |
Os subcampos deste campo composto são replicados com os respetivos tipos de dados |
ANYTYPE
(pode ser |
STRING |
COMBOBOX |
STRING |
CURRENCY |
DOUBLE |
DATACATEGORYGROUPREFERENCE |
STRING |
EMAIL |
STRING |
ENCRYPTEDSTRING |
STRING |
GEOLOCATION |
Os subcampos deste campo composto são replicados com os respetivos 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 é escrito como um JSON tipo unificado no Datastream.
Para ver exemplos de como os tipos de dados são escritos no BigQuery, consulte o artigo
Configure um destino do BigQuery.
O que se segue?
- Para mais informações sobre a configuração de uma origem Oracle, consulte o artigo Configure uma base de dados Oracle de origem.
- Para mais informações sobre a configuração de uma origem MySQL, consulte o artigo Configure uma base de dados MySQL de origem.
- Para mais informações sobre a configuração de uma origem do PostgreSQL, consulte o artigo Configure uma base de dados PostgreSQL de origem.
- Para mais informações sobre a configuração de uma origem do SQL Server, consulte o artigo Configure uma base de dados do SQL Server de origem.
- Para mais informações sobre a configuração de uma origem do Salesforce, consulte o artigo Configure uma organização do Salesforce de origem.
- Para mais informações sobre a configuração de uma origem do MongoDB, consulte o artigo Configure uma base de dados de origem do MongoDB.