# 외부 유저 속성 연동 데이터 가져오기
# 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 |
← 커스텀 테이블 삭제 데이터 백트랙 기능 →