שילוב של Spark ו-Hive עם קטלוג זמן הריצה של Lakehouse מבטל את התקורה התפעולית של תחזוקת Hive Metastore (HMS) באירוח עצמי, ומאפשר שיתוף מאוחד של מטא-נתונים ושאילתות ישירות בטבלאות ב-BigQuery.
במסמך הזה מפורטים האילוצים הפונקציונליים והשיקולים לגבי השירות שקשורים לשילוב הזה. לפני שמעבירים או בונים את צינורות הנתונים של מסד הנתונים בקוד פתוח בקטלוג של Lakehouse runtime, כדאי לעיין במגבלות האלה כדי להבין אם גרסת הטרום-השקה הזו מתאימה לדרישות הטכניות שלכם.
אם אתם מחפשים הוראות להגדרה ולשאילתות במקום מגבלות, כדאי לעיין במאמר שימוש ב-Spark וב-Hive עם קטלוג זמן הריצה של Lakehouse.
מגבלות על קטלוג זמן הריצה של Lakehouse
בקטע הזה מפורטות ההגבלות על השימוש בקטלוג של Lakehouse runtime עם שירותים שונים.
מגבלות של Metastore
- Managed Service for Apache Spark תומך רק במשימות PySpark עם Lakehouse Metastore.
- Dataproc API לא תומך בהגדרת מאפיינים של Lakehouse Metastore בשדה
properties. - אי אפשר ליצור אשכולות של Managed Service for Apache Spark שמשתמשים ב-Kerberos, כי קטלוג זמן הריצה של Lakehouse לא תומך באסימון העברה או בממשקי API של מפתח ראשי.
- מסדי נתונים וטבלאות יכולים להשתמש ב-Cloud Storage
location_uriששונה מקטלוג Hive שלהם, כל עוד קטגוריה של Cloud Storage נמצאת באותו אזור כמו קטלוג Hive. - קטלוג Hive לא יכול להכיל מרחבי שמות וטבלאות של Iceberg. כדי ליצור ולהשתמש בטבלאות ובמרחבי שמות של Iceberg, צריך להשתמש בקטלוג של Lakehouse runtime.
מגבלות על טבלאות
- אין תמיכה בשינוי שם של טבלה.
- אין תמיכה בשינוי השם של מחיצה.
- מחיקה של טבלאות או מסדי נתונים לא מסירה קבצים משויכים מ-Cloud Storage.
- אין תמיכה בחיפוש לא תלוי-רישיות.
- אין תמיכה באשכולות ובחלוקה לקטגוריות.
גודל אצווה של מחיצה
קטלוג זמן הריצה של Lakehouse תומך באחסון ובאחזור של מידע על חלוקה למחיצות לשימוש בגיזום מחיצות. הוא מותאם לקריאות על פני כתיבות, מה שמוביל לביצועי שאילתות מהירים יותר באמצעות גיזום מחיצות.
כדי לשפר את ביצועי ההטמעה של מחיצות, גודל המחיצה של אצווה מוגבל ל-900.
מגדירים את התצורה הבאה למאפייני Hive ו-Spark שקובעים את גודל האצווה של פעולות החלוקה:
SET hive.msck.repair.batch.size = 900;SET spark.sql.addPartitionInBatch.size = 900;
מגבלות של BigQuery
- כברירת מחדל, BigQuery לא תומך בסוגי הנתונים
ARRAY<ARRAY<>>אוARRAY<MAP<>>. צריך להוסיף תמיכה ב-MAPלרשימת ההיתרים. אם אתם משתמשים ב-MAPבאופן נרחב בעומסי העבודה שלכם, אתם יכולים לפנות לכתובת biglake-help@google.com. - סוגי מפתחות
MAPתומכים רק בסוגי נתונים פרימיטיביים. אי אפשר להשתמש ב-ARRAY,STRUCTאו ב-MAPכסוגי מפתחות. - במהלך התצוגה המקדימה, BigQuery יכול לשלוח שאילתות רק לנתונים מ-Cloud Storage. יש לשים לב למגבלות הבאות:
- מזהי ה-URI של מיקומי הטבלאות לא יכולים לכלול תו כללי (
*). - כתובות ה-URI של מיקומי הטבלאות חייבות להיות ספריות.
- מזהי ה-URI של מיקומי הטבלאות לא יכולים לכלול תו כללי (
מגבלות על רפליקציה בין אזורים ותוכנית התאוששות מאסון (DR)
קטלוג זמן הריצה של Lakehouse מציע שכפול בין אזורים ותוכנית התאוששות מאסון (DR) כדי לשפר את הזמינות והחוסן (resilience) של הקטלוג.
כשמשתמשים בקטלוג של Lakehouse runtime עם קטלוגים של Hive, חלות המגבלות הבאות:
קטלוגים של Hive לא מספקים יכולות מלאות של תוכנית התאוששות מאסון (DR), כמו יתירות כשל שמתחיל על ידי המשתמש.
כשיוצרים קטלוג Hive, צריך להגדיר את
primary_locationכך שיתאים לאזור של קטגוריית Cloud Storage. לאחר מכן, קטלוג זמן הריצה של Lakehouse מעתיק באופן אוטומטי את המטא-נתונים לאזור משני על סמך ההגדרה של המיקום בשני אזורים או במספר אזורים של הדלי. עותק המטא-נתונים המשני הוא לקריאה בלבד, ואי אפשר להפוך אותו לעותק הראשי. יתירות הנתונים מתבססת על ההגדרות של הקטגוריה שלכם לגבי שני אזורים או מספר אזורים, והיא נפרדת משכפול המטא-נתונים של קטלוג זמן הריצה של Lakehouse.
שיקולים לשימוש בקטלוג של Lakehouse runtime כתחליף ל-Hive metastore
גרסת התצוגה המקדימה של קטלוג זמן הריצה של Lakehouse תומכת בחלק מממשק Hive Metastore. העיצוב הזה נותן עדיפות לתאימות ל-Spark ExternalCatalog, שלא נדרשת בו תאימות מלאה ל-Hive Metastore.
מיפוי משאבים
בטבלה הבאה ממופים משאבי Hive Metastore למשאבי קטלוג של Lakehouse runtime ולהרשאות הנדרשות של ניהול זהויות והרשאות גישה (IAM).
| משאב Hive Metastore | משאב קטלוג בזמן ריצה של Lakehouse | הרשאת IAM |
|---|---|---|
| קטלוג | קטלוג | biglake.catalogs.* |
| מסד נתונים | מסד נתונים | biglake.namespaces.* |
| טבלה | טבלה | biglake.tables.* |
פיקוח
Hive Metastore (HMS) מספק ניהול ברמות הטבלה, העמודה והמחיצה. קטלוג זמן הריצה של Lakehouse מספק הרשאות IAM ברמת הטבלה וברמת המחיצה. אין תמיכה בניהול הרשאות ברמת העמודה.
מגבלות אחסון
- כל המגבלות של טבלאות חיצוניות ב-BigQuery חלות.
מגבלות על מחיצות
- אין תמיכה במעקב אחרי נתונים סטטיסטיים ברמת העמודה ברמת המחיצה.
- מגבלות ה-API של
BatchCreateHivePartitionsמאפשרות עד 900 קריאות למחיצות.