5 התכונות המרכזיות של Apache Iceberg עבור אגמי נתונים מודרניים

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

נתקלתי באתגרים דומים בזמן שיצרתי מערכות מופצות בקנה מידה גדול בשנות ה-2010 עבור חברה טכנולוגית גדולה וללקוח בתחום הבריאות. כמה תעשיות זקוקות ליכולות אלו כדי לעמוד בתקנות בנקאות, פיננסים ובריאות. חברות כבדות מונעות נתונים כמו Netflix נתפסו גם באתגרים דומים. הם המציאו פורמט טבלאי שנקרא "Iceberg," אשר נמצא מעל קבצי הנתונים הקיימים ומספק תכונות מפתח על ידי ניצול הארכיטקטורה שלו. זה הפך במהרה לפרויקט המוביל של ASF כשהוא זכה לעניין מהיר בקהילת הנתונים. אחקור את 5 התכונות המפתח של Apache Iceberg במאמר זה עם דוגמאות ודיאגרמות.

1. מסע בזמן

איור 1: מסע בזמן בפורמט הטבלה של Apache Iceberg (תמונה שנוצרה על ידי המחבר)

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

SQL

 

2. אבולוציית סכימה

אבולוציית סכימה של Apache Iceberg מאפשרת שינויים בסכימה שלך ללא כל מאמץ גדול או העברות יקרות. כשצרכי העסק שלך מתפתחים, אתה יכול:

  • להוסיף ולהסיר עמודות בלי כל הפסקת שירות או כתיבת טבלה מחדש. 
  • לעדכן את העמודה (הרחבה).
  • לשנות את סדר העמודות.
  • לשנות את שם העמודה הקיימת.

השינויים הללו נמצאים בשלב המטא-נתונים מבלי לצורך לכתוב מחדש את הנתונים הבסיסיים. 

SQL

 

3. אבולוציית מחיצה

באמצעות פורמט טבלת Apache Iceberg, אתה יכול לשנות את אסטרטגיית המחיצה של הטבלה ללא צורך לכתוב מחדש את הטבלה הבסיסית או להעביר את הנתונים לטבלה חדשה. זה נעשה אפשרי מאחר ושאילתות לא מתייחסות ישירות לערכי המחיצה כמו ב־Apache Hadoop. Iceberg שומרת מידע על מגרסאות המחיצה לכל פריט בנפרד.  זה עושה את התהליך פשוט לקבלת החלוקות בזמן ששואלים את הנתונים. לדוגמה, לשאילתת טבלה על פי טווח תאריכים, בזמן שהטבלה השתמשה בחודש כעמודת מחיצה (לפני) כחלוקה אחת ויום כעמודת מחיצה חדשה (אחרי) כחלוקה אחרת. זה נקרא תכנון פיצולים. ראה את הדוגמה למטה.

SQL

 

4. עסקאות ACID

Iceberg מספקת תמיכה חזקה לעסקאות במונחים של אטומיות, עקביות, בידוד ועמידות (ACID). היא מאפשרת פעולות כתיבה רבות במקביל, מה שיאפשר תפוקה גבוהה בעבודות כבדות על נתונים מבלי לפגוע בעקביות הנתונים.

SQL

 

כל הפעולות ב-Iceberg הן עסקאות, כלומר הנתונים נשארים עקביים למרות תקלות או שינויים בנתונים במקביל.

SQL

 

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

SQL

 

הנה סיכום המראה כיצד Iceberg מנהלת עדכונים ומחיקות ברמת השורה.

איור 2: תהליך מחיקת רשומות ב-Apache Iceberg (תמונה שנוצרה על ידי המחבר)

5. פעולות מתקדמות על טבלאות

Iceberg תומכת בפעולות מתקדמות על טבלאות כגון:

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

Iceberg מיועדת לעבוד עם כל שירותי האחסון הגדולים בענן, כגון AWS S3, GCS ואחסון ב-Azure Blob. כמו כן, Iceberg משתלבת בקלות עם מנועי עיבוד נתונים כגון Spark, Presto, Trino ו-Hive.

מחשבות סופיות

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

Source:
https://dzone.com/articles/key-features-of-apache-iceberg-for-data-lakes