외부 유저 속성 연관 가져오기 기능
1. 소개
경우에 따라 외부 유저 데이터를 AE 클러스터로 가져와야 하지만, 데이터의 유저 식별자가 AE 시스템의 #account_id나 #distinct_id가 아닐 수 있습니다. 예를 들어 데이터가 휴대폰 번호, 신분증 번호 또는 기타 식별 ID를 기본 키로 사용하는 경우입니다. 이러한 데이터를 유저 속성으로 AE 시스템에 가져오려면 update_user_by_foreignkey 명령으로 연관 관계를 설정하여 외부 유저 속성을 AE 시스템에 업데이트해야 합니다. 현재 datax가 지원하는 모든 데이터 소스를 지원합니다:
2. 사용 방법
2.1 명령 설명
데이터 가져오기 명령은 다음과 같습니다.
ta-tool update_user_by_foreignkey -conf <config files> [--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는 JavadateFormat으로 해석할 수 있는 임의의 날짜 형식으로 바꿀 수 있습니다. 예:yyyy-MM-dd HH:mm:ss.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가 지원하는 reader와 동일합니다
3.2.2 writer 부분
-
appid
- 설명: 해당 프로젝트의 appid입니다.
- 필수: 예
- 기본값: 없음
-
column
- 설명: 읽을 필드 목록입니다.
type은 데이터 타입을 지정하고,name은 reader의 해당 위치 열로서 AE 시스템에 가져올 때의 속성 이름을 지정합니다.
- 설명: 읽을 필드 목록입니다.
사용자는 Column 필드 정보를 지정할 수 있으며, 설정은 다음과 같습니다.
[
{
"type": "double",
"name": "property1"
},
{
"type": "string",
"name": "property2"
},
{
"type": "bigint",
"name": "property3"
}
]
-
joinkey.importDataKey
- 설명: 설정 정보에서 writer의 column을 연관 열 이름으로 사용합니다.
- 필수: 예
- 기본값: 없음
-
joinkey.taUserTableKey
- 설명: AE 시스템 user 테이블의 연관 열 이름입니다.
- 필수: 예
- 기본값: 없음
3.3 타입 변환
| DataX 내부 타입 | HIVE 데이터 타입 |
|---|---|
| Long | TINYINT,SMALLINT,INT,BIGINT |
| Double | FLOAT,DOUBLE |
| String | STRING,VARCHAR,CHAR |
| Boolean | BOOLEAN |
| Date | DATE,TIMESTAMP |

