• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

MysqlToPhoenixFlink: canal采集binlog入kafka,flink实时处理数据并sink到phoenix中 ...

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

MysqlToPhoenixFlink

开源软件地址:

https://gitee.com/suntyu/MysqlToPhoenix

开源软件介绍:

MySQL实时同步数据到Phoenix


Canal——>Kafka——>Flink——>Phoenix

打包

mvn clean package -DskipTests

程序运行

./bin/flink run -d ./runJar/mysqlToPhoenix.jar --job ./jobSetting.json

job配置

{  "sink": {    "mode": "phoenix",    "phoenixTable": "phoenixTableName",    "phoenixDriver": "org.apache.phoenix.jdbc.PhoenixDriver",    "phoenixUrl": "jdbc:phoenix:xxx,xxx,xxx:2181:/hbase"  },  "parallelism": 3,  "taskName": "mysqlToPhoenixTask",  "source": {    "mode": "kafka",    "partitionParallel": 3,    "mysqlTable": "mysqlTableName",    "server": "172.16.1.90:9092",    "mysqlPk": "id",    "offsetFlag":"latest"    "partitionOffsets": [      1111111,      2222222,      3333333    ],    "topic": "topicName"  }}

其中partitionOffsets有的话,按照partition0-n设置offset;没有的话,检查offsetFlag是否存在,存在按照offsetFlag消费;否则自动从最新的数据开始消费


需要关注的问题

  • 大量历史数据在MySQL库查询慢,迁移Phoenix中查询,性能提升显著
  • Phoenix中的数据类型与MySQL不完全一致,需要转存合适类型,比如bit在Phoenix中使用tinyint存储
  • Phoenix对接了PrestoSql,对于Phoenix中的时间戳没有支持,改为了bigint存储
  • 同步过程中,处理数据为null问题
  • PhoenixSink中,处理表数据类型与Flink-stream中具体数据列的匹配及转化问题

功能

  • Canal数据格式FlatMessage,Mysql的元数据类型,Phoenix元数据类型三者的数据及类型自动映射,自动填充NULL数据
  • 只处理DML,以后增加DDL
  • 任意表的同步通用方案,

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap