# データトラックバック機能
# I.概要
データトラックバック機能は、SQL 文を介して TA データベース内のデータをクエリした後、返された結果を TA データベースに入力して、新しいイベントまたは新しいユーザー属性を生成する機能です。
# 二、使用説明
# 2.1 コマンド説明
いずれかの TA サーバーにログインし、su-ta
コマンドを実行し、ta ユーザー
を実行ta-tool user_event_import-conf
、次のコマンドで構成テキストを読み込みます
ta-tool user_event_import -conf <config文件> [--date 数据日期]
# 2.2 コマンドパラメータの説明
# 2.2.1-conf
必ず渡す。パラメータはデータバックタスクに対応してテキストを構成するパスで、ワイルドカードをサポートする方式(例:/data/config/*
または./config/*. json)
# 2.2.1-日付
オプションで、パラメータはデータの日付を表し、時間マクロはこの基準時間に基づいて置換され、伝達されない場合はデフォルトで現在の日付を取り、形式はYYYYY-MM-DD
、時間マクロの具体的な使用方法は、時間マクロの使用方法を参考時間マクロの使用方法
# 2.2.3 例
ta-tool user_event_import -conf /data/home/ta/import_configs/*.json
パラメーターは、ワイルドカードを使用して複数の構成ブックを読み取る
# 2.3 配置文書の説明
# 2.3.1 構成テキストの例は次のとおりです。
データバック機能の中核は、クエリ文と構成パラメータを含む構成文書である。構成テキストは、データバックタスクに対応し、バックイベントの構成テキストは次のとおりです
{
"event_desc": {
"ltv_event": "用户生命周期"
},
"appid": "APPID",
"type": "event",
"property_desc": {
"register_date": "注册日期",
"date_prop": "LTV日数"
},
"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 '次日' WHEN CURRENT_DATE - interval '2' DAY THEN '三日' WHEN CURRENT_DATE - interval '6' DAY THEN '七日' WHEN CURRENT_DATE - interval '13' DAY THEN '十四日' WHEN CURRENT_DATE - interval '29' DAY THEN '三十日' 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"
}
注意
List タイプをトラックバックする必要がある場合、基になるストアリストタイプは文字列で\t で区切られているため、次のように処理
分割("array Column",(0009))array Column として
# 2.3.2 構成パラメータの説明
各構成テキストは JSON で表され、以下は各要素の意味です
イベント_desc
:- 説明:オプション設定、JSON オブジェクト、新規イベントの表示名
- key:イベント名
- value:表示名
APPID
:- 説明:クエリ結果のターゲットプロジェクトの APPID を書き込むように構成する必要があります
タイプ
:- 説明:ターゲットプロジェクトの
event
テーブルまたはuser
テーブル - 取得可能な値: event, user
- 説明:ターゲットプロジェクトの
プロパティ_desc
:- 説明:オプション設定、JSON オブジェクト、プロパティ名の表示名
- key:プロパティ名
- value:表示名
SQL
:- 説明:設定する必要があります。文字列は、クエリの文です。結果を返す列の名前は、その列のデータの具体的な意味を決定します。
- 必要な列名 1:
#account_id
または#distinct_id
は、少なくとも一方が必要で、トリガーユーザーのアカウント ID と匿名 ID に対応し、生成されたイベントが個人によってトリガーされない場合は、上記の例の LTV のように、ID ルール外の固定値表現、例えば「system」、「admin」など - 必須列名 2:
#event_name
、イベント名、推奨設定値 - 必須列名 3:
#time
、イベントが発生した時刻、形式はyyyy-MM-dddHH: mm: ss
またはyyy-MM-ddHH: mm: ss.SSS
- 必要な列名 1:
- 説明:設定する必要があります。文字列は、クエリの文です。結果を返す列の名前は、その列のデータの具体的な意味を決定します。
上記の列名を除いて、残りの列のデータはイベントの属性となり、列名は属性名
トラックバックイベントに加えて、クエリ結果を使用して新しいユーザー属性を生成したり、既存のユーザー属性を上書きしたりすることもサポートされています。
{
"appid": "8d1820678a064397bbfcc9732f352e75",
"type": "user",
"property_desc": {
"user_level": "用户等级",
"coin_num": "金币存量"
},
"sql": "select \"#account_id\",localtimestamp \"#time\",user_level,coin_num from v_user_0"
}
トレースバックイベントと同様に、構成テキストも JSON で表され、トレースバックイベントの構成テキストとは次のように異なります
- は不要
です
type
の値は"user"- sql に必要な列名は
#event_name
は必要ありません- 必要な列名 1:
#account_id
または#distinct_id
の少なくともいずれかが必要です - 必須列名 2:
#time
、時間を表す
- 必要な列名 1:
# 2.4 タイムマクロの使い方
データバックタスク構成書の内部で時間マクロを使用して時間パラメータを置き換えることができ、データバックコマンドを実行するとき、ta-tool ツールは--date
を基準にして、時間マクロのパラメータに基づいて時間のオフセット計算を行い、構成書の時間マクロを交換し、サポートする時間マクロ形式:@[{yyyyyMMdd}]
、@[{yyyMMdd}-{nday}]
、@[{yyyMMdd}+{nday}]
など
yyyMMdd
は、JavadateFormat
解析できる任意の日付形式に置き換えることができます。SSS
,SSS
- n は任意の整数であり、時間のオフセット値
- day は時間のオフセット単位を表し、次のように
取る
ができる
、時間
、分
、月
- 例:現在の時刻を仮定し
ます
@[{yyyMMdd}}]
20180701 に置き換え
@[{yyyy-MM-dd}-{1day}]
に置き換え置き換え
@[{yyyMMddHH}+{2hour}]
2018070117 に置き換え
@[{yyyyMMddHHmm00}-{10minute}]
置き換えて20180701150300