# Ta-Datax-Writer 플러그인 사용 가이드
# 1. 소개
Ta-Datax-Writer는 DataX의 쓰기 데이터 플러그인으로, DataX 생태계에서 TE 클러스터로 데이터를 전송하는 기능을 제공합니다. DataX에서 지원하는 데이터 소스 읽기 플러그인과 이 플러그인을 사용하여, 데이터 전송 서버에 DataX를 배포하고, 다중 데이터 소스와 TE 클러스터의 데이터 동기화를 실현할 수 있습니다.
DataX에 대해서는, DataX의 Github 홈페이지 (opens new window)를 참조하십시오.
TE 수신측에 데이터를 전송하는 방식
# 2. 기능과 제한
TaDataWriter는 DataX 프로토콜에서 TE 클러스터의 내부 데이터 기능으로의 이전을 구현했습니다.
- 지원되며, TE 클러스터로의 쓰기만 지원됩니다.
- 데이터 압축을 지원하며, 기존 압축 형식은 gzip, lzo, lz4, snappy입니다.
- 멀티 스레드 전송을 지원합니다.
# 3. 사용 설명
# 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
- data/plugin/writer 디렉토리에 ta-datax-writer.tar.gz를 복사합니다.
cp ta-datax-writer.tar.gz data/plugin/writer
- 플러그인 패키지 압축 해제
tar -zxvf ta-datax-writer.tar.gz
- 패키지 삭제
rm -rf ta-datax-writer.tar.gz
# 4. 기능 설명
# 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://{Data Receiving Address}",
"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
- 설명: DataX의 채널 수에 관계없이, 각 채널 내에서 동시에 사용되는 스레드 수가 됩니다.
- 필수: 아니오
- 기본값: 3
- pushUrl
- 설명: 액세스 포인트 주소.
- 필수: 예
- 기본값: 없음
- uuid
- 설명: 전송 데이터에 「#uuid」:「uuid 값」을 추가하고, 데이터 유니크 ID 기능과 함께 사용합니다.
- 필수: 아니오
- 기본값: false
- type
- 설명: 쓰여진 데이터 유형 user_set, track
- 필수: 예
- 기본값: 없음
- compress
- 설명: 텍스트 압축 타입, 기본적으로 기입하지 않으면 압축이 없음을 의미합니다. 지원 압축 타입은 zip, lzo, lzop, tgz, bzip2
- 필수: 아니오
- 기본값: 압축 없음
- appid
- 설명: 해당 프로젝트의 appid
- 필수: 예
- 기본값: 없음
- column
- 설명: 읽기 필드 리스트, type은 데이터의 유형을 지정하며, index는 현재 열이 reader의 몇 번째 열에 해당하는지(0부터 시작)를 지정하고, value는 현재 유형을 상수로 지정하여, reader에서 데이터를 읽는 것이 아니라, value 값에 기반하여 해당 열을 자동으로 생성합니다. 사용자는 Column 필드 정보를 지정할 수 있습니다.
[
{
"type": "Number",
"colTargetName": "test_col", //Generate column names corresponding to data
"index": 0 //Transfer the first column from reader to dataX to get the Number field
},
{
"type": "string",
"value": "testvalue",
"colTargetName": "test_col"
//Generate the string field of testvalue from within TaDataWriter as the current field
},
{
"index": 0,
"type": "date",
"colTargetName": "testdate",
"dateFormat": "yyyy-MM-dd HH:mm:ss.SSS"
}
]
- 사용자가 Column 정보를 지정하는 경우, index/value 중 하나를 선택해야 하며, type은 필수가 아닙니다. date 유형을 설정하는 경우, dataFormat은 필수가 아닙니다.
- 필수: 예
- 기본값: 모든 reader 타입으로 읽기
# 4.3 유형 변환
TaDataWriter의 유형 정의:
DataX internal type | TaDataWriter data type |
---|---|
Int | Number |
Long | Number |
Double | Number |
String | String |
Boolean | Boolean |
Date | Date |