问题反馈、代码提交、文章投稿与社区贡献请移步 Github issue。
Github issue #66 登记企业或组织生产使用,可邀请至企业支持群,获取团队技术支持与其他企业用户的经验分享。


一、前言
Dinky 是一个基于 Apache Flink 的实时计算平台,它提供了一站式的 Flink 任务开发、运维、监控等功能。本教程一步一步的教你如何使用Dinky 运行 Doris FlinkCDCTools 任务实现整库同步 Doris 并自动建表功能。
二、Docker 快速部署 Dinky
h2数据库无需安装,开箱即用,仅适合快速体验,重启后数据消失,如要正式使用,请切换为mysql。
docker run --restart=always -p 8888:8888 \
-v opt/lib:/opt/dinky/customJar/ \
--name dinky \
dinkydocker/dinky-standalone-server:1.1.0-flink1.19
复制
三、快速部署 Doris 与 Mysql 测试环境
Flink CDC为我们提供了可快速部署的docker-compose yaml文件,我们可以很方便的创建一个测试环境出来。
version: '2.1'
services:
doris:
image: yagagagaga/doris-standalone
ports:
- "8030:8030"
- "8040:8040"
- "9030:9030"
mysql:
image: debezium/example-mysql:1.1
ports:
- "3306:3306"
environment:
- MYSQL_ROOT_PASSWORD=123456
- MYSQL_USER=mysqluser
- MYSQL_PASSWORD=mysqlpw
复制
在 docker-compose.yml 所在目录下执行下面的命令来启动本教程需要的组件:
docker-compose up -d
复制
四、准备数据
docker-compose exec mysql mysql -uroot -p123456
复制
-- 创建数据库
CREATE DATABASE app_db;
USE app_db;
-- 创建 orders 表
CREATE TABLE `orders` (
`id` INT NOT NULL,
`price` DECIMAL(10,2) NOT NULL,
PRIMARY KEY (`id`)
);
-- 插入数据
INSERT INTO `orders` (`id`, `price`) VALUES (1, 4.00);
INSERT INTO `orders` (`id`, `price`) VALUES (2, 100.00);
复制
create database app_db;
复制
五、下载 Doris 依赖
本教程使用Flink 1.19环境,请根据你自己环境下载正确依赖版本。
地址:https://repo.maven.apache.org/maven2/org/apache/doris/
六、注册 Flink 集群与 Jar 包
在注册中心,注册你的Flink集群。
七、开始运行
打开Dinky页面,新建Flink Jar任务。(重点!一定要建立 Flink Jar任务,千万不要建立Flink Sql任务)
-- checkpoint设置,不写会出现数据无法写入情况
SET 'execution.checkpointing.interval' = '30s';
EXECUTE JAR WITH (
-- 这里对应的就是我们刚刚在资源上传的Jar包
'uri'='rs:///flink-doris-connector-1.19-24.0.0.jar',
'main-class'='org.apache.doris.flink.tools.cdc.CdcTools',
'args'=' mysql-sync-database
--database app_db
--mysql-conf hostname=192.168.1.68
--mysql-conf port=3306
--mysql-conf username=root
--mysql-conf password=123456
--mysql-conf database-name=app_db
--mysql-conf server-time-zone=UTC
--including-tables "orders"
--sink-conf fenodes=192.168.1.68:8030
--sink-conf username=root
--sink-conf jdbc-url=jdbc:mysql://192.168.1.68:9030
--sink-conf sink.label-prefix=label-2
--table-conf replication_num=1 '
);
复制
八、运行并验证
点击运行提交到Flink集群运行。
交流
欢迎加入 Dinky 社区交流问题与分享经验。
QQ社区群:543709668,申请备注 “ Dinky+企业名+职位”,不写不批。
微信官方群:添加 wenmo_ai ,申请备注“ Dinky+企业名+职位”,不写不批谢谢。

扫描二维码获取
更多精彩
Dinky开源
