Dokumen ini menjelaskan perilaku jenis data dan format penyimpanan saat mengintegrasikan Spark dan Hive dengan BigQuery melalui katalog runtime Lakehouse.
Secara khusus, dokumen ini menyediakan:
- Format penyimpanan yang didukung: Rincian kompatibilitas format seperti Parquet, ORC, Avro, CSV, dan JSON di seluruh sumber data Hive SerDe dan Spark.
- Pemetaan jenis data: Aturan konversi yang tepat antara jenis data Spark dan BigQuery.
Gunakan halaman ini untuk memverifikasi bahwa skema tabel dan format penyimpanan Anda selaras dengan metastore sebelum menjalankan workload atau membuat kueri tabel di seluruh mesin.
Format penyimpanan yang didukung antara Hive dan Spark
Bagian berikut menjelaskan kompatibilitas format penyimpanan dan sumber data antara Hive, Spark, dan BigQuery.
Pemetaan format penyimpanan mendetail
BigQuery menentukan format penyimpanan tabel berdasarkan library input_format, output_format, dan SerDe dalam metadata. Tabel berikut memetakan properti ini ke format penyimpanan BigQuery.
| Format input, format output, dan library SerDe | Format penyimpanan BigQuery |
|---|---|
org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe |
Parquet |
org.apache.hadoop.hive.ql.io.orc.OrcInputFormat org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat org.apache.hadoop.hive.ql.io.orc.OrcSerde |
ORC |
org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat org.apache.hadoop.hive.serde2.avro.AvroSerDe |
Avro |
org.apache.hadoop.mapred.TextInputFormat org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat org.apache.hadoop.hive.serde2.OpenCSVSerde |
CSV |
org.apache.hadoop.mapred.TextInputFormat org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat org.openx.data.jsonserde.JsonSerDe |
JSON |
org.apache.hadoop.mapred.TextInputFormat org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat org.apache.hive.hcatalog.data.JsonSerDe |
JSON |
Kompatibilitas Hive SerDe
Tabel berikut mencantumkan kompatibilitas format tabel Hive SerDe dengan BigQuery.
| Format | Sintaksis DDL Spark SQL | Dapat dikueri dari BigQuery |
|---|---|---|
| Parquet | CREATE TABLE ... STORED AS PARQUET |
Ya |
| ORC | CREATE TABLE ... STORED AS ORC |
Ya |
| Avro | CREATE TABLE ... STORED AS AVRO |
Ya |
| CSV | CREATE TABLE ... ROW FORMAT 'org.apache.hadoop.hive.serde2.OpenCSVSerde' |
Ya |
| JSON | CREATE TABLE ... ROW FORMAT 'org.openx.data.jsonserde.JsonSerDe' |
Ya |
Kompatibilitas sumber data Spark
Tabel berikut mencantumkan kompatibilitas format tabel sumber data Spark dengan BigQuery.
Tabel SerDe CSV dan JSON dapat dikueri dari BigQuery. Namun, tabel sumber data Spark CSV dan JSON tidak dapat dikueri.
| Format | Sintaksis DDL Spark SQL | Dapat dikueri dari BigQuery |
|---|---|---|
| Parquet | CREATE TABLE ... USING PARQUET |
Ya |
| ORC | CREATE TABLE ... USING ORC |
Ya |
| Avro | CREATE TABLE ... USING AVRO |
Ya |
| CSV | CREATE TABLE ... USING CSV |
Tidak |
| JSON | CREATE TABLE ... USING JSON |
Tidak |
Jenis data yang didukung dari Spark ke BigQuery
Tabel berikut memetakan jenis data Spark ke jenis data BigQuery.
| Jenis data Spark | Jenis data BigQuery |
|---|---|
BYTE atau TINYINT |
INT64 |
SMALLINT atau SHORT |
INT64 |
INT atau INTEGER |
INT64 |
BIGINT atau LONG |
INT64 |
DECIMAL atau NUMERIC |
BIGNUMERIC |
FLOAT |
FLOAT64 |
DOUBLE |
FLOAT64 |
REAL |
FLOAT64 |
BOOLEAN |
BOOL |
STRING |
STRING |
VARCHAR |
STRING |
CHAR atau CHARACTER |
STRING |
BINARY |
BYTES |
DATE |
DATE |
TIMESTAMP atau TIMESTAMP_LTZ |
TIMESTAMP |
ARRAY |
ARRAY |
STRUCT<col_name: type1, ...> |
STRUCT<col_name: type1, ...> |
MAP<key_type, value_type> |
ARRAY<STRUCT<key: key_type, value: value_type>>Untuk mengaktifkan fitur ini, kirim email ke biglake-help@google.com. Hal ini hanya diperlukan jika workload Anda menggunakan MAP. |