1、设定Mysql数据库支持binlog
修改/etc/my.conf文件,在配置文件[mysqld]下增加如下配置
server-id=123
log-bin=mysql-bin
binlog_format=ROW
注意:MySQL Binlog支持多种数据更新格式包括Row、Statement和mix(Row和Statement的混合),这里仅仅建议使用Row模式,因为该模式是StreamSets的推荐模式。
修改完,记得重启mysql服务
特别讨厌Streamset这点,为啥就不集成下呢,哈哈。
安装Mysql的Jdbc驱动以及BinaryLog驱动:
驱动下载 : https://cdn.mysql.com//Downloads/Connector-J/mysql-connector-java-8.0.22.zip
定位到安装目录: /opt/streamsets-datacollector/streamsets-libs,
找到两个目录:streamsets-datacollector-jdbc-lib 和 streamsets-datacollector-mysql-binlog-lib,分别拷贝mysql的jdbc驱动到这两个目录。
重启服务StreamSet。
3、绘制流程

mysql 采集的信息格式如下:

各个字段解析如下:

3.1 配置参数
小伙伴们,还记得参数怎么设置吗?
在全局界面下,看下面的选项框,找到参数列。

为此管道设置了以下参数:
| 参数 | 描述 |
|---|---|
| mysql_hostname | MySQL服务器主机名。 |
| mysql_port | MySQL服务器端口。 |
| mysql_serverid | 原始服务器用于连接到主MySQL服务器的复制服务器ID。复制复制主机和所有其他复制从属服务器的服务器ID必须唯一。当为GTID启用MySQL服务器数据库时,服务器ID是可选的。 |
| mysql_username | MySQL用户名。用户必须具有以下MySQL特权:复制客户、复制从站 |
| mysql_password | MySQL密码。提示: 为了保护敏感信息,例如用户名和密码,可以使用运行时资源或凭据存储。 |
| snowflake_account | 雪花帐户名称。 |
| snowflake_user | 雪花用户名。 |
| snowflake_password | 雪花密码。 |
| snowflake_warehouse | 雪花仓库。 |
| snowflake_database | 雪花数据库。 |
| snowflake_schema | 雪花模式。 |
| snowflake_stage_name | 用于暂存数据的Snowflake暂存器的名称。除非使用Snowflake内部用户阶段,否则您将此阶段创建为Snowflake前提任务的一部分。要使用Snowflake内部用户界面,请输入波浪号(~)。 |
3.2、 怎么使用参数
在配置里我们可以直接使用参数,如下图所示。

${} 就是引用参数的常规写法。
3.3 对删除单独处理
因为删除操作的源数据存储位置是在 /OldData里,因此需要单独处理,这里先增加条件判断。

3.4、 删除的处理方式
如果Mysql 数据删除,则数据会保存在 /OldData节点,因此增加重命名组件进行处理。

4、运行例程,修改数据
我们运行这个管道,然后再mysql内修改数据,看看变化。ok,very good!

结语
StreamSets真的是越来越好用了!哈哈,也许我比较熟,之前觉得有点别扭。
本文介绍了如何使用StreamSets将Mysql数据库通过binlog同步到Snowflake,包括修改Mysql配置启用binlog,安装Jdbc和BinaryLog驱动,配置和理解流程中的参数,处理删除操作,以及实际运行和验证数据同步效果。
1万+

被折叠的 条评论
为什么被折叠?



