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 Datastream de um tipo de dados em várias origens de dados e destinos suportados pelo Datastream.
Os tipos unificados são o superconjunto de todas as representações de tipos em todos os tipos de fontes suportados, que representam o tipo de fonte original de forma genérica, mas sem perdas.
As tabelas seguintes indicam:
- Os tipos unificados associados ao fluxo de dados
- 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 da Oracle para tipos unificados do Datastream
Tipo de dados Oracle | Tipo unificado de stream 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 stream 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 PostgreSQL | Tipo unificado de stream 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 os tipos de dados do SQL Server para os tipos unificados do Datastream
Tipo de dados do SQL Server | Tipo unificado de stream 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 stream 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 stream 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 do 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.