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 を使用する場合にのみ必要です。 |