Table of contents
Deploy Debezium Case Notifications Kafka Source Connector
- Enable Change Data Capture on NBS_ODSE databases for Case Notification: The query below can be used to enable Change Data Capture. sysadmin permissions are required to run it. The subsequent query can be used to verify configuration.
exec msdb.dbo.rds_cdc_enable_db 'NBS_ODSE'; --Verify change data capture. is_cdc_enabled=1 indicates successful configuration. SELECT name, is_cdc_enabled FROM sys.databases;
- Enable Change Data Capture for select tables in NBS_ODSE: To enable Change Data Capture for ODSE tables, the query below needs to be executed.
exec sys.sp_cdc_enable_table @source_schema = N'dbo',@source_name = N'CN_transportq_out', @role_name = NULL;
- Verify if Change Data Capture is enabled for tables in ODSE.
--View ODSE tables with CDC enabled. USE NBS_ODSE; SELECT name, case when is_tracked_by_cdc = 1 then 'YES' else 'NO' end as is_tracked_by_cdc FROM sys.tables WHERE is_tracked_by_cdc = 1;
- The helm chart for service debezium-case-notification-service-connect should be available under charts/debezium-case-notifications.
- Validate image repository and tag:
image: repository: quay.io/debezium/connect tag: <release-version-tag> e.g v1.0.1
- Configurations for the following should be on hand to update the values.yaml file- NBS_ODSE hostname, username, password and kafka bootstrap server names.
properties: bootstrap_server: "EXAMPLE_MSK_KAFKA_ENDPOINT" sqlserverconnector: config: database.hostname: nbs-db.private-EXAMPLE_DOMAIN, database.port: 1433, database.user: EXAMPLE_DB_USER, database.password: EXAMPLE_DB_USER_PASSWORD, database.dbname: nbs_odse, database.names: nbs_odse, database.server.name: odse, database.history.kafka.bootstrap.servers: EXAMPLE_MSK_KAFKA_ENDPOINT, schema.history.internal.kafka.bootstrap.servers: EXAMPLE_MSK_KAFKA_ENDPOINT Env: name: BOOTSTRAP_SERVERS value: "EXAMPLE_MSK_KAFKA_ENDPOINT"
- Install pod
helm install -f ./debezium-case-notifications/values.yaml debezium-case-notification-service-connect ./debezium-case-notifications/
- Verify if pod is running
kubectl get pods
- Validate service
- This is an internal service with no ingress.
- If the service has any trouble connecting with the database, run this command to reset the ConfigMap.
kubectl delete configmap case-notification-connectb