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

このドキュメントでは、Lakehouse ランタイム カタログを介して Spark と Hive を BigQuery と統合する場合のデータ型とストレージ形式の動作について詳しく説明します。

具体的には、このドキュメントでは次の情報を提供します。

  • サポートされているストレージ形式: Hive SerDe と Spark データソース間の Parquet、ORC、Avro、CSV、JSON などの形式の互換性の内訳。
  • データ型のマッピング: Spark と BigQuery のデータ型間の正確な変換ルール。

このページを使用して、エンジン間でワークロードを実行したりテーブルをクエリしたりする前に、テーブル スキーマとストレージ形式がメタストアと一致していることを確認します。

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 と JSON の Spark データソース テーブルはサポートされていません。

形式 Spark SQL DDL 構文 BigQuery からクエリ可能
Parquet CREATE TABLE ... USING PARQUET ○
ORC CREATE TABLE ... USING ORC ○
Avro CREATE TABLE ... USING AVRO ○
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 を使用している場合にのみ必要です。

次のステップ