Mapeamentos de tipos unificados para tipos de dados de origem e de destino

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 LONG. Se p>18 ou p=*, então NUMBER.

NUMBER(p,s>0)

If p=*, then DECIMAL(38,s), else 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 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
  • Se existir um limite de comprimento, mapeie para VARCHAR
  • Caso contrário, mapeie para STRING
CHARACTER_VARYING
  • Se existir um limite de comprimento, mapeie para VARCHAR
  • Caso contrário, mapeie para 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
  • Se precision = -1 e scale = -1, mapeie para NUMBER
  • Caso contrário, mapeie para 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_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, DATE, NUMBER ou BOOLEAN)

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 JSONtipo 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?