קלט/פלט מנוהל של Dataflow ל-Apache Iceberg

Managed I/O תומך ביכולות הבאות של Apache Iceberg:

קטלוגים
  • Hadoop
  • כוורת
  • קטלוגים מבוססי REST
  • BigQuery metastore (נדרש Apache Beam SDK 2.62.0 ואילך אם לא משתמשים ב-Runner v2)
יכולות קריאה קריאה באצווה
יכולות כתיבה
  • כתיבת נתונים באצווה
  • כתיבה לסטרימינג
  • יעדים דינמיים
  • יצירת טבלאות דינמיות

בטבלאות BigQuery ל-Apache Iceberg, משתמשים במחבר BigQueryIO עם BigQuery Storage API. הטבלה צריכה כבר להיות קיימת. יצירת טבלה דינמית לא נתמכת.

דרישות

ערכות ה-SDK הבאות תומכות בקלט/פלט מנוהל ל-Apache Iceberg:

  • ‫Apache Beam SDK ל-Java בגרסה 2.58.0 ואילך
  • ‫Apache Beam SDK for Python בגרסה 2.61.0 ואילך

הגדרות אישיות

שירות מנוהל לקלט/פלט ל-Apache Iceberg תומך בפרמטרים הבאים של ההגדרה:

ICEBERG קריאה

הגדרות אישיות סוג תיאור
table str מזהה של טבלת Iceberg.
catalog_name str השם של הקטלוג שמכיל את הטבלה.
catalog_properties map[str, str] מאפיינים שמשמשים להגדרת קטלוג Iceberg.
config_properties map[str, str] מאפיינים שמועברים להגדרות של Hadoop.
העברה list[str] קבוצת משנה של שמות עמודות שרוצים להחריג מקריאה. אם הערך הוא null או ריק, כל העמודות ייקראו.
מסנ str פרדיקט דמוי SQL לסינון נתונים בזמן הסריקה. דוגמה: "id > 5 AND status = 'ACTIVE'". משתמשים בתחביר של Apache Calcite: https://calcite.apache.org/docs/reference.html
keep list[str] קבוצת משנה של שמות עמודות לקריאה בלבד. אם הערך הוא null או ריק, כל העמודות ייקראו.

ICEBERG כתיבה

הגדרות אישיות סוג תיאור
table str מזהה טבלה שמוגדר במלואו. אפשר גם לספק תבנית לכתיבה למספר יעדים דינמיים, לדוגמה: ‎`dataset.my_{col1}_{col2.nested}_table`‎.
catalog_name str השם של הקטלוג שמכיל את הטבלה.
catalog_properties map[str, str] מאפיינים שמשמשים להגדרת קטלוג Iceberg.
config_properties map[str, str] מאפיינים שמועברים להגדרת Hadoop.
direct_write_byte_limit int32 בצינור עיבוד זרמי נתונים, המגבלה להעברת חבילות לנתיב הכתיבה הישיר.
העברה list[str] רשימה של שמות שדות שיוסרו מרשומת הקלט לפני הכתיבה. הערך הזה לא יכול להיות ביחד עם הערכים keep ו-only.
keep list[str] רשימה של שמות שדות שרוצים לשמור ברשומת הקלט. כל שאר השדות מושמטים לפני הכתיבה. הערך הזה לא יכול להיות משולב עם הערכים drop ו-only.
רק str השם של שדה רשומה יחיד שצריך לכתוב. הערך הזה לא יכול להיות זהה לערכים 'שמירה' ו 'הסרה'.
partition_fields list[str] שדות שמשמשים ליצירת מפרט מחיצה שמוחל כשיוצרים טבלאות. עבור השדה foo, הטרנספורמציות הזמינות של המחיצה הן:
  • foo
  • truncate(foo, N)
  • bucket(foo, N)
  • hour(foo)
  • day(foo)
  • month(foo)
  • year(foo)
  • void(foo)

מידע נוסף על טרנספורמציות של מחיצות זמין בכתובת https://iceberg.apache.org/spec/#partition-transforms.

table_properties map[str, str] מאפייני טבלה של Iceberg שיוגדרו בטבלה כשהיא תיצור. מידע נוסף על מאפייני טבלה זמין בכתובת https://iceberg.apache.org/docs/latest/configuration/#table-properties.
triggering_frequency_seconds int32 בצינור עיבוד זרמי נתונים, ההגדרה הזו קובעת את התדירות שבה נוצרות תמונות מצב.

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

מידע נוסף ודוגמאות קוד זמינים בנושאים הבאים: