flink sql-client sqlserver实践
1.数据库开启cdc
EXECUTE sys.sp_cdc_enable_db;
没有权限则执行sqlserver cdc EXEC sp_changedbowner 'sa'
EXEC master.dbo.xp_servicecontrol N'QUERYSTATE', N'SQLSERVERAGENT'
查询是否开启成功
SELECT is_cdc_enabled,CASE WHEN is_cdc_enabled=0 THEN 'CDC功能禁用' ELSE 'CDC功能启用' END 描述 FROM sys.databases WHERE NAME = 'Analysis'
2.添加依赖包
在flink lib目录下添加
flink-sql-connector-sqlserver-cdc-2.4-SNAPSHOT.jar
连接sqlserver 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接
以上错误解决方案:
jdbc10.2版本后会添加ssl验证,官方的jar会提示没有证书的错误。简单处理的话,需要自己构建一个跳过验证的包,在源码中添加 ;trustServerCertificate=true;encrypt=false
3.添加任务
-- register a SqlServer table 'orders' in Flink SQL
CREATE TABLE orders (
id INT,
order_date DATE,
purchaser INT,
quantity INT,
product_id INT,
PRIMARY KEY (id) NOT ENFORCED
) WITH (
'connector' = 'sqlserver-cdc',
'hostname' = 'localhost',
'port' = '1433',
'username' = 'sa',
'password' = 'Password!',
'database-name' = 'inventory',
'schema-name' = 'dbo',
'table-name' = 'orders'
);
-- read snapshot and binlogs from orders table
SELECT * FROM orders;