上周领导扔过来一个任务:公司要搞数据仓库,让我选个ETL工具。我说行吧,反正最近项目空档期,折腾折腾。
结果这一折腾就是两周,试了五个工具,最后定了个国产的。记录一下过程,给后面的人省点时间。
一、先说我们这边的背景
公司不大,制造业,IT部就十几号人。数据量说大不大,说小不小------核心业务库MySQL,每天增量几百万条,要同步到ClickHouse做分析。另外有个达梦数据库,信创要求,绕不开。
领导给了三个条件:国产化、能实时同步、别太贵。就这三个条件,筛掉了一大半选项。
二、Kettle:老熟人,但这次真不合适
Kettle是我第一个试的。2016年刚入行那会儿用过,Spoon拖拖拽拽挺顺手,社区也热闹。但九年过去了,打开Spoon还是那个界面,连图标都没换。试着配了个MySQL到ClickHouse的同步,百万级数据就开始卡,CPU飙到80%。CDC更别说了,Debezium插件配了一下午,各种版本冲突,最后放弃了。
不是Kettle不好,是它停在了那个年代。现在搞实时数仓、CDC、云原生,它真的跟不上了。
三、DataX:阿里出品,但不太适合我们
DataX性能确实猛,千万级数据秒级同步。但用起来太"原始"了------纯JSON配置,没有UI,没有调度,没有CDC。我写了个MySQL到ClickHouse的job,JSON文件写了八十多行。然后发现没有调度,得自己挂crontab。再想加监控、告警、失败重试?自己写代码吧。这工具是给有平台团队的大厂用的。我们IT部就十几个人,没精力维护一套自研的调度框架。
四、Informatica:好是真的好,贵是真的贵
Informatica PowerCenter,行业老大哥。功能全、性能稳、生态成熟,CDC、数据质量、元数据管理,要啥有啥。问了下报价,授权费百万起步,实施周期三个月。领导听了直接摇头。另外问了下达梦的支持情况,销售说"可以通过ODBC连接",但原生驱动没有,信创这块心里没底。好东西,但不是给我们这种小公司准备的。
五、FineDataLink:顺手的,但不独立
FDL界面做得不错,上手快,拖拽体验比Kettle好。但用着用着发现不对劲------很多功能要和帆软BI联动才能用,比如数据服务API、复杂权限控制。我们没用帆软BI,单独用FDL总感觉少了点什么。另外CDC能力一般,大数据量场景性能也没达到预期。如果在帆软生态里,FDL应该挺舒服的。但我们不是,就算了。
六、ETLCloud:最后试的,留了下来的说实话,一开始没太看上ETLCloud。名字听着像某个开源项目的山寨版,社区也不大,GitHub上star数一般。
但试了一周,有几个地方确实让我改观。
第一,社区版没阉割功能
100多个数据源、可视化流程设计、基础CDC、调度编排,社区版全给。我搭了个环境,半天就把MySQL到ClickHouse的同步跑通了。不用先找领导批预算,这点对小公司很友好。
第二,CDC是原生的
不是插件,不是外挂,是内置的。配个连接信息、选个表、设个同步策略,点几下就完事。MySQL到ClickHouse,延迟稳定在两秒以内。对比之前Kettle配Debezium折腾一下午的经历,效率差距太明显了。
第三,达梦是原生支持的
不是ODBC桥接,是原生驱动。连上就能用,字段类型自动映射,省了不少事。信创这块对我们来说是硬性要求,这个直接加分。第四,Web界面确实清爽全浏览器操作,不用装客户端。流程图拖拽比Kettle的Spoon流畅,节点配置也直观。我组里一个刚毕业的小伙子,看了一会儿就能自己搭任务了。
但缺点也得说:
文档不够细。基础操作没问题,但遇到复杂场景------比如自定义转换逻辑、集群调优------文档写得比较浅,得找客服问。客服响应倒是快,但总归不如自己翻文档方便。社区生态也在建设中。CSDN、Stack Overflow上搜不到多少内容,遇到问题主要靠官方群。这点和Kettle、DataX没法比。
极限性能没测过。我们目前TB级够用了,PB级场景不敢打包票。
七、最后怎么定的
定了ETLCloud商业版。
不是因为它比Informatica强,也不是因为它比DataX快。而是在我们的场景下------中小规模、要实时同步、有国产化要求、预算有限------它是最省心的选择。干了这么多年技术,越来越觉得选型不是选最好的,是选最不会出幺蛾子的。工具再强,团队hold不住也是白搭。
八、几点个人建议
- 别迷信大牌
Informatica确实强,但百万授权费+三个月实施周期,小公司真没必要。适合自己的才是最好的。 - 免费不等于零成本
Kettle免费,但出了问题没人管,时间成本也是成本。DataX免费,但维护一套调度框架的人力成本也不低。 - 一定要做PoC
别光看PPT和评测文章,拿真实数据跑一遍。ETLCloud、Kettle都有免费版,搭个环境试两周,比啥都强。 - 信创不是选择题
如果公司有国产化要求,提前确认数据库支持情况。ODBC桥接和原生驱动,稳定性和性能差距很大。
写在最后
以上就是一个老程序员的真实踩坑记录。没有华丽的架构图,没有高大上的技术名词,就是两周折腾下来的体感。
选型这事没有标准答案,每个公司情况不一样。如果你也在选ETL工具,欢迎评论区交流,有说错的地方请拍砖。