במסמך הזה מוסבר למפתחים, לארכיטקטים ולמקבלי החלטות על אפשרויות להעברת נתונים חיצוניים של Kafka אל Google Cloud, להתאוששות מאסון (DR), לשילוב עם BigQuery וללכידת נתונים משתנים (CDC) ממסדי נתונים.
בתוך Google Cloud, אפשר להעביר נתוני Kafka לאשכול של שירות מנוהל של Google Cloud ל-Apache Kafka או למוצר אחר של Google, כמו טבלה ב-BigQuery או מיקום ב-Cloud Storage. סיכום מופיע בטבלה הבאה.
| תרחיש שימוש | מקור הנתונים | יעד הנתונים | פתרון מומלץ |
|---|---|---|---|
| העתקת נתונים | אשכול Apache Kafka בניהול עצמי | אשכול של שירות מנוהל ל-Apache Kafka | יוצרים מחבר מקור של MirrorMaker 2.0 באשכול Connect. |
| ניתוח נתונים במחסן נתונים | אשכול של שירות מנוהל ל-Apache Kafka | BigQuery | יוצרים מחבר יעד של BigQuery באשכול Connect. |
| העברת נתונים באמצעות סנכרון | אשכול Kafka בניהול עצמי | אשכול של שירות מנוהל ל-Apache Kafka | יוצרים מחבר מקור של MirrorMaker 2.0 באשכול Connect. |
| שכפול של אשכול באזורים שונים | שירות מנוהל ל-Apache Kafka (אזור A) | אשכול שירות מנוהל ל-Apache Kafka (אזור B) | יוצרים מחבר מקור של MirrorMaker 2.0 באשכול Connect. |
| גיבוי נתונים | שירות מנוהל ל-Apache Kafka | Cloud Storage | יוצרים מחבר יעד של Cloud Storage באשכול Connect. |
| תיעוד שינויים במסד נתונים | מסד נתונים רלציוני, Spanner או Bigtable | שירות מנוהל ל-Apache Kafka | הרצת פייפליין של Apache Beam ב-Dataflow. |
| עיבוד נתונים באמצעות Apache Spark | שירות מנוהל ל-Apache Kafka | Apache Spark | הפעלת Managed Service for Apache Spark ב-Compute Engine. |
פתרונות מומלצים שיעזרו לכם להעביר את הנתונים של Kafka
Google Cloud מציע כמה פתרונות לשילוב הנתונים שלכם ב-Kafka. לכל אחד מהפתרונות יש יתרונות ייחודיים, בהתאם לצרכים ולתשתית הקיימת. השיטה הכי טובה לשילוב תלויה במערכות הקיימות, בכישורים הנוכחיים וביכולת שלכם לנהל את התשתית.
שימוש ב-Kafka Connect
השירות המנוהל של Google Cloud ל-Apache Kafka מאפשר הקצאת אשכולות שמריצים Kafka Connect. המטרה העיקרית של Kafka Connect היא לחבר את האשכול של השירות המנוהל ל-Apache Kafka למערכות אחרות לתרחישי שימוש כמו העברה, גיבוי, התאוששות מאסון, זמינות גבוהה ושילוב נתונים. מומלץ להשתמש ב-Kafka Connect למשימות הנפוצות ביותר של שילוב נתונים בשירות המנוהל ל-Apache Kafka. ל-Kafka Connect יש כמה יתרונות:
אפשר לחבר את אשכולות Kafka החיצוניים למקורות נתונים שונים ולמאגרי נתונים באמצעות מחברים מובנים. Google Cloud אשכולות Kafka חיצוניים כוללים את השירות המנוהל ל-Apache Kafka, אשכולות Kafka מקומיים ופריסות ענן בהתאמה אישית. המחברים הנתמכים כוללים את האפשרויות הבאות:
מחברים של MirrorMaker 2.0
יעד ב-BigQuery
יעד ב-Cloud Storage
מקור Pub/Sub
יעד ב-Pub/Sub
תוכלו ליהנות מהיתרונות של יכולת ההתאמה והמהימנות של התשתית של Google Cloud, שמבטיחה שצינורות עיבוד הנתונים יוכלו להתמודד עם נפחי נתונים גדלים ולשמור על זמינות גבוהה.
אפשר להעביר את הנטל התפעולי של ניהול התשתית של Kafka Connect אלGoogle Cloud.
אפשר לעקוב אחרי אשכולות Kafka Connect ולנהל אותם באמצעות כלי הניטור והרישום ביומן של Google Cloud.
מידע נוסף על Kafka Connect זמין במאמר סקירה כללית של Kafka Connect.
שימוש ב-Dataflow
שירות עיבוד הנתונים ללא שרת שלGoogle Cloudמציע שילוב של נתונים בזמן אמת ובאצווה ללא שרת. אפשר להשתמש ב-Dataflow כדי להעביר נתוני Kafka ליעדים שונים, כמו מערכי נתונים ב-BigQuery או קטגוריות של Cloud Storage. אפשר לפרוס צינורות עיבוד נתונים של Dataflow באמצעות תבנית Dataflow או לפרוס צינור עיבוד נתונים של Apache Beam. בוחרים את פריסת Dataflow בהתאם לגורמים הבאים:
כדי לפרוס בצורה פשוטה ומהירה יותר, במיוחד למשימות נפוצות של שילוב נתונים, אפשר לבחור תבניות מוכנות מראש של Dataflow שאפשר לפרוס ישירות מהמסוף.
כדי לקבל גמישות ושליטה מקסימליות, וכדי לטפל בתרחישי שימוש מורכבים שדורשים לוגיקה מותאמת אישית, כדאי לבחור בצינור (pipeline) של Apache Beam.
תבניות מובנות
תבניות מובנות של Dataflow הן צינורות עיבוד נתונים מוגדרים מראש של Apache Beam שאפשר לפרוס באמצעות אשף משימות קל לשימוש שלא דורש קוד. Dataflow מספק כמה תבניות Dataflow לייצוא נתוני Kafka אל Google Cloud.
צינורות נתונים מותאמים אישית של Apache Beam
יכול להיות שהתבניות של Dataflow שמוסברות בקטע הקודם לא יתאימו לכל הדרישות שלכם. לדוגמה, יכול להיות שתצטרכו לשלב את נתוני Kafka עם מקור או יעד שלא נתמכים בתבניות האלה. יכול להיות שתצטרכו גם לבצע טרנספורמציות, נורמליזציות או מוטציות ברשומות.
במקרים כאלה, אפשר להשתמש ב-Apache Beam SDK כדי ליצור צינורות עיבוד נתונים שאפשר להריץ ב-Dataflow.
למידע על מודל התכנות של Apache Beam, כולל מושגים מרכזיים כמו צינורות עיבוד נתונים, מערכי נתונים מורכבים (PCollections), טרנספורמציות ו-Runners, אפשר לעיין במאמר מודל התכנות של Apache Beam.
לקבלת משאבים שיעזרו לכם להתחיל לתכנת ב-Apache Beam, כולל הוראות להתקנת ה-SDK, מדריכי תכנות וסביבות אינטראקטיביות, תוכלו לעיין במאמר שימוש ב-Apache Beam ליצירת צינורות עיבוד נתונים. במסמך יש גם קישורים לעיצוב, ליצירה ולבדיקה של צינור עיבוד הנתונים, וגם דוגמאות לצינורות עיבוד נתונים בסטרימינג.
אם אתם צריכים לכתוב סנכרון שינויים בזרמי נתונים (סימון נתונים שהשתנו (CDC)) ל-Kafka, מומלץ להשתמש ברכיבים הבאים כחלק מפייפליין Dataflow:
DebeziumIO למסדי נתונים רלציוניים כמו Cloud SQL, MySQL, Postgres ושרת SQL.
Spanner Change Streams ל-Spanner
Bigtable Change Streams ל-Bigtable
Dataflow מספק כמה משאבים לשימוש ב-Kafka עם צינור עיבוד הנתונים של Dataflow:
בחירה בין Kafka Connect לבין Dataflow
כשמעבירים נתונים בין אשכולות Kafka, במיוחד אל שירות מנוהל ל-Apache Kafka, בדרך כלל Kafka Connect הוא הפתרון המומלץ. MirrorMaker 2.0, שהוא חלק מ-Kafka Connect, מתאים למשימות כמו העברת אשכולות, גיבוי, תוכנית התאוששות מאסון (DR) או טרנספורמציות בסיסיות. Kafka Connect תומך בטרנספורמציות של רשומות בכל פעם לשינויים בסיסיים לכל הודעה.
אם אתם צריכים להעביר נפח גדול של נתונים שדורש טרנספורמציות מורכבות, כדאי להשתמש ב-Dataflow. היתרון של Dataflow הוא היכולת שלו לבצע פעולות מורכבות שמבוססות על זרם, כולל ניקוי נתונים, העשרה וצבירה, לפני שהנתונים מגיעים לאשכול היעד של השירות המנוהל ל-Apache Kafka. Dataflow מאפשרת לצרף כמה זרמי נתונים עם לוגיקה מתקדמת של חלונות ויישור, שהיא חיונית לצורך קורלציה וצבירה של נתונים מורכבים. היכולת הזו מבדילה בין Dataflow לבין Kafka Connect, שמוגבלת לשינויים בסיסיים בכל הודעה.
שימוש ב-Managed Service for Apache Spark לצינורות Spark
שירות שמנוהל במלואו לעומסי עבודה של Apache Spark ו-Hadoop מתאים במיוחד אם יש לכם צינורות עיבוד נתונים קיימים של Spark. משתמשי Apache Spark יכולים לחבר פריסות Spark קיימות לשירות מנוהל ל-Apache Kafka באמצעות Managed Service for Apache Spark. Managed Service for Apache Spark הוא שירות מנוהל במלואו של Google Cloud לצינורות Spark, והוא כולל כלים לניהול מחזור החיים של אשכולות. לדוגמה, אם יש לכם אפליקציית Spark שמבצעת עיבוד של נתונים בסטרימינג מ-Kafka ואתם רוצים להעביר את האפליקציה הזו אל Google Cloud, Managed Service for Apache Spark יהיה בחירה מתאימה.
ל-Spark Streaming ול-Kafka, Apache Spark מספק מדריך לשילוב. כדי לעזור לכם לפרוס תהליכי עבודה נפוצים של Kafka, Managed Service for Apache Spark מספק מספר תבניות קוד פתוח.