I tipi unificati sono i tipi di dati che vengono visualizzati negli eventi Avro o JSON. Si tratta di una rappresentazione unificata e specifica di Datastream di un tipo di dati in più origini e destinazioni dati supportate da Datastream.
I tipi unificati sono il superset di tutte le rappresentazioni dei tipi in tutti i tipi di origine supportati, che rappresentano il tipo di origine originale in modo generico ma senza perdita.
Le tabelle seguenti elencano:
- I tipi unificati associati a Datastream
- I mapping tra i tipi di dati Oracle, MySQL, SQL Server, PostgreSQL e Salesforce e i tipi unificati di Datastream
Per informazioni sui mapping tra i tipi di dati per le diverse origini e BigQuery, consulta la documentazione sulla destinazione BigQuery.
Tipi unificati di Datastream
| Tipo di nome | Informazioni | Definizione Avro | Definizione JSON |
|---|---|---|---|
BOOLEAN |
booleano | booleano | booleano |
BYTES |
Una sequenza di byte non firmati | byte | stringa |
DATE |
Giorni dall'epoca | Un tipo logico di data | stringa [ISO-8601] |
DATETIME |
La data (in giorni dall'epoca) e l'ora (in microsecondi dalla mezzanotte) | Un tipo personalizzato
{
"type": "record",
"name": "datetime",
"fields": [
{"name": "date",
"type": "int",
"logicalType": "date"},
{"name": "time",
"type": "long",
"logicalType": "time-micros"}
]
}
|
stringa [ISO-8601] |
DECIMAL (p,s) |
Un numero decimale con segno di precisione arbitraria | Un tipo logico decimale | numero |
DOUBLE |
Numeri in virgola mobile a 64 bit | double | numero |
FLOAT |
Numeri in virgola mobile a 32 bit | float | numero |
INTEGER |
Un numero intero a 32 bit | int | numero |
INTERVAL |
Durata tra due eventi (in mesi, ore e microsecondi) | Un tipo personalizzato
{
"type": "record",
"name": "interval",
"fields": [
{"name": "months",
"type": "int"}
{"name": "hours",
"type": "int"},
{"name": "micros",
"type": "long"}
]
}
|
stringa [ISO-8601] |
JSON |
Un oggetto JSON | Un tipo logico personalizzato
{
"type": "string",
"logicalType": "json"
}
|
JSON nidificato |
LONG |
Un numero intero a 64 bit | Lungo | numero |
NUMBER |
Un tipo di dati numerico | Un tipo logico personalizzato
{
"type": "string",
"logicalType": "number"
}
|
stringa |
STRING |
Una lunghezza della stringa illimitata | stringa | stringa |
TIME |
Numero di microsecondi trascorsi dalla mezzanotte, indipendentemente dal fuso orario. | Un tipo logico time-micros | stringa [ISO-8601] |
TIME_INTERVAL |
Numero di microsecondi trascorsi tra due eventi | Un tipo logico personalizzato
{
"type": "long",
"logicalType": "time-interval-micros"
}
|
Lungo |
TIMESTAMP |
Numero di microsecondi trascorsi dall'epoca, indipendentemente dal fuso orario | Un tipo logico timestamp | stringa [ISO-8601] |
TIMESTAMP WITH TIME ZONE |
Il numero di microsecondi trascorsi dall'epoca con un offset del fuso orario specifico in millisecondi | Un tipo personalizzato
{
"type": "record",
"name": "timestampTz",
"fields": [
{"name": "timestamp",
"type": "long"
"logicalType": "timestamp-micros"},
{"name": "offset",
"type": "int"
"logicalType": "time-millis"}
]
}
|
stringa [ISO-8601] |
TIME WITH TIME ZONE |
Il numero di microsecondi trascorsi dalla mezzanotte con un offset del fuso orario specifico | Un tipo personalizzato
{
"type": "record",
"name": "timeTz",
"fields": [
{"name": "time",
"type": "long"
"logicalType": "time-micros"},
{"name": "offset",
"type": "int",
"logicalType": "time-millis"}
]
}
|
stringa [ISO-8601] |
UNSUPPORTED |
Un tipo di dati non supportato | Un tipo logico personalizzato
{
"type": "null",
"logicalType": "unsupported"
}
|
null |
VARCHAR |
Una stringa con una lunghezza massima di n caratteri | Un tipo logico personalizzato
{
"type": "string",
"logicalType": "varchar"
"length": N
}
|
stringa |
Mappare i tipi di dati Oracle ai tipi unificati di Datastream
| Tipo di dati Oracle | Tipo unificato di 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, allora |
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 definito dall'utente) |
UNSUPPORTED |
UROWID |
UNSUPPORTED |
VARCHAR |
VARCHAR |
VARCHAR2 |
VARCHAR |
XMLTYPE |
UNSUPPORTED |
Mappare i tipi di dati MySQL ai tipi unificati di Datastream
| Tipo di dati MySQL | Tipo unificato di Datastream |
|---|---|
BIGINT(size) SIGNED |
LONG |
BIGINT(size) UNSIGNED |
Se la destinazione è BigQuery, DECIMAL; se è Cloud Storage, NUMBER |
BINARY(size) |
STRING (hex encoded) |
BIT(size) |
LONG |
BLOB(size) |
STRING (hex encoded) |
BOOL |
INTEGER |
CHAR(size) |
STRING |
DATE |
Se la destinazione è BigQuery, DATE; se è Cloud Storage, TIMESTAMP |
DATETIME(fsp) |
Se la destinazione è BigQuery, DATETIME; se è 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 la destinazione è BigQuery, allora JSON, se è Cloud Storage, allora 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 la destinazione è BigQuery, INTERVAL; se è 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 |
Mappare i tipi di dati PostgreSQL ai tipi unificati di Datastream
| Tipo di dati PostgreSQL | Tipo unificato di 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 |
Mappare i tipi di dati SQL Server ai tipi unificati di Datastream
| Tipo di dati SQL Server | Tipo unificato di 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 |
Mappa i tipi di dati Salesforce ai tipi unificati di Datastream
Esistono due tipi di tipi di dati supportati da Salesforce:
Mappature dei tipi di dati primitivi
| Tipo di dati Salesforce | Tipo unificato di Datastream |
|---|---|
BOOLEAN |
BOOLEAN |
BYTE |
BYTES |
DATE |
Se la destinazione è BigQuery, DATE; se è Cloud Storage, TIMESTAMP |
DATETIME |
Se la destinazione è BigQuery, DATETIME; se è Cloud Storage, TIMESTAMP |
DOUBLE |
DOUBLE |
INT |
INTEGER |
STRING |
STRING |
TIME |
TIME |
Mappature dei tipi di dati dei campi
| Tipo di dati Salesforce | Tipo unificato di Datastream |
|---|---|
ADDRESS |
I campi secondari di questo campo composto vengono replicati con i rispettivi tipi di dati |
ANYTYPE
(può essere |
STRING |
COMBOBOX |
STRING |
CURRENCY |
DOUBLE |
DATACATEGORYGROUPREFERENCE |
STRING |
EMAIL |
STRING |
ENCRYPTEDSTRING |
STRING |
GEOLOCATION |
I campi secondari di questo campo composto vengono replicati con i rispettivi tipi di dati |
ID |
STRING |
JUNCTIONIDLIST |
STRING |
MASTERRECORD |
STRING |
MULTIPICKLIST |
STRING |
PERCENT |
DOUBLE |
PHONE |
STRING |
PICKLIST |
STRING |
REFERENCE |
STRING |
TEXTAREA |
STRING |
URL |
STRING |
Tipi di dati MongoDB
Ogni documento MongoDB viene scritto come tipo unificato JSON in Datastream.
Per esempi di come vengono scritti i tipi di dati in BigQuery, consulta
Configurare una destinazione BigQuery.
Passaggi successivi
- Per ulteriori informazioni sulla configurazione di un'origine Oracle, consulta Configurare un database Oracle di origine.
- Per ulteriori informazioni sulla configurazione di un'origine MySQL, consulta Configurare un database MySQL di origine.
- Per saperne di più sulla configurazione di un'origine PostgreSQL, consulta Configurare un database PostgreSQL di origine.
- Per ulteriori informazioni sulla configurazione di un'origine SQL Server, consulta Configura un database SQL Server di origine.
- Per ulteriori informazioni sulla configurazione di un'origine Salesforce, vedi Configurare un'organizzazione Salesforce di origine.
- Per ulteriori informazioni sulla configurazione di un'origine MongoDB, consulta Configurare un database MongoDB di origine.