הקטלוג הייעודי לזמן ריצה של Lakehouse מאפשר לשלב את Apache Spark ואת Apache Hive עם BigQuery בפורמטים שונים של אחסון, כמו Parquet, ORC, Avro, CSV, JSON ו-Delta Lake. בדיקה של התאימות בין Hive SerDe לבין מקורות נתונים של Spark ושל כללי ההמרה של סוגי הנתונים עוזרת לוודא שסכימות הטבלאות תואמות לקטלוג של זמן הריצה של Lakehouse לפני שמריצים עומסי עבודה חוצי-מנועים.
פורמטים נתמכים של אחסון בין Hive ל-Spark
בקטעים הבאים מתוארים פורמט האחסון והתאימות של מקורות הנתונים בין Hive, Spark ו-BigQuery.
מיפוי מפורט של פורמטים של אחסון
BigQuery קובע את פורמט האחסון של טבלה על סמך הספרייה input_format, output_format ו-SerDe במטא-נתונים. בטבלה הבאה מפורט מיפוי של המאפיינים האלה לפורמט האחסון ב-BigQuery.
| פורמט קלט, פורמט פלט וספריית SerDe | פורמט האחסון ב-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 |
תאימות ל-Hive SerDe
בטבלה הבאה מפורטת התאימות של פורמטים של טבלאות Hive SerDe ל-BigQuery.
| פורמט | תחביר DDL של Spark SQL | אפשר להריץ שאילתות מ-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' |
כן |
תאימות של מקור נתונים ב-Spark
בטבלה הבאה מפורטת התאימות של פורמטים של טבלאות של מקורות נתונים ב-Spark ל-BigQuery.
אפשר לשלוח שאילתות לטבלאות CSV ו-JSON SerDe מ-BigQuery. עם זאת, טבלאות של מקורות נתונים ב-Spark בפורמט CSV ו-JSON לא נתמכות.
| פורמט | תחביר DDL של Spark SQL | אפשר להריץ שאילתות מ-BigQuery |
|---|---|---|
| Parquet | CREATE TABLE ... USING PARQUET |
כן |
| ORC | CREATE TABLE ... USING ORC |
כן |
| Avro | CREATE TABLE ... USING AVRO |
כן |
| Delta Lake | CREATE TABLE ... USING DELTA |
כן |
| CSV | CREATE TABLE ... USING CSV |
לא |
| JSON | CREATE TABLE ... USING JSON |
לא |
סוגי נתונים נתמכים מ-Spark ל-BigQuery
בטבלה הבאה מופיע מיפוי של סוגי הנתונים ב-Spark לסוגי הנתונים ב-BigQuery.
| סוג הנתונים ב-Spark | סוג נתונים ב-BigQuery |
|---|---|
BYTE או TINYINT |
INT64 |
SMALLINT או SHORT |
INT64 |
INT או INTEGER |
INT64 |
BIGINT או LONG |
INT64 |
DECIMAL או NUMERIC |
BIGNUMERIC |
FLOAT |
FLOAT64 |
DOUBLE |
FLOAT64 |
REAL |
FLOAT64 |
BOOLEAN |
BOOL |
STRING |
STRING |
VARCHAR |
STRING |
CHAR או CHARACTER |
STRING |
BINARY |
BYTES |
DATE |
DATE |
TIMESTAMP או 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>>כדי להפעיל את התכונה הזו, שולחים אימייל לכתובת biglake-help@google.com. צריך לעשות את זה רק אם עומסי העבודה משתמשים ב- MAP. |