Übersicht
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 | Logischer Datumstyp | String [ISO-8601] |
DATETIME |
Das Datum (in Tagen seit der Epoche) und die 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" } |
verschachteltes JSON |
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 |
Die Anzahl der seit Mitternacht verstrichenen Mikrosekunden, unabhängig von der Zeitzone. | Logischer Typ „time-micros“ | String [ISO-8601] |
TIME_INTERVAL |
Anzahl der zwischen zwei Ereignissen verstrichenen Mikrosekunden | Ein benutzerdefinierter logischer Typ { "type": "long", "logicalType": "time-interval-micros" } |
long |
TIMESTAMP |
Wie viele Mikrosekunden seit der Epoche, unabhängig von der Zeitzone, verstrichen sind | 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 |
Die Anzahl an Mikrosekunden, die seit Mitternacht mit einem bestimmten Zeitzonenversatz verstrichen 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, dann DATE , bei Cloud Storage, dann TIMESTAMP |
DATETIME(fsp) |
Wenn das Ziel BigQuery ist, dann DATETIME , bei Cloud Storage, dann 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 , bei Cloud Storage, 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 |
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 |
HIERARCHYID |
STRING |
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.