由于最近公司有需求,需要将oracle数据实时同步到hdfs和olap数据库,当时想到的是flink cdc来实现,但是每一个同步任务都需要写java程序去实现,所有想写一个工具去做,通过参数的方式来灵活配置采集的数据源。
参数说明
{
"flinkConf":{
"sourceType": "oracle",
"parallelism":1,
"checkpointPath":"hdfs://xxxxx",
"checkpointInterval": 1800000
},
"connect":{
"ip":"IP地址",
"port":1521,
"username":"用户名",
"password":"",
"dbName":"wind11",
"schema":"SCHEMA",
"startupMode":"LATEST_OFFSET",
"specificOffsetFile":"",
"specificOffsetPos":"",
"startupTimestampMillis":""
},
"tasks":[
{
"tableName":"StringValue",
"targetType":"starrocks",
"sourceField":["sField1","sField2","sField3"],
"targetConfig":{
"jdbcUrl":"test",
"loadUrl":"test",
"user":"test",
"password":"",
"dbName":"test",
"tableName":"test"
}
},
{
"tableName":"StringValue",
"targetType":"hdfs",
"sourceField":["sField1","sField2","sField3"],
"targetConfig":{
"targetPath":"hdfs://xxxxx",
"partition":true
}
}
]
}
flinkConf Flink相关的参数配置,包含并发数、 checkpoint周期、checkpoint路径,以及source类型,目前支持oracle 、 mysql和kafka
sourceType数据源类型,支持oracle、mysql、kafka,必填parallelismflink任务并发数,必填checkpointPathcheckpoint路径,选填,默认从flink-conf.yaml读取checkpoint路径配置checkpointIntervalcheckpoint 周期,必填
connect 数据源相关的配置
password是加密后的密文,不能传明文ip数据库服务IP,sourceType等于oracle或mysql时必填port端口,sourceType等于oracle或mysql时必填username用户名,sourceType等于oracle或mysql时必填dbName数据库,sourceType等于oracle或mysql时必填schema只支持oracle数据源,当数据源为oracle时,schema必填startupMode抽取源数据的方式, 可选,默认LATEST_OFFSETLATEST_

本文介绍了基于Flink CDC实现实时数据采集的接口设计,包括Source端、转换函数和Sink端的接口。详细阐述了参数配置,如并发数、checkpoint设置、数据源类型选择以及各种数据源的特定配置。同时,文章讨论了动态类型支持,并提到了SPI机制用于加载Source、Function和Sink的实现类。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



