높은 카디널리티 필드
카디널리티는 필드에 있는 고유 값의 수입니다. status 필드에는 세 가지 값이 있을 수 있습니다. request_id는 행마다 다른 값을 가질 수 있습니다. 높은 카디널리티는 본질적으로 잘못된 것은 아니지만 필드를 쿼리하고 시각화하는 방법을 변경합니다.
유용한 높은 카디널리티 필드
요청, 추적, 작업, 계정 및 사용자 식별자는 조사 중에 필수적일 수 있습니다. 이를 통해 관련 이벤트를 찾거나 영향을 받은 사람을 확인할 수 있습니다. 특정 조회 또는 조인 사용 사례가 있고 식별자를 저장해도 안전한 경우 이를 보관하세요.
차트의 기본 그룹 측정기준으로 고유 식별자를 사용하지 마세요. 100,000개의 요청 ID가 있는 막대 차트는 읽을 수 없고 효율적이지 않습니다. 특정 식별자로 필터링하거나 제한된 범주로 그룹화하고 세부 테이블에 식별자를 유지합니다.
우발적인 카디널리티
원시 URL, 예외 메시지, SQL 텍스트, 사용자 에이전트 및 자유 형식 레이블은 종종 의도치 않게 카디널리티를 생성합니다. /projects/abc123를 /projects/:id와 같은 route_template로 정규화합니다. 적절한 로그 시스템에 자세한 진단을 유지하면서 제어된 error_type에 예외를 매핑합니다. 단순히 컨텍스트를 보존하기 위해 비밀이나 원시 사용자 콘텐츠를 이벤트에 넣지 마십시오.
파티션 열에는 특별한 주의가 필요합니다. 필터링에 유용한 필드는 자동으로 좋은 파티션이 아닙니다. 과도한 개별 파티션은 작은 파일과 계획 오버헤드를 생성합니다. 대표 검색어를 측정한 후에만 안정적이고 자주 필터링되는 측정기준을 선택하세요. 파티션 열 선택을 참조하세요.
쿼리 패턴
시간 제한이 있는 집계를 시작하고, 제어된 차원별로 그룹화하고, 순위를 매기기 전에 최소 볼륨 규칙을 적용합니다. 조사를 위해 카디널리티가 높은 식별자로 직접 필터링하고 좁은 범위의 열 집합을 요청하세요.
SELECT timestamp_utc, status, error_type, latency_ms
FROM api_requests
WHERE request_id = 'req_example'
ORDER BY timestamp_utc;
상관 ID 가이드 및 민감한 데이터 가이드와 함께 식별자를 검토하세요.