FlinkCDC同步Sqlserver、Oracle数据到iceberg

  • F’lin’k’CDC

CDC的核心思想是:监测并捕获数据库的变动(包括数据 或 数据表的插入INSERT、更新UPDATE、删除DELETE等),将这些变更按发生的顺序完整记录下来,写入到消息中间件中以供其他服务进行订阅及消费

在这里插入图片描述
在这里插入图片描述

环境约束:

  • Flink1.14.5
  • SqlServer和Oracle均开启CDC

一、开启Flink服务

start-cluster.sh

二、开启Flink客户端

 sql-client.sh

三、创建source表(注意:先不要执行"use catalog")

#数据源为SqlServer:
CREATE TABLE T_CP_SUB_FACTORY(
    SUB_FACTORY_ID STRING ,
    SUB_FACTORY_CODE STRING,
    SUB_FACTORY_NAME STRING,
    COMPANY_ID STRING,
    REMARK STRING,
    ENABLED INT,
    IS_DELETED INT,
    SORT_NUM INT,
    CRT_USER_ID STRING,
    CRT_USER_NAME STRING,
    MNT_USER_ID STRING,
    MNT_USER_NAME STRING,
    CRT_DATE STRING,
    MNT_DATE STRING,
    COMPANY_CODE STRING,
    PRIMARY KEY (SUB_FACTORY_ID) NOT ENFORCED
)WITH (
'connector' = 'sqlserver-cdc',
'hostname' = 'xx.xxx.xxx.xxx',
'port' = '1433',
'username' = '用户名',
'password' = '密码',
'debezium.snapshot.mode'='initial',
'database-name' = 'IOPP_SYSM',
'schema-name'= 'dbo',
'table-name' = 'T_CP_SUB_FACTORY'
);

#数据源为Oracle
CREATE TABLE T_CP_SUB_FACTORY(
    SUB_FACTORY_ID STRING ,
    SUB_FACTORY_CODE STRING,
    SUB_FACTORY_NAME STRING,
    COMPANY_ID STRING,
    REMARK STRING,
    ENABLED INT,
    IS_DELETED INT,
    SORT_NUM INT,
    CRT_USER_ID STRING,
    CRT_USER_NAME STRING,
    MNT_USER_ID STRING,
    MNT_USER_NAME STRING,
    CRT_DATE STRING,
    MNT_DATE STRING,
    COMPANY_CODE STRING,
    PRIMARY KEY (SUB_FACTORY_ID) NOT ENFORCED
)WITH (
'connector' = 'oracle-cdc',
'hostname' = 'xx.xxx.xxx.xxx',
'port' = '1521',
'username' = '用户名',
'password' = '密码',
'database-name' = 'IOPP_SYSM',
'schema-name'= 'DISP_HGSJPT',
'table-name' = 'T_CP_SUB_FACTORY',
'debezium.database.tablename.case.insensitive'='false',
'scan.startup.mode' = 'initial'
);

四、验证数据

select * from T_CP_SUB_FACTORY;

五、创建iceberg表

CREATE TABLE ODS_T_CP_SUB_FACTORY(
    SUB_FACTORY_ID STRING ,
    SUB_FACTORY_CODE STRING,
    SUB_FACTORY_NAME STRING,
    COMPANY_ID STRING,
    REMARK STRING,
    ENABLED INT,
    IS_DELETED INT,
    SORT_NUM INT,
    CRT_USER_ID STRING,
    CRT_USER_NAME STRING,
    MNT_USER_ID STRING,
    MNT_USER_NAME STRING,
    CRT_DATE STRING,
    MNT_DATE STRING,
    COMPANY_CODE STRING,
    PRIMARY KEY (SUB_FACTORY_ID) NOT ENFORCED
)WITH (
  'connector'='iceberg',
 'catalog-name'='hive_catalog',  
 'catalog-type'='hive', 
 'catalog-database'='ODS_TEST',
 'warehouse'='hdfs://xx.xxx.xxx.xxx:8020/user/hive/warehouse/hive_catalog', 
 'format-version'='2' 
);

六、同步数据

insert into ODS_T_CP_SUB_FACTORY select * from T_CP_SUB_FACTORY;
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值