Mit dem Lakehouse-Laufzeitkatalog können Sie Apache Spark und Apache Hive in BigQuery über verschiedene Speicherformate wie Parquet, ORC, Avro, CSV, JSON und Delta Lake hinweg integrieren. Wenn Sie sich diese Hive-SerDe- und Spark-Datenquellenkompatibilitäten sowie die Regeln für die Datentypkonvertierung ansehen, können Sie prüfen, ob Ihre Tabellenschemas mit dem Lakehouse-Laufzeitkatalog übereinstimmen, bevor Sie arbeitsübergreifende Arbeitslasten ausführen.
Unterstützte Speicherformate zwischen Hive und Spark
In den folgenden Abschnitten werden die Kompatibilität von Speicherformaten und Datenquellen zwischen Hive, Spark und BigQuery beschrieben.
Detaillierte Zuordnung von Speicherformaten
BigQuery bestimmt das Speicherformat einer Tabelle anhand der Bibliothek 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 ist die Kompatibilität von Hive-SerDe-Tabellenformaten mit BigQuery aufgeführt.
| Format | Spark SQL-DDL-Syntax | In 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 |
Spark-Datenquellenkompatibilität
In der folgenden Tabelle ist die Kompatibilität von Spark-Datenquellentabellenformaten mit BigQuery aufgeführt.
CSV- und JSON-SerDe-Tabellen können in BigQuery abgefragt werden. CSV- und JSON-Spark-Datenquellentabellen jedoch nicht.
| Format | Spark SQL-DDL-Syntax | In BigQuery abfragbar |
|---|---|---|
| Parquet | CREATE TABLE ... USING PARQUET |
Ja |
| ORC | CREATE TABLE ... USING ORC |
Ja |
| Avro | CREATE TABLE ... USING AVRO |
Ja |
| Delta Lake | CREATE TABLE ... USING DELTA |
Ja |
| CSV | CREATE TABLE ... USING CSV |
Nein |
| JSON | CREATE TABLE ... USING JSON |
Nein |
Unterstützte Datentypen 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 dieses Feature aktivieren möchten, senden Sie eine E-Mail an biglake-help@google.com. Dies ist nur erforderlich, wenn Ihre Arbeitslasten MAP verwenden. |