כששאלנו בפעם האחרונה, "מה זה לעזאזל???", הסתכלנו על פלטפורמת הזרמת נתונים תואמת פרוטוקול __ Apache Kafka __®
פלינק התקבל בתחילה כפרויקט אפאצ'י בדצמבר 2014, כך שהוא קיים כבר זמן מה. הצמיחה של עיבוד זרמים הובילה להתעניינות מואצת ולשימוש בשנים האחרונות. Flink היא מערכת קצת מאתגרת לעמידה ולשימוש פנימי, הדורשת כישרון הנדסי מסור. אפילו ה
אני הולך לשאול מדף האינטרנט של Apache Flink כאן. Apache Flink הוא מסגרת ומנוע עיבוד מבוזר עבור חישובי מצב על פני זרמי נתונים בלתי מוגבלים ומוגבלים. Flink תוכנן לפעול בכל סביבות האשכול הנפוצות ולבצע חישובים במהירות בתוך הזיכרון ובכל קנה מידה. אני לא רוצה לשכפל יותר ממה שנמצא באתר שלהם, אז אם אתה לא בטוח לגבי Flink, תסתכל.
באופן הבסיסי ביותר, DeltaStream נותן לך את הכוח של Flink מבלי שתצטרך להתמודד עם Flink. בִּכלָל. למבחן שלי, השתמשתי בהם
כאשר אתה נרשם, אתה מקבל ניסיון חינם של 14 יום. אשכול קפקא לדוגמה בשם "trial_store" נוצר בו אתה יכול להשתמש במקום הנתונים שלך כדי לנסות. ההדגמה מכילה מספר נושאים לשחק איתם. הסמלים תחת פעולות מאפשרים לך למחוק נושא או להציג פרטים ותוכן על הנושא ובתוכו.
להלן הפרטים של נושא תצוגות הדף לעיון, שבו נשתמש בהמשך.
אוקיי, יש לנו אשכול קפקא הולך ונושאים בו. עכשיו, בואו נעשה משהו מעניין. כפי שהוזכר בהקדמה, הדבר המעניין ביותר שאני יכול לעשות הוא להעשיר ו/או לסנן נתונים בזמן שהוא בטיסה לפני שהוא נוחת ביעד האולטימטיבי שלו, כמו מאגר מידע/מחסן/אגם. למטרות אלו, אנו הולכים ל- Workspace.
לחלק הזה נדרש קצת להתרגל. מסד נתונים וסכימה ב-DeltaStream הם רק תיקיות ארגוניות. אתה יכול ליצור מספר "n" של מסדי נתונים, ובתוך מסד נתונים, אתה יכול לקבל מספר "n" של סכימות. הסכמות יחזיקו את הפריסה ההגדרתית של אובייקטי DeltaStream שלך הידועים כ-STREAM, CHANGELOG, MATERIALIZED VIEW ו-TABLE. טבלה מתייחסת לטבלת מסד נתונים במשהו כמו PostgreSQL, וה-Materialized View היא דרך להתמיד בנתונים בערכת תוצאות מבלי לשים אותם במקום ספציפי. אני לא מתכוון לעשות שום דבר עם אף אחד מאלה בבלוג הזה; אני הולך להתמקד בזרם וב-Changelog.
אני יוצר זרם של נושא תצוגות הדף באשכול קפקא בצילום המסך הבא. אני חושב על זה כעל הגדרת טבלה של הנושא. הקצינו את שמות השדות ואמרנו להם באיזה נושא להשתמש ומה פורמט הנתונים. אנחנו לא צריכים להצדיק באופן מלא את אשכול trial_store מכיוון שהוא מוגדר כברירת המחדל בתיבה המשולבת בחלק העליון. לאחר ביצוע הפקודה הזו, היא תופיע תחת TestDB.public. לאחר מכן אני יכול לבצע שאילתה עם משהו כמו SELECT * FROM PAGEVIEWS, ואתחיל לראות את הנתונים בחלונית התוצאות בתחתית.
לאחר מכן, אני מכריז על יומן שינויים המגובה על ידי הנושא של המשתמש ומסודר על ידי UserID. יומן שינויים דומה לזרם אך מאפשר לך לפרש אירועים בנושא כאירועי UPSERT. אירועים דורשים מפתח ראשי; DeltaStream מפרש כל אירוע כהוספה או עדכון עבור המפתח הראשי הנתון. במקרה זה, יומן השינויים משקף פרטים ספציפיים לפי משתמש, כגון מין ותחומי עניין.
כאן אנחנו מתחילים ליהנות קצת. אני אצור זרם חדש שמעשיר את זרם הצפיות בדף בנתונים מ- users_log changelog תוך שימוש ב- userid כערך המפתח להצטרפות. זה נותן לי עכשיו נושא ייחודי באשכול עם נתונים משני נושאים שונים. מכאן, אני יכול לסנן אותו באמצעות משהו כמו regionid ולכתוב את התוצאות של השאילתה הזו ליעד סופי, כגון מסד נתונים, מחסן או אגם. זה אפשר לי להעשיר ולסנן נתונים בטיסה לפני הנחיתה, ובכך לשפר את ההשהיה ולהפחית את עלויות המחשוב והאחסון.
אז מה לעזאזל DeltaStream? זוהי דרך ממש פשוטה להשתמש ב- Apache Flink מבלי לדעת על זה כלום או לעשות איתו משהו ישירות. ראית מהדוגמה שלי כמה פשוט להתחבר לאפצ'י קפקא ואז לקרוא, להצטרף ולסנן את הנתונים. חיבורים אחרים הנתמכים כרגע הם Kinesis, PostgreSQL, Snowflake ו-Databricks, ונאמר לי ש-ClickHouse ו-Iceberg יהיו זמינים בקרוב.
בסופו של דבר, DeltaStream נותן לך את הכוח של Apache Flink מבלי שתצטרך להתמודד עם Apache Flink, ואתה יכול לעשות זאת באמצעות SQL במקום Java. אם אתם עוסקים בהזרמת נתונים או מחפשים ליישם אותם, זה בהחלט פתרון חכם ונוח מאוד.
בדוק את המאמרים האחרים שלי מה לעזאזל... בקישורים למטה:
**