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

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

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

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

יכולות עיקריות

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

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

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

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

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

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

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

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

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

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

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

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

מנועי חיפוש נתמכים

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

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

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

המגבלות הבאות חלות על טבלאות בקטלוג של Lakehouse runtime:

ניהול טבלאות

  • יש תמיכה בטבלאות Apache Iceberg בגרסה 2 (זמינות כללית) ובגרסה 3 (גרסת Preview). אין תמיכה בטבלאות Iceberg בגרסה 1. לפני שמשתמשים בטבלאות קיימות בגרסה 1 עם קטלוג זמן הריצה של Lakehouse, צריך לשדרג אותן לגרסה נתמכת. מידע נוסף זמין במאמר בנושא שדרוג טבלאות Iceberg מגרסה 1 לגרסה 2.
  • אי אפשר ליצור או לשנות טבלאות באמצעות נקודת הקצה של קטלוג Apache Iceberg REST באמצעות שפת הגדרת נתונים (DDL) או הצהרות של שפת טיפול בנתונים (DML) ב-BigQuery. אפשר לשנות את הטבלאות האלה באמצעות BigQuery API (עם כלי שורת הפקודה של BigQuery או ספריות לקוח), אבל פעולה כזו עלולה לגרום לשינויים שלא תואמים למנוע החיצוני.
  • טבלאות בקטלוג של זמן הריצה של Lakehouse לא תומכות בפעולות של שינוי שם או בהצהרת ALTER TABLE ... RENAME TO Spark SQL.
  • אין תמיכה באשכולות בטבלאות בקטלוג של Lakehouse runtime.
  • טבלאות בקטלוג של Lakehouse runtime לא תומכות בשמות עמודות גמישים.
  • קטלוג זמן הריצה של Lakehouse לא תומך בתצוגות של 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 תומך בנקודת הקצה של קטלוג Apache Iceberg REST, אבל מאגר המטא-נתונים של BigLake (הקלאסי) לא תומך בה.

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