menu
Is this helpful?

# TaJsonFileWriter 플러그인

# 1. 소개

TaJsonWriter는 TA-JSON 형식을 로컬 파일에 쓰기 위한 파일을 제공합니다. TaJsonWriter는 TA 클러스터 데이터를 JSON 텍스트로 복원해야 하는 유저에게 서비스를 제공합니다.

# 2. 기능 및 제한 사항

TaJsonWriter는 DataX 프로토콜을 TA-JSON 형식으로 로컬 파일로 변환하는 기능을 제공합니다. TaJsonWriter의 기능은 다음과 같습니다:

  1. TA 형식의 JSON 텍스트 파일에 쓰기만 지원합니다.
  2. 멀티 스레드 쓰기를 지원하여, 각 스레드는 서로 다른 하위 파일을 작성합니다.

# 3. 기능 설명

# 3.1 샘플 구성

{
  "job": {
    "setting": {
      "speed": {
        "channel": 1
      }
    },
    "content": [
      {
        "reader": {
          "name": "streamreader",
          "parameter": {
            "column": [
              {
                "value": 123123,
                "type": "long"
              },
              {
                "value": "123123",
                "type": "string"
              },
              {
                "value": "login",
                "type": "string"
              },
              {
                "value": "2019-08-16 08:08:08",
                "type": "date"
              },
              {
                "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": 100
          }
        },
        "writer": {
          "name": "ta-json-writer",
          "parameter": {
            "type": "event",
            "path": "/data/export/ta_datafile/",
            "filename": "test",
            "column": [
              {
                "index": "0",
                "colTargetName": "#user_id"
              },
              {
                "index": "1",
                "colTargetName": "#distinct_id"
              },
              {
                "index": "2",
                "colTargetName": "#event_name"
              },
              {
                "index": "3",
                "colTargetName": "#time",
                "type": "date",
                "dateFormat": "yyyy-MM-dd HH:mm:ss.SSS"
              },
              {
                "index": "4",
                "colTargetName": "#event_time",
                "type": "string"
              },
              {
                "index": "5",
                "colTargetName": "#account_id",
                "type": "string"
              },
              {
                "index": "6",
                "colTargetName": "timetest",
                "type": "date",
                "dateFormat": "yyyy-MM-dd HH:mm:ss.SSS"
              },
              {
                "index": "6",
                "colTargetName": "timetest2",
                "type": "date",
                "dateFormat": "yyyy-MM-dd HH:mm:ss"
              },
              {
                "index": "7",
                "colTargetName": "os_1",
                "type": "string"
              },
              {
                "index": "7",
                "colTargetName": "os_2",
                "type": "string"
              },
              {
                "index": "8",
                "colTargetName": "booleantest",
                "type": "boolean"
              },
              {
                "index": "0",
                "colTargetName": "testNumber",
                "type": "number"
              },
              {
                "colTargetName": "add_clo",
                "value": "123123",
                "type": "string"
              }
            ]
          }
        }
      }
    ]
  }
}

# 3.2 파라미터 설명

  • path
    • 설명: 로컬 파일 시스템의 경로 정보입니다. TaJsonWriter는 Path 디렉토리 아래에 여러 파일을 작성합니다.
    • 필수 여부: 예
    • 기본값: 없음
  • fileName
    • 설명: TaJsonWriter가 작성하는 파일 이름으로, 각 스레드가 작성하는 실제 파일 이름에는 랜덤 접미사가 추가됩니다.
    • 필수 여부: 예
    • 기본값: 없음
  • writeMode
    • 설명: TaJsonWriter가 쓰기 전에 데이터 정리 처리 모드입니다:
      • truncate: 쓰기 전에 디렉토리 내 fileName 접두어를 가진 모든 파일을 지웁니다.
      • append: 쓰기 전에 아무런 처리를 하지 않으며, DataX TAJsonWriter는 fileName을 사용하여 파일을 작성하고 파일 이름이 충돌하지 않음을 보장합니다.
      • nonConflict: 디렉토리에 fileName 접두어를 가진 파일이 있는 경우, 오류를 보고합니다.
    • 필수 여부: 예
    • 기본값: append
  • encoding
    • 설명: 파일의 인코딩 구성 설정을 읽습니다.
    • 필수 여부: 아니오
    • 기본값: utf-8
  • 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"
  }
]

# 3.3 변화 유형

타입은 TaJsonFileWriter로 정의됩니다.

DataX internal type

TaJsonWriter data type

Int

Number

Long

Number

Double

Number

String

String

Boolean

Boolean

Date

Date