DataX执行的json文件详细解析
json
适用于现代 C++ 的 JSON。
项目地址:https://gitcode.com/gh_mirrors/js/json
免费下载资源
·
1.3 DataX执行的json文件解析
{
job: //最外侧,任务
setting:{ //设置
speed:{ //速度
channel:3 //指定用几个子线程去跑这个任务,线程越多,速度越快
content:{ //内容
reader:{ //读数据部分
name:"hdfsreader" //指明什么类型的reader,hdfsreader读HDFS
parameter:{ //参数
path:"/user/xxx/dt=${dt}/dn=${dn}/*" //要读取的HDFS上的数据库的路径
defaultFS:"" //HDFS地址,HA是hdfs://mycluster
hadoopConfig:{ //Hadoop的一些配置
"dfs.nameservices":"mycluster" //HDFS集群名
"dfs.ha.namenode.mycluster":"nn1,nn2,nn3" //HA的多个namenode
"dfs.namenode.rpc-address.mycluster.nn1":hadoop201:8020 //HDFSnamenode1的地址
"dfs.namenode.xxx.nn2" //第二个namenode的地址
"dfs.namenode.xxx.nn3" //第三个namenode的地址
"dfs.client.failover.proxy.provider.nameservice1": "org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider" //HDFS的namenode的失败重试机制
column:[{index:0, type:String}, {value:${dn}, type:string}] //每个列封装成一个json对象,读列通过下标索引读取数据块中的列;type是数据库中列对应的数据类型;外部传入的参数使用固定值value接收。
fileType:"text" //数据块文件类型,行式存储
encoding:"UTF-8" //数据块文件编码格式
fieldDelimiter:"\t" //数据块中字段的分隔符,和Hive建表的时候的分隔符一致
writer:{ //写数据部分
name:"mysqlwriter" //指明什么类型的writer,mysqlwriter写到MySQL
parameter:{
writerMode:"insert" //写入数据库的方式,insert、replace(主键冲突会替换)
username:"root" //mysql的用户名
password:"123456" //mysql的密码
column:[xxx,xxx] //对应Hive表中的字段,顺序个数一致
perSql:["delete from xxx where dt=${dt}"] //当写入mysql50%失败了,下一次重新导入的时候,会执行这个sql,一般都是delete删除。
connection:[{jdbcUrl:mysql的url, table:[表名]}]
}
真实例子:
{
"job": {
"setting": {
"speed": {
"channel": 3
}
},
"content": [{
"reader": {
"name": "hdfsreader",
"parameter": {
"path": "/user/hive/warehouse/ads.db/ads_low3_userdetail/dt=${dt}/dn=${dn}/*",
"defaultFS": "hdfs://mycluster",
"hadoopConfig":{
"dfs.nameservices": "mycluster",
"dfs.ha.namenodes.mycluster": "nn1,nn2,nn3",
"dfs.namenode.rpc-address.mycluster.nn1": "hadoop201:8020",
"dfs.namenode.rpc-address.mycluster.nn2": "hadoop202:8020",
"dfs.namenode.rpc-address.mycluster.nn3": "hadoop203:8020",
"dfs.client.failover.proxy.provider.mycluster": "org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider"
},
"column": [{
"index": 0,
"type": "string"
},
{
"index": 1,
"type": "string"
},
{
"index": 2,
"type": "string"
},
{
"index": 3,
"type": "string"
},
{
"value": "${dt}",
"type": "string"
},
{
"value": "${dn}",
"type": "string"
}
],
"fileType": "text",
"encoding": "UTF-8",
"fieldDelimiter": "\t"
}
},
"writer": {
"name": "mysqlwriter",
"parameter": {
"writeMode": "insert",
"username": "root",
"password": "000000",
"column": [
"paperviewid",
"paperviewname",
"score_segment",
"userids",
"dt",
"dn"
],
"preSql": [
"delete from paper_scoresegment_user where dt=${dt}"
],
"connection": [{
"jdbcUrl": "jdbc:mysql://hadoop201:3306/qz_paper?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false",
"table": [
"paper_scoresegment_user"
]
}]
}
}
}]
}
}
GitHub 加速计划 / js / json
41.72 K
6.61 K
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:1 个月前 )
960b763e
3 个月前
8c391e04
6 个月前
更多推荐
已为社区贡献4条内容
所有评论(0)