外部用户属性关联导入(update_user_by_foreignkey)
一、介绍
在一些情况下,您需要将外部的用户数据导入到TA集群,但是数据中的用户标识并不是TA系统中的#account_id或#distinct_id,比如数据以手机号、身份证号或者其他标识ID作为主键。如果需要将这部分数据作为用户属性导入到TA系统,则需要通过update_user_by_foreignkey
命令设定关联关系,将外部的用户属性更新到TA系统中,目前支持datax所有支持的数据源:
二、使用方法
数据导入的命令如下:
ta-tool update_user_by_foreignkey -conf <config files> [--date xxx]
传入的参数为导入任务的配置文件路径,每一个任务即为一个配置文件,支持多个任务同时导入,支持通配符的方式,例如:
/data/config/*
或者./config/*.json
可选参数--date:可选,参数表示数据日期,时间宏会基于此基准时间进行替换,可不传,不传则默认取当前日期,格式为
YYYY-MM-DD
,时间宏的具体使用方法,可参考时间宏使用方法
2.1 时间宏使用方法
配置文件内部可以使用时间宏替换时间参数,ta-tool工具会以导入的开始时间为基准,基于时间宏的参数做时间的偏移计算,并替换掉配置文件中的时间宏,支持的时间宏格式:@[{yyyyMMdd}]
, @[{yyyyMMdd}-{nday}]
, @[{yyyyMMdd}+{nday}]
等等
yyyyMMdd
可以替换成任意可以被 JavadateFormat
解析的日期格式,例如:yyyy-MM-dd HH:mm:ss.SSS
,yyyyMMddHH000000
- n可以是任意整数,表示时间的偏移值
- day表示时间的偏移单位,可以取如下几种:
day
,hour
,minute
,week
,month
- 举例: 假设当前时间为
2018-07-01 15:13:23.234
@[{yyyyMMdd}]
替换为20180701
@[{yyyy-MM-dd}-{1day}]
替换为2018-06-31
@[{yyyyMMddHH}+{2hour}]
替换为2018070117
@[{yyyyMMddHHmm00}-{10minute}]
替换为20180701150300
三、功能说明
3.1 配置样例
{
"job": {
"content": [{
"reader": {
"name": "mysqlreader",
"parameter": {
"username": "username",
"password": "password",
"connection": [
{
"querySql": [
"SELECT card_id, property1, property2,property3 FROM table1;"
],
"jdbcUrl": [
"jdbc:mysql://ip:port/database"
]
}
]
}
},
"writer": {
"parameter": {
"appid": "6f9e64da5bc74792b9e9c1db4e3e3822",
"column": [{
"type": "string",
"name": "card_id"
},
{
"type": "string",
"name": "property1"
},
{
"type": "string",
"name": "property2"
},
{
"type": "double",
"name": "property3"
}
],
"joinkey":{
"importDataKey": ["card_id"],
"taUserTableKey": ["card_id"]
}
}
}
}]
}
}
3.2 参数说明
3.2.1 reader部分
- reader的配置,与datax支持的reader一致
参照datax档文
3.2.2 writer部分
appid
- 描述:对应项目的appid。
- 必选:是
- 默认值:无
column
- 描述:读取字段列表,
type
指定数据的类型,name
指定为reader对应位置的列,导入ta系统时的属性名。 用户可以指定Column
字段信息,配置如下:
- 描述:读取字段列表,
[ {
"type": "double",
"name": "property1"
},
{
"type": "string",
"name": "property2"
},
{
"type": "long",
"name": "property3"
}
]
- joinkey.importDataKey
- 描述:配置信息中writer的column作为关联的列名。
- 必选:是
- 默认值:无
- joinkey.taUserTableKey
- 描述:TA系统中user表作为关联的列名。
- 必选:是
- 默认值:无
3.3 类型转换
DataX 内部类型 | HIVE 数据类型 |
---|---|
Long | TINYINT,SMALLINT,INT,BIGINT |
Double | FLOAT,DOUBLE |
String | STRING,VARCHAR,CHAR |
Boolean | BOOLEAN |
Date | DATE,TIMESTAMP |