ייבוא טבלאות Delta Lake ל-Lakehouse באמצעות Dataflow

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

בטבלאות חדשות, Dataflow יוצר את הסכימה באופן אוטומטי. בטבלאות קיימות, הסכימה לא משתנה, ולכן הסכימה של טבלת היעד צריכה להיות ממופה בצורה נכונה לטבלת המקור Delta Lake כדי שהעבודה תצליח.

אפשר להשתמש בפרטי החיבור הבאים כדי לייבא נתונים מטבלת Delta Lake שמאוחסנת ב-Cloud Storage.

לפני שמתחילים

כדי לייבא נתונים מטבלה ב-Delta Lake, צריך:

  1. מפעילים את ממשקי ה-API של Dataflow,‏ BigQuery ו-Lakehouse.

    תפקידים שנדרשים להפעלת ממשקי API

    כדי להפעיל ממשקי API, נדרשת ההרשאה serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק 'שימוש בשירות'' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים

    הפעלת ממשקי ה-API

  2. כדי לקבל את ההרשאות שדרושות ליצירת המשאבים, צריך לבקש מהאדמין להקצות לכם את התפקידים הנדרשים בניהול הזהויות והרשאות הגישה (IAM) בפרויקט.

  3. טבלת Delta Lake קיימת שמאוחסנת בקטגוריה של Cloud Storage. הספרייה של הטבלה צריכה להיות שורש תקין של טבלת Delta Lake שמכיל את קובצי הנתונים בפורמט Parquet ואת ספריית יומן העסקאות _delta_log/.

  4. קטלוג, מרחב שמות וטבלה של Lakehouse Iceberg שאליהם רוצים לייבא את הנתונים.

תמיכה ומגבלות

יש מגבלות על ייבוא נתונים מטבלה ב-Delta Lake אל Lakehouse for Apache Iceberg באמצעות Dataflow:

  • כדי להשתמש בתכונה הזו, צריך להשתמש במשימת צינור (pipeline) של עיבוד באצווה.
  • בטבלאות יעד קיימות, הסכימה לא משתנה. סכימת טבלת היעד צריכה להיות ממופה בצורה נכונה לסכימת טבלת המקור של Delta Lake.
  • נתוני המקור צריכים להיות טבלה תקינה של Delta Lake שמאוחסנת ב-Cloud Storage. ספריית הבסיס של הטבלה חייבת להכיל את קובצי הנתונים של Parquet ואת _delta_log/ ספריית יומן העסקאות (שמכילה קובצי יומן בפורמט JSON או Parquet) כפי שנוצרו על ידי Delta Lake.
  • אין תמיכה ב-Amazon S3 כמקור לטבלאות Delta Lake.

ייבוא טבלה של Delta Lake

כדי לייבא טבלת Delta Lake אל Lakehouse for Apache Iceberg, מבצעים את השלבים הבאים:

  1. נכנסים לדף Lakehouse runtime catalog במסוף Google Cloud .

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

  2. בוחרים את הקטלוג, מרחב השמות והטבלה שאליהם רוצים לייבא נתונים.

  3. בדף Table details, לוחצים על Import table ואז בוחרים באפשרות From Delta Lake (Batch).

    הדף Job builder של Dataflow נפתח עם טיוטת התוכנית Delta Lake to Lakehouse.

  4. בקטע מקורות:

    1. כדי להרחיב את חלונית המקור ReadFromDeltaLake Delta Lake table, לוחצים על החץ להרחבה .

    2. בשדה Table path (נתיב הטבלה), מזינים את ה-URI של Cloud Storage של ספריית הבסיס של טבלת Delta Lake (הספרייה שמכילה את קובצי הנתונים ואת הספרייה _delta_log/). לדוגמה: gs://BUCKET_NAME/tables/TABLE_NAME.

    3. אופציונלי: בשדה Hadoop configuration properties (מאפייני ההגדרה של Hadoop), מגדירים את כל מאפייני ההגדרה הנוספים של Hadoop שנדרשים לקריאה מ-Cloud Storage. לדוגמה: fs.gs.impl=com.google.cloud.hadoop.fs.gcs.GoogleHadoopFileSystem.

    4. לוחצים על סיום.

  5. בקטע Sink:

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

    2. לוחצים על סיום.

  6. בקטע אפשרויות של העברת נתונים, לוחצים על הפעלת העבודה.

אם אתם צריכים להתאים אישית עוד יותר את צינור עיבוד הנתונים של Dataflow שמשמש לייבוא טבלאות של Delta Lake, אתם יכולים לעשות זאת באמצעות טופס ליצירת משימות או באמצעות עורך ה-YAML.

בדיקת הפלט של המשימה

אחרי שהעבודה מסתיימת, אפשר להריץ שאילתה ב-BigQuery כדי לוודא שהנתונים נרשמו בטבלת Iceberg.

  1. ברשימת משימות Dataflow, בודקים שהסטטוס של המשימה הוא Succeeded.

    מעבר לדף Jobs

  2. אם המשימה נכשלת או שיש בה שגיאות, כדאי לבדוק את יומני המשימות או יומני העובדים כדי לקבל פרטים.

  3. במסוף Google Cloud , עוברים לדף Studio ב-BigQuery.

    כניסה ל-BigQuery

  4. מזינים שאילתת SQL בעורך השאילתות כדי לבדוק את הטבלה. אפשר להשתמש במוסכמה PROJECT_ID.CATALOG.NAMESPACE.TABLE_NAME כדי לשלוח שאילתות:

    SELECT * FROM `PROJECT_ID`.`CATALOG`.`NAMESPACE`.`TABLE_NAME` LIMIT 10;
    
  5. לוחצים על הפעלה.

  6. בודקים את תוצאות השאילתה כדי לוודא שהנתונים עובדו בצורה נכונה.

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