Einheitliche Typen sind die Datentypen, die in den Avro- oder JSON-Ereignissen angezeigt werden. Sie sind eine Datastream-spezifische, einheitliche Darstellung eines Datentyps über mehrere Datenquellen und Ziele hinweg, z. B. eine Oracle-, MySQL- oder PostgreSQL-Quelldatenbank und ein BigQuery- oder Cloud Storage-Ziel.
Bei den einheitlichen Typen handelt es sich um die Obermenge aller Typdarstellungen für alle unterstützten Quelltypen, die den ursprünglichen Quelltyp in allgemeiner, aber verlustfreier Weise darstellen.
In den folgenden Tabellen ist Folgendes aufgeführt:
- Die mit Datastream verknüpften einheitlichen Typen
- Die Zuordnungen zwischen den Datentypen für eine Oracle-Datenbank, eine MySQL-Datenbank oder eine PostgreSQL-Datenbank und den einheitlichen Datastream-Typen
Informationen zur Zuordnung der Datentypen der verschiedenen Quellen zu BigQuery finden Sie in der Dokumentation zu BigQuery-Zielen.
Einheitliche Datastream-Typen
Typname | Info | Avro-Definition | JSON-Definition |
---|---|---|---|
BOOLEAN |
Boolesch | Boolesch | Boolesch |
BYTES |
Eine Folge nicht signierter Byte | Byte | String |
DATE |
Tage seit der Epoche | Ein logischer Datumstyp | String [ISO-8601] |
DATETIME |
Datum (in Tagen seit der Epoche) und Uhrzeit (in Mikrosekunden seit Mitternacht) | Ein benutzerdefinierter Typ { "type": "record", "name": "datetime", "fields": [ {"name": "date", "type": "int", "logicalType": "date"}, {"name": "time", "type": "long", "logicalType": "time-micros"} ] } |
String [ISO-8601] |
DECIMAL (p,s) |
Vorzeichenbehaftete Dezimalzahl mit beliebiger Genauigkeit | Ein logischer Dezimaltyp | Zahl |
DOUBLE |
64-Bit-Gleitkommazahlen | double | Zahl |
FLOAT |
32-Bit-Gleitkommazahlen | float | Zahl |
INTEGER |
Eine 32-Bit-Ganzzahl | Ganzzahl | Zahl |
INTERVAL |
Dauer zwischen zwei Ereignissen (in Monaten, Stunden und Mikrosekunden) | Ein benutzerdefinierter Typ { "type": "record", "name": "interval", "fields": [ {"name": "months", "type": "int"} {"name": "hours", "type": "int"}, {"name": "micros", "type": "long"} ] } |
String [ISO-8601] |
JSON |
Ein JSON-Objekt | Ein benutzerdefinierter logischer Typ { "type": "string", "logicalType": "json" } |
verschachtelte JSON-Dateien |
LONG |
Eine 64-Bit-Ganzzahl | long | Zahl |
NUMBER |
Ein numerischer Datentyp | Ein benutzerdefinierter logischer Typ { "type": "string", "logicalType": "number" } |
String |
STRING |
Eine unbegrenzte Stringlänge | String | String |
TIME |
Anzahl der Mikrosekunden seit Mitternacht, unabhängig von der Zeitzone. | Ein logischer Zeit-Mikrosekunden-Typ | String [ISO-8601] |
TIME_INTERVAL |
Anzahl der zwischen zwei Ereignissen verstrichenen Mikrosekunden | Ein benutzerdefinierter logischer Typ { "type": "long", "logicalType": "time-interval-micros" } |
long |
TIMESTAMP |
Anzahl der Mikrosekunden seit der Epoche, unabhängig von der Zeitzone | Ein logischer Zeitstempeltyp | String [ISO-8601] |
TIMESTAMP WITH TIME ZONE |
Wie viele Mikrosekunden seit der Epoche mit einem bestimmten Zeitzonenversatz in Millisekunden vergangen sind | Ein benutzerdefinierter Typ { "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 |
Wie viele Mikrosekunden seit Mitternacht mit einem bestimmten Zeitzonenversatz vergangen sind | Ein benutzerdefinierter Typ { "type": "record", "name": "timeTz", "fields": [ {"name": "time", "type": "long" "logicalType": "time-micros"}, {"name": "offset", "type": "int", "logicalType": "time-millis"} ] } |
String [ISO-8601] |
UNION |
Ein variierender Datentyp | Union | array |
UNSUPPORTED |
Ein nicht unterstützter Datentyp | Ein benutzerdefinierter logischer Typ { "type": "null", "logicalType": "unsupported" } |
null |
VARCHAR |
Ein String mit einer maximalen Länge von n Zeichen | Ein benutzerdefinierter logischer Typ { "type": "string", "logicalType": "varchar" "length": N } |
String |
Oracle-Datentypen den einheitlichen Datastream-Typen zuordnen
Oracle-Datentyp | Einheitlicher Datastream-Typ |
---|---|
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) |
Wenn p<=18, dann |
NUMBER(p,s>0) |
Wenn p= |
NVARCHAR2 |
STRING |
RAW |
STRING |
ROWID |
STRING |
SDO_GEOMETRY |
UNSUPPORTED |
SMALLINT |
INTEGER |
TIMESTAMP |
TIMESTAMP
|
TIMESTAMP WITH TIME ZONE |
TIMESTAMP WITH TIME ZONE
|
UDT (benutzerdefinierter Typ) |
UNSUPPORTED |
UROWID |
UNSUPPORTED |
VARCHAR |
VARCHAR |
VARCHAR2 |
VARCHAR |
XMLTYPE |
UNSUPPORTED |
MySQL-Datentypen zu einheitlichen Datastream-Typen zuordnen
MySQL-Datentyp | Einheitlicher Datastream-Typ |
---|---|
BIGINT(size) SIGNED |
LONG |
BIGINT(size) UNSIGNED |
Wenn das Ziel BigQuery ist, DECIMAL , wenn es Cloud Storage ist, NUMBER |
BINARY(size) |
STRING (hex encoded) |
BIT(size) |
LONG |
BLOB(size) |
STRING (hex encoded) |
BOOL |
INTEGER |
CHAR(size) |
STRING |
DATE |
Wenn das Ziel BigQuery ist, DATE , wenn es Cloud Storage ist, TIMESTAMP |
DATETIME(fsp) |
Wenn das Ziel BigQuery ist, DATETIME , wenn es Cloud Storage ist, 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 |
Wenn das Ziel BigQuery ist, dann JSON , wenn es Cloud Storage ist, dann 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) |
Wenn das Ziel BigQuery ist, INTERVAL , wenn es Cloud Storage ist, TIME_INTERVAL |
TIMESTAMP(fsp) |
TIMESTAMP |
TINYBLOB |
STRING (hex encoded) |
TINYINT(size) |
INTEGER |
TINYTEXT |
STRING |
VARBINARY(size) |
STRING (hex encoded) |
VARCHAR |
STRING |
YEAR |
INTEGER |
PostgreSQL-Datentypen zu einheitlichen Datastream-Typen zuordnen
PostgreSQL-Datentyp | Einheitlicher Datastream-Typ |
---|---|
ARRAY |
JSON
|
BIGINT |
LONG |
BIT |
BYTES |
BIT_VARYING |
BYTES |
BOOLEAN |
BOOLEAN |
BOX |
UNSUPPORTED |
BYTEA |
BYTES |
CHARACTER |
|
CHARACTER_VARYING |
|
CIDR |
STRING |
CIRCLE |
UNSUPPORTED |
CITEXT |
STRING |
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 |
SQL Server-Datentypen zu einheitlichen Datastream-Typen zuordnen
SQL Server-Datentyp | Einheitlicher Datastream-Typ |
---|---|
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 |
Nächste Schritte
- Weitere Informationen zum Konfigurieren einer Oracle-Quelle finden Sie unter Oracle-Quelldatenbank konfigurieren.
- Weitere Informationen zum Konfigurieren einer MySQL-Quelle finden Sie unter MySQL-Quelldatenbank konfigurieren.
- Weitere Informationen zum Konfigurieren einer PostgreSQL-Quelle finden Sie unter PostgreSQL-Quelldatenbank konfigurieren.
- Weitere Informationen zum Konfigurieren einer SQL Server-Quelle finden Sie unter SQL Server-Quelldatenbank konfigurieren.