hdata datax交流总结
今天和阿里云的同学就数据同步做了简要的交流,下面就交流的内容做一个总结
分片相关
- datax目前可以支持单机(standalone)和集群模式(cluster).目前开源的是单机版本。无论是单机版本还集群版本,分片都是通过datax进行。集群模式会把分片包装的taskGroup重新发给datax service, datax service会把新的taskGroup重新发给其他机器执行
- 根据算出的最大值、最小值和通道个数(相当于hdata的线程个数),可以计算出步长(step), 然后根据step,计算出各个分片的长度。
- datax split目前仅支持单一主键,且主键类型是int或者varchar类型
- 执行reader和writer最细力度的切分。需要注意到是,writer的切分结果要参照readre的结果,要达到切分后的结果数目相等,才能满足1:1的通道模型。所以这里可以将reader和writer的配置整合到一起。为了避免顺序给读写带来的长尾效应,将整合的结果shuffle掉。
- hbase的分片是通过region来实现的
- odps(他们的hadoop环境)是通过offset来实现的
- 分库分表直接在表的层面划分,各个表之间没有关系。我们交流的团队目前是没有使用canal增量同步数据的
- datax没有断点续传,分布式一个错,其他都错。datax如果某一个task失败会有重试,我们hdata目前还没有。后面hdata可以改进下,可以减少整个任务重试的成本。