קטלוג ייעודי לזמן ריצה של Lakehouse מאפשר לכם לרכז את המטא-נתונים של הטבלאות במאגר מטא-נתונים (metastore) מנוהל לחלוטין ובלי שרת (serverless), שמשמש כמקור אמת יחיד (SSOT) לנתונים שלכם ב-Lakehouse ללא גבולות. בעזרת מטא-נתונים מרוכזים, מנועי עיבוד – כולל Apache Spark, Apache Flink, Apache Hive ו-BigQuery – יכולים לשתף טבלאות ישירות בלי לשכפל קבצים.
כשמגדירים נקודת קצה של לקוח, כמו קטלוג REST של Apache Iceberg, היא פועלת כממשק ניהול שמחבר בין מנועי השאילתות לקטלוג הייעודי לזמן ריצה של Lakehouse. נקודת הקצה מטפלת במטא-נתונים של הטבלאות, וב-Cloud Storage מאוחסנים קובצי הנתונים והמטא-נתונים הבסיסיים.
הקטלוג הייעודי לזמן ריצה של Lakehouse הוא רכיב ליבה של Lakehouse, והוא מספק יכולת פעולה הדדית של ממשקי API פתוחים ותומך בעומסי עבודה של ניתוח נתונים, סטרימינג ו-AI בשילוב עם BigQuery. למידע נוסף על היתרונות האלה, קראו את המאמר מה זה Borderless Lakehouse?
איך Lakehouse משתלב עם Google Cloud
כדי להבין איך Lakehouse מנהל את הנתונים שלכם, כדאי לעיין במידע על השילוב של ארכיטקטורת Lakehouse עם Google Cloud שירותים. Apache Iceberg לא מאחסן נתונים בטבלאות מונוליטיות. במקום זאת, הוא משתמש בארכיטקטורה שכבתית של קובצי מטא-נתונים כדי לארגן את קובצי הנתונים במבנה טבלה מגובש עם תמיכה בעסקאות ACID.
בתרשים הבא אפשר לראות איך מנועי מחשוב כמו Managed Service for Apache Spark משתמשים בקטלוג הייעודי לזמן ריצה של Lakehouse כדי לנהל מטא-נתונים של טבלאות, במטרה לקרוא ולכתוב קובצי נתונים בפורמט Parquet ישירות ב-Cloud Storage.
כשמשתמשים ב-Lakehouse, הארכיטקטורה הטכנית מורכבת משלוש שכבות נפרדות:
שכבת הקטלוג:
- מושג הליבה של Iceberg: הקטלוג שומר את המצב הנוכחי של הטבלה על ידי שמירת מצביע לקובץ המטא-נתונים האחרון. השכבה הזו מאפשרת תאימות ל-ACID ובידוד של טרנזקציות, כדי לוודא שפעולות כתיבה בו-זמניות לא יפריעו זו לזו.
- הטמעה של Lakehouse: הקטלוג הייעודי לזמן ריצה של Lakehouse פועל כשירות המטא-נתונים האזורי ברמה העליונה. בשירות הזה אתם יוצרים קטלוגים נפרדים כדי לנהל את היררכיית הנתונים. מנועי שאילתות של לקוחות מתחברים לקטלוגים האלה באמצעות סוגים ספציפיים של קטלוגים של נקודות קצה, כמו נקודת הקצה של קטלוג REST של Apache Iceberg. מאגר המטא-נתונים מנהל את אישורי העסקאות, הקצאת הרשאות לגישה לאחסון והקצאת מצביעים בקטלוגים.
שכבת מטא-נתונים:
- מושג מרכזי ב-Iceberg: השכבה הזו עוקבת אחרי מבנה הטבלה, תמונות המצב ומיקומי הקבצים באמצעות היררכיה של שלושה סוגי קבצים:
- קובצי מטא-נתונים: מאחסנים את הסכימה של הטבלה, את מפרט המחיצה ואת יומן המצביעים של תמונת המצב.
- רשימות מניפסטים: מייצגות תמונה אחת של הטבלה על ידי קיבוץ של אוסף קובצי מניפסט.
- קובצי מניפסט: מעקב אחרי נתונים ברמת הקובץ הבודד, אחסון נתיבי קבצים, מידע על מחיצות ונתונים סטטיסטיים ברמת העמודה, למשל ספירת שורות וערכי מינימום ומקסימום, שמשמשים לאופטימיזציה של שאילתות ולגיזום מחיצות.
- הטמעה של Lakehouse: בתוך מאגר קטלוג, אתם מארגנים את הנתונים במרחבי שמות לוגיים (בדומה למערכי נתונים) ובטבלאות. לכל טבלה, הקטלוג הייעודי לזמן ריצה של Lakehouse יוצר ומנהל את היררכיית המטא-נתונים הבסיסית של Iceberg, החל מקובץ הבסיס
metadata.jsonשמפנה לרשימות המניפסטים ולקובצי המניפסטים. הקטלוג של זמן הריצה של Lakehouse שומר את הקבצים האלה ישירות במיקום האחסון המיועד במחסן הנתונים.
- מושג מרכזי ב-Iceberg: השכבה הזו עוקבת אחרי מבנה הטבלה, תמונות המצב ומיקומי הקבצים באמצעות היררכיה של שלושה סוגי קבצים:
שכבת נתונים:
- מושג ליבה של 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. מידע נוסף זמין בדפים הבאים:
- ניהול משאבים בקטלוג REST של Iceberg
- ניהול טבלאות Apache Iceberg
- שימוש ב-Terraform עם Lakehouse
- שימוש בנקודות קצה אזוריות עם קטלוג ייעודי לזמן ריצה של Lakehouse
תאימות של מנוע השאילתות והגדרות שלו
כדי לנתח ולנהל נתונים בקטלוג של זמן הריצה של Lakehouse, אפשר לחבר מנועי שאילתות שונים של קוד פתוח ושל ארגונים. בהתאם לארכיטקטורה הקיימת ולדרישות של עומס העבודה, אתם יכולים לבחור מבין כמה מנועים נתמכים ולהגדיר את נקודת הקצה המתאימה של הקטלוג.
מנועי חיפוש נתמכים
הקטלוג הייעודי לזמן ריצה של Lakehouse תואם לכמה מנועי שאילתות, כולל (בין היתר) Apache Spark, Apache Flink, Apache Hive ו-Trino. בטבלה הבאה מופיעים קישורים למסמכי התיעוד של כל מנוע:
| מנוע | מסמכי תיעוד |
|---|---|
| Apache Spark | שימוש עם Apache Spark |
| Apache Hive | שימוש עם Spark וקטלוג Hive |
| Apache Flink | שימוש עם Apache Flink |
| Trino | שימוש עם Trino |
סוגי קטלוגים והגדרת נקודות קצה (endpoints)
כשמגדירים מנועי לקוח להתחבר למאגר המטא-נתונים של הקטלוג הייעודי לזמן ריצה של Lakehouse, בוחרים נקודת קצה ספציפית של קטלוג, כמו נקודת הקצה של Apache Iceberg REST catalog או נקודת הקצה של 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 לתהליכי עבודה חדשים. |
מגבלות על קטלוג ייעודי לזמן ריצה של Lakehouse
אלה המגבלות הכלליות שחלות על טבלאות בקטלוג הייעודי לזמן ריצה של Lakehouse כששולחים אליהן שאילתות דרך BigQuery. יכול להיות שלנקודות קצה (endpoints) ספציפיות בקטלוג (כמו Apache Iceberg REST או Apache Hive) יש מגבלות נוספות.
ניהול טבלאות
- יש תמיכה בטבלאות Apache Iceberg V2 (GA) ובטבלאות V3 (Preview). אין תמיכה בטבלאות Iceberg V1. לפני שמשתמשים בטבלאות קיימות בגרסה 1 עם קטלוג ייעודי לזמן ריצה של Lakehouse, צריך לשדרג אותן לגרסה נתמכת. מידע נוסף זמין במאמר שדרוג טבלאות Iceberg מגרסה 1 לגרסה 2.
- בטבלאות בקטלוג הייעודי לזמן ריצה של Lakehouse אי אפשר לבצע פעולות של שינוי שם או את הצהרת ה-Spark SQL
ALTER TABLE ... RENAME TO. - טבלאות בקטלוג הייעודי לזמן ריצה של Lakehouse לא תומכות באשכולות.
- בטבלאות בקטלוג הייעודי לזמן ריצה של Lakehouse אי אפשר להריץ משימות חילוץ. המגבלה הזו חלה גם על הצהרות
EXPORT DATAוגם על פקודת ה-CLIbq extract. - קטלוג זמן הריצה של Lakehouse לא תומך בתצוגות של מסדי נתונים או של מאגרי מטא-נתונים.
- קטלוג זמן הריצה של Lakehouse לא תומך בתצוגות של Apache Iceberg.
שאילתות
- יכול להיות שביצועי השאילתות בטבלאות בקטלוג ייעודי לזמן ריצה של Lakehouse ממנו מריצים שאילתות ממנוע BigQuery יהיו איטיים בהשוואה להרצת שאילתות על נתונים בטבלאות BigQuery רגילות. באופן כללי, מהירות השאילתה צריכה להיות שווה למהירות קריאת הנתונים מ-Cloud Storage.
- בהרצה יבשה של BigQuery לשאילתה שמשתמשת בטבלה בקטלוג הייעודי לזמן ריצה של Lakehouse, יכול להיות שידווח גבול תחתון של 0 בייטים של נתונים, גם אם מוחזרות שורות. התוצאה הזו מתקבלת כי אי אפשר לקבוע את כמות הנתונים שעוברים עיבוד מהטבלה עד להרצת השאילתה המלאה. הפעלת השאילתה כרוכה בעלות על עיבוד הנתונים האלה.
- אי אפשר להפנות לטבלה בקטלוג הייעודי לזמן ריצה של Lakehouse בשאילתה של טבלת תווים כלליים לחיפוש.
API ומטא-נתונים
- אי אפשר להשתמש ב-method
tabledata.listכדי לאחזר נתונים מטבלאות בקטלוג הייעודי לזמן ריצה של Lakehouse. במקום זאת, אתם יכולים לשמור את תוצאות השאילתה בטבלה ב-BigQuery, ואז להשתמש ב-methodtabledata.listבטבלה הזו. - אי אפשר להציג נתונים סטטיסטיים של נפח האחסון של טבלאות בקטלוג הייעודי לזמן ריצה של Lakehouse.
מכסות ומגבלות
- הטבלאות בקטלוג הייעודי לזמן ריצה של Lakehouse ב-BigQuery כפופות לאותן מכסות ומגבלות כמו טבלאות רגילות.
הבדלים במאגר המטא-נתונים של BigLake (קלאסי)
ההבדלים העיקריים בין קטלוג זמן הריצה של Lakehouse לבין מאגר המטא-נתונים של BigLake (קלאסי) כוללים את ההבדלים הבאים:
- הקטלוג הייעודי לזמן ריצה של Lakehouse תומך בשילוב ישיר עם מנועי קוד פתוח כמו Spark, וכך עוזר לצמצם את היתירות כשמאחסנים מטא-נתונים ומריצים משימות. אפשר לגשת ישירות לטבלאות בקטלוג ייעודי לזמן ריצה של Lakehouse ממנועי קוד פתוח שונים ומ-BigQuery.
- הקטלוג הייעודי לזמן ריצה של Lakehouse תומך בנקודת הקצה של קטלוג REST של Apache Iceberg, אבל המטא-נתונים של BigLake (הגרסה הקלאסית) לא תומכים בה.