我正在尝试使用 Debezium 服务器(不含 Kafka 的独立版)将数据(增量)从 GCP Cloud SQL Server 加载到 PubSub,然后加载到 BigQuery。
我正在我的笔记本电脑上运行测试,看看这是否可行。我在 docker 上设置了 Debezium 服务器
这是我的 docker-compose.yaml
如果我删除 SQL Server,它就可以工作(debezium 服务器在 docker 上启动),我是否走在正确的轨道上? 我应该在这里定义源(GCP SQL Server)吗?
sqlserver:
image: mcr.microsoft.com/mssql/server:2019-latest
container_name:sqlserver
ports:
- 1433:1433
environment:
- ACCEPT_EULA=Y
- MSSQL_PID=Standard
- SA_PASSWORD=Password!
- MSSQL_AGENT_ENABLED=true
services:
debezium-server:
image: quay.io/debezium/server
container_name: debezium-server
environment:
GOOGLE_APPLICATION_CREDENTIALS: /tmp/credentials/service-account.json
ports:
- "8080:8080"
volumes:
- ./demo-sa.json:/tmp/credentials/service-account.json
- ./conf:/debezium/conf
depends_on:
- sqlserver
restart: "always"
table.exclude.list 和 schema.exclude.list 应按如下方式使用:
schema.include.list=dbo 表.include.list=dbo.table1
此外,请确保您已为您包含的表打开 CDC 作业。 SQL Server 中有一个名为“cdc”的模式,您应该在其中找到一个名为 dbo_table1_CT 的表。
为了更直接的生产和维护,您可以考虑利用 Debezium Engine 来避免一些中间层,例如 pub/sub - 编写一个 java 应用程序并使用 BigQuery API 将 Debezium 更改事件直接插入 BigQuery。您可以在此处找到示例实现https://medium.com/@ziangjia/stream-cdc-event-to-databricks-in-real-time-with-debezium-7f46193e053e