menu
Is this helpful?

# 외부 유저 속성 연동 데이터 가져오기

# 1. 개요

외부 유저 데이터를 TA 클러스터에 가져와야 하는 경우가 있습니다. 하지만 데이터의 유저 ID가 TA 시스템의 #account_id 또는 #distinct_id가 아닐 때가 있습니다. 예를 들어, 데이터가 휴대폰 번호, 주민등록번호 또는 다른 식별 ID를 기본 키로 사용하는 경우입니다. 이 데이터를 TA 시스템의 유저 속성으로 가져오려면 update_user_by_foreignkey명령을 사용하여 연동 관계를 설정해야 합니다. 현재 datax에서 지원하는 모든 데이터 소스를 사용할 수 있습니다.

# 2. 사용 방법

# 2.1 명령어 설명

데이터 가져오기 명령은 다음과 같습니다:

ta-tool update_user_by_foreignkey -conf <config 파일 경로> [--date xxx]

# 2.2 명령어 파라미터 설명

# 2.2.1 -conf

이 파라미터는 가져오기 작업의 설정 파일 경로입니다. 각 작업은 하나의 설정 파일로 구성되며, 여러 작업을 동시에 가져오는 것도 가능합니다. 와일드카드 문법을 지원합니다. 예를 들어, /data/config/ 또는 ./config/.json과 같이 사용할 수 있습니다.

# 2.2.2 --date

선택적 파라미터 ** --date **: 데이터 날짜를 나타내며, 이 참조 시간을 기준으로 시간 매크로가 대체됩니다. 이 파라미터를 생략하면 기본적으로 현재 날짜가 사용됩니다. 형식은 YYYY-MM-DD입니다. 시간 매크로 사용에 대한 자세한 내용은 아래를 참조하세요.

# 2.3 시간 매크로 사용법 설정

파일 내에서 시간 매크로를 사용하여 시간 파라미터를 대체할 수 있습니다. ta-tool은 가져오기 시작 시간을 기준으로 시간 매크로의 파라미터를 계산하여 설정 파일 내의 시간 매크로를 대체합니다. 사용 가능한 시간 매크로 형식은 다음과 같습니다:

  • @[{yyyyMMdd}], @[{yyyyMMdd}-{nday}], @[{yyyyMMdd}+{nday}] 등
  • yyyyMMdd는 Java dateFormat으로 파싱할 수 있는 모든 날짜 형식으로 대체할 수 있습니다. 예를 들어, yyyy-MM-dd HH:mm.SSS, yyyyMMddHH000000 등
  • n은 시간의 오프셋 값을 나타내는 정수입니다.
  • day는 시간의 오프셋 단위를 나타내며, day, hour, minute, week, month 중에서 선택할 수 있습니다.
  • 예시: 현재 시간이 2018-07-01 15:13:23.234인 경우
    • @[{yyyyMMdd}]는 20180701로 대체됩니다.
    • @[{yyyy-MM-dd}-{1day}]는 2018-06-30으로 대체됩니다.
    • @[{yyyyMMddHH}+{2hour}]는 2018070117로 대체됩니다.
    • @[{yyyyMMddHHmm00}-{10minute}]는 20180701150300으로 대체됩니다.

# 3. 기능 설명

# 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 부분

  • reader 설정은 datax에서 지원하는 설정과 동일합니다. 자세한 내용은 datax 문서를 참조하세요.

# 3.2.2 writer 부분

  • appid
    • 설명: 프로젝트 appid
    • 필수 여부: 예
    • 기본값: 없음
  • column
    • 설명: 필드 목록을 읽어오며, type은 데이터의 유형을 지정하고, name은 reader의 해당 위치에 있는 열을 지정하며, TA 시스템에 가져올 때 속성 이름을 지정합니다.

사용자는 Column 필드 정보를 지정할 수 있으며, 구성 예시는 다음과 같습니다:

[
  {
    "type": "double",
    "name": "property1"
  },
  {
    "type": "string",
    "name": "property2"
  },
  {
    "type": "bigint",
    "name": "property3"
  }
]
  • joinkey.importDataKey
    • 설명: 구성 정보에서 writer의 열을 연관된 열 이름으로 사용합니다.
    • 필수 여부: 예
    • 기본값: 없음
  • joinkey.taUserTableKey
    • 설명: TA 시스템의 유저 테이블에서 연관된 열 이름으로 사용합니다.
    • 필수 여부: 예
    • 기본값: 없음

# 3.3 유형 변환

DataX 내부 유형

HIVE 데이터 유형

Long

TINYINT,SMALLINT,INT,BIGINT

Double

FLOAT,DOUBLE

String

STRING,VARCHAR,CHAR

Boolean

BOOLEAN

Date

DATE,TIMESTAMP