DataX是阿里开源数据同步工具,实现异构数据源的数据同步,Github地址:https://github.com/alibaba/DataX,企业存储离线数据到数仓,但是没办法对接业务,本次实践主要是运用DataX实现数据从数仓导入到MySQL,从而对接业务,另外,对数仓数据的流出进行管理。

一般从数仓数据导入到MySQL中,可以从hive查询存储到一个文件里面,如果是数据量比较大的情况下先将文件按一定行数切分为多个文件,然后遍历文件往MySQL中导入,这种方式虽然简单,缺点在于对于每一个导入需求,都需要写一个job,并且每次都会产生临时文件,mysql load会比较占用资源,之所以选择了DataX,因为它能实现hdfs导入MySQL,速度快,能实现增量全量,可以分表,能减少很多技术的实现成本。
dataX的使用非常的简单,下面看一下从mysql导入到另一个mysql的demo:

{
	"job": {
		"setting": {
			"speed": {
				"channel": 3
			},
			"errorLimit": {
				"record": 0,
				"percentage": 0.02
			}
		},
		"content": [{
			"reader": {
				"name": "mysqlreader",
				"parameter": {
					"username": "",
					"password": "",
					"column": [
						"coupon_id",
						"effective_type",
						"effective_price",
						"save_type",
						"save_price",
						"receive_way",
						"effective_way",
						"leave_code",
						"now()"
					],
					"connection": [{
						"table": [
							""
						],
						"jdbcUrl": [
							""
						]
					}]
				}
			},
			"writer": {
				"name": "mysqlwriter",
				"parameter": {
					"writeMode": "insert",
					"username": "",
					"password": "",
					"column": [
						"coupon_id",
						"effective_type",
						"effective_price",
						"save_type",
						"save_price",
						"receive_way",
						"effective_way",
						"leave_code",
						"enter_time"
					],
					"connection": [{
						"jdbcUrl": "",
						"table": [
							""
						]
					}]
				}
			}
		}]
	}
}


 用户名密码,表名,和jdbcUrl自己配置一下就可以了.

启动脚本:python datax.py xxxxx.json