פורמטים נתמכים של אחסון וסוגי נתונים

הקטלוג הייעודי לזמן ריצה של 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.

המאמרים הבאים