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

데이터베이스 트랜잭션 롤백 비율 계산

오류 범주, 기간, 영향을 받는 계정을 유지하면서 서비스별로 커밋된 트랜잭션과 롤백된 트랜잭션을 비교합니다.

중급database_transaction_events검토됨 2026-07-28테스트됨 아파치 DataFusion 45.2.0

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

질문에 답변됨

데이터베이스 트랜잭션의 비정상적인 부분을 롤백하는 서비스는 무엇입니까?

롤백은 예상되는 동시성 응답이거나 사용자가 볼 수 있는 오류일 수 있습니다. 서비스 및 데이터베이스별로 비율을 측정하면 애플리케이션 트랜잭션 정책을 면밀히 검토할 가치가 있는 부분이 무엇인지 식별됩니다.

이벤트 계약

쿼리가 예상하는 필드

필드유형그것이 존재하는 이유
timestamp_utcTimestampUTC 기준 터미널 거래 시간입니다.
transaction_idUtf8하나의 논리적 트랜잭션에 대한 애플리케이션 생성 식별자입니다.
serviceUtf8트랜잭션을 소유한 애플리케이션 또는 작업자입니다.
database_nameUtf8승인된 논리적 데이터베이스 이름입니다.
statusUtf8커밋 또는 rolled_back.
error_typeUtf8교착 상태 또는 serialization_failure와 같은 제어된 롤백 범주입니다.
duration_msFloat64엔드투엔드 논리적 트랜잭션 기간.
account_idUtf8영향 분석에 사용되는 승인된 고객 또는 테넌트 식별자입니다.
environmentUtf8배포 환경.
DataFusion SQL

쿼리 복사

sql
SELECT
  service,
  database_name,
  COUNT(*) AS transactions,
  SUM(CASE WHEN status = 'rolled_back' THEN 1 ELSE 0 END) AS rollbacks,
  100.0 * SUM(CASE WHEN status = 'rolled_back' THEN 1 ELSE 0 END)
    / NULLIF(COUNT(*), 0) AS rollback_rate_pct,
  COUNT(DISTINCT CASE
    WHEN status = 'rolled_back' THEN account_id
    ELSE NULL
  END) AS affected_accounts,
  AVG(duration_ms) AS average_duration_ms
FROM database_transaction_events
WHERE timestamp_utc >= now() - INTERVAL '7 days'
  AND environment = 'production'
GROUP BY service, database_name
HAVING COUNT(*) >= 10
ORDER BY rollback_rate_pct DESC, transactions DESC;

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

쿼리 결과

서비스별 거래 롤백 비율

Checkout은 롤백 비율이 가장 높고 영향을 받는 계정 수가 가장 많습니다.

servicedatabase_nametransactionsrollbacksrollback_rate_pctaffected_accountsaverage_duration_ms
checkout-apiapp_production123253290
billing-workerbilling_production1218.331275
catalog-apicatalog_production12000107.5

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

Transaction rollback rate by service: Calculate Database Transaction Rollback Rate 예제 결과의 합성 rollback_rate_pct 값에 대한 정적 차트
결정론적 예제 출력의 색인 생성 가능한 SVG입니다. 기사, 런북 또는 저작자가 포함된 디자인 검토를 위해 다운로드하세요.

예제 재현

공공 픽스처 다운로드

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

SQL 작동 방식

  1. 1분자는 모든 재시도가 아니라 터미널 롤백 트랜잭션을 계산합니다.
  2. 2영향을 받는 계정은 거래 분모를 변경하지 않고 고객 컨텍스트를 추가합니다.
  3. 3예상되는 직렬화 재시도와 애플리케이션 결함을 구별하려면 제어된 error_type를 별도로 검사해야 합니다.

결정해야 할 극단적인 경우

  • 하나의 논리적 작업으로 여러 트랜잭션을 재시도할 수 있습니다. 최종 사용자 결과도 필요한 경우 워크플로 ID를 유지하세요.
  • 읽기 전용 트랜잭션은 다른 기준을 가질 수 있으며 관련이 있는 경우 분할되어야 합니다.
  • 명령문 매개변수, 연결 문자열 또는 무제한 오류 메시지를 기록하지 마십시오.

추천 대시보드

  • 바: 서비스 별 rollback_rate_pct
  • 누적 추세: 시간 경과에 따른 커밋 및 롤백
  • 표: 릴리스별 error_type 롤백 및 영향을 받는 계정 수

알림 안내

의미 있는 트랜잭션 볼륨으로 지속적인 롤백 속도 증가에 대해 알림한 다음 재시도 가능한 동시성 오류를 최종 실패와 분리합니다.

알림 설정 읽기

레시피를 활용해 보세요

관련 계측 및 가이드

분석 계속하기

실제 이벤트에서 실행

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

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

API 키 받기