仅个人观点,不喜勿喷,不对望指。
这里只说datax,datax-web只是提供了界面化操作和一些监控以及定时任务(会的话,这些脚本也能实现)
而且datax-web是必须依赖datax
某些场景排查错误datax最原始的使用方法反而更直接清晰
1、定位
数据同步工具而不是数据清晰工具
离线数据同步而非实时/准实时框架
2、优点
速度可配(job->task)
日志清晰
3、补充
开源和商业并存(datax)阿里云DataWorks数据集成是DataX团队在阿里云上的商业化产品。
基本都是脚本话,最基础的也基本都是直接用json配置(web提供了任务构建功能,还是需要微调的)
复杂脚本编写需要会python
业务增量?datax增量同步
手动增量没问题,因为知道增量条件即可
首先需要说明, Datax本身在大部分reader插件中提供了where配置项,用于做增量更新。例如mysqlerader md文件说明如下.
* **where** * 描述:筛选条件,MysqlReader根据指定的column、table、where条件拼接SQL,并根据这个SQL进行数据抽取。在实际业务场景中,往往会选择当天的数据进行同步,可以将where条件指定为gmt_create > $bizdate 。注意:不可以将where条件指定为limit 10,limit不是SQL的合法where子句。<br /> where条件可以有效地进行业务增量同步。如果不填写where语句,包括不提供where的key或者value,DataX均视作同步全量数据。 * 必选:否 <br /> * 默认值:无 <br /> * **querySql** * 描述:在有些业务场景下,where这一配置项不足以描述所筛选的条件,用户可以通过该配置型来自定义筛选SQL。当用户配置了这一项之后,DataX系统就会忽略table,column这些配置型,直接使用这个配置项的内容对数据进行筛选,例如需要进行多表join后同步数据,使用select a,b from table_a join table_b on table_a.id = table_b.id <br /> `当用户配置querySql时,MysqlReader直接忽略table、column、where条件的配置`,querySql优先级大于table、column、where选项。 * 必选:否 <br /> * 默认值:无 <br />
有一些场景,where配置满足不了,使用querySql配置:
如在数据清洗过程中,我们通常需要去join一些维度表以便过滤脏数据。所以,我们更多时候会使用querySql配置项
真香场景:大数据量迁移,速度这块目前没有自己测试-应该是经过考验的。