Formati di archiviazione e tipi di dati supportati

Questo documento descrive il comportamento dei tipi di dati e dei formati di archiviazione durante l'integrazione di Spark e Hive con BigQuery tramite il catalogo runtime Lakehouse.

In particolare, questo documento fornisce:

  • Formati di archiviazione supportati: una suddivisione della compatibilità di formati come Parquet, ORC, Avro, CSV e JSON tra le librerie SerDe di Hive e le origini dati Spark.
  • Mappature dei tipi di dati: le regole di conversione precise tra i tipi di dati Spark e BigQuery.

Utilizza questa pagina per verificare che gli schemi delle tabelle e i formati di archiviazione siano allineati al metastore prima di eseguire i workload o di eseguire query sulle tabelle tra i motori.

Formati di archiviazione supportati tra Hive e Spark

Le sezioni seguenti descrivono la compatibilità del formato di archiviazione e dell'origine dati tra Hive, Spark e BigQuery.

Mappatura dettagliata del formato di archiviazione

BigQuery determina il formato di archiviazione di una tabella in base alla libreria input_format, output_format e SerDe nei metadati. La tabella seguente mappa queste proprietà al formato di archiviazione di BigQuery.

Libreria di formato di input, formato di output e SerDe Formato di archiviazione di 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à di SerDe di Hive

La tabella seguente elenca la compatibilità dei formati di tabella SerDe di Hive con BigQuery.

Formato Sintassi DDL di Spark SQL È possibile eseguire query da 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'

Compatibilità dell'origine dati Spark

La tabella seguente elenca la compatibilità dei formati di tabella dell'origine dati Spark con BigQuery.

È possibile eseguire query sulle tabelle SerDe CSV e JSON da BigQuery. Tuttavia, non è possibile eseguire query sulle tabelle dell'origine dati Spark CSV e JSON.

Formato Sintassi DDL di Spark SQL È possibile eseguire query da BigQuery
Parquet CREATE TABLE ... USING PARQUET
ORC CREATE TABLE ... USING ORC
Avro CREATE TABLE ... USING AVRO
CSV CREATE TABLE ... USING CSV No
JSON CREATE TABLE ... USING JSON No

Tipi di dati supportati da Spark a BigQuery

La tabella seguente mappa i tipi di dati Spark ai tipi di dati BigQuery.

Tipo di dati Spark Tipo di dati BigQuery
BYTE o TINYINT INT64
SMALLINT o SHORT INT64
INT o INTEGER INT64
BIGINT o LONG INT64
DECIMAL o NUMERIC BIGNUMERIC
FLOAT FLOAT64
DOUBLE FLOAT64
REAL FLOAT64
BOOLEAN BOOL
STRING STRING
VARCHAR STRING
CHAR o CHARACTER STRING
BINARY BYTES
DATE DATE
TIMESTAMP o 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>>
Per attivare questa funzionalità, invia un'email a biglake-help@google.com. Questa operazione è necessaria solo se i workload utilizzano MAP.

Passaggi successivi