关于datax由mysql导入到postgresql数据库慢的解决方法
参考资料及原因
参考:
以下摘取自上面链接:
因为公司需要使用greenplum,而官方的datax版本在导数据到greenplum时,速度是非常慢的(严格说是datax导数据到postgresql,在导入到GP时,数据走的是master,一条一条insert的,当然是慢)。
所以,这里采用了别人开发好的支持GP 的datax版本:https://github.com/HashDataInc/DataX
首先来说一下GP,GP作为一种数据仓库工具,是比较特殊的,因为一般的etl工具在往GP中导数据普遍是比较慢的。
GP底层就是多个postgresql数据库组成的postgresql集群,由一个master来管理,当然可以有一个standby的master。而一般的etl工具在向GP导数据时,会走master,再由master来分发,效率极其低下。
要用好GP,就需要顺应GP。用GP最喜欢的导入方式去导数据,比如 通过使用copy命令,通过使用gpfdist工具,当然阿里有相应的收费软件也支持快速导入。
本次使用的datax版本,其实是封装了GP的copy方式。
更换HashDataInc版datax注意事项
这里要特别注意一点,HashDataInc版datax同时保留了阿里原版的postgresqlwriter插件,因此他新的插件名字叫gpdbwriter,要是你的job json没有更改插件名的话,你用的还是原版的postgresql导入方式!
HashDataInc版datax兼容dolphinscheduler调度工具
版本:
dolphincheduler v1.3.5
因为dolphinscheduler默认还是调用的postgresql插件,所以要把gpdbwriter的名字改成postgresqlwriter,同时删除原版postgresqlwriter
#进入根目录/plugin/writer/gpdbwriter/
vim plugin_job_template.json
vim plugin.json
#修改name后面的名字
阿里原版datax postgresqlwriter更换HashDataInc版gpdbwriter
将上面改好名字的插件直接复制到原版datax相关目录,并删除原版datax的postgresqlwriter插件