이벤트 스키마
쿼리가 예상하는 필드
| 필드 | 유형 | 그것이 존재하는 이유 |
|---|---|---|
| timestamp_utc | Timestamp | UTC finish-event time; use a fixed analysis window in production. |
| job_id | Utf8 | One fictional completed logical job per row. |
| schema_version | Int64 | Version of the event contract; 1 uses duration_ms and 2 uses latency_ms. |
| duration_ms | Int64 | Release-1 duration, null on release 2. |
| latency_ms | Int64 | Release-2 duration, null on release 1. |
쿼리 복사
WITH normalized AS (
SELECT
job_id,
schema_version,
duration_ms,
CASE schema_version
WHEN 1 THEN duration_ms
WHEN 2 THEN latency_ms
END AS measured_ms
FROM job_finished
)
SELECT
COUNT(*) AS completed_jobs,
COUNT(duration_ms) AS jobs_in_old_average,
ROUND(AVG(duration_ms), 1) AS old_average_ms,
COUNT(measured_ms) AS jobs_with_duration,
SUM(CASE WHEN measured_ms IS NULL THEN 1 ELSE 0 END) AS unmeasured_jobs,
ROUND(100.0 * COUNT(measured_ms) / NULLIF(COUNT(*), 0), 1)
AS duration_coverage_pct,
ROUND(AVG(measured_ms), 1) AS schema_aware_average_ms
FROM normalized;이 읽기 전용 쿼리는 빈 유형의 테이블에 대해 계획되고 실행됩니다. 아파치 DataFusion 45.2.0. 결정론적 샘플 출력은 합성되어 별도로 검토됩니다. 자신의 데이터에 대해 필드 유형, 임계값 및 비즈니스 정의를 검증합니다. 테스트 방법론을 읽어보세요.
쿼리 결과
A plausible average can cover only half the jobs
The old field averages two fictional jobs at 475 ms. The version-aware query covers all four at 580 ms.
| completed_jobs | jobs_in_old_average | old_average_ms | jobs_with_duration | unmeasured_jobs | duration_coverage_pct | schema_aware_average_ms |
|---|---|---|---|---|---|---|
| 4 | 2 | 475 | 4 | 0 | 100 | 580 |
합성 예제 출력. 운영 결정에 사용하기 전에 자체 이벤트 스키마 및 임계값에 대해 쿼리를 실행하세요.
SQL 작동 방식
- 1The old query AVG(duration_ms) still returns 475 ms because SQL averages ignore nulls. Only two of four completed jobs contribute to it.
- 2The version-aware CASE maps release 1 to duration_ms and release 2 to latency_ms, giving 580 ms across all four fictional jobs.
- 3Keep duration coverage beside the average. An unknown version or a missing field can leave the average unchanged while coverage falls.
확인할 경계 사례
- Use a fixed UTC time window when comparing releases; this four-row lesson leaves all fictional rows in scope.
- This example assumes one finish row per completed logical job. Deduplicate repeated finish events by job_id before using it for a real job count.
- A field rename is comparable only if both versions time the same start and stop points in the same unit.
- A missing or unknown schema_version maps to null and lowers coverage; do not silently coalesce it to an old field.
- The four rows are fictional and do not describe a customer, a real incident, or measured product performance.
추천 대시보드
- Table: completed jobs, duration coverage, and average by release
- Trend: duration coverage percentage over deploy time
알림 안내
Alert on falling duration coverage only after establishing an expected minimum event count and documenting the version mapping.
알림 설정 읽기이 쿼리에 필요한 이벤트 설정하기
관련 계측 및 가이드
분석 계속하기
내 이벤트로 실행하기
테이블을 만들고, 필드를 조정하고, 결과를 저장하세요.
무료로 시작하고, 구조화된 이벤트를 보내고, 쿼리 결과를 차트, 공유 대시보드 위젯 또는 알림 입력으로 사용하세요.