# TaDataxWriter 插件
# 一、介绍
TaDataxWriter 是 DataX 的写入数据插件,提供了 DataX 生态中向 TA 集群传输数据的功能,您可以在数据传输服务器上部署 DataX,同时使用 DataX 所支持的数据源读取插件以及本插件,实现多数据源与 TA 集群的数据同步。
如需了解 DataX,可以访问DataX 的 Github 主页 (opens new window)
数据发送到 TA 接收端的方式进行数据传输
# 二、功能与限制
TaDataWriter 实现了从 DataX 协议转为 TA 集群内部数据功能,TaDataWriter 如下几个方面约定:
- 支持且仅支持写入 TA 集群。
- 支持数据压缩,现有压缩格式为 gzip、lzo、lz4、snappy。
- 支持多线程传输。
# 三、使用说明
# 3.1 下载 datax
- 访问 DataX 官网 (opens new window)
- 下载 DataX 工具包:DataX 下载地址 (opens new window)
wget http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz
# 3.2 解压 datax
tar -zxvf datax.tar.gz
# 3.3 安装 ta-datax-writer 插件
- 下载 ta-datax-writer 插件: ta-datax-writer 下载地址 (opens new window)
wget https://download.thinkingdata.cn/tools/release/ta-datax-writer.tar.gz
- 把 ta-datax-writer.tar.gz 拷贝到 datax/plugin/writer 目录下
cp ta-datax-writer.tar.gz datax/plugin/writer
- 解压插件包
tar -zxvf ta-datax-writer.tar.gz
- 删除软件包
rm -rf ta-datax-writer.tar.gz
# 四、 功能说明
# 4.1 配置样例
{
"job": {
"setting": {
"speed": {
"channel": 1
}
},
"content": [
{
"reader": {
"name": "streamreader",
"parameter": {
"column": [
{
"value": "123123",
"type": "string"
},
{
"value": "testbuy",
"type": "string"
},
{
"value": "2019-08-16 08:08:08",
"type": "date"
},
{
"value": "2222",
"type": "string"
},
{
"value": "2019-08-16 08:08:08",
"type": "date"
},
{
"value": "test",
"type": "bytes"
},
{
"value": true,
"type": "bool"
}
],
"sliceRecordCount": 10
}
},
"writer": {
"name": "ta-datax-writer",
"parameter": {
"thread": 3,
"type": "track",
"pushUrl": "http://{数据接收地址}",
"appid": "6f9e64da5bc74792b9e9c1db4e3e3822",
"column": [
{
"index": "0",
"colTargetName": "#distinct_id"
},
{
"index": "1",
"colTargetName": "#event_name"
},
{
"index": "2",
"colTargetName": "#time",
"type": "date",
"dateFormat": "yyyy-MM-dd HH:mm:ss.SSS"
},
{
"index": "3",
"colTargetName": "#account_id",
"type": "string"
},
{
"index": "4",
"colTargetName": "testDate",
"type": "date",
"dateFormat": "yyyy-MM-dd HH:mm:ss.SSS"
},
{
"index": "5",
"colTargetName": "os_1",
"type": "string"
},
{
"index": "6",
"colTargetName": "testBoolean",
"type": "boolean"
},
{
"colTargetName": "add_clo",
"value": "123123",
"type": "string"
}
]
}
}
}
]
}
}
# 4.2 参数说明
- thread
- 描述:线程数,为每个 channel 内部并发使用,与 DataX 的 channel 数量无关。
- 必选:否
- 默认值:3
- pushUrl
- 描述:接入点地址。
- 必选:是
- 默认值:无
- uuid
- 描述:在传输数据中增加 "#uuid":"uuid 值",配合数据唯一 ID功能使用 。
- 必选:否
- 默认值:false
- type
- 描述:写入的数据类型 user_set、track。
- 必选:是
- 默认值:无
- compress
- 描述:文本压缩类型,默认不填写意味着没有压缩。支持压缩类型为 zip、lzo、lzop、tgz、bzip2。
- 必选:否
- 默认值:无压缩
- appid
- 描述:对应项目的 APP ID。
- 必选:是
- 默认值:无
- column
- 描述:读取字段列表,type 指定数据的类型,index 指定当前列来对应 reader 的第几列(以 0 开始),value 指定当前类型为常量,不从 reader 读取数据,而是根据 value 值自动生成对应的列。
用户可以指定 Column 字段信息,配置如下:
[
{
"type": "Number",
"colTargetName": "test_col", //生成数据对应的列名
"index": 0 //从reader到datax传输第一列获取Number字段
},
{
"type": "string",
"value": "testvalue",
"colTargetName": "test_col"
//从TaDataWriter内部生成testvalue的字符串字段作为当前字段
},
{
"index": 0,
"type": "date",
"colTargetName": "testdate",
"dateFormat": "yyyy-MM-dd HH:mm:ss.SSS"
}
]
4.3 Array类型说明
- 在使用array类型时,要求读取端数据是以字符串类型,\t 分隔
- 读取端数据样例:"aaa\tbbb\tccc\tddd"
- 转换后结果:["aaa","bbb","ccc","ddd"]
# 4.3 类型转换
类型是 TaDataWriter 定义:
DataX 内部类型 | TaDataWriter 数据类型 |
---|---|
Int | Number |
Long | Number |
Double | Number |
String | String |
Boolean | Boolean |
Date | Date |
Array | Array |