נפח הנתונים שנוצר ברחבי העולם ממשיך לעלות, ממשחקים, קמעונאות ופיננסים, ועד לייצור, שירותי בריאות ונסיעות. ארגונים מחפשים דרכים נוספות להשתמש במהירות בזרימה המתמדת של נתונים כדי לחדש עבור העסקים והלקוחות שלהם. עליהם ללכוד, לעבד, לנתח ולטעון בצורה מהימנה את הנתונים למספר עצום של מאגרי נתונים, והכל בזמן אמת.
אפאצ'י קפקא הוא בחירה פופולרית לצורכי הסטרימינג האלה בזמן אמת. עם זאת, זה יכול להיות מאתגר להגדיר אשכול קפקא יחד עם רכיבי עיבוד נתונים אחרים המותאמים באופן אוטומטי בהתאם לצרכי היישום שלך. אתה מסתכן בהקצאה חסרה לתנועת שיא, מה שעלול להוביל להשבתה, או בהקצאת יתר לעומס בסיס, מה שמוביל לבזבוז. AWS מציעה מספר שירותים ללא שרת כמו אמזון מנוהל סטרימינג עבור אפאצ'י קפקא (אמזון MSK), Amazon Data Firehose, אמזון דינמו, ו AWS למבדה קנה מידה אוטומטי בהתאם לצרכים שלך.
בפוסט זה, אנו מסבירים כיצד תוכל להשתמש בחלק מהשירותים הללו, כולל MSK ללא שרתים, כדי לבנות פלטפורמת נתונים ללא שרת כדי לענות על הצרכים שלך בזמן אמת.
סקירת פתרונות
בואו נדמיין תרחיש. אתה אחראי על ניהול אלפי מודמים עבור ספק שירותי אינטרנט הפרוסים על פני מספר גיאוגרפיות. אתה רוצה לפקח על איכות הקישוריות של המודם שיש לה השפעה משמעותית על הפרודוקטיביות ושביעות הרצון של הלקוחות. הפריסה שלך כוללת מודמים שונים שיש לנטר ולתחזק אותם כדי להבטיח זמן השבתה מינימלי. כל מכשיר משדר אלפי רשומות של 1 KB בכל שנייה, כגון שימוש במעבד, שימוש בזיכרון, אזעקה ומצב חיבור. אתה רוצה גישה בזמן אמת לנתונים האלה כדי שתוכל לנטר את הביצועים בזמן אמת, ולזהות ולצמצם בעיות במהירות. אתה גם צריך גישה לטווח ארוך יותר לנתונים אלה עבור מודלים של למידת מכונה (ML) כדי להפעיל הערכות תחזוקה חזויות, למצוא הזדמנויות אופטימיזציה ולחזות ביקוש.
הלקוחות שלך שאוספים את הנתונים באתר כתובים ב- Python, והם יכולים לשלוח את כל הנתונים כנושאים של Apache Kafka לאמזון MSK. לגישה לנתונים בזמן אמת של היישום שלך עם זמן אחזור נמוך, אתה יכול להשתמש Lambda ו-DynamoDB. לאחסון נתונים לטווח ארוך יותר, אתה יכול להשתמש בשירות מחברים מנוהלים ללא שרת Amazon Data Firehose כדי לשלוח נתונים לאגם הנתונים שלך.
התרשים הבא מראה כיצד ניתן לבנות יישום זה ללא שרתים מקצה לקצה.
הבה נבצע את השלבים בסעיפים הבאים כדי ליישם ארכיטקטורה זו.
צור אשכול קפקא ללא שרת באמזון MSK
אנו משתמשים באמזון MSK כדי להטמיע נתוני טלמטריה בזמן אמת ממודמים. יצירת אשכול קפקא ללא שרת היא פשוטה באמזון MSK. זה לוקח רק כמה דקות באמצעות קונסולת הניהול של AWS או AWS SDK. כדי להשתמש במסוף, עיין ב תחילת העבודה עם אשכולות ללא שרתים של MSK. אתה יוצר אשכול ללא שרת, AWS זהות וניהול גישה תפקיד (IAM), ומכונת לקוח.
צור נושא קפקא באמצעות Python
כאשר האשכול ומכונת הלקוח שלך מוכנים, SSH למחשב הלקוח שלך והתקן את Kafka Python ואת ספריית MSK IAM עבור Python.
- הפעל את הפקודות הבאות כדי להתקין את Kafka Python ואת ספריית MSK IAM:
- צור קובץ חדש בשם
createTopic.py
. - העתק את הקוד הבא לקובץ זה, החלף את
bootstrap_servers
וregion
מידע עם הפרטים עבור האשכול שלך. להנחיות לגבי אחזור הbootstrap_servers
מידע עבור אשכול MSK שלך, ראה השגת מתווכים אתחול עבור אשכול MSK של אמזון.
- הפעל את
createTopic.py
תסריט ליצירת נושא קפקא חדש בשםmytopic
באשכול חסר השרת שלך:
הפקת רשומות באמצעות Python
בוא ניצור כמה נתוני טלמטריית מודם לדוגמה.
- צור קובץ חדש בשם
kafkaDataGen.py
. - העתק את הקוד הבא לקובץ זה, עדכן את ה
BROKERS
וregion
מידע עם הפרטים עבור האשכול שלך:
- הפעל את
kafkaDataGen.py
ליצור נתונים אקראיים ללא הרף ולפרסם אותם לנושא קפקא שצוין:
חנות אירועים באמזון S3
כעת אתה מאחסן את כל נתוני האירועים הגולמיים ב-an שירות אחסון פשוט של אמזון (Amazon S3) אגם נתונים לניתוח. אתה יכול להשתמש באותם נתונים כדי להכשיר מודלים של ML. ה אינטגרציה עם Amazon Data Firehose מאפשר לאמזון MSK לטעון בצורה חלקה נתונים מאשכולות Apache Kafka שלך לתוך אגם נתונים S3. השלם את השלבים הבאים כדי להזרים נתונים באופן רציף מקפקא לאמזון S3, תוך ביטול הצורך לבנות או לנהל יישומי מחבר משלך:
- בקונסולת Amazon S3, צור דלי חדש. אתה יכול גם להשתמש בדלי קיים.
- צור תיקיה חדשה בדלי S3 שלך בשם
streamingDataLake
. - במסוף MSK של אמזון, בחר את אשכול MSK ללא שרתים שלך.
- על פעולות בתפריט, בחר ערוך מדיניות אשכול.
- בחר כלול מנהל שירות Firehose ולבחור שמור את השינויים.
- על משלוח S3 בחר, בחר צור זרם מסירה.
- בעד מָקוֹר, בחר אמזון MSK.
- בעד יַעַד, בחר אמזון S3.
- בעד קישוריות אשכול MSK של אמזון, בחר מתווכים פרטיים לאתחול.
- בעד נוֹשֵׂא, הזן שם נושא (עבור פוסט זה,
mytopic
).
- בעד דלי S3, בחר לְדַפדֵף ובחר את דלי ה-S3 שלך.
- זן
streamingDataLake
בתור הקידומת S3 bucket שלך. - זן
streamingDataLakeErr
בתור קידומת הפלט של שגיאת דלי S3.
- בחרו צור זרם מסירה.
אתה יכול לוודא שהנתונים נכתבו לדלי S3 שלך. אתה צריך לראות כי streamingDataLake
הספרייה נוצרה והקבצים מאוחסנים במחיצות.
חנות אירועים ב-DynamoDB
לשלב האחרון, אתה מאחסן את נתוני המודם העדכניים ביותר ב-DynamoDB. זה מאפשר ליישום הלקוח לגשת למצב המודם ולקיים אינטראקציה עם המודם מרחוק מכל מקום, עם חביון נמוך וזמינות גבוהה. Lambda עובד בצורה חלקה עם אמזון MSK. Lambda סוקר באופן פנימי עבור הודעות חדשות ממקור האירוע ולאחר מכן מפעיל באופן סינכרוני את פונקציית המטרה Lambda. Lambda קורא את ההודעות בקבוצות ומספק אותן לתפקוד שלך כמטען אירוע.
תחילה ניצור טבלה ב-DynamoDB. מתייחס הרשאות API של DynamoDB: הפניה לפעולות, משאבים ותנאים כדי לוודא שלמחשב הלקוח שלך יש את ההרשאות הדרושות.
- צור קובץ חדש בשם
createTable.py
. - העתק את הקוד הבא לקובץ, עדכן את
region
מידע:
- הפעל את
createTable.py
סקריפט ליצירת טבלה בשםdevice_status
ב-DynamoDB:
עכשיו בואו נגדיר את פונקציית Lambda.
- במסוף למבה, בחרו פונקציות בחלונית הניווט.
- בחרו צור פונקציה.
- בחר מחבר מאפס.
- בעד שם פונקציה¸ הזן שם (למשל,
my-notification-kafka
). - בעד זמן ריצה, בחר פייתון 3.11.
- בעד הרשאות, בחר השתמש בתפקיד קיים ולבחור תפקיד עם הרשאות קריאה מהאשכול שלך.
- צור את הפונקציה.
בדף תצורת פונקציית Lambda, כעת תוכל להגדיר מקורות, יעדים וקוד היישום שלך.
- בחרו הוסף טריגר.
- בעד תצורת הדק, להיכנס
MSK
כדי להגדיר את Amazon MSK כטריגר עבור פונקציית המקור של Lambda. - בעד אשכול MSK, להיכנס
myCluster
. - בטל את הבחירה הפעל טריגר, מכיוון שעדיין לא הגדרת את פונקציית Lambda שלך.
- בעד גודל אצווה, להיכנס
100
. - בעד עמדת מוצא, בחר הכי מאוחר.
- בעד שם הנושא¸ הזן שם (למשל,
mytopic
). - בחרו להוסיף.
- בדף הפרטים של פונקציית Lambda, ב- קופונים בכרטיסייה, הזן את הקוד הבא:
- פרוס את פונקציית Lambda.
- על תְצוּרָה בחר, בחר ערוך כדי לערוך את הטריגר.
- בחר את הטריגר ולאחר מכן בחר שמור.
- במסוף DynamoDB בחר חקור פריטים בחלונית הניווט.
- בחר את הטבלה
device_status
.
אתה תראה שלמבדה כותבת אירועים שנוצרו בנושא קפקא ל-DynamoDB.
<br> סיכום
צינורות הזרמת נתונים הם קריטיים לבניית יישומים בזמן אמת. עם זאת, הקמה וניהול של התשתית יכולים להיות מרתיע. בפוסט הזה, עברנו על איך לבנות צינור סטרימינג ללא שרת ב-AWS באמצעות Amazon MSK, Lambda, DynamoDB, Amazon Data Firehose ושירותים אחרים. היתרונות העיקריים הם אין שרתים לניהול, מדרגיות אוטומטית של התשתית ומודל של תשלום לפי נסיעה תוך שימוש בשירותים מנוהלים במלואם.
מוכן לבנות צינור משלך בזמן אמת? התחל היום עם חשבון AWS בחינם. עם הכוח של חסרי שרתים, אתה יכול להתמקד בלוגיקת היישום שלך בעוד AWS מטפל בהרמה הכבדה הבלתי מובחנת. בואו נבנה משהו מדהים ב-AWS!
על הכותבים
מסודור רחמן סאיים הוא ארכיטקט נתונים סטרימינג ב-AWS. הוא עובד עם לקוחות AWS ברחבי העולם כדי לתכנן ולבנות ארכיטקטורות הזרמת נתונים כדי לפתור בעיות עסקיות בעולם האמיתי. הוא מתמחה באופטימיזציה של פתרונות המשתמשים בשירותי סטרימינג של נתונים ו-NoSQL. Sayem מאוד נלהב ממחשוב מבוזר.
מייקל אוגויקה הוא מנהל מוצר עבור אמזון MSK. הוא נלהב להשתמש בנתונים כדי לחשוף תובנות שמניעות פעולה. הוא נהנה לעזור ללקוחות ממגוון רחב של תעשיות לשפר את העסקים שלהם באמצעות הזרמת נתונים. מייקל גם אוהב ללמוד על מדעי ההתנהגות והפסיכולוגיה מתוך ספרים ופודקאסטים.
- הפצת תוכן ויחסי ציבור מופעל על ידי SEO. קבל הגברה היום.
- PlatoData.Network Vertical Generative Ai. העצים את עצמך. גישה כאן.
- PlatoAiStream. Web3 Intelligence. הידע מוגבר. גישה כאן.
- PlatoESG. פחמן, קלינטק, אנרגיה, סביבה, שמש, ניהול פסולת. גישה כאן.
- PlatoHealth. מודיעין ביוטכנולוגיה וניסויים קליניים. גישה כאן.
- מקור: https://aws.amazon.com/blogs/big-data/build-an-end-to-end-serverless-streaming-pipeline-with-apache-kafka-on-amazon-msk-using-python/
- :יש ל
- :הוא
- :לֹא
- :איפה
- $ למעלה
- 1
- 100
- 10000
- 13
- 16
- 19
- 378
- 4
- 41
- 455
- 50
- 7
- a
- אודות
- גישה
- חֶשְׁבּוֹן
- לרוחב
- פעולה
- פעולות
- מנהל
- אזעקה
- תעשיות
- מאפשר
- לאורך
- כְּבָר
- גם
- אמזון בעברית
- אמזון שירותי אינטרנט
- an
- ניתוח
- לנתח
- ו
- בְּכָל מָקוֹם
- אַפָּשׁ
- אפאצ'י קפקא
- API
- בקשה
- יישומים
- ארכיטקטורה
- ארכיטקטורות
- ARE
- AS
- הערכות
- Asus
- At
- אימות
- מכני עם סלילה אוטומטית
- באופן אוטומטי
- זמינות
- מדהים
- AWS
- בסיס
- BE
- כי
- היה
- התנהגותי
- הטבות
- ספרים
- מאיץ
- אוזן נעל
- ברוקרים
- לִבנוֹת
- בִּניָן
- עסקים
- עסקים
- נקרא
- CAN
- קיבולת
- ללכוד
- אתגר
- בחירה
- בחרו
- בכיתה
- לקוחות
- לקוחות
- אשכול
- קוד
- להשלים
- רכיבים
- מחשוב
- תנאים
- תְצוּרָה
- תצורות
- מוגדר
- מחובר
- הקשר
- קישוריות
- קונסול
- קבוע
- הקשר
- ממשיך
- ברציפות
- CPU
- לִיצוֹר
- נוצר
- יוצרים
- קריטי
- לקוח
- לקוחות
- נתונים
- גישה למידע
- אגם דאטה
- פלטפורמת נתונים
- עיבוד נתונים
- אחסון נתונים
- datetime
- def
- מסירה
- דרישה
- תלוי
- פרס
- פריסה
- עיצוב
- יעד
- יעדים
- פרטים
- לאתר
- מכשיר
- תרשים
- אחר
- בספרייה
- מופץ
- מחשוב מבוזר
- מטה
- זמן השבתה
- נהיגה
- DVC
- e
- כל אחד
- חיסול
- אחר
- מקצה לקצה
- לְהַבטִיחַ
- זן
- שגיאה
- Ether (ETH)
- אירוע
- אירועים
- כל
- דוגמה
- אלא
- יוצא מן הכלל
- קיימים
- להסביר
- מעטים
- שלח
- קבצים
- לממן
- ראשון
- להתמקד
- לעקוב
- הבא
- בעד
- תַחֲזִית
- חופשי
- החל מ-
- לגמרי
- פונקציה
- עתיד
- המשחקים
- ללקט
- ליצור
- נוצר
- גיאוגרפיות
- לקבל
- ברחבי עולם
- מטפל
- שירים
- יש
- he
- בריאות
- כבד
- הרמת כבד
- עזרה
- גָבוֹהַ
- איך
- איך
- אולם
- HTML
- http
- HTTPS
- i
- IAM
- זהות
- תמונה
- פְּגִיעָה
- ליישם
- לייבא
- לשפר
- in
- כולל
- כולל
- תעשיות
- מידע
- תשתית
- לחדש
- תובנות
- להתקין
- למשל
- הוראות
- אינטראקציה
- מִמְשָׁק
- כלפי פנים
- אינטרנט
- אל תוך
- מעורר
- בעיות
- IT
- jpg
- ג'סון
- קפקא
- מפתח
- אגם
- אחרון
- חֶבִיוֹן
- עוֹפֶרֶת
- מוביל
- למידה
- סִפְרִיָה
- רמה
- כמו
- רשימה
- לִטעוֹן
- ממוקם
- הגיון
- הסתכלות
- אוהב
- נמוך
- מכונה
- למידת מכונה
- נשמר
- תחזוקה
- לנהל
- הצליח
- ניהול
- מנהל
- ניהול
- ייצור
- לִפְגוֹשׁ
- זכרון
- הודעות
- שיטה
- מיכאל
- מינימלי
- דקות
- להקל
- ML
- מצב
- מודל
- מודלים
- צג
- פיקוח
- יותר
- רוב
- מספר
- מספר עצום
- שם
- ניווט
- הכרחי
- צורך
- צרכי
- חדש
- לא
- עַכשָׁיו
- of
- המיוחדות שלנו
- on
- On-Demand
- רק
- הזדמנויות
- אופטימיזציה
- מיטוב
- or
- ארגונים
- OS
- אחר
- תפוקה
- שֶׁלוֹ
- עמוד
- זגוגית
- לוהט
- שִׂיא
- ביצועים
- הרשאות
- צינור
- פלטפורמה
- אפלטון
- מודיעין אפלטון
- אפלטון נתונים
- פודקאסטים
- מדיניות
- סקרים
- פופולרי
- הודעה
- כּוֹחַ
- מנבא
- מנהל
- בעיות
- תהליך
- תהליך
- יַצרָן
- המוצר
- מנהל מוצר
- פִּריוֹן
- לספק
- ספק
- מספק
- פסיכולוגיה
- לפרסם
- פיתון
- איכות
- מהירות
- אקראי
- רכס
- חי
- חומר עיוני
- מוכן
- ממשי
- עולם אמיתי
- זמן אמת
- נתונים בזמן אמת
- לאחרונה
- שיא
- רשום
- להתייחס
- באזור
- מרחוק
- נדרש
- משאבים
- תגובה
- אחראי
- קמעוני
- לַחֲזוֹר
- הסיכון
- תפקיד
- הפעלה
- s
- אותו
- לִטעוֹם
- שביעות רצון
- בקרת מערכות ותקשורת
- סולם
- תרחיש
- מדע
- תסריט
- Sdk
- בצורה חלקה
- שְׁנִיָה
- סעיפים
- לִרְאוֹת
- בחר
- עצמי
- לשלוח
- ללא שרת
- שרתים
- שרות
- ספק שירות
- שירותים
- סט
- הצבה
- הגדרות
- צריך
- הופעות
- משמעותי
- פָּשׁוּט
- So
- פתרונות
- לפתור
- כמה
- משהו
- מָקוֹר
- מקורות
- מתמחה
- מפורט
- ssh
- החל
- מצב
- שלב
- צעדים
- אחסון
- חנות
- מאוחסן
- חנויות
- פשוט
- זרם
- נהירה
- כזה
- לְהִתְנַחְשֵׁל
- שולחן
- לוקח
- יעד
- זֶה
- השמיים
- שֶׁלָהֶם
- אז
- אלה
- הֵם
- זֶה
- אלפים
- דרך
- זמן
- ל
- היום
- אסימון
- נושא
- נושאים
- tp
- תְנוּעָה
- רכבת
- נסיעות
- להפעיל
- נָכוֹן
- לנסות
- Ultra
- לגלות
- עדכון
- נוֹהָג
- להשתמש
- באמצעות
- ערך
- לאמת
- מאוד
- כֶּרֶך
- הלך
- רוצה
- היה
- דרכים
- we
- אינטרנט
- שירותי אינטרנט
- אשר
- בזמן
- רָחָב
- טווח רחב
- wifi
- יצטרך
- עם
- עובד
- לכתוב
- כתיבה
- כתוב
- X
- עוד
- אתה
- זפירנט