Unterstützte Speicherformate und Datentypen

In diesem Dokument wird beschrieben, wie sich Datentypen und Speicherformate verhalten, wenn Spark und Hive über den Lakehouse-Laufzeitkatalog in BigQuery eingebunden werden.

Dieses Dokument enthält Folgendes:

  • Unterstützte Speicherformate: Eine Aufschlüsselung der Kompatibilität von Formaten wie Parquet, ORC, Avro, CSV und JSON für Hive SerDe und Spark-Datenquellen.
  • Datentypzuordnungen: Die genauen Konvertierungsregeln zwischen Spark- und BigQuery-Datentypen.

Auf dieser Seite können Sie prüfen, ob Ihre Tabellenschemas und Speicherformate mit dem Metastore übereinstimmen, bevor Sie Arbeitslasten ausführen oder Tabellen über verschiedene Engines hinweg abfragen.

Unterstützte Speicherformate zwischen Hive und Spark

In den folgenden Abschnitten werden das Speicherformat und die Datenquellenkompatibilität zwischen Hive, Spark und BigQuery beschrieben.

Detaillierte Zuordnung des Speicherformats

BigQuery bestimmt das Speicherformat einer Tabelle anhand der Bibliotheken input_format, output_format und SerDe in den Metadaten. In der folgenden Tabelle werden diese Eigenschaften dem BigQuery-Speicherformat zugeordnet.

Eingabeformat, Ausgabeformat und SerDe-Bibliothek BigQuery-Speicherformat
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

Hive-SerDe-Kompatibilität

In der folgenden Tabelle wird die Kompatibilität von Hive SerDe-Tabellenformaten mit BigQuery aufgeführt.

Format Spark SQL-DDL-Syntax Über BigQuery abfragbar
Parquet CREATE TABLE ... STORED AS PARQUET Ja
ORC CREATE TABLE ... STORED AS ORC Ja
Avro CREATE TABLE ... STORED AS AVRO Ja
CSV CREATE TABLE ... ROW FORMAT 'org.apache.hadoop.hive.serde2.OpenCSVSerde' Ja
JSON CREATE TABLE ... ROW FORMAT 'org.openx.data.jsonserde.JsonSerDe' Ja

Kompatibilität von Spark-Datenquellen

In der folgenden Tabelle ist die Kompatibilität von Spark-Datenquellen-Tabellenformaten mit BigQuery aufgeführt.

CSV- und JSON-SerDe-Tabellen können in BigQuery abgefragt werden. Bei CSV- und JSON-Spark-Datenquellentabellen ist das jedoch nicht der Fall.

Format Spark SQL-DDL-Syntax Über BigQuery abfragbar
Parquet CREATE TABLE ... USING PARQUET Ja
ORC CREATE TABLE ... USING ORC Ja
Avro CREATE TABLE ... USING AVRO Ja
CSV CREATE TABLE ... USING CSV Nein
JSON CREATE TABLE ... USING JSON Nein

Unterstützte Datentypen für die Übertragung von Spark zu BigQuery

In der folgenden Tabelle werden Spark-Datentypen BigQuery-Datentypen zugeordnet.

Spark-Datentyp BigQuery-Datentyp
BYTE oder TINYINT INT64
SMALLINT oder SHORT INT64
INT oder INTEGER INT64
BIGINT oder LONG INT64
DECIMAL oder NUMERIC BIGNUMERIC
FLOAT FLOAT64
DOUBLE FLOAT64
REAL FLOAT64
BOOLEAN BOOL
STRING STRING
VARCHAR STRING
CHAR oder CHARACTER STRING
BINARY BYTES
DATE DATE
TIMESTAMP oder 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>>
Wenn Sie diese Funktion aktivieren möchten, senden Sie eine E-Mail an biglake-help@google.com. Dies ist nur erforderlich, wenn in Ihren Arbeitslasten MAP verwendet wird.

Nächste Schritte