跳至主要內容
Telemetry
資料品質 SQL查詢範例

查詢重複的事件 ID

識別多次傳遞的事件識別符號並衡量重複處理是否有效。

入門telemetry_events已審查 2026-07-27測試用 阿帕奇 DataFusion 45.2.0

審閱者 Telemetry產品團隊 . SQL 相容性、事件契約、合成輸出和操作注意事項. 審查標準和所有權

問題已回答

哪些事件 ID 被多次接收?

重試在分散式系統中是正常的。當下遊分析將每次交付都視為新的業務成果時,重複識別符號就會成為資料品質問題。

活動合約

查詢期望的欄位

欄位型別為什麼存在
timestamp_utcTimestamp事件發生時間。
event_idUtf8重試傳送時重複使用的穩定識別符號。
event_nameUtf8事件合約名稱。
sourceUtf8生產者名稱。
DataFusion SQL

複製查詢

sql
SELECT
  event_id,
  event_name,
  source,
  COUNT(*) AS deliveries,
  MIN(timestamp_utc) AS first_seen_at,
  MAX(timestamp_utc) AS last_seen_at
FROM telemetry_events
WHERE timestamp_utc >= now() - INTERVAL '7 days'
  AND event_id IS NOT NULL
GROUP BY event_id, event_name, source
HAVING COUNT(*) > 1
ORDER BY deliveries DESC, last_seen_at DESC
LIMIT 100;

此只讀查詢是針對空型別資料表計劃和執行的 阿帕奇 DataFusion 45.2.0。確定性樣本輸出是綜合的並單獨審查;根據您自己的資料驗證欄位型別、閾值和業務定義。 閱讀測試方法。

查詢結果

按事件 ID 重複投遞

發票事件已交付四次,需要下游冪等計數。

event_idevent_namesourcedeliveriesfirst_seen_atlast_seen_at
evt_8f31invoice_paidstripe_webhook412:01:0312:06:44
evt_77acjob_completedbilling_worker210:14:2210:14:39

綜合範例輸出。在將其用於操作決策之前,針對您自己的事件架構和閾值執行查詢。

Repeated deliveries by event ID:來自 Find Duplicate Event IDs 範例結果的合成 deliveries 值的靜態圖表
確定性範例輸出的可索引 SVG。下載它以獲取帶有歸屬的文章、操作手冊或設計評論。

重現範例

下載公共裝置

JSON 包包含型別化事件契約, illustrative 輸入行、確切的 SQL、預期輸出、審閱註釋和引擎版本。 CSV 包含顯示的結果。

SQL 是如何工作的

  1. 1按 event_id 分組公開重試傳遞,而不假設及時關閉的事件是重複的。
  2. 2包括 event_name 和原始碼可以捕獲意外地在不同合約中重複使用識別符號的生產者。
  3. 3第一個和最後一個時間戳顯示重複項是在短重試突發中還是更晚到達。

需要決定的邊緣情況

  • 如果下游消費者需要冪等性,則不要為每次重試生成新的事件 ID。
  • 在不相關的事件中重複使用識別符號是一種檢測缺陷,而不是無害的重複。
  • 如果在儲存之前刪除重複項,則發出單獨的重複資料刪除結果,以便重試行為仍然可觀察。

推薦儀表板

  • 統計:所選時間段內重複的事件 ID
  • 酒吧:按來源重複交付
  • 資料表:最新重複識別符號

警示指導

當重複量或最大傳遞計數高於正常重試基線時發出警示。

讀取警示設定

讓查詢範例發揮作用

相關埋點和指南

定義源資料

此分析的事件模式

繼續分析

在真實事件中執行它

建立資料表,調整欄位並儲存結果

免費開始,傳送結構化事件,並將查詢結果用作圖表、共享儀表板小工具或警示輸入。

獲取 API 金鑰