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

במאמר הזה מוסבר איך סוגי נתונים ופורמטים של אחסון מתנהגים כשמשלבים את Spark ו-Hive עם BigQuery באמצעות קטלוג זמן הריצה של Lakehouse.

באופן ספציפי, המסמך הזה כולל:

  • פורמטים נתמכים לאחסון: פירוט של תאימות בין פורמטים כמו Parquet,‏ ORC,‏ Avro,‏ CSV ו-JSON ב-Hive SerDe ובמקורות נתונים של Spark.
  • מיפוי של סוגי נתונים: כללי ההמרה המדויקים בין סוגי הנתונים של Spark ו-BigQuery.

בדף הזה אפשר לוודא שסכימות הטבלאות ופורמטי האחסון תואמים למאגר המטא-נתונים לפני שמריצים עומסי עבודה או מבצעים שאילתות בטבלאות במנועים שונים.

פורמטים נתמכים של אחסון בין 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.

אפשר להריץ שאילתות על טבלאות SerDe בפורמטים CSV ו-JSON מ-BigQuery. עם זאת, טבלאות של מקור נתונים ב-Spark בפורמט CSV ו-JSON לא נתמכות.

פורמט תחביר DDL של Spark SQL אפשר להריץ שאילתות מ-BigQuery
Parquet CREATE TABLE ... USING PARQUET כן
ORC CREATE TABLE ... USING ORC כן
Avro CREATE TABLE ... USING AVRO כן
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.

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