# 最初のイベントチェック
この章では、TA システムの特殊なデータ構造を紹介します。初回イベントチェックはデータフィルタリング特性で、イベントデータに一意の識別 ID を追加し、システムがデータを受信すると、その ID が以前に現れたかどうかを比較し、ID が現れたデータは入庫できず、現れなかったデータは入庫でき、その ID を記録することで、その ID が初めて現れたイベントが入庫することを保証する。
WARNING
最初のイベントチェックのパフォーマンスオーバーヘッドが大きく、すべてのイベントでチェックを追加することはお勧めできません。TA スタッフの支援を受けて使用する
# I.データ構造
初回イベントチェック機能を使用するには、データの調整が必要です
- ID フィールド#
#first_check_id
は文字列でなければなりません。このフィールドは、最初のイベントを検証するための ID であり、最初に表示されたデータは格納され、その後は格納されません。異なるイベントの#first_check_id
互いに独立しているので、各イベントの最初のチェックは互いに干渉
以下は、#first_check_id#first_check_id
の位置に注目できるデータサンプルです
{
"#account_id": "ABCDEFG-123-abc",
"#distinct_id": "F53A58ED-E5DA-4F18-B082-7E1228746E88",
"#type": "track",
"#ip": "192.168.171.111",
"#uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"#time": "2017-12-18 14:37:28.527",
"#first_check_id": "123456",
"#event_name": "test",
"properties": {
"argString": "abc",
"argNum": 123,
"argBool": true
}
}
上記のデータの#first_check_id
は「123456」で、イベント「test」の前にすでに#first_check_id
が「123456」の別のデータが入庫されていれば、そのデータは入庫できず、以前に入庫されていなければ、そのデータは入庫できる
# 二、データ処理ロジック
TA システムは、イベントごとに ID テーブルを維持し、異なるイベント間で ID テーブルは互いに独立しています。
を持つ#first_check_id
イベントデータを受信すると、該当イベントの ID テーブルでそのデータの#first_check_id
、クエリ結果に応じて異なる処理を行う
- が ID テーブルに存在
#first_check_id
、そのデータは検証され、直接入庫され、ID テーブルには#first_check_id
- ID テーブルに#first_check_id が
存在する
場合、そのデータは直接破棄され
同じイベントが、#first_check_idを持つデータ
と、そのフィールドを持たないデータの両方をアップロードした場合、そのフィールドを持たないデータは最初のイベントチェックの処理を受けず、通常のデータと一致
TIP
上記の重要なロジックに加えて、ここには 2 つの注意点があります
1.性能を保証するため、システムはタイミングバッチ処理方式で判断し、デフォルト間隔は 1 時間であるため、初めてイベントチェックを使用したイベントデータにはデフォルト 1 時間のクエリ遅延
"#first_check_id"処理後はデータベースに記録されません。記録が必要な場合は、イベント属性レコード
# III。ベストプラクティス
# デバイスの追加
デバイスの新しいデータは最初のイベントチェックに最適で、アプリケーションが起動するたびに、デバイス ID を##first_check_id
とする「デバイスの新しい」イベントを報告することができ、最初のイベントチェックの論理によると、デバイス ID が初めて現れた「デバイスの新しい」イベントだけが記録され、その後に現れたデータは捨てられる。したがって、入庫イベントは、デバイス ID ごとに最初に発生するイベントであり、デバイスの新しいロジックに準拠しています。
以下は、最初のイベントチェックを使用したデバイスの新しいイベントの例です
{
"#distinct_id": "F53A58ED-E5DA-4F18-B082-7E1228746E88",
"#type": "track",
"#ip": "192.168.171.111",
"#time": "2017-12-18 14:37:28.527",
"#first_check_id": "device_id_123456",
"#event_name": "new_device",
"properties": {
"device_id": "device_id_123456"
}
}
このイベントは、アプリケーションが起動するたびに報告し、デバイス ID を#first_check_id として#first_check_id
ことができます。加えて、「デバイスモデル」や「ソースチャネル」などの他の属性を追加して、分析時の次元を増やすこともできます。TA クライアント SDK またはサービス側 SDK では、対応する SDK のアクセスガイドを確認できます。ガイドの「更新可能なイベント」と「書き換え可能なイベント」の章では、詳細なインターフェイス呼び出し方法