이벤트 계약
쿼리가 예상하는 필드
| 필드 | 유형 | 그것이 존재하는 이유 |
|---|---|---|
| timestamp_utc | Timestamp | 이벤트 발생 시간. |
| event_id | Utf8 | 배달 재시도에 재사용되는 안정적인 식별자입니다. |
| event_name | Utf8 | 이벤트 계약명. |
| source | Utf8 | 프로듀서 이름. |
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별 반복 전달
송장 이벤트가 4번 전달되었으며 다운스트림 멱등성 계산이 필요합니다.
evt_8f31
4
evt_77ac
2
| event_id | event_name | source | deliveries | first_seen_at | last_seen_at |
|---|---|---|---|---|---|
| evt_8f31 | invoice_paid | stripe_webhook | 4 | 12:01:03 | 12:06:44 |
| evt_77ac | job_completed | billing_worker | 2 | 10:14:22 | 10:14:39 |
합성 예제 출력. 운영 결정에 사용하기 전에 자체 이벤트 스키마 및 임계값에 대해 쿼리를 실행하세요.
예제 재현
공공 픽스처 다운로드
JSON 번들은 타입이 지정된 이벤트 계약을 포함합니다. illustrative 입력 행, 정확한 SQL, 예상 출력, 검토 참고 사항 및 엔진 버전. CSV에는 표시된 결과가 포함됩니다.
SQL 작동 방식
- 1event_id로 그룹화하면 시간 내에 종료되는 이벤트가 중복된다는 가정 없이 재시도 전달이 노출됩니다.
- 2event_name 및 소스를 포함하면 실수로 여러 계약에서 식별자를 재사용하는 프로듀서를 포착할 수 있습니다.
- 3첫 번째 및 마지막 타임스탬프는 짧은 재시도 버스트에 중복이 도착하는지 아니면 훨씬 나중에 도착하는지를 보여줍니다.
결정해야 할 극단적인 경우
- 다운스트림 소비자에게 멱등성이 필요한 경우 재시도할 때마다 새 이벤트 ID를 생성하지 마세요.
- 관련되지 않은 이벤트 전반에 걸쳐 재사용된 식별자는 무해한 중복이 아니라 계측 결함입니다.
- 중복 항목이 저장되기 전에 제거되면 재시도 동작을 계속 관찰할 수 있도록 별도의 중복 제거 결과를 내보냅니다.
추천 대시보드
- 통계: 선택한 기간의 이벤트 ID가 중복되었습니다.
- 바: 소스별로 중복 배송
- 표: 최신 반복 식별자
레시피를 활용해 보세요
관련 계측 및 가이드
소스 데이터 정의
이 분석을 위한 이벤트 스키마
분석 계속하기
실제 이벤트에서 실행
테이블을 만들고, 필드를 조정하고, 결과를 저장하세요.
무료로 시작하고, 구조화된 이벤트를 보내고, 쿼리 결과를 차트, 공유 대시보드 위젯 또는 알림 입력으로 사용하세요.