当前位置: 首页 > news >正文

Dinky教程--Flink CDC pipline整库同步Doris

概述

Dinky 是一个基于 Apache Flink 的实时计算平台,它提供了一站式的 Flink 任务开发、运维、监控等功能。
本教程一步一步的教你如何使用dinky运行CDC pipline任务实现整库同步Doris并自动建表功能。Starrocks同理

原文阅读:【巨人肩膀社区·专栏·分享】Dinky教程--Flink CDC pipline整库同步Doris

项目地址:https://github.com/DataLinkDC/dinky

如果觉得项目不错欢迎前去点下 Star, 感谢您的支持!

前置条件

  1. 已部署好的Dinky
  2. 准备好Flink集群

如果还没有准备好dinky与flink集群,可以参考我以前的文章或官网进行部署

快速部署Doris与Mysql测试环境

Flink CDC为我们提供了可快速部署的docker-compose yaml文件,我们可以很方便的创建一个测试环境出来

如果你mysql与Doris环境都已经具备,那么可以跳过此章节

yaml 复制代码 

version: '2.1'
services:doris:image: yagagagaga/doris-standaloneports:- "8030:8030"- "8040:8040"- "9030:9030"mysql:image: debezium/example-mysql:1.1ports:- "3306:3306"environment:- MYSQL_ROOT_PASSWORD=123456- MYSQL_USER=mysqluser- MYSQL_PASSWORD=mysqlpw

在 docker-compose.yml 所在目录下执行下面的命令来启动本教程需要的组件:

bash 复制代码 

docker-compose up -d

该命令将以 detached 模式自动启动 Docker Compose 配置中定义的所有容器。你可以通过 docker ps 来观察上述的容器是否正常启动了,也可以通过访问http://localhost:8030/ 来查看 Doris 是否运行正常。

准备数据

进入 MySQL 容器

bash 复制代码 

docker-compose exec mysql mysql -uroot -p123456

创建数据库 app_db 和表 orders,products,shipments,并插入数据

sql 复制代码 

 

Doris 暂时不支持自动创建数据库,需要先创建写入表对应的数据库。
进入 Doris Web UI。
http://localhost:8030/
默认的用户名为 root,默认密码为空。
通过 Web UI 创建 app_db 数据库

sql 复制代码 

create database app_db;

image.png

image.png

下载CDC相关依赖

flink-cdc-3.1.0-bin.tar.gz
MySQL pipeline connector 3.1.0
Apache Doris pipeline connector 3.1.0

上述依赖下载完成后,把flink-cdc-pipeline-connector-doris-3.1.0.jar 与 flink-cdc-pipeline-connector-mysql-3.1.0.jar 放到dinky的依赖目录下(dinky/extends 或者 docker部署的customJar下面)

解决CDC依赖冲突问题

如果直接在dinky使用flink-cdc-dist-3.1.0.jar 会有java.lang.NoSuchMethodError: org.apache.calcite.tools.FrameworkConfig.getTraitDefs()Lorg/apache/flink/calcite/shaded/com/google/common/collect/ImmutableList;错误,所以我们需要先处理一下

sh 复制代码 

# 解压 flink-cdc-3.1.0-bin.tar.gz
tar -zxvf flink-cdc-3.1.0-bin.tar.gz       
cd flink-cdc-3.1.0/lib/
# 解压jar文件·
jar -xvf flink-cdc-dist-3.1.0.jar
# 删除冲突包
rm -rf org/apache/calcite
# 重新打包
jar -cvf  flink-cdc-dist-3.1.0-new.jar * 

把新打包的flink-cdc-dist-3.1.0-new.jar文件放到dinky依赖目录下,重启dinky

开始运行

打开dinky页面,新建Flink Sql任务,输入以下代码,注意把相关IP替换成你自己的
Flink集群需要自己提前注册好,选择对应集群

sql 复制代码 

SET 'execution.checkpointing.interval' = '30s';
EXECUTE PIPELINE WITHYAML (
source:type: mysqlhostname: localhostport: 3306username: rootpassword: '123456'tables: app_db.\.*server-id: 5400-5404sink:type: dorisfenodes: localhost:8030username: rootpassword: ''table.create.properties.light_schema_change: truetable.create.properties.replication_num: 1
pipeline:name: Sync MySQL Database to Dorisparallelism: 1
)

image.png

image.png

运行并验证

点击运行提交到Flink集群运行

image.png

前往运维中心查询任务状态,可以看到正常起来了

image.png

去Doris验证数据,可以看到表已经自动建好了,数据也同步过来了

image.png


http://www.mrgr.cn/news/6209.html

相关文章:

  • Clickhouse中bitmap使用指南(ck位图)
  • 【QT从入门helloworld到进阶QT(C++)部署YOLOV5】
  • redis 主从复制方案
  • Python酷库之旅-第三方库Pandas(094)
  • Ollama - Llama3 docker版本安装部署使用
  • 物联网(IoT)设备渗透文章二:智能家居中控系统的渗透与利用
  • clickhouse中使用ReplicatedMergeTree表引擎数据去重问题
  • POSIX线程库
  • 详解MBR分区结构以及GPT分区结构
  • 【Vue】生命周期函数
  • 推荐系统三十六式学习笔记:产品篇36 | 组建推荐团队及工程师的学习路径
  • flutter事件与消息通知
  • 零成本搭建个人 APP 和小程序后台
  • 文字滚动通知功能实现 vue 组件
  • 反射型XSS
  • 【微服务】Nacos配置中心和客户端数据同步模式
  • 【Hot100】LeetCode—94. 二叉树的中序遍历
  • 什么是Redis大key问题?如何解决?
  • mpv播放器在rk3399上配置硬解码
  • 【Windows】深度学习环境部署