Jenis data buffering protokol dan Arrow yang didukung

BigQuery Storage Write API (gRPC) memetakan setiap jenis data kolom BigQuery ke jenis input dan format encoding buffering protokol dan Apache Arrow tertentu. Tabel referensi dalam dokumen ini mencantumkan pemetaan jenis, rentang nilai, dan parameter konversi yang didukung. Untuk konsep API dasar, lihat Ringkasan BigQuery Storage Write API (gRPC).

Jenis data buffering protokol yang didukung

Tabel berikut menunjukkan jenis data yang didukung dalam buffering protokol dan format input yang sesuai di BigQuery:

Jenis data BigQuery Jenis buffering protokol yang didukung
BOOL bool, int32, int64, uint32, uint64, google.protobuf.BoolValue
BYTES bytes, string, google.protobuf.BytesValue
DATE int32 (pilihan), int64, string

Nilainya adalah jumlah hari sejak epoch Unix (1970-01-01). Rentang yang valid adalah -719162 (0001-01-01) hingga 2932896 (9999-12-31).

DATETIME, TIME string

Nilainya harus berupa literal DATETIME atau TIME.

int64

Gunakan class CivilTimeEncoder untuk melakukan konversi.

FLOAT double, float, google.protobuf.DoubleValue, google.protobuf.FloatValue
GEOGRAPHY string

Nilainya merupakan geometri dalam format WKT atau GeoJson.

INTEGER int32, int64, uint32, enum, google.protobuf.Int32Value, google.protobuf.Int64Value, google.protobuf.UInt32Value
JSON string
NUMERIC, BIGNUMERIC int32, int64, uint32, uint64, double, float, string
bytes, google.protobuf.BytesValue

Gunakan class BigDecimalByteStringEncoder untuk melakukan konversi.

STRING string, enum, google.protobuf.StringValue
TIME string

Nilai ini harus berupa literal TIME.

TIMESTAMP int64 (pilihan), int32, uint32, google.protobuf.Timestamp

Nilai ini diberikan dalam mikrodetik sejak epoch Unix (1970-01-01).

INTERVAL string, google.protobuf.Duration

Nilai string harus berupa literal INTERVAL.

RANGE<T> message

Jenis pesan bertingkat di proto dengan dua kolom, start dan end, dengan kedua kolom harus memiliki jenis buffering protokol yang didukung yang sama dan sesuai dengan jenis data BigQuery T. T harus berupa salah satu dari DATE, DATETIME, atau TIMESTAMP. Jika kolom (start atau end) tidak ditetapkan dalam pesan proto, kolom tersebut mewakili batas yang tidak terbatas. Dalam contoh berikut, f_range_date mewakili kolom RANGE dalam tabel. Karena kolom end tidak ditetapkan dalam pesan proto, batas akhir rentang ini tidak terbatas.

{
  f_range_date: {
    start: 1
  }
}
REPEATED FIELD array

Jenis array di proto sesuai dengan kolom berulang di BigQuery.

RECORD message

Jenis pesan bertingkat di proto sesuai dengan kolom catatan di BigQuery.

Jenis data Apache Arrow yang didukung

Tabel berikut menunjukkan jenis data yang didukung di Apache Arrow dan format input yang sesuai di BigQuery.

Jenis data BigQuery Jenis Apache Arrow yang didukung Parameter jenis yang didukung
BOOL Boolean
BYTES Binary
DATE Date unit = Day
String, int32
DATETIME Timestamp unit = MICROSECONDS

zona waktu kosong

FLOAT FloatingPoint Presisi dalam {SINGLE, DOUBLE}
GEOGRAPHY Utf8

Nilainya merupakan geometri dalam format WKT atau GeoJson.

INTEGER int bitWidth dalam {8, 16, 32, 64}

is_signed = false

JSON Utf8
NUMERIC Decimal128 Anda dapat memberikan NUMERIC yang memiliki presisi atau skala yang lebih kecil dari rentang yang didukung BigQuery.
BIGNUMERIC Decimal256 Anda dapat memberikan BIGNUMERIC yang memiliki presisi atau skala yang lebih kecil dari rentang yang didukung BigQuery.
STRING Utf8
TIMESTAMP Timestamp unit= MICROSECONDS

timezone = UTC

INTERVAL Interval unit dalam {YEAR_MONTH, DAY_TIME, MONTH_DAY_NANO}
Utf8
RANGE<T> Struct

Arrow Struct harus memiliki dua subkolom bernama start dan end.

Untuk kolom RANGE<DATE>, kolom harus berupa jenis Arrow Date dengan unit=Day.

Untuk kolom RANGE<DATETIME>, kolom harus berupa jenis Arrow Timestamp dengan unit=MICROSECONDS, tanpa zona waktu.

Untuk RANGE<TIMESTAMP>, kolom harus berupa jenis Arrow Timestamp dengan unit=MICROSECONDS, timezone=UTC.

Nilai NULL di kolom start dan end akan diperlakukan sebagai UNBOUNDED.

REPEATED FIELD List Nilai NULL harus diwakili oleh daftar kosong.
RECORD Struct