サポートされているストレージ形式とデータ型

Lakehouse ランタイム カタログを使用すると、Parquet、ORC、Avro、CSV、JSON、Delta Lake などのストレージ形式で Apache Spark と Apache Hive を BigQuery と統合できます。これらの 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 の互換性を示します。

CSV SerDe テーブルと JSON SerDe テーブルは BigQuery からクエリできます。ただし、CSV Spark データソース テーブルと 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 を使用する場合にのみ必要です。

次のステップ