콘텐츠로 건너뛰기
Telemetry
데이터베이스 신뢰성 SQL 레시피

데이터베이스 복제 및 CDC 지연 측정

평균 지연, 최악의 지연, 뒤처진 바이트, 오래된 샘플 비율을 기준으로 복제본 및 변경 데이터 캡처 소비자를 비교합니다.

초보자database_replication_samples검토됨 2026-07-28테스트됨 아파치 DataFusion 45.2.0

검토자 Telemetry 제품 팀 . SQL 호환성, 이벤트 계약, 합성 출력 및 운영상의 주의사항. 표준 및 소유권 검토

질문에 답변됨

어떤 복제본이나 CDC 소비자가 소스 데이터베이스에 뒤처지고 있습니까?

복제는 다운스트림 소비자가 해당 목적에 맞게 최신 상태로 유지되는 경우에만 정상입니다. 초와 바이트 뒤처짐을 모두 측정하면 더 큰 스트림을 처리하는 바쁜 소비자와 조용하게 정지된 소비자를 구별할 수 있습니다.

이벤트 계약

쿼리가 예상하는 필드

필드유형그것이 존재하는 이유
timestamp_utcTimestamp복제 샘플 시간(UTC)입니다.
consumer_nameUtf8안정적인 복제본, 커넥터 또는 다운스트림 소비자 이름입니다.
source_typeUtf8postgres_replica, cdc_pipeline 또는 다른 제어 소스 유형.
regionUtf8승인된 배포 지역.
lag_secondsFloat64소스 뒤의 시간 지연이 관찰되었습니다.
replay_bytes_behindInt64재생 또는 소비 대기 중인 대략적인 바이트입니다.
statusUtf8정상, 지연, 정지 또는 사용할 수 없음.
environmentUtf8배포 환경.
DataFusion SQL

쿼리 복사

sql
SELECT
  consumer_name,
  source_type,
  region,
  COUNT(*) AS samples,
  AVG(lag_seconds) AS average_lag_seconds,
  MAX(lag_seconds) AS maximum_lag_seconds,
  MAX(replay_bytes_behind) AS maximum_bytes_behind,
  SUM(CASE WHEN lag_seconds > 30 THEN 1 ELSE 0 END) AS stale_samples,
  100.0 * SUM(CASE WHEN lag_seconds > 30 THEN 1 ELSE 0 END)
    / NULLIF(COUNT(*), 0) AS stale_sample_rate_pct
FROM database_replication_samples
WHERE timestamp_utc >= now() - INTERVAL '24 hours'
  AND environment = 'production'
GROUP BY consumer_name, source_type, region
HAVING COUNT(*) >= 10
ORDER BY maximum_lag_seconds DESC;

이 읽기 전용 쿼리는 빈 유형의 테이블에 대해 계획되고 실행됩니다. 아파치 DataFusion 45.2.0. 결정론적 샘플 출력은 합성되어 별도로 검토됩니다. 자신의 데이터에 대해 필드 유형, 임계값 및 비즈니스 정의를 검증합니다. 테스트 방법론을 읽어보세요.

쿼리 결과

최대 복제 또는 CDC 지연

서부 지역 복제본은 두 샘플에서 예시적인 30초 신선도 임계값을 초과합니다.

consumer_namesource_typeregionsamplesaverage_lag_secondsmaximum_lag_secondsmaximum_bytes_behindstale_samplesstale_sample_rate_pct
replica-us-westpostgres_replicaus-west1214.584244,040,192216.67
billing-cdccdc_pipelineus-east12366,291,45600

합성 예제 출력. 운영 결정에 사용하기 전에 자체 이벤트 스키마 및 임계값에 대해 쿼리를 실행하세요.

Maximum replication or CDC lag: Measure Database Replication and CDC Lag 예제 결과의 합성 maximum_lag_seconds 값에 대한 정적 차트
결정론적 예제 출력의 색인 생성 가능한 SVG입니다. 기사, 런북 또는 저작자가 포함된 디자인 검토를 위해 다운로드하세요.

예제 재현

공공 픽스처 다운로드

JSON 번들은 타입이 지정된 이벤트 계약을 포함합니다. reproducible 입력 행, 정확한 SQL, 예상 출력, 검토 참고 사항 및 엔진 버전. CSV에는 표시된 결과가 포함됩니다.

SQL 작동 방식

  1. 1평균 지연은 정상 상태를 설명하는 반면 최대 지연은 짧지만 결과적으로 지연을 유지합니다.
  2. 2오래된 샘플 비율은 하나의 격리된 최대값보다 알림하기가 더 쉽습니다.
  3. 3동일한 지연이 매우 다른 재생 작업량을 나타낼 수 있으므로 뒤의 바이트는 워크로드 컨텍스트를 제공합니다.

결정해야 할 극단적인 경우

  • 데이터베이스 지연 필드는 쓰기, 플러시, 재생 또는 커넥터 지연을 의미할 수 있습니다. 측정된 경계의 이름을 지정합니다.
  • 조용한 소스는 여전히 오래된 상태임에도 낮은 바이트 뒤쳐짐을 보고할 수 있습니다. 시간과 볼륨을 모두 유지하십시오.
  • 하나의 전역 30초 임계값 대신 워크로드별 최신 상태 목표를 사용합니다.

추천 대시보드

  • 바: 소비자별 maximum_lag_seconds
  • 트렌드: lag_seconds 및 replay_bytes_behind
  • 표: 최신 지연 또는 사용할 수 없는 소비자

알림 안내

소비자가 연속 샘플에 대해 문서화된 신선도 목표를 초과하거나 보고를 완전히 중단하면 알림합니다.

알림 설정 읽기

레시피를 활용해 보세요

관련 계측 및 가이드

분석 계속하기

실제 이벤트에서 실행

테이블을 만들고, 필드를 조정하고, 결과를 저장하세요.

무료로 시작하고, 구조화된 이벤트를 보내고, 쿼리 결과를 차트, 공유 대시보드 위젯 또는 알림 입력으로 사용하세요.

API 키 받기