להתעורר באמצע הלילה בשל באג נתונים שוב, האם חלמת פעם על עולם נתונים אידיאלי בו שאילות מחזירות תוצאה בשניות, נתונים לא נאבדים והעלויות נמוכות כל כך שהמנהל שלך מחייך? נשמע כמו חלום? לא! זה מתממש.
זכור את הלילה שבו נשברת מכסחת נתונים, עם מנהל המוצר לוחץ בצורה שאינה רגיעה להתקדמות בזמן שאתה נאבק עם נתונים מפוזרים? שאילות צורה צרפתית היו איטיות כמו שבלון שטוף קיר ושינויי סכימה דרשו שיתוף פעולה על פני שבעה מחלקות.
אך כעת, נקודות הכאב הללו נכתבות מחדש.
השילוב של Apache Doris ו־Iceberg מחדש את דרך העבודה של אגמי נתונים. זה לא רק חשבון פשוט 1+1=2; זה מביא קפיצה איכותית: שאילות ברמה שנייה, אבולוציית סכימה בצורה חלקה ואחריות אמיתית על התאמת הנתונים.
הסימפוניה המושלמת של Doris ו־Iceberg
בתחום הנדל"ן של ניהול נתונים, אנו נתקלים לעתים תקלות כאלו:
צ'או זאנג עובד על דרישת ניתוח נתונים, צריך לנתח נתוני התנהגות משתמשים מהשלושה החודשים האחרונים. הנתונים מפוזרים במחסניות נתונים של Hive, במסדי נתונים מסחריים ובאחסון עצם. ביצוע Join צרפתי משתלם, עם שאילות שמתמשכות למעלה מ־40 דקות ואי התאמת נתונים קורה לעיתים תכופות.
בנוסף, צ'או זאנג צריך גם להתמודד עם עבודת שלטון נתונים, וכל שינוי במבנה הטבלה מביא לו כאב ראש. יישומים רבים תלויים בטבלאות אלה, ושינויי סכימה דורשים שיתוף פעולה על פני צוותים מרובים, ואפשר שיקח שבוע להשלים שינוי יחיד.
הבעיות הללו הפכו להיות יותר נגישות עם צמיחת הנתונים הפורצת. ההפרדה המסורתית בין מחסניות נתונים ואגמים של נתונים לא יכולה עוד לעמוד בצרכים.
ממש בגרסה 2.1, ארכיטקטורת ה- lakehouse של Apache Doris הושפעה באופן משמעותי. היא לא רק משפרת את יכולות הקריאה והכתיבה של פורמטים פופולריים של אגם נתונים (Hudi, Iceberg, Paimon, וכו') אלא גם מכניסה תאימות למרחבי שפות SQL מרובות, מאפשרת החלפה חלקה ממערכות קיימות ל- Apache Doris. במדעי הנתונים ובתרחישי קריאת נתונים בגדלים גדולים, Doris משתלבת עם ממשק הקריאה במהירות גבוהה Arrow Flight, ומשיגה שיפור של 100 פעמים ביעילות העברת הנתונים.
לכן, ציאו זהאנג החליט להשתמש ב- Doris + Iceberg לגאולתו.
Apache Doris מספקת תמיכה טבעית במאפיינים העיקריים של Iceberg:
- תומך בסוגי קטלוג Iceberg שונים כמו Hive Metastore, Hadoop, REST, Glue, Google Dataproc Metastore, ו- DLF.
- תומך בפורמטי טבלאות Iceberg V1/V2 באופן טבעי, כמו גם בקריאת קבצי Position Delete ו- Equality Delete.
- תומך בשאילתה להיסטוריית צילומי טבלה של טבלת Iceberg דרך פונקציות טבלה.
- תומך בפונקציונליות של נסיעה בזמן.
- תומך באופן טבעי במנוע טבלת Iceberg. Apache Doris יכול ליצור, לנהל ולכתוב נתונים ישירות לתוך טבלאות Iceberg. הוא תומך בסט מלא של פונקציות המרת מחיצה, שמספקות יכולות כמו מחיצות מוסתרות ותפיסת עיצוב מחיצות.
בנוסף, גרסה 2.1.6 של Doris הביאה שדרוגים משמעותיים ל-Doris + Iceberg:
Apache Doris תומך בפעולות DDL ו-DML על Iceberg. משתמשים יכולים ליצור מסדי נתונים וטבלאות ישירות ב-Iceberg דרך Apache Doris ולכתוב נתונים לתוך טבלאות Iceberg.
דרך תכונה זו, משתמשים יכולים לבצע שאילתות נתונים מלאות ופעולות כתיבה על Iceberg באמצעות Apache Doris, מפשטת עוד יותר את ארכיטקטורת ה-lakehouse.
לכן, צ'יאו ז'אנג יכול לבנות מהר פתרון יעיל לפי ארכיטקטורת lakehouse בהתבסס על Apache Doris + Apache Iceberg כדי לעמוד בצרכים השונים לניתוח ועיבוד נתונים בזמן אמת:
- להשתמש במנוע שאילתות ביצועי של Doris כדי לשרשר ולנתח נתונים מ-טבלאות Iceberg וממקורות נתונים אחרים, ולבנות פלטפורמת ניתוח נתונים פדרציונית מאוחדת.
- לנהל ישירות ולבנות טבלאות Iceberg ב-Doris, לנקות ולעבד נתונים, ולכתוב אותם לתוך טבלאות Iceberg, כך לבנות פלטפורמת עיבוד נתונים מאוחדת של lakehouse.
- לשתף נתוני Doris עם מערכות עליונות ותחתונות אחרות לעיבוד נוסף דרך מנוע הטבלאות Iceberg, ובניית פלטפורמת אחסון נתונים פתוחה מאוחדת.
זה אינו עוד שילוב פשוט אלא התמזגות עמוקה של ארכיטקטורות lakehouse!
סיכום מעשי של Doris ו-Iceberg
לאחר סדרה של עליות וירידות בחקירה ובתרגול, ציאו זהאנג סיכם חלק מהניסיון המעשי עם Doris + Iceberg:
ניהול Metadata חכם
בפתרונות מסורתיים, ניהול ה-Metadata תמיד היה נושא קשה. מידע על מצבי טבלה, מיקומי קבצים והיסטוריית שינויי סכימה מפוזרים בכל מקום, מה שמביא לביצועי שאילתות רעים ולתהליכי תפעול ותחזוקה מורכבים.
Doris + Iceberg מספקים שכבת ניהול Metadata מאוחדת:
ארכיטקטורה זו מביאה ערכים מרכזיים מסוימים:
- אבולוציה של סכימה חלקה: שינויים במבנה הטבלה לא דורשים עוד הפסקה. Doris + Iceberg תומך בהוספה, מחיקה ושינוי שדות, כמו גם בהתאמת שיטות חלוקה.
- ניהול גרסאות נתונים: דרך מנגנון צילום של Iceberg, אפשר לשחזר את מצב הנתונים בכל נקודה בזמן.
- שירות קטלוג מאוחד: תומך בסוגי קטלוג Iceberg שונים כמו Hive Metastore, Hadoop, REST, Glue, Google Dataproc Metastore ו-DLF, משתלב באופן חלק עם תשתיות קיימות.
ציאו זהאנג יכול כעת להשלים שינויי סכימה באמצעות הצהרת ALTER TABLE
בודדת. המערכת מטפלת באופן אוטומטי בתאימות, ויישומים לקויים עשויים להישאר בלתי מודעים לשינויים.
ארגון נתונים יעיל
דוריס משלבת בצורה חדישה את מנוע ה-MPP עם שיטות ארגון הנתונים של Iceberg:
-- Create a partitioned Iceberg table
-- Partition columns must be in the table's column definition list
CREATE TABLE sales (
ts DATETIME,
user_id BIGINT,
amount DOUBLE,
pt1 STRING,
pt2 STRING
) ENGINE=iceberg
-- Iceberg's partition type corresponds to List partitioning in Doris
PARTITION BY LIST (DAY(ts), pt1, pt2) ()
PROPERTIES (
-- Compression format
-- Parquet: snappy, zstd (default), plain (no compression)
-- ORC: snappy, zlib (default), zstd, plain (no compression)
'write-format'='orc',
'compression-codec'='zlib'
);
ההצהרת SQL הזו מסתירה מנגנונות טכניים עוצמתיים:
- ארגון קבצים: תומך במדי אחסון נפוצים כגון HDFS ואחסון אובייקטים.
- חלוקה חכמה: תומך בפונקציות שינוי חלוקה כדי לאפשר חלוקה משתנה אימפליצית ותכונות של אבולוצית חלוקה של Iceberg.
- אופטימיזצית אחסון: תומך בפורמטים נתונים עמודיים כמו Parquet ו-ORC, בשילוב עם שיטות דחיסה שונות כדי לשפר ביצועים.
עם התמיכה של דוריס בפעולות DDL ו-DML על Iceberg, גם נפקדות בענייני עקיבה על הנתונים נפתרות לחלוטין.
ניהול פעולות ותחזוקה
כדי להבטיח את יציבות פלטפורמת הנתונים, צ'או זאנג משתמש בשיטות הבאות לניטור וניהול שולחנות Iceberg:
-- View table snapshot information
SELECT * FROM iceberg_meta(
"table" = "iceberg.nyc.taxis",
"query_type" = "snapshots"
);
-- Query a specific snapshot using FOR VERSION AS OF
SELECT * FROM iceberg.nyc.taxis FOR VERSION AS OF {snapshot_id};
-- Query a specific snapshot using FOR TIME AS OF
SELECT * FROM iceberg.nyc.taxis FOR TIME AS OF {committed_at};
-- Manage snapshots
...
סדרת הכלים הזו מספקת:
- ניטור של מדדים: בקרה בזמן אמת על מצב השולחן ומדדי הצילום.
- ניהול צילומים: ניקיון של צילומים שפג תוקפם כדי לשחרר מקום אחסון.
- שחזור תקלות: תומך בחזרה לגרסה היסטורית כלשהי (קריאת נתוני גרסה היסטורית בהתבסס על מזהה צילום או זמן יצירת הצילום).
באמצעות התרגילים הללו, פלטפורמת הנתונים של צ'או זאנג המבוססת על Doris + Iceberg הגיעה לגבהים חדשים:
- ביצועי שאילתות ששופרו ב-300%.
- הפחתת עלויות אחסון ב-40%.
- יעילות בניהול ותחזוקה עלתה ב-200%.
המסע המרתק של בית האגם של דוריס אינו נגמר.
המשך מעקב על תוכן נוסף, מעניין ושימושי בעיתון הבא!