הערך של הנתונים רגיש לזמן. עיבוד בזמן אמת הופך החלטות מונעות נתונים מדויקות וניתנות לפעולה תוך שניות או דקות במקום שעות או ימים. לכידת נתוני שינוי (CDC) מתייחסת לתהליך של זיהוי ולכידת שינויים שנעשו בנתונים במסד נתונים ולאחר מכן העברת השינויים הללו בזמן אמת למערכת במורד הזרם. לכידת כל שינוי מטרנזקציות במסד נתונים מקור והעברה אל היעד בזמן אמת שומרת על סנכרון המערכות, ועוזרת בניתוחי שימוש בזמן אמת והעברת מסדי נתונים אפס זמן השבתה. להלן כמה יתרונות של CDC:
- זה מבטל את הצורך בעדכון עומס בכמות גדולה וחלונות אצווה לא נוחים על ידי הפעלת טעינה מצטברת או הזרמת שינויים בזמן אמת למאגר היעד שלך.
- זה מבטיח שהנתונים במספר מערכות יישארו מסונכרנים. זה חשוב במיוחד אם אתה מקבל החלטות רגישות לזמן בסביבת נתונים במהירות גבוהה.
קפקא מתחבר הוא רכיב קוד פתוח של Apache Kafka שפועל כמרכז נתונים מרכזי לאינטגרציה פשוטה של נתונים בין מסדי נתונים, מאגרי מפתח-ערך, אינדקסים של חיפוש ומערכות קבצים. ה AWS Glue Schema Registry מאפשר לך לגלות, לשלוט ולפתח באופן מרכזי סכימות של זרם נתונים. Kafka Connect ו- Schema Registry משתלבים כדי ללכוד מידע על סכימה ממחברים. Kafka Connect מספק מנגנון להמרת נתונים מסוגי הנתונים הפנימיים המשמשים את Kafka Connect לסוגי נתונים המיוצגים כ- Avro, Protobuf או JSON Schema. AvroConverter, ProtobufConverter ו-JsonSchemaConverter רושמים אוטומטית סכמות שנוצרות על ידי מחברי קפקא (מקור) המייצרים נתונים לקפקא. מחברים (כיור) שצורכים נתונים מקפקא מקבלים מידע על סכימה בנוסף לנתונים של כל הודעה. זה מאפשר למחברי כיור לדעת את מבנה הנתונים כדי לספק יכולות כמו שמירה על סכימת טבלת מסד נתונים בקטלוג נתונים.
הפוסט מדגים כיצד לבנות CDC מקצה לקצה באמצעות אמזון MSK Connect, שירות מנוהל AWS לפריסה והרצה של יישומי Kafka Connect ו-AWS Glue Schema Registry, המאפשר לך לגלות, לשלוט ולפתח באופן מרכזי סכימות זרם נתונים.
סקירת פתרונות
בצד המפיק, עבור הדוגמה הזו אנו בוחרים תואם MySQL אמזון אורורה מסד הנתונים כמקור הנתונים, ויש לנו א דביציום מחבר MySQL לביצוע CDC. מחבר Debezium עוקב באופן רציף אחר מסדי הנתונים ודוחף שינויים ברמת השורה לנושא קפקא. המחבר מביא את הסכימה ממסד הנתונים כדי להסדיר את הרשומות בצורה בינארית. אם הסכימה לא קיימת כבר ברישום, הסכימה תירשם. אם הסכימה קיימת אבל ה-serializer משתמש בגרסה חדשה, רישום הסכימה בודק את מצב תאימות של הסכימה לפני עדכון הסכימה. בפתרון זה, אנו משתמשים מצב תאימות לאחור. רישום הסכימה מחזיר שגיאה אם גרסה חדשה של הסכימה אינה תואמת לאחור, ונוכל להגדיר את Kafka Connect לשלוח הודעות לא תואמות לתור האותיות המתות.
בצד הצרכני, אנו משתמשים ב-an שירות אחסון פשוט של אמזון מחבר כיור (Amazon S3) לביטול סדרת התקליט ואחסון שינויים באמזון S3. אנו בונים ופורסים את מחבר Debezium ואת כיור Amazon S3 באמצעות MSK Connect.
סכימה לדוגמה
עבור פוסט זה, אנו משתמשים בסכימה הבאה כגרסה הראשונה של הטבלה:
תנאים מוקדמים
לפני קביעת התצורה של מחברי היצרן והצרכנים של MSK, עלינו להגדיר תחילה מקור נתונים, אשכול MSK ורישום סכימה חדש. אנו מספקים AWS CloudFormation תבנית ליצירת המשאבים התומכים הדרושים לפתרון:
- מסד נתונים Aurora תואם MySQL כמקור הנתונים. כדי לבצע CDC, אנו מפעילים רישום בינארי ב- קבוצת פרמטרים של אשכול DB.
- אשכול MSK. כדי לפשט את חיבור הרשת, אנו משתמשים באותו VPC עבור מסד הנתונים של Aurora ואשכול MSK.
- שני רישום סכימה לטיפול בסכימות עבור מפתח הודעה וערך הודעה.
- דלי S3 אחד כשקיעת הנתונים.
- MSK Connect תוספים ותצורת עובד הדרושים להדגמה זו.
- אחת ענן מחשוב אלסטי של אמזון (Amazon EC2) מופע להפעלת פקודות מסד נתונים.
כדי להגדיר משאבים בחשבון AWS שלך, השלם את השלבים הבאים באזור AWS התומך ב- Amazon MSK, MSK Connect ו- AWS Glue Schema Registry:
- בחרו השקת ערימה:
- בחרו הַבָּא.
- בעד שם ערימה, הזן שם מתאים.
- בעד סיסמת מסד נתונים, הזן את הסיסמה הרצויה עבור משתמש מסד הנתונים.
- שמור ערכים אחרים כברירת מחדל.
- בחרו הַבָּא.
- בדף הבא בחר הַבָּא.
- עיין בפרטים בדף הסופי ובחר אני מאשר ש- AWS CloudFormation עשוי ליצור משאבי IAM.
- בחרו צור ערימה.
תוסף מותאם אישית עבור מחבר המקור והיעד
תוסף מותאם אישית הוא קבוצה של קובצי JAR המכילים יישום של מחבר אחד או יותר, טרנספורמציות או ממירים. אמזון MSK תתקין את התוסף על העובדים של אשכול MSK Connect שבו המחבר פועל. כחלק מהדגמה זו, עבור מחבר המקור אנו משתמשים בקוד פתוח JARs של מחברי Debezium MySQL, ולמחבר היעד אנו משתמשים ברישיון קהילת Confluent אמזון S3 מחברי כיור JARs. שני התוספים מתווספים גם עם ספריות עבור Avro Serializers ו-Deserializers של הרישום של AWS Glue Schema Registry. תוספים מותאמים אישית אלה כבר נוצרו כחלק מתבנית CloudFormation שנפרסה בשלב הקודם.
השתמש ב-AWS Glue Schema Registry עם מחבר Debezium ב-MSK Connect כמפיק MSK
אנו פורסים תחילה את מחבר המקור באמצעות תוסף Debezium MySQL כדי להזרים נתונים מ- מהדורה תואמת אמזון אורורה MySQL מסד נתונים לאמזון MSK. השלם את השלבים הבאים:
- במסוף MSK של אמזון, בחלונית הניווט, מתחת MSK Connect, בחר מחברים.
- בחרו צור מחבר.
- בחרו השתמש בתוסף מותאם אישית קיים ולאחר מכן בחר את הפלאגין המותאם אישית עם השם שמתחיל
msk-blog-debezium-source-plugin
. - בחרו הַבָּא.
- הזן שם מתאים כמו
debezium-mysql-connector
ותיאור אופציונלי. - בעד אשכול אפאצ'י קפקא, בחר אשכול MSK ובחר את האשכול שנוצר על ידי תבנית CloudFormation.
- In תצורת מחבר, מחק את ערכי ברירת המחדל והשתמש בצמדי המפתח-ערכים הבאים של התצורה ועם הערכים המתאימים:
- שם – השם המשמש למחבר.
- database.hostsname – פלט CloudFormation עבור נקודת קצה של מסד נתונים.
- database.user ו-database.password – הפרמטרים שהועברו בתבנית CloudFormation.
- database.history.kafka.bootstrap.servers – פלט CloudFormation עבור קפקא בוטסטרפ.
- key.converter.region ו-value.converter.region - האזור שלך.
חלק מההגדרות הללו הן כלליות ויש לציין אותן עבור כל מחבר. לדוגמה:
- connector.class היא מחלקת Java של המחבר
- tasks.max הוא המספר המרבי של משימות שצריך ליצור עבור מחבר זה
כמה הגדרות (database.*
, transforms.*
) הם ספציפיים למחבר Debezium MySQL. מתייחס מאפייני תצורת מחברי מקור Debezium MySQL לקבלת מידע נוסף.
כמה הגדרות (key.converter.*
ו value.converter.*
) ספציפיים ל-Schema Registry. אנו משתמשים ב- AWSKafkaAvroConverter
מ ספריית הרישום של AWS Glue Schema כממיר הפורמטים. כדי להגדיר AWSKafkaAvroConverter
, אנו משתמשים בערך של מאפייני המחרוזת הקבועים ב- AWSchemaRegistryConstants מעמד:
key.converter
וvalue.converter
לשלוט בפורמט של הנתונים שייכתבו לקפקא עבור מחברי מקור או לקרוא מקפקא עבור מחברי כיור. אנו משתמשיםAWSKafkaAvroConverter
עבור פורמט Avro.key.converter.registry.name
וvalue.converter.registry.name
להגדיר באיזה רישום סכימה להשתמש.key.converter.compatibility
וvalue.converter.compatibility
להגדיר את מודל התאימות.
עיין שימוש ב-Kafka Connect עם AWS Glue Schema Registry לקבלת מידע נוסף.
- לאחר מכן, אנו מגדירים קיבולת מחבר. אנחנו יכולים לבחור נקבע ולהשאיר מאפיינים אחרים כברירת מחדל
- בעד תצורת עובד, בחר את תצורת העובד המותאמת אישית כשהשם מתחיל
msk-gsr-blog
נוצר כחלק מתבנית CloudFormation. - בעד הרשאות גישה, להשתמש ב AWS זהות וניהול גישה תפקיד (IAM) שנוצר על ידי תבנית CloudFormation
MSKConnectRole
. - בחרו הַבָּא.
- בעד אבטחה, בחר את ברירות המחדל.
- בחרו הַבָּא.
- בעד משלוח יומן, בחר משלוח לאמזון CloudWatch Logs וחפש את קבוצת היומן שנוצרה על ידי תבנית CloudFormation (
msk-connector-logs
). - בחרו הַבָּא.
- עיין בהגדרות ובחר צור מחבר.
לאחר מספר דקות, המחבר משתנה למצב פועל.
השתמש ב-AWS Glue Schema Registry כאשר מחבר הכיור Confluent S3 פועל על MSK Connect כצרכן MSK
אנו פורסים את מחבר הכיור באמצעות תוסף הכיור Confluent S3 כדי להזרים נתונים מאמזון MSK לאמזון S3. השלם את השלבים הבאים:
-
- במסוף MSK של אמזון, בחלונית הניווט, מתחת MSK Connect, בחר מחברים.
- בחרו צור מחבר.
- בחרו השתמש בתוסף מותאם אישית קיים ובחר את הפלאגין המותאם אישית עם השם שמתחיל
msk-blog-S3sink-plugin
. - בחרו הַבָּא.
- הזן שם מתאים כמו
s3-sink-connector
ותיאור אופציונלי. - בעד אשכול אפאצ'י קפקא, בחר אשכול MSK ובחר את האשכול שנוצר על ידי תבנית CloudFormation.
- In תצורת מחבר, מחק את ערכי ברירת המחדל שסופקו והשתמש בצמדי מפתח-ערך בתצורה הבאים עם ערכים מתאימים:
-
- שם – אותו שם המשמש למחבר.
- s3.bucket.name – פלט CloudFormation עבור שם הדלי.
- s3.region, key.converter.region ו-value.converter.region - האזור שלך.
-
- לאחר מכן, אנו מגדירים קיבולת מחבר. אנחנו יכולים לבחור נקבע ולהשאיר מאפיינים אחרים כברירת מחדל
- בעד תצורת עובד, בחר את תצורת העובד המותאמת אישית כשהשם מתחיל
msk-gsr-blog
נוצר כחלק מתבנית CloudFormation. - בעד הרשאות גישה, השתמש בתפקיד IAM שנוצר על ידי תבנית CloudFormation
MSKConnectRole
. - בחרו הַבָּא.
- בעד אבטחה, בחר את ברירות המחדל.
- בחרו הַבָּא.
- בעד משלוח יומן, בחר משלוח לאמזון CloudWatch Logs וחפש את קבוצת היומן שנוצרה על ידי תבנית CloudFormation
msk-connector-logs
. - בחרו הַבָּא.
- עיין בהגדרות ובחר צור מחבר.
לאחר מספר דקות, המחבר פועל.
בדוק את זרם יומן ה-CDC מקצה לקצה
כעת, כאשר גם מחברי הכיור של Debezium וגם S3 פועלים, השלם את השלבים הבאים כדי לבדוק את ה-CDC מקצה לקצה:
- במסוף אמזון EC2, נווט אל קבוצות אבטחה עמוד.
- בחר את קבוצת האבטחה
ClientInstanceSecurityGroup
ולבחור ערוך כללים נכנסים. - הוסף כלל נכנס המאפשר חיבור SSH מהרשת המקומית שלך.
- על מקרים עמוד, בחר את המופע
ClientInstance
ולבחור לְחַבֵּר. - על EC2 Instance Connect בחר, בחר לְחַבֵּר.
- ודא שספריית העבודה הנוכחית שלך היא
/home/ec2-user
ויש לו את הקבציםcreate_table.sql
,alter_table.sql
,initial_insert.sql
, וinsert_data_with_new_column.sql
. - צור טבלה במסד הנתונים של MySQL על ידי הפעלת הפקודה הבאה (ספק את שם המארח של מסד הנתונים מפלטי תבנית CloudFormation):
- כאשר תתבקש להזין סיסמה, הזן את הסיסמה מפרמטרי תבנית CloudFormation.
- הכנס כמה נתונים לדוגמה לטבלה עם הפקודה הבאה:
- כאשר תתבקש להזין סיסמה, הזן את הסיסמה מפרמטרי תבנית CloudFormation.
- במסוף הדבק של AWS בחר רישומי סכימה בחלונית הניווט, ולאחר מכן בחר סכמות.
- נווט אל
db1.sampledatabase.movies
גרסה 1 כדי לבדוק את הסכימה החדשה שנוצרה עבור טבלת הסרטים:
נוצרת תיקיית S3 נפרדת עבור כל מחיצה של נושא קפקא, ונתונים עבור הנושא נכתבים באותה תיקייה.
- בקונסולת Amazon S3, בדוק אם יש נתונים שנכתבו בפורמט פרקט בתיקייה של נושא קפקא שלך.
אבולוציה של סכימה
לאחר הגדרת הסכימה הראשונית, ייתכן שיישומים יצטרכו לפתח אותה לאורך זמן. כאשר זה קורה, זה קריטי לצרכנים במורד הזרם להיות מסוגלים לטפל בנתונים המקודדים הן בסכימה הישנה והן בסכימה החדשה בצורה חלקה. מצבי תאימות מאפשרים לך לשלוט כיצד סכימות יכולות או לא יכולות להתפתח לאורך זמן. מצבים אלה מהווים את החוזה בין יישומים המייצרים וצורכים נתונים. למידע מפורט על מצבי תאימות שונים הזמינים ב-AWS Glue Schema Registry, עיין ב AWS Glue Schema Registry. בדוגמה שלנו, אנו משתמשים בסירוק לאחור כדי להבטיח שצרכנים יכולים לקרוא הן את גרסת הסכימה הנוכחית והן הקודמת. השלם את השלבים הבאים:
- הוסף עמודה חדשה לטבלה על ידי הפעלת הפקודה הבאה:
- הכנס נתונים חדשים לטבלה על ידי הפעלת הפקודה הבאה:
- במסוף הדבק של AWS בחר רישומי סכימה בחלונית הניווט, ולאחר מכן בחר סכמות.
- נווט אל הסכימה
db1.sampledatabase.movies
גרסה 2 כדי לבדוק את הגרסה החדשה של הסכימה שנוצרה עבור סרטי טבלת הסרטים כולל עמודת המדינה שהוספת:
- בקונסולת Amazon S3, בדוק אם יש נתונים שנכתבו בפורמט Parquet בתיקייה של נושא קפקא.
לנקות את
כדי לסייע במניעת חיובים לא רצויים לחשבון AWS שלך, מחק את משאבי AWS שבהם השתמשת בפוסט הזה:
- בקונסולת Amazon S3, נווט אל דלי S3 שנוצר על ידי תבנית CloudFormation.
- בחר את כל הקבצים והתיקיות ובחר מחק.
- הכנס למחוק לצמיתות לפי ההוראות ובחר מחק אובייקטים.
- במסוף AWS CloudFormation, מחק את המחסנית שיצרת.
- המתן עד שסטטוס המחסנית ישתנה DELETE_COMPLETE.
סיכום
פוסט זה הדגים כיצד להשתמש באמזון MSK, MSK Connect ו-AWS Glue Schema Registry כדי לבנות זרם יומן CDC ולפתח סכמות עבור זרמי נתונים ככל שהצרכים העסקיים משתנים. אתה יכול להחיל דפוס ארכיטקטורה זה על מקורות נתונים אחרים עם מחברי קפקא שונים. למידע נוסף, עיין ב- דוגמאות של MSK Connect.
על המחבר
קליאן ג'נאקי הוא מומחה בכיר ל-Big Data ו-Analytics עם שירותי האינטרנט של אמזון. הוא עוזר ללקוחות לתכנן ולבנות פתרונות מבוססי ענן בעלי יכולת הרחבה, ביצועים ומאובטחים ב-AWS.
- הפצת תוכן ויחסי ציבור מופעל על ידי SEO. קבל הגברה היום.
- Platoblockchain. Web3 Metaverse Intelligence. ידע מוגבר. גישה כאן.
- מקור: https://aws.amazon.com/blogs/big-data/build-an-end-to-end-change-data-capture-with-amazon-msk-connect-and-aws-glue-schema-registry/
- :הוא
- $ למעלה
- 1
- 10
- 11
- 7
- 8
- a
- יכול
- אודות
- גישה
- חֶשְׁבּוֹן
- מדויק
- הודה
- הוסיף
- תוספת
- תעשיות
- מאפשר
- מאפשר
- כְּבָר
- אמזון בעברית
- אמזון
- אמזון שירותי אינטרנט
- ניתוח
- ו
- אַפָּשׁ
- אפאצ'י קפקא
- יישומים
- החל
- מתאים
- ארכיטקטורה
- ARE
- AS
- כּוֹכָב הַשַׁחַר
- באופן אוטומטי
- זמין
- AWS
- AWS CloudFormation
- דבק AWS
- BE
- לפני
- הטבות
- בֵּין
- גָדוֹל
- נתונים גדולים
- אוזן נעל
- לִבנוֹת
- עסקים
- by
- CAN
- יכולות
- ללכוד
- לכידה
- מקרים
- קטלוג
- ה-CDC
- מְרוּכָּז
- שינוי
- שינויים
- חיובים
- לבדוק
- בדיקות
- בחרו
- בכיתה
- אשכול
- טור
- קהילה
- תאימות
- תואם
- להשלים
- רְכִיב
- לחשב
- תְצוּרָה
- צומת
- לְחַבֵּר
- הקשר
- קונסול
- קבוע
- לצרוך
- צרכן
- צרכנים
- ברציפות
- חוזה
- לִשְׁלוֹט
- מדינה
- לִיצוֹר
- נוצר
- קריטי
- נוֹכְחִי
- מנהג
- לקוחות
- נתונים
- שילוב נתונים
- נתונים מונחים
- מסד נתונים
- מאגרי מידע
- ימים
- החלטות
- בְּרִירַת מֶחדָל
- מחדל
- מוגדר
- אספקה
- הַדגָמָה
- מופגן
- מדגים
- לפרוס
- פרס
- תיאור
- יעד
- מְפוֹרָט
- פרטים
- אחר
- לגלות
- לא
- ירידה
- כל אחד
- מבטל
- מה שמאפשר
- מקצה לקצה
- לְהַבטִיחַ
- מבטיח
- זן
- סביבה
- שגיאה
- במיוחד
- Ether (ETH)
- כל
- להתפתח
- דוגמה
- קיימים
- קיים
- מעטים
- שדות
- שלח
- קבצים
- סופי
- ראשון
- הבא
- בעד
- טופס
- פוּרמָט
- החל מ-
- ליצור
- נוצר
- קְבוּצָה
- קבוצה
- לטפל
- טיפול
- קורה
- יש
- לעזור
- עוזר
- מאוד
- היסטוריה
- המארח
- שעות
- איך
- איך
- HTML
- http
- HTTPS
- טבור
- IAM
- זיהוי
- זהות
- הפעלה
- חשוב
- in
- כולל
- אינדקסים
- מידע
- בתחילה
- להתקין
- למשל
- במקום
- לשלב
- השתלבות
- פנימי
- IT
- Java
- jpg
- ג'סון
- קפקא
- מפתח
- לדעת
- יציאה
- ספריות
- מורשה
- כמו
- לִטעוֹן
- טוען
- מקומי
- ארוך
- עשוי
- עושה
- עשייה
- הצליח
- אב
- מקסימום
- מקסימום
- מנגנון
- הודעה
- הודעות
- יכול
- דקות
- מודל
- מצבי
- צגים
- יותר
- סרטים
- נע
- מספר
- MySQL
- שם
- נווט
- ניווט
- צורך
- נחוץ
- צרכי
- רשת
- חדש
- הבא
- מספר
- of
- זקן
- on
- ONE
- קוד פתוח
- אחר
- תפוקה
- עמוד
- זוגות
- זגוגית
- פרמטר
- פרמטרים
- חלק
- עבר
- סיסמה
- תבנית
- לבצע
- לצמיתות
- לבחור
- אפלטון
- מודיעין אפלטון
- אפלטון נתונים
- חיבור
- תוספים
- הודעה
- למנוע
- קודם
- תהליך
- תהליך
- לייצר
- יַצרָן
- נכסים
- לספק
- ובלבד
- מספק
- חומר עיוני
- ממשי
- זמן אמת
- לקבל
- שיא
- רשום
- מתייחס
- באזור
- הירשם
- רשום
- רישום
- מאגר
- מיוצג
- משאבים
- החזרות
- תפקיד
- כלל
- הפעלה
- ריצה
- אותו
- להרחבה
- בצורה חלקה
- חיפוש
- שניות
- לבטח
- אבטחה
- לחצני מצוקה לפנסיונרים
- רגיש
- נפרד
- שרות
- שירותים
- סט
- הגדרות
- צריך
- פָּשׁוּט
- לפשט
- פִּתָרוֹן
- פתרונות
- כמה
- מָקוֹר
- מקורות
- מומחה
- ספציפי
- מפורט
- לערום
- החל
- מצב
- שלב
- צעדים
- אחסון
- חנות
- חנויות
- זרם
- נהירה
- זרמים
- מִבְנֶה
- מַתְאִים
- מסייע
- תומך
- סינכרון.
- מערכת
- מערכות
- שולחן
- יעד
- משימות
- תבנית
- מבחן
- זֶה
- השמיים
- המקור
- אותם
- אלה
- זמן
- רגיש לזמן
- כותרת
- ל
- נושא
- עסקות
- תור
- סוגים
- תחת
- לא רצוי
- עדכון
- להשתמש
- משתמש
- ערך
- ערכים
- גרסה
- אינטרנט
- שירותי אינטרנט
- אשר
- יצטרך
- חלונות
- עם
- עובד
- עובדים
- עובד
- עובד
- כתוב
- זפירנט