Formats de stockage et types de données compatibles

Le catalogue d'environnements d'exécution Lakehouse vous permet d'intégrer Apache Spark et Apache Hive à BigQuery dans différents formats de stockage tels que Parquet, ORC, Avro, CSV, JSON et Delta Lake. En examinant ces compatibilités Hive SerDe et Spark avec les sources de données, ainsi que les règles de conversion des types de données, vous pouvez vérifier que les schémas de vos tables sont alignés sur le catalogue d'environnements d'exécution Lakehouse avant d'exécuter des charges de travail inter-moteurs.

Formats de stockage compatibles entre Hive et Spark

Les sections suivantes décrivent la compatibilité des formats de stockage et des sources de données entre Hive, Spark et BigQuery.

Mappage détaillé des formats de stockage

BigQuery détermine le format de stockage d'une table en fonction de la bibliothèque input_format, output_format et SerDe dans les métadonnées. Le tableau suivant mappe ces propriétés au format de stockage BigQuery.

Format d'entrée, format de sortie et bibliothèque SerDe Format de stockage 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

Compatibilité avec Hive SerDe

Le tableau suivant répertorie la compatibilité des formats de table Hive SerDe avec BigQuery.

Format Syntaxe DDL Spark SQL Interrogeable depuis BigQuery
Parquet CREATE TABLE ... STORED AS PARQUET Oui
ORC CREATE TABLE ... STORED AS ORC Oui
Avro CREATE TABLE ... STORED AS AVRO Oui
CSV CREATE TABLE ... ROW FORMAT 'org.apache.hadoop.hive.serde2.OpenCSVSerde' Oui
JSON CREATE TABLE ... ROW FORMAT 'org.openx.data.jsonserde.JsonSerDe' Oui

Compatibilité avec les sources de données Spark

Le tableau suivant répertorie la compatibilité des formats de table de source de données Spark avec BigQuery.

Les tables CSV et JSON SerDe peuvent être interrogées depuis BigQuery. Toutefois, ce n'est pas le cas des tables de source de données Spark CSV et JSON.

Format Syntaxe DDL Spark SQL Interrogeable depuis BigQuery
Parquet CREATE TABLE ... USING PARQUET Oui
ORC CREATE TABLE ... USING ORC Oui
Avro CREATE TABLE ... USING AVRO Oui
Delta Lake CREATE TABLE ... USING DELTA Oui
CSV CREATE TABLE ... USING CSV Non
JSON CREATE TABLE ... USING JSON Non

Types de données compatibles de Spark à BigQuery

Le tableau suivant mappe les types de données Spark aux types de données BigQuery.

Type de données Spark Type de données BigQuery
BYTE ou TINYINT INT64
SMALLINT ou SHORT INT64
INT ou INTEGER INT64
BIGINT ou LONG INT64
DECIMAL ou NUMERIC BIGNUMERIC
FLOAT FLOAT64
DOUBLE FLOAT64
REAL FLOAT64
BOOLEAN BOOL
STRING STRING
VARCHAR STRING
CHAR ou CHARACTER STRING
BINARY BYTES
DATE DATE
TIMESTAMP ou 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>>
Pour activer cette fonctionnalité, envoyez un e-mail à biglake-help@google.com. Cela n'est nécessaire que si vos charges de travail utilisent MAP.

Étape suivante