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
- Utiliser Spark et Hive avec le catalogue d'environnements d'exécution Lakehouse.
- Configurer Spark avec des tables Delta.