Debezium היא פלטפורמה מבוזרת בקוד פתוח לסימון נתונים שהשתנו (CDC). המחבר Debezium ל-Spanner מתעד שינויים ברמת השורה מזרמי סנכרון שינויים בזרמי נתונים של Spanner ומעביר אותם לנושאים של Apache Kafka.
מחבר Debezium פועל עם Spanner Omni באותו אופן שבו הוא פועל עם Spanner. במסמך הזה מוסבר איך להגדיר את המחבר של Debezium כדי להתחבר ל-Spanner Omni.
חיבורי Spanner Omni Debezium תומכים בשלושה סוגי אבטחה: טקסט רגיל, TLS ו-TLS הדדי (mTLS).
לפני שמתחילים
כדי להשתמש במחבר Debezium עם Spanner Omni, צריך לוודא שמתקיימות הדרישות המוקדמות הבאות:
- מורידים ומתקינים את התוסף Debezium connector for Spanner בגרסה 3.7.0 ואילך בספריית התוספים של Kafka Connect.
- מגדירים את Apache Kafka ואת Kafka Connect. מידע נוסף זמין במדריך ההתקנה של Debezium.
- יוצרים מסד נתונים וזרם שינויים ב-Spanner Omni. מידע נוסף זמין במאמר Change streams במסמכי Spanner.
הגדרת המחבר של Debezium
כדי לחבר את מחבר Debezium ל-Spanner Omni, צריך לציין את המאפיינים הבאים בהגדרת המחבר של Kafka Connect:
-
connector.class: מוגדר ל-io.debezium.connector.spanner.SpannerConnector. -
spanner.type: מוגדר ל-OMNI. אם מגדירים את האפשרותOMNI, המאפייניםgcp.spanner.project.idו-gcp.spanner.instance.idמוגדרים אוטומטית ל-defaultולא נדרשים בהגדרה. -
gcp.spanner.host: נקודת הקצה של Spanner Omni, לדוגמה,http://localhost:15000לטקסט פשוט אוhttps://localhost:15000ל-TLS ול-mTLS. -
gcp.spanner.database.id: המזהה של מסד הנתונים של Spanner Omni. -
gcp.spanner.change-stream.name: השם של זרם השינויים שרוצים לתעד. -
spanner.omni.use.plaintext: אופציונלי. הערך שמוגדר הואtrueכדי ליצור חיבור של טקסט פשוט. -
spanner.omni.client.cert.path: אופציונלי. הנתיב לקובץ אישור הלקוח לחיבורי mTLS. -
spanner.omni.client.key.path: אופציונלי. הנתיב לקובץ המפתח הפרטי של הלקוח בפורמט PKCS#8 לחיבורי mTLS.
יצירת חיבור
בדוגמאות הבאות מוסבר איך להגדיר את מחבר Debezium לכל הגדרת אבטחה נתמכת:
טקסט פשוט
כדי ליצור חיבור טקסט פשוט, מגדירים את spanner.type ל-OMNI, מציינים את נקודת הקצה באמצעות http:// ומגדירים את spanner.omni.use.plaintext ל-true:
{
"name": "CONNECTOR_NAME",
"config": {
"connector.class": "io.debezium.connector.spanner.SpannerConnector",
"tasks.max": "1",
"spanner.type": "OMNI",
"gcp.spanner.host": "http://ENDPOINT",
"gcp.spanner.database.id": "DATABASE_ID",
"gcp.spanner.change-stream.name": "CHANGE_STREAM_NAME",
"spanner.omni.use.plaintext": "true"
}
}
מחליפים את מה שכתוב בשדות הבאים:
CONNECTOR_NAME: השם של מופע מחבר Debezium, לדוגמה,spanner-omni-connector.
ENDPOINT: נקודת הקצה של מכונת Spanner Omni, לדוגמה,localhost:15000.
DATABASE_ID: המזהה של מסד הנתונים של Spanner Omni, לדוגמה,test-db.
CHANGE_STREAM_NAME: השם של מקור הנתונים לשינויים במסד הנתונים, לדוגמה,my_change_stream.
TLS
כדי ליצור חיבור TLS, מוסיפים את אישור ה-CA של Spanner Omni למאגר האישורים המהימנים של Java, כמו שמתואר במאמר הגדרת מאגר האישורים המהימנים של Java. מגדירים את spanner.type ל-OMNI ומציינים את נקודת הקצה באמצעות https://:
{
"name": "CONNECTOR_NAME",
"config": {
"connector.class": "io.debezium.connector.spanner.SpannerConnector",
"tasks.max": "1",
"spanner.type": "OMNI",
"gcp.spanner.host": "https://ENDPOINT",
"gcp.spanner.database.id": "DATABASE_ID",
"gcp.spanner.change-stream.name": "CHANGE_STREAM_NAME"
}
}
מחליפים את מה שכתוב בשדות הבאים:
CONNECTOR_NAME: השם של מופע מחבר Debezium, לדוגמה,spanner-omni-connector.
ENDPOINT: נקודת הקצה של מכונת Spanner Omni, לדוגמה,localhost:15000.
DATABASE_ID: המזהה של מסד הנתונים של Spanner Omni, לדוגמה,test-db.
CHANGE_STREAM_NAME: השם של מקור הנתונים לשינויים במסד הנתונים, לדוגמה,my_change_stream.
mTLS
כדי ליצור חיבור mTLS, מוסיפים את אישור ה-CA של Spanner Omni למאגר האישורים המהימנים של Java, כמו שמתואר במאמר הגדרת מאגר האישורים המהימנים של Java. מגדירים את spanner.type ל-OMNI, מציינים את נקודת הקצה באמצעות https:// ומציינים את הנתיבים לאישור הלקוח ולמפתח הפרטי של הלקוח. המפתח הפרטי של הלקוח צריך להיות בפורמט PKCS#8 שתואם ל-Java, כמו שמתואר בהוראות ל-mTLS ב-Java SDK:
{
"name": "CONNECTOR_NAME",
"config": {
"connector.class": "io.debezium.connector.spanner.SpannerConnector",
"tasks.max": "1",
"spanner.type": "OMNI",
"gcp.spanner.host": "https://ENDPOINT",
"gcp.spanner.database.id": "DATABASE_ID",
"gcp.spanner.change-stream.name": "CHANGE_STREAM_NAME",
"spanner.omni.client.cert.path": "PATH_TO_CLIENT_CERT",
"spanner.omni.client.key.path": "PATH_TO_CLIENT_KEY"
}
}
מחליפים את מה שכתוב בשדות הבאים:
CONNECTOR_NAME: השם של מופע מחבר Debezium, לדוגמה,spanner-omni-connector.
ENDPOINT: נקודת הקצה של מכונת Spanner Omni, לדוגמה,localhost:15000.
DATABASE_ID: המזהה של מסד הנתונים של Spanner Omni, לדוגמה,test-db.
CHANGE_STREAM_NAME: השם של מקור הנתונים לשינויים במסד הנתונים, לדוגמה,my_change_stream.
PATH_TO_CLIENT_CERT: הנתיב לקובץ אישור הלקוח.
PATH_TO_CLIENT_KEY: הנתיב לקובץ המפתח הפרטי של הלקוח בפורמט PKCS#8.