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三个不同粒度的权限控制。
其中Role可以自定义,自定义内容包括,特定数据源的Create、Edit、View权限。
选择数据源
fivetran刚登入进去之后的界面是非常清爽。由于没有创建任何链路,直接就会让你开始建任务。不得不说提供的数据源是非常多的,并且做了分类。这里我们选择MySQL RDS进行connector创建
填写数据源信息
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云服务部署地选择:这个不明白为什么一定要让用户选择。也许是相同云访问兼容性好点?
预检
配置完成后点击下一步,进行预检的流程,如果失败需要退回上一步配置。MySQL RDS直连的方式要求强制开启SSL。这个也是我创建流程中的主要卡点,如果没开SSL,这边就没法继续创建流程了。fivetran应该是出于安全考虑。跳过一些报警的预检后我们来到了目标端设置。
目标端设置
之前选择的MySQL RDS,这回选择MySQL。 值得一提的是,每次创建connector都是需要重新填写数据源信息的,这对于数据源连接信息变更时,体验着实不太好。
主要面向数仓场景,选择的对端不适合做数仓会直接给醒目提示。确认无误后我们进行下一步,
预检通过后进行下一步
数据订阅
我们自己选择需要订阅的对象,这里选择第一个选项。fivetran还温馨提示,会cache你的数据。
启动迁移同步
创建好connector,我们先启动数据初始化。
不在schedule的时候,需要同步数据也可以主动点击sync now触发
确认迁移同步数据
源端初始数据2行
关于增量
源端执行变更后数据没法马上同步到对端,需要等下一次schedule以后或者主动触发sync才可以。
Transformation
默认提供了内置SQL处理和DBT的方式
模式上提供两种方式(都是针对对端中的数据操作):
- 针对新来的数据做处理
- 定时对对端表的数据做SQL加工
我使用的SQL如下,创建report表如果不存在,然后里面年龄都改18。定时执行后结果符合预期。
1 |
|
总结
优点
- UI专业:明显有设计师设计过,按钮、icon、效果使用起来很统一。不会有用户不太理解的弹窗报错
- 专注于数仓:如果是数仓、数据分析场景,配合transformation还有良好实现的定时任务,使用起来确实听丝滑。
缺点
- 实时性差:相对于CloudCanal等其他国内数据迁移同步产品,fivetran的实时性delay最短也要5分钟以上,不是特别实时。fivetran支持的增量其实可以理解为micro batch的定时同步,本质上延迟还是比较大的。
- 非数仓、数据分析支持能力弱:由于专注于数仓,对于实时在线业务领域的数据同步能力支持比较弱。例如跳过异常、限流、自定义处理、zero time处理、约束冲突规则、丰富的DDL SQL支持等都没看到有良好的支持。