콘텐츠로 건너뛰기
Telemetry
문서 찾아보기
개념 및 SQL 패턴업데이트된 2026년 7월 27일Telemetry 편집 및 제품 팀의 검토2 최소 읽기

코딩 에이전트와 함께 이 문서를 사용하세요.

Claude Code, Codex, Cursor 또는 다른 코딩 에이전트에 대한 집중 프롬프트 팩을 연 다음 여기에서 다루는 워크플로에 맞게 조정하세요.

이 페이지에서
  1. 내구성 유형을 선택하세요
  2. 결측값 이해
  3. 의미를 바꾸지 않고 진화하다

이벤트 데이터 유형 및 Null 허용 여부

Telemetry는 구조화된 이벤트에서 테이블 스키마를 추론합니다. 유연한 수집은 사전 마이그레이션 단계를 제거하지만 유용한 SQL는 여전히 안정적인 필드 의미와 유형에 따라 달라집니다.

내구성 유형을 선택하세요

식별자 및 제어된 범주에는 문자열을 사용하고, 계산할 값에는 숫자를, 실제 2가지 상태 사실에는 부울을, 특정 시점에는 타임스탬프를 사용합니다.

가치 추천 분야
기간 숫자 duration_ms
숫자 정규화 금액 + 소스 통화
식별자 문자열(숫자만 포함된 경우에도 해당)
결과 success, failed 또는 timeout와 같은 제어 문자열
기능 플래그 정확히 두 가지 의미가 있는 경우 부울
이벤트 시간 timestamp_utc로 정규화된 시간대 한정 입력

한 배포에서는 일정 기간 동안 "842"를 보내고 다른 배포에서는 842를 보내지 마십시오. 한 서비스의 HTTP 코드와 다른 서비스의 워크플로 범주에 대해 status를 재사용하지 마십시오.

결측값 이해

로그 API는 정규화 중에 null 값, 빈 개체 및 빈 배열을 제거합니다. 따라서 누락된 필드는 해당 행에 값이 저장되지 않았음을 의미합니다. 이는 0, false, 빈 문자열 또는 알 수 없음을 의미하지 않습니다.

부재가 분석적으로 의미가 있는 경우 IS NULL를 사용하세요. 교체품이 방어 가능한 비즈니스 의미를 갖는 경우에만 COALESCE를 사용하십시오.

SELECT
  event_name,
  100.0 * SUM(CASE WHEN account_id IS NULL THEN 1 ELSE 0 END)
    / NULLIF(COUNT(*), 0) AS missing_account_rate_pct
FROM product_events
GROUP BY event_name;

필수 필드 null-rate 레시피는 볼륨 보호 및 프로듀서 버전 컨텍스트를 추가합니다.

의미를 바꾸지 않고 진화하다

null 허용 필드 추가는 일반적으로 호환됩니다. 필드 유형을 변경하거나 기존 범주를 재정의하는 것은 아닙니다. 의미가 변경되면 새 필드 또는 schema_version를 도입하고 의도적으로 쿼리를 마이그레이션합니다.

중첩된 개체는 쿼리 가능한 점선 필드가 됩니다. 각 중첩 경로를 안정적으로 유지하고 이벤트 간에 요소 구조가 변경되는 배열을 피하세요.

프로덕션 계약을 확장하기 전에 스키마 진화, 이벤트 스키마 디자인중첩 JSON 쿼리를 검토하세요.

관련 제품 기능

안정적인 이벤트 이름, 타입이 지정된 필드, 개인 정보 보호 검토 컨텍스트를 캡처합니다.

소유권 및 기술 참조

이 설명은 Telemetry 편집팀의 소유입니다. 제품 팀은 동작, 예시, 경계를 검토합니다.

편집 기준 검토