fivetran cloud使用体验简单分享

前言

fivetran成立于2012年,2021年估值就已达56亿美元,并且并购了HVR。与我们之前讨论过的airbyte不同,fivetran是比较纯粹的走商业,并且有非常完整的商业支持体系。这次我们尝试用fivetran来完成一条MySQL->MySQL的迁移同步链路,了解下其产品设计。

使用

前置准备

建议买AWS的RDS,规格2C4G以上,否则一些预检过不去,比如innodb_buffer_pool_size至少要1G。

用户&权限

相比airbyte只是做了简单的namespace级别的资源共享,fivetran作为老牌厂商,这块做的就细致很多。Team、User、Role三个不同粒度的权限控制。
image.png

其中Role可以自定义,自定义内容包括,特定数据源的Create、Edit、View权限。
image.png

选择数据源

fivetran刚登入进去之后的界面是非常清爽。由于没有创建任何链路,直接就会让你开始建任务。不得不说提供的数据源是非常多的,并且做了分类。这里我们选择MySQL RDS进行connector创建
image.png

填写数据源信息

fivetran也是采用这种双栏布局,右侧直接放文档。这里我们购买的是亚马逊云的RDS for MySQL(国内阿里云不支持,后续执行会报错),底部可以复制IP到RDS白名单列表。源端配置的关键信息主要是:

  • 连接方式:提供了直连和ssh tunnel两种方式
  • 强制schema映射:自定义目标schema的前缀,这个不能为空。主要面向数仓这样是合理,不过稍微有点不太灵活。
  • 增量同步机制
    • binlog: 这个比较好理解,很典型的CDC订阅方式
    • fivetran teleport sync: 这个技术来源于fivetran收购的一个公司teleport data。看官网文档解释,这是一种不依赖change log,但是实时速度接近log based的log-free cdc技术。主要用于一些没有开启cdc log或者用户不想透露change log file的场景。并且这个技术支持MySQL、Oracle、PostgreSQL、SQL Server等主流数据库的增量订阅。
  • 时区设置:数据处理依赖机器时区,因此这边让用户设置时区
  • fivetran云服务部署地选择:这个不明白为什么一定要让用户选择。也许是相同云访问兼容性好点?

image.png

预检

配置完成后点击下一步,进行预检的流程,如果失败需要退回上一步配置。MySQL RDS直连的方式要求强制开启SSL。这个也是我创建流程中的主要卡点,如果没开SSL,这边就没法继续创建流程了。fivetran应该是出于安全考虑。跳过一些报警的预检后我们来到了目标端设置。
image.png

目标端设置

之前选择的MySQL RDS,这回选择MySQL。 值得一提的是,每次创建connector都是需要重新填写数据源信息的,这对于数据源连接信息变更时,体验着实不太好。
image.png
主要面向数仓场景,选择的对端不适合做数仓会直接给醒目提示。确认无误后我们进行下一步,

image.png

image.png
预检通过后进行下一步

数据订阅

我们自己选择需要订阅的对象,这里选择第一个选项。fivetran还温馨提示,会cache你的数据。
image.png

启动迁移同步

创建好connector,我们先启动数据初始化。
image.png

不在schedule的时候,需要同步数据也可以主动点击sync now触发
image.png

确认迁移同步数据

源端初始数据2行
image.png

关于增量

源端执行变更后数据没法马上同步到对端,需要等下一次schedule以后或者主动触发sync才可以。

Transformation

默认提供了内置SQL处理和DBT的方式
image.png
模式上提供两种方式(都是针对对端中的数据操作):

  • 针对新来的数据做处理
  • 定时对对端表的数据做SQL加工

我使用的SQL如下,创建report表如果不存在,然后里面年龄都改18。定时执行后结果符合预期。

1
2
3
4
5
6
7

CREATE TABLE IF NOT EXISTS
`dst_prefix_wanshao_test_db`.`test_table_report` AS
SELECT *
FROM `dst_prefix_wanshao_test_db`.`test_table`;

update `dst_prefix_wanshao_test_db`.`test_table_report` set age=18 where id>0;

image.png

image.png

总结

优点

  • UI专业:明显有设计师设计过,按钮、icon、效果使用起来很统一。不会有用户不太理解的弹窗报错
  • 专注于数仓:如果是数仓、数据分析场景,配合transformation还有良好实现的定时任务,使用起来确实听丝滑。

缺点

  • 实时性差:相对于CloudCanal等其他国内数据迁移同步产品,fivetran的实时性delay最短也要5分钟以上,不是特别实时。fivetran支持的增量其实可以理解为micro batch的定时同步,本质上延迟还是比较大的。
  • 非数仓、数据分析支持能力弱:由于专注于数仓,对于实时在线业务领域的数据同步能力支持比较弱。例如跳过异常、限流、自定义处理、zero time处理、约束冲突规则、丰富的DDL SQL支持等都没看到有良好的支持。

参考资料