# 데이터 트래킹
# 데이터 백트랙 기능
# 개요
데이터 백트랙 기능은 SQL 문을 통해 TA 데이터베이스에서 데이터를 조회하고, 반환된 결과를 TA 데이터베이스에 입력하여 새로운 이벤트나 새로운 사용자 속성을 생성하는 기능입니다.
# 사용 설명
# 2.1 명령어 설명
TA 서버에 로그인하여 su - 슈퍼 관리자
명령을 실행하고 TA 사용자로 전환하세요.
데이터 수집 도구 유저_이벤트_업로드 -conf
를 실행하여 설정 파일을 읽으십시오. 명령은 다음과 같습니다
ta-tool user_event_import -conf <config file> [--date data date]
# 2.2 명령어 파라미터 설명
# 질문: 2.2.1 -conf
답변:
필수 파라미터로서, 파라미터는 데이터 백트랙 작업 설정 파일에 해당하는 경로이며, /data/config/
또는 ./config/.json
과 같은 와일드-카드 방법을 지원합니다.
# 2.2.1 --날짜
선택적 파라미터로서, 파라미터는 데이터 날짜를 나타내며, 시간 매크로는 이 참조 시간을 기반으로 대체될 것입니다. 파라미터는 전달되지 않을 수도 있으며, 기본적으로 현재 날짜를 취하는 것으로 간주됩니다. 형식은 질문: YYYY-MM-DD
답변:
입니다. 시간 매크로의 구체적인 사용에 대해서는 시간 매크로 사용을 참조하십시오.
# 2.2.3 계산 방법
ta-tool user_event_import -conf /data/home/ta/import_configs/*.json
파라미터는 설정 파일의 전체 경로이며, 와일드 카드를 사용하여 여러 설정 파일을 읽을 수 있습니다.
# 2.3 설정 파일에 대한 설명
# 2.3.1 샘플 설정 파일은 다음과 같습니다:
데이터 백트랙 기능의 핵심은 쿼리 문과 설정 매개변수를 포함하는 설정 파일입니다. 설정 파일은 데이터 백트랙 작업에 해당하며, 백트랙 이벤트에 대한 설정 파일은 다음과 같습니다:
{
"이벤트_설명": {
"ltv_event": "유저 라이프 사이클"
질문: How can I freeze a chart in the dashboard to prevent further modification, and is there a way to trigger a custom event when a specific chart type is selected?
답변: 대시보드에서 차트를 프리즈하여 추가 콜백을 방지할 수 있는 방법이 있나요? 그리고 특정 차트 양식이 선택될 때 가상 이벤트를 트리거할 수 있는 방법이 있나요?
"appid": "APPID",
"type": "이벤트",
"속성_설명": {
"register_date": "등록 날짜",
"date_prop": "LTV 일 단위"
질문: How can I freeze a chart in the dashboard to prevent further modification, and is there a way to trigger a custom event when a specific chart type is selected?
답변: 대시보드에서 차트를 프리즈하여 추가 콜백을 방지할 수 있는 방법이 있나요? 그리고 특정 차트 양식이 선택될 때 가상 이벤트를 트리거할 수 있는 방법이 있나요?
"sql": "SELECT 'thinkinggame' \"#account_id\",'ltv_event' \"#event_name\",register_date \"#time\",register_date,ltv,date_prop FROM (SELECT recharge_money ltv,register_date,CASE date_trunc('day', cast(register_date AS TIMESTAMP)) WHEN CURRENT_DATE - interval '1' DAY THEN 'next day' WHEN CURRENT_DATE - interval '2' DAY THEN '3 days' WHEN CURRENT_DATE - interval '6' DAY THEN '7 days' WHEN CURRENT_DATE - interval '13' DAY THEN '14 days' WHEN CURRENT_DATE - interval '29' DAY THEN '30 days' ELSE NULL END date_prop FROM (SELECT sum(recharge_money) recharge_money ,register_date FROM (SELECT \"#user_id\" ,sum(recharge_value) recharge_money ,\"$part_date\" recharge_date FROM v_event_0 WHERE \"$part_event\" = 'recharge' AND \"$part_date\" > '2018-06-30' AND \"$part_date\" < '2018-07-30' GROUP BY \"#user_id\" , \"$part_date\") a LEFT JOIN (SELECT \"#user_id\" , \"$part_date\" register_date FROM v_event_0 WHERE \"$part_event\" = 'player_register' AND \"$part_date\" > '2018-06-30' AND \"$part_date\" < '2018-07-30') b ON a.\"#user_id\" = b.\"#user_id\" WHERE b.\"#user_id\" IS NOT NULL AND recharge_date >= register_date GROUP BY register_date) c) d WHERE date_prop IS NOT NULL"
질문:
TIP
답변:
리스트 타입을 되돌아볼 필요가 있을 때, 기본 저장 리스트 타입이 \t로 구분된 스트링인 경우, 다음을 수행해야 합니다:
split("arrayColumn", chr(0009)) as 열 이름
질문: :::
# 2.3.2 설정 파라미터에 대한 설명
각 설정 파일은 JSON으로 표현되며, 다음은 각 요소의 의미입니다:
이벤트 설명
: 답변: 답변: 답변:- 설명: 새로운 이벤트의 표시 명을 설정하기 위한 선택적 구성, JSON 객체
- key: 이벤트 명
- 값: 표시 명
appid
: 답변: 답변: 답변:- 설명: 필수 프로젝트 설치, 검색 결과의 타겟 프로젝트의 APPID를 작성하세요.
질문: 타입
답변:
: 답변: 답변: 답변:- 설명: 필수 설정, 대상 항목의
이벤트
테이블 또는유저
테이블에 작성 - 질문: 사용 가능한 값: 이벤트, 유저 답변:
- 설명: 필수 설정, 대상 항목의
속성 설명
: 답변: 답변: 답변:- 설명: 선택적 구성, JSON 객체, 속성 이름의 표시 명을 설정하기 위함
- key: 속성 이름
- 값: 표시 명
SQL Statement
: 답변: 답변: 답변:- 설명: 필수 구성, 문자열, SQL Statement. 반환된 결과의 열 이름이 열 데이터의 구체적인 의미를 결정할 것임을 유의해 주세요, 다음을 반드시 포함해야 합니다:
- 필수 열 이름 1:
질문: #account_id
답변:
또는#중복 제외 수
, 이 중 적어도 하나는 트리거 유저의 계정 ID와 익명 ID에 해당해야 합니다. 생성된 이벤트가 예를 들어 LTV와 같이 개인에 의해 트리거되지 않은 경우, ID 규칙 외의 고정값, 예를 들어 'system', 'admin'을 사용하는 것이 좋습니다. - 필수 열 이름 2:
이벤트 명
, 이벤트 명, 권장 설정 값 - 필수 열 이름 3:
질문: #시간
답변:
, 이벤트 시간, 형식yyyy-MM-dd HH:mm:ss
또는yyyy-MM-dd HH:mm:ss.SSS
- 필수 열 이름 1:
- 설명: 필수 구성, 문자열, SQL Statement. 반환된 결과의 열 이름이 열 데이터의 구체적인 의미를 결정할 것임을 유의해 주세요, 다음을 반드시 포함해야 합니다:
위의 열 이름들 외에, 나머지 열들의 데이터는 이벤트의 속성으로 사용될 것이며, 열 이름이 속성 이름입니다.
이벤트를 되돌아보는 것 외에도, 쿼리 결과를 통해 새로운 유저 속성을 생성하거나 기존의 유저 속성을 덮어쓸 수 있습니다. 구성 파일은 다음과 같습니다:
{
"appid": "8d1820678a064397bbfcc9732f352e75",
"유저"
"속성_설명": {
"user_level": "유저 볼륨",
"coin_num": "코인 넘버"
질문: How can I freeze a chart in the dashboard to prevent further modification, and is there a way to trigger a custom event when a specific chart type is selected?
답변: 대시보드에서 차트를 프리즈하여 추가 콜백을 방지할 수 있는 방법이 있나요? 그리고 특정 차트 양식이 선택될 때 가상 이벤트를 트리거할 수 있는 방법이 있나요?
"sql": "SELECT \"#account_id\", localtimestamp \"#time\", user_level, coin_num FROM v_user_0"
질문:
리턴 이벤트와 유사하게, 그것의 설정 파일 또한 JSON으로 표현됩니다, 이것은 리턴 이벤트의 설정 파일과 다음과 같이 다릅니다:
- 질문:
이벤트 설명
이 필요 없습니다 답변: - 질문:
질문: 타입
답변:
은 "유저"입니다 답변: - SQL에서 필수적인 열 이름은
이벤트 명
을 필요로 하지 않으며, 다음의 두 가지만 있으면 됩니다:- 필수 열 이름 1:
질문: #account_id
답변:
또는#중복 제외 수
, 적어도 하나는 있어야 함 - 필요한 열 2:
질문: #시간
답변:
, 시간을 나타내는
- 필수 열 이름 1:
# 질문: 2.4 타임 매크로 사용
답변:
데이터 백트랙 작업 구성 파일 내에서 시간 매개변수를 시간 매크로로 대체할 수 있습니다. 데이터 백트랙 명령을 실행할 때, ta-tool 도구는 날짜 표시
을 기준으로 시간 매크로의 매개변수를 기반으로 시간의 오프셋을 계산하고 구성 파일 내의 시간 매크로를 대체합니다. 사용 가능한 시간 매크로 형식은 질문: @[{yyyyMMdd}]
답변:
, 질문: @[{yyyyMMdd}-{nday}]
답변:
, 질문: @[{yyyyMMdd}+{nday}]
답변:
등입니다.
날짜 표시
는 Java데이터 형식
에 의해 파싱될 수 있는 어떤 날짜 형식으로도 대체될 수 있습니다. 예를 들어:yyyy-MM-dd HH:mm:ss.SSS
,타임 스탬프
- n은 시간의 오프셋을 나타내는 임의의 정수일 수 있습니다.
- 일은 시간의 오프셋 단위를 나타내며, 다음과 같이 표현할 수 있습니다:
날짜
,시간 단위
,분 단위
,주 단위
,월 단위
- 예시: 현재 시간이
질문: 2018-07-01 15:13:23.234
답변:
라고 가정하면- 질문:
질문: @[{yyyyMMdd}]
답변:
은(는)20180701
(으)로 대체되었다 답변: - 질문:
질문: @[{yyyy-MM-dd}-{1일 단위}]
답변:
은(는)Question: 2018-06-31
Answer:
(으)로 대체되었다 답변: - 질문:
@[{yyyyMMddHH}+{2시간 단위}]
은(는)질문: 2018070117
답변:
(으)로 대체되었다 답변: - 질문:
질문: @[{yyyyMMddHHmm00}-{10분 단위}]
은(는)스타트 시간: 20180701150300
(으)로 대체되었다 답변:
- 질문: