flink sql-client sqlserver实践

463 阅读1分钟

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;