Formats de stockage et types de données compatibles

Ce document explique le comportement des types de données et des formats de stockage lors de l'intégration de Spark et Hive à BigQuery via le catalogue du runtime Lakehouse.

Plus précisément, ce document fournit les informations suivantes :

  • Formats de stockage compatibles : tableau de compatibilité des formats tels que Parquet, ORC, Avro, CSV et JSON dans les sources de données Hive SerDe et Spark.
  • Mappages des types de données : règles de conversion précises entre les types de données Spark et BigQuery.

Utilisez cette page pour vérifier que vos schémas de table et formats de stockage sont compatibles avec le metastore avant d'exécuter des charges de travail ou d'interroger des tables sur plusieurs moteurs.

Formats de stockage compatibles entre Hive et Spark

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

Mappage détaillé du format de stockage

BigQuery détermine le format de stockage d'une table en fonction des bibliothèques 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 indique 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é des sources de données Spark

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

Les tables SerDe CSV et JSON peuvent être interrogées depuis BigQuery. Toutefois, les tables de source de données Spark CSV et JSON ne le sont pas.

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
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. Cette étape n'est nécessaire que si vos charges de travail utilisent MAP.

Étapes suivantes