flinkCDC+iceberg(hadoop catalog) 同步mysql数据库数据
flink可以实现hadoop catalog 和hive catalog 。
前者映射hdfs地址,实现数据存储
后者映射hive表地址,用于有关hive的数据处理及其他项目实操。
1. 环境准备
官网:https://iceberg.apache.org/
1. hadoop 一定要 分布式集群
2.需要flink-connector-mysql-cdc-1.4.0.jar 即mysql-cdc连接器放到flink 的 lib下,为了连接数据库
3. 需要将iceberg 0.13.1的jar包放在${FLINK_HOME}/lib下
4. 开启mysql的binlog日志,mysql需要开启binlog日志,需要修改/etc/my.cnf文件,加上如下两段代码。
server-id=1
log-bin=mysql-bin
本文版本:版本 flink 1.13.6+iceberg 0.13.1
2.启动flink环境
#启动flink环境
${FLINK_HOME}/bin/start-cluster.sh#启动flinksql
${FLINK_HOME}/bin/sql-client.sh
3.放纵时刻
#流操作
SET execution.runtime-mode=streaming;##手动设置checkpoint时间
set execution.checkpointing.interval=5sec;####数据库连接
CREATE TABLE mysql_binlog(name STRING ,cust_id INT,age INT,PRIMARY KEY (cust_id) NOT ENFORCED
)WITH (
'connector' = 'mysql-cdc',
'hostname' = 'hadoop01',
'port' = '3306',
'username' = 'root',
'password' = 'pwd',
'server-time-zone' = 'Asia/Shanghai',
'debezium.snapshot.mode'='initial',
'database-name' = 'FlinkCDC',
'table-name' = 'person'
);#检查数据库连接数据是否正常
select * from mysql_binlog;#创建iceberg表
CREATE TABLE sample(name STRING ,cust_id INT,age INT,PRIMARY KEY (cust_id) NOT ENFORCED
)WITH (
'connector'='iceberg',
'catalog-name'='iceberg_catalog', --catalog名称
'catalog-type'='hadoop', --创建的为hadoop的catalog
'warehouse'='hdfs://hadoop01:8020/iceberg/test2', --指定数据位置
'format-version'='2' --版本 2 支持带主键的表upsert但是仍然无法流式查询。版本 1 不支持带主键的表upsert
);##导入数据到iceberg
insert into sample select * from mysql_binlog;##检查数据是否导入成功
select * from sample;
丰富知识:
iceberg使用代码合并小文件后如果不开启此配置,历史文件同样不会删除,开启后就会实现合并后清除历史文件
启用提交后写入元数据删除
write.metadata.delete-after-commit.enabled=true
配置保留历史数量(比如配置为5,则元数据和数据都保留5份历史数据和1份最新数据)
write.metadata.previous-versions-max=5
历史文件保留最大值为5,metadata和data里面文件数则始终保持为6个
flinkCDC+iceberg(hadoop catalog) 同步mysql数据库数据相关推荐
- Elasticsearch安装及自动同步mysql数据库数据
2019独角兽企业重金招聘Python工程师标准>>> Elasticsearch安装及自动同步mysql数据库数据 1 环境: CentOS 6.4 x64 ...
- linux的mysql主主_Linux下指定mysql数据库数据配置主主同步的实例
一. 概念:① 数据库同步 (主从同步 --- 主数据库写的同时 往从服务器写数据) ② 数据库同步 (主主同步 --- 两台数据库服务器互相写数据) 二. 举例 主主数据库同步服务器配置 数据库 ...
- NodeJS同步MySQL上游数据到ElasticSearch数据库中
NodeJS同步MySQL上游数据到ElasticSearch数据库中 项目地址: https://github.com/Miazzy/xdata-elasticsearchs-service.git ...
- mysql 定时同步数据_如何定时备份Mysql数据库数据?
这是为小白定制的专属<Linux轻松上手>系列.涵盖了linux常用指令.shell脚本等核心内容,浅显易懂,配合实操案例快速上手.目标就是帮助大家轻松上手linux,少走弯路! 上一篇如 ...
- 使用Logstash同步MySQL数据库信息到ElasticSearch
点击蓝色"程序猿DD"关注我哟 加个"星标",不忘签到哦 转载自公众号:SpringForAll社区 关注我,回复口令获取可获取独家整理的学习资料: - 001 ...
- 二、同步mysql数据库
原地址:http://www.cnblogs.com/zhuwenjoyce/p/6512378.html 尚未成功启动solr的,请参考我的另一篇文章:http://www.cnblogs.com/ ...
- linux mysql 数据文件,Linux下修改MySQL数据库数据文件路径的步骤
使用rpm安装方式安装完MySQL数据库后,数据文件的默认路径为/var/lib/mysql,然而根目录并不适合用于存储数据文件. 原路径:/var/lib/mysql 目标路径:/home/mysq ...
- shell如何控制文件读写不同时_如何定时备份Mysql数据库数据?
这是为小白定制的专属<Linux轻松上手>系列.涵盖了linux常用指令.shell脚本等核心内容,浅显易懂,配合实操案例快速上手.目标就是帮助大家轻松上手linux,少走弯路! 上一篇如 ...
- mysql语法错误文件_使用logstash同步MySQL的数据时,在jdbc查询sql文件时报sql语法错误,sql文件是navicat生成的...
使用logstash同步MySQL的数据时,在jdbc查询sql文件时报sql语法错误,并且错误总是near在第1行,sql文件的编码是utf8mb64 ,不知道是否是编码问题 logstash配置j ...
最新文章
- 转载 为什么不要 lock(this) ? lock object 并是readonly
- 把mysql部署在局域网的服务器上,远程连接mysql时报错误代码1130 Host ‘***.***.***.***’is not allowed to connect to this MySQL
- echarts x和数据对应_echarts 折线图动态x轴及数据
- 树莓派使用STEP1:装系统
- 香肠派对电脑版_香肠派对2020先行服最新内测版(众神降临)-香肠派对2020先行服游戏下载v9.82...
- 批量查进程linux,linux 批量删除进程与查看进程详解
- 数据分析与可视化概述
- LM2596电路中,肖特基二极管得作用!
- 有一个测试微信删除软件叫wool,微信中用发起群聊来测试你有没有被对方删除好友方法图文教程...
- 使用Resnet网络对人脸图像分类识别出男女性别(包含数据集制作+训练+测试)
- MAC地址克隆有什么作用
- 高并发下如何设计秒杀系统?
- Android底层网络防火墙,Android系统中实现网络防火墙的方法
- 人一生要读的100首古诗
- 雨林木风linux如何安装教程,u盘安装linux图解教程m2硬盘怎么装win7系统
- 深入理解Netty编解码、粘包拆包、心跳机制
- dalsa工业相机8k参数_dalsa线阵相机Linea系列2K4K8K
- 2019考研政治【韦林】全程班视频
- 密码学累加器cryptographic accumulator
- Word的常用操作和快捷键