Visão geral
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, como um banco de dados Oracle ou MySQL.
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 para um banco de dados Oracle ou um banco de dados MySQL e os tipos unificados no Datastream
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 |
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 |
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 |
RECORD |
Um tipo de dados totalmente estruturado, por exemplo, um tipo de dados definido pelo usuário | Record | objeto |
STRING |
Um comprimento de string ilimitado | string | string |
TIME_INTERVAL |
Quantos microssegundos se passaram entre dois eventos | Um tipo lógico personalizado { "type": "long", "logicalType": "time-interval-micros" } |
long |
TIMESTAMP |
Quantos milissegundos ou 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 milissegundos ou microssegundos se passaram desde o período com uma diferença de fuso horário específica | Um tipo personalizado { "type": "record", "name": "timestampTz", "fields": [ {"name": "timestamp", "type": "long" "logicalType": "timestamp-micros"}, {"name": "offset", "type": "long" "logicalType": "time-millis"} ] } |
String (ISO 8601) |
UNION |
Um tipo de dados variável. | União | matriz |
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 |
Unsupported |
CHAR |
VARCHAR |
CLOB |
Unsupported |
DATE |
TIMESTAMP |
DOUBLE PRECISION |
DOUBLE |
FLOAT(p) |
DOUBLE |
INTERVAL DAY TO SECOND |
Unsupported |
INTERVAL YEAR TO MONTH |
Unsupported |
LONG/LONG RAW |
Unsupported |
NCHAR |
STRING |
NCLOB |
Unsupported |
NUMBER |
NUMBER |
NUMBER(p,s<=0) |
Se p<=18, então |
NUMBER(p,s>0) |
Se p= |
NVARCHAR2 |
STRING |
RAW |
BYTES |
ROWID |
STRING |
SMALLINT |
INTEGER |
TIMESTAMP |
TIMESTAMP |
TIMESTAMP WITH TIME ZONE |
TIMESTAMP WITH TIME ZONE |
UDT (tipo definido pelo usuário) |
Sem suporte |
UROWID |
Sem suporte |
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) |
LONG |
BINARY(size) |
STRING (hex encoded) |
BIT(size) |
LONG |
BLOB(size) |
STRING (hex encoded) |
BOOL |
INTEGER |
CHAR(size) |
STRING |
DATE |
TIMESTAMP |
DATETIME(fsp) |
TIMESTAMP |
DECIMAL(size, d) |
DECIMAL(size, d) |
DOUBLE(size, d) |
DOUBLE |
ENUM(val1, val2, val3, ...) |
STRING |
FLOAT(p) |
FLOAT |
FLOAT(size, d) |
FLOAT |
INTEGER(size) |
INTEGER |
LONGBLOB |
STRING (hex encoded) |
LONGTEXT |
STRING (hex encoded) |
MEDIUMBLOB |
STRING (hex encoded) |
MEDIUMINT(size) |
INTEGER |
MEDIUMTEXT |
STRING |
SET(val1, val2, val3, ...) |
STRING |
SMALLINT(size) |
INTEGER |
TEXT(size) |
STRING |
TIME(fsp) |
TIME_INTERVAL |
TIMESTAMP(fsp) |
TIMESTAMP |
TINYBLOB |
STRING (hex encoded) |
TINYINT(size) |
INTEGER |
TINYTEXT |
STRING |
VARBINARY(size) |
STRING (hex encoded) |
VARCHAR |
STRING |
YEAR |
INTEGER |