Pemetaan jenis terpadu ke jenis data sumber dan tujuan

Ringkasan

Jenis terpadu adalah jenis data yang muncul di peristiwa Avro atau JSON. Library ini adalah representasi terpadu khusus Datastream dari suatu jenis data di berbagai sumber data dan tujuan, seperti database Oracle sumber, database MySQL, atau database PostgreSQL, dan tujuan BigQuery atau Cloud Storage.

Jenis terpadu adalah superset dari semua representasi jenis di semua jenis sumber yang didukung, yang mewakili jenis sumber asli dengan cara umum tetapi lossless.

Daftar tabel berikut:

  • Jenis terpadu yang terkait dengan Datastream
  • Pemetaan antara jenis data untuk database Oracle, database MySQL, atau database PostgreSQL, dan jenis terpadu Datastream

Lihat dokumentasi tujuan BigQuery untuk mendapatkan informasi tentang pemetaan antara jenis data untuk berbagai sumber dan BigQuery.

Jenis datastream terpadu

Ketik nama Info Definisi Avro Definisi JSON
BOOLEAN boolean boolean boolean
BYTES Urutan byte yang tidak ditandatangani byte string
DATE Hari sejak epoch Jenis logika tanggal string [ISO-8601]
DATETIME Tanggal (dalam hari sejak epoch) dan waktu (dalam mikrodetik sejak tengah malam)

Jenis kustom


{
  "type": "record",
  "name": "datetime",
  "fields": [
    {"name": "date",
     "type": "int",
     "logicalType": "date"},
    {"name": "time",
     "type": "long",
     "logicalType": "time-micros"}
  ]
}
    
string [ISO-8601]
DECIMAL (p,s) Angka desimal yang ditandai dengan presisi arbitrer Jenis logika desimal angka
DOUBLE Bilangan floating point 64-bit double angka
FLOAT Bilangan floating point 32 bit float angka
INTEGER Bilangan bulat 32-bit int angka
INTERVAL Durasi antara dua peristiwa (dalam bulan, jam, dan mikrodetik)

Jenis kustom


{
  "type": "record",
  "name": "interval",
  "fields": [
    {"name": "months",
     "type": "int"}
    {"name": "hours",
     "type": "int"},
    {"name": "micros",
     "type": "long"}
  ]
}
    
string [ISO-8601]
JSON Objek JSON

Jenis logika kustom


{
  "type": "string",
  "logicalType": "json"
}
JSON bertingkat
LONG Bilangan bulat 64-bit long angka
NUMBER Suatu tipe data numerik

Jenis logika kustom


{
  "type": "string",
  "logicalType": "number"
}
string
STRING Panjang {i>string<i} tidak terbatas string string
TIME Jumlah mikrodetik yang berlalu sejak tengah malam, terlepas dari zona waktunya. Jenis logika time-micros string [ISO-8601]
TIME_INTERVAL Jumlah mikrodetik yang berlalu di antara dua peristiwa

Jenis logika kustom


{
  "type": "long",
  "logicalType": "time-interval-micros"
}
long
TIMESTAMP Jumlah mikrodetik yang berlalu sejak epoch, terlepas dari zona waktunya Jenis logis stempel waktu string [ISO-8601]
TIMESTAMP WITH TIME ZONE Jumlah mikrodetik yang berlalu sejak epoch dengan selisih zona waktu tertentu dalam milidetik

Jenis kustom


{
  "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 Jumlah mikrodetik yang berlalu sejak tengah malam dengan selisih zona waktu tertentu

Jenis kustom


{
  "type": "record",
  "name": "timeTz",
  "fields": [
    {"name": "time",
     "type": "long"
     "logicalType": "time-micros"},
    {"name": "offset",
     "type": "int",
     "logicalType": "time-millis"}
  ]
}
    
string [ISO-8601]
UNION Tipe data yang bervariasi Union array
UNSUPPORTED Jenis data yang tidak didukung

Jenis logika kustom


{
  "type": "null",
  "logicalType": "unsupported"
}
null
VARCHAR String dengan panjang maksimum n karakter

Jenis logika kustom


{
  "type": "string",
  "logicalType": "varchar"
  "length": N
}
string

Memetakan jenis data Oracle ke jenis terpadu Datastream

Jenis data Oracle Jenis datastream terpadu
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)

Jika p<=18, maka LONG. Jika p>18 atau p=*, maka NUMBER.

NUMBER(p,s>0)

Jika p=*, maka DECIMAL(38,s), jika tidak, 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 (jenis yang ditentukan pengguna) UNSUPPORTED
UROWID UNSUPPORTED
VARCHAR VARCHAR
VARCHAR2 VARCHAR
XMLTYPE UNSUPPORTED

Memetakan jenis data MySQL ke jenis terpadu Datastream

Jenis data MySQL Jenis datastream terpadu
BIGINT(size) Jika ditandatangani, maka LONG, jika tidak ditandatangani, maka DECIMAL
BINARY(size) STRING (hex encoded)
BIT(size) LONG
BLOB(size) STRING (hex encoded)
BOOL INTEGER
CHAR(size) STRING
DATE Jika tujuannya adalah BigQuery, DATE, jika Cloud Storage, maka TIMESTAMP
DATETIME(fsp) DATETIME
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
JSON JSON
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) INTERVAL
TIMESTAMP(fsp) TIMESTAMP
TINYBLOB STRING (hex encoded)
TINYINT(size) INTEGER
TINYTEXT STRING
VARBINARY(size) STRING (hex encoded)
VARCHAR STRING
YEAR INTEGER

Memetakan jenis data PostgreSQL ke jenis terpadu Datastream

Jenis data PostgreSQL Jenis datastream terpadu
ARRAY JSON
BIGINT LONG
BIT BYTES
BIT_VARYING BYTES
BOOLEAN BOOLEAN
BOX UNSUPPORTED
BYTEA BYTES
CHARACTER
  • Jika ada batas panjang, petakan ke VARCHAR
  • Jika tidak, petakan ke STRING
CHARACTER_VARYING
  • Jika ada batas panjang, petakan ke VARCHAR
  • Jika tidak, petakan ke STRING
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
  • Jika presisi = -1 dan skala = -1, petakan ke NUMBER
  • Jika tidak, petakan ke 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
XML STRING

Memetakan jenis data SQL Server ke jenis terpadu Datastream

Jenis data SQL Server Jenis datastream terpadu
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