本文へ移動
Telemetry
ドキュメントを見る
概念とSQLパターン更新日: 2026年7月28日Telemetry 編集チームと製品チームによるレビュー1 最小読み取り時間

コーディング エージェントでこのドキュメントを使用してください

Claude Code、Codex、Cursor、または別のコーディング エージェント用の集中プロンプト パックを開き、それをここで説明するワークフローに適応させます。

SQL 構造化イベントの重複排除

重複排除は、SQL 問題である前に、ビジネス定義の問題です。類似している 2 つのイベントは、重複配信、意図的な再試行、または 2 つの有効なユーザー アクションを表している可能性があります。論理イベントまたは配信に対してソースが生成した識別子から始めます。プロデューサー契約でその組み合わせが一意であることが保証されていない限り、タイムスタンプとメッセージ文字列から ID を推測しないでください。

安定した識別子ごとに 1 つの行を選択します

WITH ranked AS (
  SELECT
    event_id,
    account_id,
    event_name,
    timestamp_utc,
    received_at,
    ROW_NUMBER() OVER (
      PARTITION BY event_id
      ORDER BY received_at ASC
    ) AS delivery_rank
  FROM product_events
  WHERE timestamp_utc >= now() - INTERVAL '7 days'
)
SELECT
  account_id,
  event_name,
  timestamp_utc
FROM ranked
WHERE delivery_rank = 1;

このバージョンでは、最初に受信したコピーが保持されます。代わりに、状態同期テーブルが最新のレコードを保持する場合があります。順序を変更すると結果の意味が変わるため、クエリの横に選択肢を書き留めます。

重複を削除する前に測定する

生の行、個別の識別子、および複数の配信による識別子をカウントします。これらのディメンションでソースを特定できる場合は、結果をプロデューサー、SDK バージョン、リリース、または配信パスごとに分類します。重複排除 CTE により、増大する取り込み問題が隠蔽されながら、ダウンストリーム ダッシュボードが修正される可能性があります。

重複排除を行わないでください account_id そして event_name 一人で。 1 つのアカウントで同じアクションを何度でも合法的に完了できます。同様に、製品変換が最終的な成功結果のみをカウントする場合でも、問題が信頼性である場合、再試行は有効な分析イベントとなり得ます。

遅延イベントには、制限された修正ウィンドウが必要です。レポートのエクスポート後に複製が到着すると、最終的なカウントが変更される可能性があるため、レポートのカットオフと結果が暫定的なものであるかどうかを記録してください。

を使用します。 重複したイベント ID レシピ ソースの重複を定量化し、 ウィンドウ関数 ランキングの仕組みを理解するためです。の イベントスキーマガイド ルールを監査可能にする識別子を追加する方法について説明します。

関連製品の機能

構造化イベント テーブルに対して読み取り専用 DataFusion SQL を実行し、結果を再利用します。

所有権と技術リファレンス

Telemetry 編集チームがこの説明を所有しています。製品チームは動作、例、境界をレビューします。

編集基準を見直す