מידע על קטלוג זמן הריצה של Lakehouse

‫Borderless Lakehouse היא פלטפורמה מנוהלת של אגם נתונים (data lakehouse) ב-Google Cloud. בבסיס של Lakehouse נמצא קטלוג זמן הריצה, שירות מטא-נתונים מנוהל לחלוטין, בלי שרת (serverless), שמשמש כמקור האמת היחיד לנתונים שלכם. ריכוז המטא-נתונים מאפשר למנועי עיבוד שונים – כולל Apache Spark,‏ Apache Flink,‏ Apache Hive ו-BigQuery – לשתף טבלאות בצורה חלקה בלי לשכפל קבצים.

כדי לחבר את מנועי השאילתות למאגר המטא-נתונים, צריך להגדיר לקוח באמצעות נקודת קצה (endpoint) כמו קטלוג REST של Apache Iceberg. הוא משמש כממשק ניהול בקטלוג של זמן הריצה של Lakehouse לטיפול במטא-נתונים של טבלאות, תוך הסתמכות על Cloud Storage לאחסון המטא-נתונים הבסיסיים וקבצי הנתונים.

יכולות מרכזיות

בתור רכיב מרכזי של Lakehouse, קטלוג זמן הריצה של Lakehouse מספק כמה יתרונות לניהול ולניתוח נתונים, כולל ארכיטקטורה בלי שרת (serverless), יכולת פעולה הדדית של מנועים עם ממשקי API פתוחים, חוויית שימוש מאוחדת וניתוח נתונים, סטרימינג ו-AI עם ביצועים גבוהים כשמשתמשים בו עם BigQuery. מידע נוסף על היתרונות האלה

איך Lakehouse משתלב עם Google Cloud

כדי להבין איך Lakehouse מנהל את הנתונים שלכם, כדאי לעיין במידע על האופן שבו ארכיטקטורת Lakehouse משתלבת עם שירותי Google Cloud . ‫Apache Iceberg לא מאחסן נתונים בטבלאות מונוליטיות. במקום זאת, הוא משתמש בארכיטקטורה שכבתית של קובצי מטא-נתונים כדי לארגן את קובצי הנתונים במבנה טבלה מגובש עם תמיכה בעסקאות ACID.

בתרשים הבא מוצג איך מנועי חישוב כמו Managed Service for Apache Spark משתמשים בקטלוג של זמן הריצה של Lakehouse כדי לנהל מטא-נתונים של טבלאות, לקרוא ולכתוב קבצי נתונים בפורמט Parquet ישירות ב-Cloud Storage.

רכיבים של ארכיטקטורת Lakehouse, כולל Managed Service for Apache Spark,‏ Cloud Storage וקטלוג REST של Lakehouse.
דיאגרמת ארכיטקטורה של Lakehouse.

