הארכיטקטורה הטכנית של Lakehouse for Apache Iceberg תומכת בפעולה הדדית בין מנועים על ידי ריכוז הניהול של מטא-נתונים וטיפול בשאילתות באמצעות נתיבים ספציפיים.
ארכיטקטורה
פיתוח Lakehouse ב-Google Cloud כולל את הרכיבים הטכניים הבאים:
אחסון: Cloud Storage ואחסון ב-BigQuery משמשים כשכבת האחסון, ו-Apache Iceberg הוא פורמט הטבלה המומלץ בקוד פתוח לאחסון ב-Cloud Storage עם ביצועים גבוהים ויכולת פעולה הדדית.
קטלוג: הקטלוג של זמן הריצה של Lakehouse מספק מקור יחיד לניהול מטא-נתונים. הוא מרכז את גילוי המטא-נתונים במנועים שונים באמצעות אפשרויות תאימות שונות, כמו נקודת הקצה של קטלוג Apache Iceberg REST. כשרושמים טבלאות בקטלוג, המערכת רושמת באופן אוטומטי רשומות בקטלוג הידע של המטא-נתונים העסקיים.
מנוע שאילתות: מנועי BigQuery וקוד פתוח – כולל Apache Spark, Apache Flink ו-Trino – פועלים יחד בצורה חלקה על ידי התחברות לקטלוג זמן הריצה של Lakehouse. מנועי מחשוב כמו Managed Service for Apache Spark ממנפים את Apache Spark בקוד פתוח עם אופטימיזציות של ביצוע כדי להבטיח ניידות של עומסי עבודה ולמנוע נעילה של ספק.
ניהול: Knowledge Catalog מספק אבטחה, שושלת נתונים ומדיניות ניהול מרכזיות בכל ה-lakehouse.
כלים לניתוח ולכתיבת נתונים: מנועים וכלים משולבים מספקים כמה דרכים להטמעה ולניתוח של נתונים, ומבטיחים גישה עקבית לנתונים גם למדעני נתונים וגם לאנליסטים.
היררכיית המשאבים
ב-Lakehouse של Google Cloud, הנתונים מאורגנים באמצעות היררכיה שתואמת לתקנים של Apache Iceberg ולמושגים סטנדרטיים של מסדי נתונים. המבנה הזה מאפשר לקטלוג של זמן הריצה של Lakehouse למפות זהויות לוגיות לנתיבי אחסון פיזיים. כדי ליצור אינטראקציה עם היררכיית המשאבים הזו ולחבר את מנועי השאילתות לקטלוג, משתמשים בנקודות קצה ספציפיות, כמו שמתואר בהמשך.
- קטלוג זמן ריצה של Lakehouse: משאב שירות אזורי ברמה העליונה ב- Google Cloud שמארח את המטא-נתונים שלכם. כדי לחבר מנועי שאילתות לשירות הזה ולנהל קטלוגים בסיסיים, צריך להגדיר אפליקציות לקוח באמצעות נקודת קצה (endpoint) ספציפית של קטלוג, כמו נקודת הקצה של קטלוג REST של Apache Iceberg.
- קטלוג: מאגר לוגי בשירות של קטלוג זמן הריצה. במבנה השמות של פרויקט/קטלוג/מרחב שמות/טבלה (P.C.N.T), זה מייצג את מופע הקטלוג הספציפי שאתם שולחים לו שאילתה.
- Namespace: קיבוץ לוגי של טבלאות בקטלוג. למשתמשים שמכירים את BigQuery, מרחב שמות דומה מבחינה פונקציונלית למערך נתונים.
- טבלה: הישות הספציפית שמפנה לנתונים ב-Cloud Storage. המטא-נתונים של הטבלה מכילים את הסכימה, את פרטי החלוקה למחיצות ומצביע למצב הנוכחי של הטבלה באמצעות קובץ
metadata.jsonשל Apache Iceberg.
נקודות קצה נתמכות
קטלוג זמן הריצה של Lakehouse מספק כמה נקודות קצה לחיבור הנתונים ב-Cloud Storage וב-BigQuery.
נקודת הקצה של קטלוג REST של Apache Iceberg: מספקת ממשק REST סטנדרטי לתאימות רחבה עם מנועי קוד פתוח כמו Apache Spark, Apache Flink ו-Trino. זהו הממשק המומלץ לעומסי עבודה חדשים, והוא מציע יכולת פעולה הדדית מלאה של קריאה וכתיבה.
קטלוג מותאם אישית של Apache Iceberg לנקודת קצה של BigQuery: מאפשר למנועים לבצע אינטראופרביליות ישירות עם קטלוג BigQuery. הממשק הזה משמש בעיקר לטבלאות Apache Iceberg שמנוהלות על ידי BigQuery ולעומסי עבודה קיימים שמועברים לארכיטקטורת Lakehouse.
נקודת קצה של קטלוג Apache Hive (גרסת Preview): מספקת תאימות לעומסי עבודה של קוד פתוח שתלויים בממשק של Apache Hive metastore (HMS). כך אפשר להריץ עומסי עבודה של Apache Hive או Spark מול שירות metastore מנוהל ב- Google Cloud.
קטלוג של סביבת זמן ריצה של Lakehouse
בהיררכיית המשאבים, קטלוג זמן הריצה של Lakehouse משמש כשירות המטא-נתונים האזורי ברמה העליונה ב- Google Cloud. הוא משמש כמאגר הנתונים הבסיסי שמארח את המופעים של הקטלוגים השונים, ומאפשר לגלות מטא-נתונים באופן מרכזי במנועי שאילתות שונים.
הוא מטמיע את Apache Iceberg REST Catalog API בקוד פתוח כדי לנהל מרחבי שמות וטבלאות, ומספק תוספים במיוחד לניהול קטלוגים.
מידע נוסף על שירות מאגר המטא-נתונים, כולל יכולות מרכזיות, מנועים נתמכים, הגדרת נקודות קצה ומגבלות, זמין במאמר מידע על קטלוג זמן הריצה של Lakehouse.
קטלוג
קטלוג הוא מאגר מטא-נתונים לוגי שמגובה במיקומי מחסני נתונים של Cloud Storage. במבנה השמות Project.Catalog.Namespace.Table (P.C.N.T), הקטלוג מייצג את מופע המטא-חנות הייחודי שמקשר בין המטא-נתונים של הטבלה הפתוחה לבין מנועי השאילתות.
המאפיינים העיקריים של קטלוגים כוללים את הדברים הבאים:
- שיוך לאחסון: הקשר בין קטלוג לבין האחסון הבסיסי שלו תלוי בסוג הקטלוג שאתם מגדירים.
- שכפול אזורי: האזור של קטלוג תואם אוטומטית לאזור של דלי הבסיס.
- האצלת גישה: אדמינים יכולים להפעיל את האפשרות להקצאת פרטי כניסה בקטלוג כדי להאציל גישה. כך אפשר ליצור באופן אוטומטי פרטי כניסה לטווח קצר עם היקף מצומצם, במקום להעניק למשתמשים הרשאות גישה ישירות לדלי.
מרחב שמות
מרחב שמות הוא קיבוץ לוגי של טבלאות בקטלוג, והוא פועל באופן דומה למסד נתונים, לסכימה או למערך נתונים ב-BigQuery. היא מספקת מבנה לארגון ולניהול של בקרות גישה לטבלאות.
המאפיינים העיקריים של מרחבי שמות כוללים את הדברים הבאים:
- אזוריות: כשיוצרים מרחב שמות, הוא משתמש אוטומטית באותו אזור כמו הקטלוג הראשי שלו.
- גמישות במיקום: האפשרויות לציון מיקומים מותאמים אישית של מרחב שמות נקבעות לפי סוג מחסן הנתונים בקטלוג.
- מגבלות על קינון: אין תמיכה במרחבי שמות מקוננים (תת-מרחבי שמות).
- גבולות אבטחה: אתם יכולים להקצות תפקידי IAM ברמת מרחב השמות כדי לנהל את הגישה לכל הטבלאות שכלולות בו.
Tables
כשבונים עם Lakehouse של Google Cloud, אפשר לבחור מבין סוגי הטבלאות הבאים:
נתמך על ידי קטלוג זמן הריצה של Lakehouse
מומלץ
טבלאות Apache Iceberg: טבלאות Apache Iceberg שנוצרו ממנועי קוד פתוח ומאוחסנות ב-Cloud Storage. הם מציעים תאימות וניהול פתוחים באמצעות נקודת הקצה של REST בקטלוג של Lakehouse בזמן הריצה. כדי לוודא ששתי טבלאות לא יתפסו את אותו מיקום, נתיבי הטבלאות המותאמים אישית צריכים להיות מוטמעים בנתיב של מרחב השמות של ישויות האב, והמיקומים של הטבלאות שנוצרות מקבלים אוטומטית סיומת של מחרוזת אקראית כדי למנוע התנגשויות.
פורמטים נתמכים של טבלאות
יש תמיכה בטבלאות Apache Iceberg V2 (זמינות כללית) ובטבלאות V3 (גרסת Preview). אין תמיכה בטבלאות Iceberg V1. לפני שמשתמשים בטבלאות קיימות בגרסה 1 עם Lakehouse for Apache Iceberg, צריך לשדרג אותן לגרסה נתמכת. מידע נוסף זמין במאמר בנושא שדרוג טבלאות Iceberg V1 ל-V2.
נתמך על ידי BigQuery
- טבלאות Apache Iceberg: טבלאות Apache Iceberg שנוצרו ומנוהלות על ידי BigQuery. המטא-נתונים של הטבלאות האלה מאוחסנים בקטלוג של BigQuery, ואילו נתוני הטבלה והמטא-נתונים הפיזיים מאוחסנים ב-Cloud Storage.
- טבלאות מקוריות: טבלאות שמנוהלות באופן מלא על ידי BigQuery, שאפשר לקשר לקטלוג של זמן הריצה של Lakehouse כדי לאפשר יכולת פעולה הדדית עם מנועי קוד פתוח.
- טבלאות חיצוניות: טבלאות מחוץ לקטלוג של זמן הריצה של Lakehouse, שבהן הנתונים והמטא-נתונים מנוהלים באופן עצמאי. הם תומכים בגישה מוקצית באמצעות חיבורים לנתונים שמאוחסנים ב-Cloud Storage, ב-Amazon S3 או ב-Azure Blob Storage.
בסקירת הטבלה אפשר לראות השוואה מפורטת של האפשרויות האלה.
רצף עיבוד השאילתות
כששולחים שאילתה לטבלת Lakehouse ב-Google Cloud, הבקשה עוברת בנתיב ספציפי כדי לאכוף מדיניות ולאחזר מטא-נתונים לפני עיבוד הנתונים.
- שליחה: אתם שולחים שאילתת SQL למנוע תואם כמו Apache Spark, Trino או BigQuery.
- בקשה למטא-נתונים: המנוע מבקש מטא-נתונים של הטבלה מקטלוג זמן הריצה של Lakehouse כדי לזהות את הטבלה ואת המיקום של המטא-נתונים שלה.
- הרשאה: אם נקודת הקצה שבה אתם משתמשים תומכת בכך, הקטלוג מאמת את הבקשה מול ניהול הזהויות והרשאות הגישה (IAM) ומדיניות האבטחה הפרטנית.
- תגובת מטא-נתונים: הקטלוג מחזיר את המטא-נתונים. אם מופעלת הקצאת פרטי כניסה, המערכת מספקת גם אסימון לטווח קצר כדי לעזור בגישה מאובטחת לאחסון.
- אחזור נתונים: המנוע משתמש במטא-נתונים ובאסימון אופציונלי כדי לקרוא קובצי נתונים ישירות מ-Cloud Storage.
- ביצוע: המנוע מעבד את הנתונים ומחזיר את התוצאות.
שיטות מומלצות
כשמתכננים ומפעילים lakehouse ב-Google Cloud, כדאי לפעול לפי השיטות המומלצות הבאות:
- אימוץ ארכיטקטורת מדליון: מבנה מחסן הנתונים בשכבות לוגיות מתקדמות (ברונזה להטמעה של נתונים גולמיים, כסף לנתונים שעברו ניקוי והתאמה, וזהב לצבירות ברמת העסק שעברו אוצרות). כדי למקסם את ביצועי השאילתות ואת יכולת ההרצה שלהן במקביל, מומלץ להשתמש ב-BigQuery בשכבת הצריכה של נתוני הזהב.
- שימוש בתבניות של סשנים לעומסי עבודה אינטראקטיביים: כדי לבצע ניתוח נתונים לצורך גילוי תובנות ולכתוב מחברות, אפשר להשתמש בתבניות של סשנים כדי ליצור סטנדרטיזציה של הגדרות הסביבה בצוותי פיתוח שונים, וכך לצמצם את הצורך בהגדרות חוזרות.
- הקצאת מזהים מותאמים אישית לאצוות: כששולחים עומסי עבודה של אצוות Apache Spark ללא שרתים שאינם אינטראקטיביים, מקצים שמות מותאמים אישית לאצוות ולמשימות. השינוי הזה משפר את הניראות (observability), ומקל על הסינון והמעקב של ביצועי המשימות ב-Cloud Logging ובמסוף Google Cloud .
- הפעלת רישום אבחונים ביומן: בצינורות מורכבים של הנדסת נתונים, מומלץ להפעיל חבילות אבחון ולוודא שיומני מנהלי ההתקנים וההפעלה נשמרים כדי לפשט את פתרון הבעיות ואת התמיכה.
המאמרים הבאים
- למידע נוסף על שירות מאגר המטא-נתונים, אפשר לעיין במאמר מידע על קטלוג זמן הריצה של Lakehouse.
- שימוש בקטלוג של Lakehouse runtime עם Apache Spark, BigQuery ונקודת הקצה של קטלוג REST של Apache Iceberg.