menu
Is this helpful?

# TaDataxWriter플러그인

# 1. 소개

Ta-Datax-Writer는 데이터 전송을 위한 DataX 플러그인으로, DataX 생태계에서 TA 클러스터로 데이터를 전송하는 기능을 제공합니다. 이 플러그인은 DataX를 데이터 전송 서버에 설치하여, DataX가 지원하는 다양한 데이터 소스를 읽고, 이 데이터를 TA 클러스터로 동기화할 수 있도록 도와줍니다. 쉽게 말해, 여러 데이터 소스에서 데이터를 읽어 TA 클러스터로 옮기는 작업을 자동화하는 도구입니다.

DataX에 대해 더 알고 싶다면 DataX의 Github 페이지 (opens new window)를 방문해 보세요.

데이터는 TA 전송 주소(URL)로 전송됩니다.

# 2. 기능 및 제한 사항

TaDataWriter는 DataX 프로토콜의 데이터를 TA 클러스터 내부 데이터로 변환할 수 있습니다. TaDataWriter는 다음과 같은 기능을 가지고 있습니다:

  1. TA 클러스터에 쓰기만 지원합니다.
  2. 데이터 압축을 지원합니다. 기존 압축 형식은 gzip, lzo, lz4, snappy입니다.
  3. 다중 스레드 전송을 지원합니다.

# 3. 사용 방법

# 3.1 DataX 다운로드

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 플러그인 설치

wget https://download.thinkingdata.cn/tools/release/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. 기능 설명

# 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 the column names corresponding to the 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 TaDataWriter as the current field
  },
  {
    "index": 0,
    "type": "date",
    "colTargetName": "testdate",
    "dateFormat": "yyyy-MM-dd HH:mm:ss.SSS"
  }
]

# 4.3 배열 유형 설명

  • 배열 유형을 사용할 때, 읽기 끝의 데이터는 문자열 유형이어야 하며 \t로 분할됩니다.
    • 읽기 끝의 샘플 데이터: "aaa\tbbb\tccc\tddd"
    • 변환 결과: ["aaa","bbb","ccc","ddd"]

# 4.4 유형 변환

  • 유형은 TaDataWriter에 의해 정의됩니다:

DataX 내부 데이터 유형

TaDataWriter 데이터 유형

Int

Number

Long

Number

Double

Number

String

String

Boolean

Boolean

Date

Date

Array

Array