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

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

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

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

איך 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 משמש כשירות אזורי של מאגר מטא-נתונים ברמה העליונה. במסגרת השירות הזה, יוצרים קטלוגים נפרדים כדי לנהל את היררכיית הנתונים. מנועי שאילתות של לקוחות מתחברים לקטלוגים האלה באמצעות סוגים ספציפיים של נקודות קצה של קטלוגים, כמו נקודת הקצה של קטלוג 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 מטמיע את Apache Iceberg REST Catalog API בקוד פתוח כדי לנהל מרחבי שמות וטבלאות. הוא כולל גם 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 Spark
‫Apache Hive שימוש עם Spark ועם קטלוג Hive
‫Apache Flink שימוש עם Apache Flink
Trino שימוש עם Trino

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

כשמגדירים מנועי לקוח להתחבר למאגר המטא-נתונים של קטלוג זמן הריצה של Lakehouse, בוחרים נקודת קצה ספציפית של catalog, כמו נקודת הקצה של Apache Iceberg REST catalog או נקודת הקצה של 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 כשמבצעים עליהן שאילתות דרך BigQuery. יכול להיות שלנקודות קצה (endpoints) ספציפיות בקטלוג (כמו Apache Iceberg REST או Apache Hive) יש מגבלות נוספות.

ניהול טבלאות

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

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

  • קטלוג זמן הריצה של Lakehouse לא תומך בתצוגות של Apache Iceberg.

שאילתות

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

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

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

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

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

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

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

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

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