datax源码分析(一)

这里,对datax源码进行粗略的分析。

首先查看datax的启动文件--datax.py,这是一个Python文件,从main开始分析:

datax源码分析(一)_第1张图片

首先,给定一个datax的启动命令,demo差不多是这样:

python ./datax.py -p \
"-Dodsjdbc='jdbc:mysql://xxx:3306/data_ods' \
-Dodsuser='ware' \
-Dodspwd='ware' \
-Dywjdbc='jdbc:mysql://xxx:3306/temp' \
-Dywuser='ware' \
-Dywpwd='ware' \
-Dyesterday='2018-03-22' -D" \
/home/mask/group.json

1、printCopyright():

    就是个print信息的方法,阐述datax的使用方法

2、getOptionParser():

    获取解析器,用于解析datax启动命令里的各项参数

3、parser.parse_args(sys.argv[1:])

    其中用sys.argv[1:]来获取命令参数,返回一个list类型的返回值,有3个元素,根据demo中的参数可得(为方便观看,个别参数字符串过长换行显示,以下所有的参数呈现均按此规则):


    parse_args方法返回俩参,分别为instance类型的options和list类型的args,

options:

datax源码分析(一)_第2张图片

args: ['/home/mask/group.json']

4、根据if--else 判断生成启动命令,这是一个java的启动命令根据options和args生成,具体如下:

datax源码分析(一)_第3张图片

从图片中我写的注释不难分析,这个java命令中夹杂的各个参数中,前面的是JVN参数,后面的属于环境变量。

5、后面的方便即进行注册提交


总体来说,从主干分析,整个思路很清晰,利用Python命令运行datax.py将Python命令中的各个参数转为java命令进行启动,


        

你可能感兴趣的:(datax源码分析(一))