המחבר Hive-BigQuery הוא קוד פתוח שמאפשר לעומסי העבודה של Apache Hive לקרוא ולכתוב נתונים מתוך טבלאות של BigQuery ושל BigLake. אפשר לאחסן נתונים ב-BigQuery או בפורמטים של נתונים בקוד פתוח ב-Cloud Storage.
מחבר Hive-BigQuery מטמיע את Hive Storage Handler API כדי לאפשר שילוב של עומסי עבודה (workloads) של Hive עם טבלאות BigQuery ו-BigLake. מנוע ההפעלה של Hive מטפל בפעולות חישוב, כמו צבירה וצירוף, והמחבר מנהל אינטראקציות עם נתונים שמאוחסנים ב-BigQuery או בקטגוריות של Cloud Storage שמקושרות ל-BigLake.
התרשים הבא ממחיש את המיקום של מחבר Hive-BigQuery בין שכבות החישוב והנתונים.

תרחישים לדוגמה
הנה כמה מהדרכים שבהן המחבר Hive-BigQuery יכול לעזור לכם בתרחישים נפוצים שמבוססים על נתונים:
העברת נתונים. אתם מתכננים להעביר את מחסן הנתונים של Hive ל-BigQuery, ואז לתרגם בהדרגה את שאילתות Hive לדיאלקט SQL של BigQuery. אתם צופים שההעברה תימשך זמן רב בגלל הגודל של מחסן הנתונים ומספר האפליקציות המחוברות, ואתם צריכים לוודא שתהיה המשכיות במהלך פעולות ההעברה. כך מתבצע התהליך:
- העברת הנתונים ל-BigQuery
- באמצעות המחבר, אתם יכולים לגשת לשאילתות המקוריות של Hive ולהריץ אותן, תוך כדי תרגום הדרגתי של שאילתות Hive לניב SQL תואם ANSI של BigQuery.
- אחרי שמשלימים את המיגרציה והתרגום, מוציאים את Hive משימוש.
תהליכי עבודה של Hive ו-BigQuery. אתם מתכננים להשתמש ב-Hive למשימות מסוימות וב-BigQuery לעומסי עבודה שיכולים להפיק תועלת מהתכונות שלו, כמו BigQuery BI Engine או BigQuery ML. משתמשים במחבר כדי לצרף טבלאות Hive לטבלאות BigQuery.
הסתמכות על חבילת תוכנות בקוד פתוח (OSS). כדי להימנע מנעילת ספק, אתם משתמשים במערך מלא של OSS למחסן הנתונים. זו חבילת הגלישה שלך:
אתם מעבירים את הנתונים בפורמט המקורי של ה-OSS, כמו Avro, Parquet או ORC, לקטגוריות של Cloud Storage באמצעות חיבור BigLake.
אתם ממשיכים להשתמש ב-Hive כדי להריץ ולעבד את השאילתות שלכם בניב Hive SQL.
אתם יכולים להשתמש במחבר לפי הצורך כדי להתחבר ל-BigQuery וליהנות מהתכונות הבאות:
- שמירת מטא-נתונים במטמון לשיפור הביצועים של השאילתות
- מניעת אובדן נתונים
- בקרת גישה ברמת העמודה
- הסוואת נתונים דינמית לאבטחה ולמשילות בהיקף נרחב.
תכונות
אתם יכולים להשתמש במחבר Hive-BigQuery כדי לעבוד עם נתוני BigQuery ולבצע את המשימות הבאות:
- הרצת שאילתות באמצעות מנועי הביצוע MapReduce ו-Tez.
- יצירה ומחיקה של טבלאות BigQuery מ-Hive.
- איחוד של טבלאות BigQuery ו-BigLake עם טבלאות Hive.
- ביצוע קריאות מהירות מטבלאות BigQuery באמצעות הזרמות של Storage Read API והפורמט Apache Arrow
- כתיבת נתונים ל-BigQuery באמצעות השיטות הבאות:
- כתיבה ישירה באמצעות BigQuery Storage Write API במצב המתנה. משתמשים בשיטה הזו לעומסי עבודה שדורשים זמן אחזור קצר לכתיבה, כמו לוחות בקרה כמעט בזמן אמת עם חלונות קצרים של זמן רענון.
- כתיבות עקיפות על ידי העלאת קובצי Avro זמניים ל-Cloud Storage, ולאחר מכן טעינת הקבצים לטבלת יעד באמצעות Load Job API. השיטה הזו זולה יותר מהשיטה הישירה, כי לא נצברות עלויות על עבודות טעינה של BigQuery. השיטה הזו איטית יותר, והיא מתאימה לעומסי עבודה שלא רגישים לזמן.
גישה לטבלאות מחולקות למחיצות לפי זמן ולטבלאות מסודרות באשכולות ב-BigQuery. בדוגמה הבאה מוגדר הקשר בין טבלת Hive לבין טבלה שמחולקת למחיצות ומקובצת ב-BigQuery.
CREATE TABLE my_hive_table (int_val BIGINT, text STRING, ts TIMESTAMP) STORED BY 'com.google.cloud.hive.bigquery.connector.BigQueryStorageHandler' TBLPROPERTIES ( 'bq.table'='myproject.mydataset.mytable', 'bq.time.partition.field'='ts', 'bq.time.partition.type'='MONTH', 'bq.clustered.fields'='int_val,text' );
כדאי להסיר עמודות כדי להימנע מאחזור עמודות מיותרות משכבת הנתונים.
משתמשים בהעברת פרדיקטים כדי לסנן מראש שורות נתונים בשכבת האחסון של BigQuery. הטכניקה הזו יכולה לשפר משמעותית את הביצועים הכוללים של השאילתות, כי היא מצמצמת את כמות הנתונים שעוברים ברשת.
המרת סוגי נתונים ב-Hive לסוגי נתונים ב-BigQuery באופן אוטומטי.
קריאה של תצוגות מפורטות ותמונות מצב של טבלאות ב-BigQuery.
שילוב עם Spark SQL.
שילוב עם Apache Pig ו-HCatalog.
קדימה, מתחילים
הוראות להתקנה והגדרה של מחבר Hive-BigQuery באשכול Hive