外部用户属性关联导入(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可以替换成任意可以被 Java dateFormat解析的日期格式,例如: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部分

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

results matching ""

    No results matching ""