Formatos de armazenamento e tipos de dados compatíveis

O catálogo do ambiente de execução do Lakehouse permite integrar o Apache Spark e o Apache Hive ao BigQuery em formatos de armazenamento como Parquet, ORC, Avro, CSV, JSON e Delta Lake. A análise dessas compatibilidades do Hive SerDe e da fonte de dados do Spark e das regras de conversão de tipo de dados ajuda a verificar se os esquemas de tabela estão alinhados ao catálogo do ambiente de execução do Lakehouse antes de executar cargas de trabalho entre mecanismos.

Formatos de armazenamento compatíveis entre o Hive e o Spark

As seções a seguir descrevem o formato de armazenamento e a compatibilidade da fonte de dados entre o Hive, o Spark e o BigQuery.

Mapeamento detalhado do formato de armazenamento

O BigQuery determina o formato de armazenamento de uma tabela com base na biblioteca input_format, output_format e SerDe nos metadados. A tabela a seguir mapeia essas propriedades para o formato de armazenamento do BigQuery.

Formato de entrada, formato de saída e biblioteca SerDe Formato de armazenamento do 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

Compatibilidade do Hive SerDe

A tabela a seguir lista a compatibilidade dos formatos de tabela do Hive SerDe com o BigQuery.

Formato Sintaxe DDL do Spark SQL Pode ser consultado no BigQuery
Parquet CREATE TABLE ... STORED AS PARQUET Sim
ORC CREATE TABLE ... STORED AS ORC Sim
Avro CREATE TABLE ... STORED AS AVRO Sim
CSV CREATE TABLE ... ROW FORMAT 'org.apache.hadoop.hive.serde2.OpenCSVSerde' Sim
JSON CREATE TABLE ... ROW FORMAT 'org.openx.data.jsonserde.JsonSerDe' Sim

Compatibilidade da fonte de dados do Spark

A tabela a seguir lista a compatibilidade dos formatos de tabela da fonte de dados do Spark com o BigQuery.

As tabelas CSV e JSON SerDe podem ser consultadas no BigQuery. No entanto, as tabelas de origem de dados CSV e JSON Spark não podem.

Formato Sintaxe DDL do Spark SQL Pode ser consultado no BigQuery
Parquet CREATE TABLE ... USING PARQUET Sim
ORC CREATE TABLE ... USING ORC Sim
Avro CREATE TABLE ... USING AVRO Sim
Delta Lake CREATE TABLE ... USING DELTA Sim
CSV CREATE TABLE ... USING CSV Não
JSON CREATE TABLE ... USING JSON Não

Tipos de dados compatíveis do Spark com o BigQuery

A tabela a seguir mapeia os tipos de dados do Spark para os tipos de dados do BigQuery.

Tipo de dados do Spark Tipo de dados do 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>>
Para ativar esse recurso, envie um e-mail para biglake-help@google.com. Isso só é necessário se as cargas de trabalho usarem MAP.

A seguir