【StreamSet】ETL之StreamSet学习之旅十一Mysql同步到Snowflake

本文介绍了如何使用StreamSets将Mysql数据库通过binlog同步到Snowflake,包括修改Mysql配置启用binlog,安装Jdbc和BinaryLog驱动,配置和理解流程中的参数,处理删除操作,以及实际运行和验证数据同步效果。
摘要由CSDN通过智能技术生成

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_hostnameMySQL服务器主机名。
mysql_portMySQL服务器端口。
mysql_serverid原始服务器用于连接到主MySQL服务器的复制服务器ID。复制复制主机和所有其他复制从属服务器的服务器ID必须唯一。当为GTID启用MySQL服务器数据库时,服务器ID是可选的。
mysql_usernameMySQL用户名。用户必须具有以下MySQL特权:复制客户、复制从站
mysql_passwordMySQL密码。提示: 为了保护敏感信息,例如用户名和密码,可以使用运行时资源或凭据存储。
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真的是越来越好用了!哈哈,也许我比较熟,之前觉得有点别扭。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值