支援的儲存格式和資料類型

透過 Lakehouse 執行階段目錄,您可以將 Apache Spark 和 Apache Hive 與 BigQuery 整合,支援 Parquet、ORC、Avro、CSV、JSON 和 Delta Lake 等儲存空間格式。在執行跨引擎工作負載之前,請先查看這些 Hive SerDe 和 Spark 資料來源相容性,以及資料類型轉換規則,確認資料表結構定義與 Lakehouse 執行階段目錄一致。

Hive 和 Spark 支援的儲存空間格式

下列各節說明 Hive、Spark 和 BigQuery 之間的儲存格式和資料來源相容性。

詳細儲存空間格式對應

BigQuery 會根據中繼資料中的 input_format、output_format 和 SerDe 程式庫,決定資料表的儲存格式。下表將這些屬性對應至 BigQuery 儲存空間格式。

輸入格式、輸出格式和 SerDe 程式庫 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

Hive SerDe 相容性

下表列出 Hive SerDe 資料表格式與 BigQuery 的相容性。

格式 Spark SQL DDL 語法 可透過 BigQuery 查詢
Parquet CREATE TABLE ... STORED AS PARQUET 是
ORC CREATE TABLE ... STORED AS ORC 是
Avro CREATE TABLE ... STORED AS AVRO 是
CSV CREATE TABLE ... ROW FORMAT 'org.apache.hadoop.hive.serde2.OpenCSVSerde' 是
JSON CREATE TABLE ... ROW FORMAT 'org.openx.data.jsonserde.JsonSerDe' 是

Spark 資料來源相容性

下表列出 Spark 資料來源資料表格式與 BigQuery 的相容性。

您可以從 BigQuery 查詢 CSV 和 JSON SerDe 資料表。但 CSV 和 JSON Spark 資料來源資料表則不支援。

格式 Spark SQL DDL 語法 可透過 BigQuery 查詢
Parquet CREATE TABLE ... USING PARQUET 是
ORC CREATE TABLE ... USING ORC 是
Avro CREATE TABLE ... USING AVRO 是
Delta Lake CREATE TABLE ... USING DELTA 是
CSV CREATE TABLE ... USING CSV 否
JSON CREATE TABLE ... USING JSON 否

從 Spark 傳送至 BigQuery 的支援資料類型

下表列出 Spark 資料類型與 BigQuery 資料類型的對應關係。

Spark 資料類型 BigQuery 資料類型
BYTE或TINYINT INT64
SMALLINT 或 SHORT INT64
INT 或 INTEGER INT64
BIGINT 或 LONG INT64
DECIMAL 或 NUMERIC BIGNUMERIC
FLOAT FLOAT64
DOUBLE FLOAT64
REAL FLOAT64
BOOLEAN BOOL
STRING STRING
VARCHAR STRING
CHAR 或 CHARACTER STRING
BINARY BYTES
DATE DATE
TIMESTAMP或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>>
如要啟用這項功能,請傳送電子郵件至 biglake-help@google.com。只有在工作負載使用 MAP 時,才需要執行這項操作。

後續步驟