איך Lakehouse עובד

הארכיטקטורה הטכנית של 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 למפות זהויות לוגיות לנתיבי אחסון פיזיים. כדי ליצור אינטראקציה עם היררכיית המשאבים הזו ולחבר את מנועי השאילתות לקטלוג, משתמשים בנקודות קצה ספציפיות, כמו שמתואר ברשימה הבאה.

  1. קטלוג זמן ריצה של Lakehouse: משאב שירות אזורי ברמה העליונה ב- Google Cloud שמארח את המטא-נתונים שלכם. כדי לחבר מנועי שאילתות לשירות הזה ולנהל קטלוגים בסיסיים, צריך להגדיר אפליקציות לקוח באמצעות נקודת קצה (endpoint) ספציפית של קטלוג, כמו נקודת הקצה של קטלוג REST של Apache Iceberg.
  2. קטלוג: מאגר לוגי בתוך שירות קטלוג זמן הריצה. במבנה השמות של פרויקט/קטלוג/מרחב שמות/טבלה (P.C.N.T), זה מייצג את מופע הקטלוג הספציפי שאתם שולחים לו שאילתה.
  3. Namespace: קיבוץ לוגי של טבלאות בקטלוג. למשתמשים שמכירים את BigQuery, מרחב שמות דומה מבחינת הפונקציונליות למערך נתונים.
  4. טבלה: הישות הספציפית שמפנה לנתונים ב-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 (תצוגה מקדימה). אין תמיכה בטבלאות 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, הבקשה עוברת בנתיב ספציפי כדי לאכוף מדיניות ולאחזר מטא-נתונים לפני עיבוד הנתונים.

  1. שליחה: אתם שולחים שאילתת SQL למנוע תואם כמו Apache Spark,‏ Trino או BigQuery.
  2. בקשה למטא-נתונים: המנוע מבקש מטא-נתונים של הטבלה מקטלוג זמן הריצה של Lakehouse כדי לזהות את הטבלה ואת המיקום של המטא-נתונים שלה.
  3. הרשאה: אם נקודת הקצה שבה אתם משתמשים תומכת בכך, הקטלוג מאמת את הבקשה מול ניהול הזהויות והרשאות הגישה (IAM) ומדיניות האבטחה הפרטנית.
  4. תגובת מטא-נתונים: הקטלוג מחזיר את המטא-נתונים. אם מופעלת הקצאת פרטי כניסה, היא מספקת גם אסימון לטווח קצר כדי לעזור בגישה מאובטחת לאחסון.
  5. אחזור נתונים: המנוע משתמש במטא-נתונים ובטוקן אופציונלי כדי לקרוא קובצי נתונים ישירות מ-Cloud Storage.
  6. ביצוע: המנוע מעבד את הנתונים ומחזיר את התוצאות.

שיטות מומלצות

כשמתכננים ומפעילים lakehouse ב-Google Cloud, כדאי לפעול לפי השיטות המומלצות הבאות:

  • אימוץ ארכיטקטורת מדליון: מבנה מחסן הנתונים בשכבות לוגיות מתקדמות (ברונזה להטמעה של נתונים גולמיים, כסף לנתונים שעברו ניקוי והתאמה, וזהב לצבירות ברמת העסק שעברו אוצרות). כדי למקסם את ביצועי השאילתות ואת יכולת ההרצה שלהן במקביל, מומלץ להשתמש ב-BigQuery בשכבת הצריכה של נתוני הזהב.
  • שימוש בתבניות של סשנים לעומסי עבודה אינטראקטיביים: כדי לבצע ניתוח נתונים לצורך גילוי תובנות ולכתוב מחברות, אפשר להשתמש בתבניות של סשנים כדי ליצור סטנדרטיזציה של הגדרות הסביבה בצוותי פיתוח שונים, וכך לצמצם את הצורך בהגדרות חוזרות.
  • הקצאת מזהים מותאמים אישית לאצווה: כששולחים עומסי עבודה באצווה של Apache Spark ללא שרתים שאינם אינטראקטיביים, צריך להקצות שמות מותאמים אישית לאצווה ולמשימה. כך משתפרת הניראות (observability), ועכשיו אפשר לסנן ולעקוב אחרי הרצות של משימות ב-Cloud Logging ובמסוף Google Cloud .
  • הפעלת רישום אבחונים ביומן: בצינורות מורכבים של הנדסת נתונים, מומלץ להפעיל חבילות אבחון ולוודא שיומני מנהלי ההתקנים וההפעלה נשמרים כדי לעזור בפתרון בעיות ובמתן תמיכה.

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