studio1.2以上版本(包含1.2)Canal+TDT数据同步

  其他常见问题
内容纲要

概要描述


背景介绍:

canal从1.2开始服务化,有canal-server/canal-client两个角色。

  • canal-server:用于解析数据源的日志,源数据可以试kundb/mysql。
  • canal-client:用于处理SYNC文件到目标端,该目标可以试hdfs/kundb。

详细说明


环境准备:

  • Transporter 1.2
  • mysql 5.7

1. 部署canal

首先canal本身具有HA功能,所以在manager上部署canal角色的时候,选择部署多个canal-server/canal-client。如下图:

file

安装成功后的效果如下:
file

进入tdt界面,可以看到一栏canal管理,具体如下图,如果canal 服务不安装,这里canal管理页面启动task不可用

file

2. 创建canal任务–源数据为Mysql,目标端为hdfs

2.1 源端配置

  • 任务名称:自定义canal服务名称
  • 组别:如果没有可选组别,第一次需要选择新建的组别
  • 添加Mysql地址:添加自己需要解析的源端数据库的地址,格式ip:port
  • 用户名:数据库的登录用户名
  • 密码:数据库的登录密码
  • 测试连接:上述的数据库的所有的内容填好,即可使用连接测试,作为参考验证当前连接是否可用。

可以见如下测试案例:
file

高级设置是为了数据源为kundb的设置,详细配置见kundb篇。

2.2 源端库表选择

可以选择某个库中的某些表,也可以选择整个库,也可以选择多个库,这里我们对单张表进行测试,如下图
file

除了以上的表格提示的功能,其他正则表达式已经过滤等功能均可用,具体使用方法可以详解文档组提供的操作手册。本文只提供基本的操作方法。

2.3 目标端配置

file

  • HDFS连接:【可以选择已有的链接】,【可以选择新建连接,新建连接的方法,详见连接操作手册】,【可以编辑现有的链接】。
  • 位置:同步的数据日志最终放到hdfs的位置,取决于当前选择的hdfs的路径。
  • 解析文件生成频率:canal server解析文件的频率,当前有两个维度取决当前canal server解析速度。
    【1】文件数量:当前解析的文件内容的数量已经达到当前的数据,会触发canal-client将本地文件put到hdfs上。
    【2】文件存活时间:当前解析的文件在本地文件存储的时间,到达当前的设置时间,client会将本地文件put到hdfs上。—

注:当前支持最少的时间是60s(可以大于60s),即默认值,即便修改为40s,当前client也会按照60s的周期put数据。

2.4 规则映射

file
映射规则目前包括,

  • 去除库表名前后缀,
  • 自定义映射规则,
  • 一一映射规则。

本文不做其他展开,详细的使用方法详见官方的操作手册。

2.5 结果

file
点击确定,就会跳到canal的管理界面,当前展示的是创建canal任务的名称,组别,创建人,发布状态,运行状态,目标端。
名称,组别,创建人,目标端,均是在用户创建canal任务填写的内容的展示。

发布状态,运行状态:需要上线canal的任务才会开始解析数据源的数据。选择发布之后,canal服务的当运行装变成运行,表示canal任务已经启动,如果有问题,需要后台查看canal日志,具体位置在canal部署所在节点的/var/log/canal-server/**

2.6 数据后台展示结果:

本地文件展示:
file
在本地的数据目录(参考transporter页面canal.client.local.data.store参数配置,一般默认为/var/data/transporter{X}/canal-client)会新建一个canal task开头的文件夹,一般都是${canal_task_name}_adapter。如上所示canaltask_adapter;

如果监测到源数据有改动,会在adapter文件下面创建一个文件,名字为 ${database_name}-${table_name}-${canal_task_name}_adapter-writing_file。
即如上所示的default-student_target-canaltask_adapter-writing_file

hdfs文件展示:
file
在hdfs上会在创建canal任务的选择hdfs的路径下面创建选择的数据库的名字,例如本文选择的default数据库。

在两个数据库下面会创建当前有变化的表的文件夹,文件夹为表名。如student_target。

当前表名会有当前已完成解析的文件,最终以.tdt这样子的文件存在。

这篇文章对您有帮助吗?

平均评分 5 / 5. 次数: 1

尚无评价,您可以第一个评哦!

非常抱歉,这篇文章对您没有帮助.

烦请您告诉我们您的建议与意见,以便我们改进,谢谢您。