כשמשתמשים ב-Lakehouse, הארכיטקטורה הטכנית מורכבת משלוש שכבות נפרדות:

  1. שכבת הקטלוג:

    • מושג הליבה של Iceberg: הקטלוג שומר את המצב הנוכחי של הטבלה על ידי שמירת מצביע לקובץ המטא-נתונים האחרון. השכבה הזו מאפשרת תאימות ל-ACID ובידוד עסקאות כדי להבטיח שפעולות כתיבה בו-זמניות לא יפריעו זו לזו.
    • הטמעה של Lakehouse: הקטלוג של זמן הריצה של Lakehouse משמש כשירות metastore אזורי ברמה העליונה. במסגרת השירות הזה, אתם יוצרים קטלוגים נפרדים כדי לנהל את היררכיית הנתונים. מנועי שאילתות של לקוחות מתחברים לקטלוגים האלה באמצעות סוגים ספציפיים של קטלוגים של נקודות קצה, כמו נקודת הקצה של קטלוג REST של Apache Iceberg. מאגר המטא-נתונים מנהל את אישורי העסקאות, הקצאת הרשאות לגישה לאחסון והקצאת מצביעים בקטלוגים.
  2. שכבת מטא-נתונים:

    • מושג מרכזי ב-Iceberg: השכבה הזו עוקבת אחרי מבנה הטבלה, תמונות המצב ומיקומי הקבצים באמצעות היררכיה של שלושה סוגי קבצים:
      • קובצי מטא-נתונים: מאחסנים את הסכימה של הטבלה, את מפרט המחיצה ויומן של מצבי הצבעה של תמונות מצב.
      • רשימות מניפסט: מייצגות תמונה אחת של הטבלה על ידי קיבוץ של אוסף קובצי מניפסט.
      • קבצי מניפסט: מעקב אחרי נתונים ברמת הקובץ הבודד, אחסון של נתיבי קבצים, פרטי מחיצות וסטטיסטיקות ברמת העמודה, למשל ספירת שורות וערכי מינימום ומקסימום, שמשמשים לאופטימיזציה של שאילתות ולגיזום מחיצות.
    • הטמעה של Lakehouse: בתוך מאגר נתונים, מארגנים את הנתונים במרחבי שמות לוגיים (בדומה למערכי נתונים) ובטבלאות. לכל טבלה, קטלוג זמן הריצה של Lakehouse יוצר ומנהל את היררכיית המטא-נתונים הבסיסית של Iceberg, החל מקובץ metadata.json בסיס שמפנה לרשימות המניפסטים ולקובצי המניפסטים. הקטלוג של זמן הריצה של Lakehouse שומר את הקבצים האלה ישירות במיקום האחסון המיועד במחסן הנתונים.
  3. שכבת נתונים:

    • מושג הליבה של Iceberg: הרכיב הזה הוא האחסון הבסיסי שבו נמצאים רשומות הנתונים הגולמיות בפועל, בדרך כלל בפורמטים אופטימליים של קבצים פתוחים מבוססי-עמודות או מבוססי-שורות, כמו Parquet, ‏ ORC או Avro.
    • הטמעה של Lakehouse: כשמגדירים מיקומי מחסני נתונים ב-Cloud Storage ‏ (gs://), קובצי הנתונים הפיזיים שאליהם יש הפניה בטבלאות מאוחסנים בצורה מאובטחת בקטגוריות. קטלוג זמן הריצה של Lakehouse מנהל את הגישה באמצעות העברת הרשאות גישה לאחסון (credential vending), ומנפיק אסימוני גישה לזמן קצר ישירות למנועי הלקוח. כך מנועים יכולים לקרוא ולכתוב קובצי נתונים בצורה מאובטחת בלי לדרוש הרשאות IAM רחבות וישירות בקטגוריות הבסיסיות.

איך Lakehouse מטמיע את Apache Iceberg REST Catalog API

הקטלוג של Lakehouse runtime מטמיע את Apache Iceberg REST Catalog API בקוד פתוח כדי לנהל מרחבי שמות וטבלאות. בנוסף, הוא מספק extensions API במיוחד לניהול הקטלוג.

מנועי שאילתות של לקוחות יוצרים אינטראקציה עם מאגר המטא-נתונים באמצעות ממשקי API סטנדרטיים של קטלוג REST. פרטים על משאבים ונקודות קצה ב-Google Cloud מופיעים במאמרי העזרה של Lakehouse REST API.

אפשר ליצור, להגדיר ולנהל את המשאבים האלה באמצעות מסוףGoogle Cloud , ה-CLI של gcloud,‏ API בארכיטקטורת REST או Terraform. מידע נוסף זמין בדפים הבאים:

תאימות של מנוע השאילתות והגדרות

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

מנועים נתמכים

קטלוג זמן הריצה של Lakehouse תואם למספר מנועי שאילתות, כולל (בין היתר) Apache Spark, ‏ Apache Flink, ‏ Apache Hive ו-Trino. בטבלה הבאה מופיעים קישורים למסמכי תיעוד של כל מנוע:

מנוע מסמכי תיעוד
אפאצ'י ספארק שימוש עם Apache Spark
‫Apache Hive שימוש עם Spark ועם קטלוג Hive
אפאצ'י פלינק שימוש עם Apache Flink
Trino לשימוש עם טרינו

סוגי קטלוגים ותצורת נקודות קצה

בעת הגדרת מנועי לקוח להתחברות למטא-סטור של קטלוג זמן הריצה של Lakehouse, עליך לבחור נקודת קצה ספציפית של קטלוג, כגון נקודת הקצה של קטלוג Apache Iceberg REST או נקודת הקצה של Apache Hive. האפשרות הכי טובה תלויה בתרחיש לדוגמה, כמו שמוצג בטבלה הבאה:

מקרה שימוש המלצה
משתמשי קטלוג זמן ריצה חדשים של Lakehouse שרוצים שמנוע הקוד הפתוח שלהם יגיש לנתונים ב-Cloud Storage וזקוקים ליכולת פעולה הדדית עם מנועים אחרים, כולל BigQuery ו-AlloyDB ל-PostgreSQL. משתמשים בנקודת הקצה של קטלוג REST של Apache Iceberg.
משתמשים שמריצים עומסי עבודה של Apache Hive או Spark שמסתמכים על הממשק של Hive Metastore ורוצים שירות metastore מנוהל לחלוטין. משתמשים בנקודת הקצה של קטלוג Apache Hive.
משתמשים קיימים בקטלוג של Lakehouse runtime שיש להם טבלאות נוכחיות שנוצרו באמצעות קטלוג Apache Iceberg בהתאמה אישית לנקודת הקצה של BigQuery. ממשיכים להשתמש בקטלוג Apache Iceberg מותאם אישית לנקודת הקצה של BigQuery, אבל משתמשים בקטלוג Apache Iceberg REST לתהליכי עבודה חדשים.

מגבלות על קטלוג זמן הריצה של Lakehouse

ההגבלות הכלליות הבאות חלות על טבלאות בקטלוג של Lakehouse runtime כשמבצעים עליהן שאילתות דרך BigQuery. יכול להיות שלנקודות קצה (endpoints) של קטלוגים ספציפיים (כמו Apache Iceberg REST או Apache Hive) יהיו הגבלות נוספות שספציפיות לנקודות הקצה האלה.

ניהול טבלאות

  • יש תמיכה בטבלאות Apache Iceberg V2 (GA) ובטבלאות V3 (Preview). אין תמיכה בטבלאות Iceberg V1. לפני שמשתמשים בטבלאות קיימות בגרסה 1 עם קטלוג של סביבת ההרצה Lakehouse, צריך לשדרג אותן לגרסה נתמכת. מידע נוסף זמין במאמר בנושא שדרוג טבלאות Iceberg V1 ל-V2.
  • טבלאות בקטלוג של זמן הריצה של Lakehouse לא תומכות בפעולות של שינוי שם או בהצהרת ALTER TABLE ... RENAME TO Spark SQL.
  • טבלאות בקטלוג של Lakehouse runtime לא תומכות באשכולות.
  • טבלאות בקטלוג של Lakehouse runtime לא תומכות בשמות עמודות גמישים.
  • קטלוג זמן הריצה של Lakehouse לא תומך בתצוגות של מסדי נתונים או של metastore.

    שמות עמודות גמישים.

  • הקטלוג של Lakehouse runtime לא תומך בתצוגות של Apache Iceberg.

שאילתות

  • יכול להיות שביצועי השאילתות בטבלאות בקטלוג של Lakehouse runtime ממנו מופעל מנוע BigQuery יהיו איטיים בהשוואה לשאילתות של נתונים בטבלאות BigQuery רגילות. באופן כללי, מהירות השאילתה צריכה להיות שווה למהירות קריאת הנתונים מ-Cloud Storage.
  • הרצת סימולציה של שאילתה ב-BigQuery שמשתמשת בטבלה בקטלוג של זמן הריצה של Lakehouse עשויה לדווח על גבול תחתון של 0 בייטים של נתונים, גם אם השורות מוחזרות. התוצאה הזו מתקבלת כי אי אפשר לקבוע את כמות הנתונים שעוברים עיבוד מהטבלה עד להרצת השאילתה המלאה. הפעלת השאילתה כרוכה בעלות על עיבוד הנתונים האלה.
  • אי אפשר להפנות לטבלה בקטלוג של זמן הריצה של Lakehouse בשאילתת טבלת תווים כלליים לחיפוש.

API ומטא-נתונים

  • אי אפשר להשתמש בשיטה tabledata.list כדי לאחזר נתונים מטבלאות בקטלוג של Lakehouse runtime. במקום זאת, אפשר לשמור את תוצאות השאילתה בטבלה ב-BigQuery, ואז להשתמש בשיטה tabledata.list בטבלה הזו.
  • אין תמיכה בהצגה של נתונים סטטיסטיים לגבי אחסון טבלאות בטבלאות בקטלוג של Lakehouse runtime.

מכסות ומגבלות

  • בטבלאות בקטלוג של זמן הריצה של Lakehouse ב-BigQuery חלות אותן מכסות ומגבלות כמו בטבלאות רגילות.

הבדלים במאגר המטא-נתונים של BigLake (קלאסי)

ההבדלים העיקריים בין קטלוג זמן הריצה של Lakehouse לבין מאגר המטא-נתונים של BigLake (קלאסי) כוללים את ההבדלים הבאים:

  • קטלוג זמן הריצה של Lakehouse תומך בשילוב ישיר עם מנועי קוד פתוח כמו Spark, מה שעוזר לצמצם את הכפילות כשמאחסנים מטא-נתונים ומריצים משימות. אפשר לגשת ישירות לטבלאות בקטלוג של Lakehouse runtime ממנועי קוד פתוח שונים ומ-BigQuery.
  • הקטלוג של Lakehouse runtime תומך בנקודת הקצה של קטלוג REST של Apache Iceberg, אבל מאגר המטא-נתונים של BigLake (קלאסי) לא תומך בה.

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