데이터 품질 관리
1) 목적과 원칙
이유: 신뢰할 수있는 보고서 (GGR/세금), 사기 방지 및 RG 모델, 규정 준수 업로드, 제품 및 개인화.
원칙:- 스키마 우선 및 계약: 계약 데이터를 게시하려면 모든 소스가 필요합니다.
- 코드 DQ: 저장소, 버전, 테스트 및 검토의 규칙.
- 기본값으로 관찰: 메트릭/로깅/계보.
- 개인 정보 보호 설계: PII 최소, 마스킹 및 RLS/CLS.
- 비용 인식: 중요한 규칙의 우선 순위, 스마트 샘플.
2) 품질 측정 분류
완전성-필요한 필드/행의 백분율.
유효성 매치 유형/범위/참조 서적.
독창성: 중복 키/이벤트가 없습니다.
일관성: 참조 무결성, 비즈니스 불변
정확성은 "진정한" 출처 (요약 조정) 를 접근합니다.
타임 라인/신선도-재료 지연.
계보 무결성: 변환의 원점/버전을 보존합니다.
품질 및 중요 KPI (중요/주요/미성년자) 는 각 도메인에 대해 정의됩니다.
3) 계약 및 계획 (진실의 원천)
데이터 계약: 레지스트리에서 호스팅하는 JSON Schema/Avro/OpenAPI/AsyncAPI.
안정성: 역 호환 변경-무효화 추가; 속보-새 버전 + 이중 항목.
추적 성: 이벤트에서 '이벤트 _ id', 'trace _ id', '스키마 _ 버전', '소스'.
4) 코드 DQ: 아티팩트 구조
파이프 라인과 함께 Git에 규칙을 저장하십시오
/dq/
rules/
silver. payments. yaml gold. ggr_daily. yaml checks/
sql/
python/
policies/
severities. yaml notifications/
routes. yaml
규칙: 선언적 YAML/SQL;
심각도: → 경고 채널/에스컬레이션 레벨 매핑;
CI: 회로 라인터, 호환성 테스트, 드라이 런/시뮬레이터.
5) 예 규칙 (YAML)
yaml table: silver. payments owner: data-payments slo:
freshness_minutes: 15 completeness_percent: 99. 5 rules:
- name: amount_positive severity: critical type: range column: amount min: 0. 01
- name: currency_in_whitelist severity: major type: in_set column: currency set: [EUR, USD, GBP, TRY, BRL]
- name: unique_tx severity: critical type: unique columns: [transaction_id]
- name: fk_user_exists severity: critical type: foreign_key column: user_pseudo_id ref_table: dim. users ref_column: user_pseudo_id
- name: ts_monotonicity severity: minor type: temporal expression: "ts between date_sub(now(), interval 90 day) and now()"
6) SQL 테스트 (샘플)
키의 독창성
sql
SELECT transaction_id, COUNT() AS c
FROM silver. payments
GROUP BY transaction_id
HAVING COUNT() > 1;
필요한 현장 완료
sql
SELECT COUNT() AS nulls
FROM silver. payments
WHERE amount IS NULL OR currency IS NULL OR ts IS NULL;
참조/일관성
sql
SELECT p. currency
FROM silver. payments p
LEFT JOIN ref. currencies r ON p. currency = r. code
WHERE r. code IS NULL;
7) DQ 스트리밍 (실시간)
섭취 검증: 스키마 검증, 크기 제한, 유형 및 enum.
스트림 수표: dedup '(이벤트 _ id, 소스)', 지연 시간, 통화/금액 유효성 허용.
경계: 중요한 오류 → DLQ + 경고; 중요한 → 태그는 아니지만 건너 뛰기 ('dq _ flag' 플래그 사용).
지표: 당사자 별 완전성/지연/dup-rate.
8) 취급 오류 및 예외
DLQ/검역소: 아픈 레코드가 보관되어 있으며 수정이 가능합니다.
예외 기록: 제외 카드 (소유자, 날짜, 이유, 지역).
자동 폴백: 디스플레이 케이스의 마지막 올바른 스냅 샷을 사용하십시오
SLA 폐쇄: 중요-계정 24-48 시간; 메이저 - 약 5 일의 직원 일.
9) 개인 정보 보호 및 규정 준수 조정
PII 최소화: 분석 계층에서 "원시" PII를 확인하지 마십시오. 별칭을 사용하십시오.
RLS/CLS 점검은 현장 마스킹을 기반으로 수행됩니다.
지역화: 규칙은 '관할권' (EEA/UK/BR) 을 고려합니다.
법적 보류: 보류의 일부로 보관소를 다시 작성하지 않습니다.
10) 관찰 가능성, SLI/SLO 및 경고
권장 SLI/SLO:- 신선도 p95 (은): 소 15 분
- 완전성 (임계 유형): 5%.
- 유효성 (스키마): 9%.
- 중복 률이 0입니다. 1%.
- 경고: 중요한, 안티 앨리어싱, 유지 보수 창에 대한 호출기.
11) 대시 보드 (최소 세트)
도메인 및 시장별 신선도/완벽한 히트 맵.
사고 발생률 및 수정 비용으로 상위 N 테이블.
DQ 깔때기: 섭취 → 은 → 금 (손실/보정).
중요한 보고서에 대한 라인지 맵 (레귤레이터/GGR/RG/AML).
"레거시" 스키마 및 클라이언트 맵 (SDK/스키마 버전).
12) 프로세스 및 RACI
R (책임): 데이터 엔지니어링 (테이블 규칙), 도메인 소유자 (의미론).
A (책임): 데이터/CDO 책임자.
C (컨설팅): 준수/법률/DPO, 아키텍처, SRE.
I (정보): BI/
규칙 수명주기: → 검토 → "다크 런" → 포함 → 모니터링 → 소급.
13) 화해와 정확성
점검/거래: OLTP/제공 업체 (PSP/KYC) 와의 금고.
2 루프 비교: 선택적 검증을위한 독립적 인 파이프 라인.
공차는 지표 별 백분율 임계 값입니다 (예: GGR 분산 지정 0. 2%).
일일 행위: 감사 조정 보고서.
14) 비용과 우선 순위
중요한 규칙을 더 자주 실행하십시오 (스트리밍/시간별).
무거운 테이블에 페치 및 구체화 된 점검을 사용하십시오.
비용/쿼리 및 비용/GB를 추적하고 클러스터링/인덱싱을 적용하십시오.
팀의 맥락에서 DQ 예산을 할당하십시오 (지불).
15) 골드 매장에 대한 템플릿 (GGR Daily 예)
yaml table: gold. ggr_daily owner: fin-analytics slo:
ready_by_local_time: "06:00"
rules:
- name: ggr_not_negative severity: critical type: range column: ggr min: 0. 0
- name: market_known severity: major type: in_set column: market set_ref: ref. markets
- name: fx_source_present severity: major type: not_null column: fx_source
- name: completeness_by_market severity: critical type: completeness partition_keys: [event_date, market]
expected_rows_expression: "ref. expected_activity(event_date, market)"
16) 품질 사고: 관리 및 커뮤니케이션
발권: 선택 및 메트릭이 첨부 된 작업의 자동 생성.
Comm 템플릿: 영향을받을 때 제품 소유자/규제 기관에 알립니다.
사후: 근본 원인 (스키마 드리프트, 업스트림 버그, 로드), CAPA 동작, "회귀 리턴" 제어.
17) 구현 로드맵
MVP (2-4 주):1. 중요 테이블 카탈로그 (결제, 게임 플레이, GGR, 준수).
2. 10-15 키 검사 + CI 검증에 대한 YAML 규칙.
3. 신선도/완벽한 대시 보드 및 중요한 경고.
4. DLQ/Quarantine + 런북 수정.
2 단계 (4-8 주):- 규칙 확장 (FK/정확도), 드라이 런 시뮬레이터, A/B 포함.
- 계보 통합, 예외 배열 및 SLA.
- "잡음" 소스를 위해 DQ를 가장 많이 스트리밍합니다.
- 규칙에 따른 문서의 자동 생성, 비용 지표.
- "제어 윤곽" (독립 조정), 주간 회고.
- 표준 도메인 검사 레지스트리 인 Rule-as-Code 플랫폼 SDK.
18) 사전 판매 점검표
- 레지스트리의 계약 및 스키마는 호환성 테스트를 통과합니다.
- YAML 규칙이 동결되고 심각도/에스컬레이션이 할당됩니다
- 대시 보드 및 경고가 활성화되었습니다. SLO가 정의되고 동의됩니다.
- DLQ/검역소를 사용할 수 있으며 런북이 문서화되어 있습니다.
- 법률/준수에 동의 한 예외/조정 절차.
- 검사 비용 측정 및 무거운 요청 제한.
19) 빈번한 실수와 피하는 방법
계약없이 원시 데이터: 스키마 우선 및 소비자 테스트를 입력하십시오.
"수동" 검사: 코드 DQ 및 CI로 변환합니다.
우선 순위 없음: 분리 된 중요/주요/사소한 및 경고 채널.
DLQ는 없습니다. 검역소를 추가하면 오류가 발생할 수 없습니다.
비용 무시: 프로필 쿼리, 구체화 사용.
사후 모템 없음: 오류가 반복됩니다-CAPA 및 회귀 제어를 입력하십시오.
20) 결론
데이터 품질 관리 시스템은 흩어져있는 검사 세트가 아니라 계약 및 체계, 코드 DQ, 관찰 및 SLO, 사고 및 조정 분야와 같은 관리 프로그램입니다. 이 기사를 따르면 규제보고, 제품 솔루션 및 실시간 위험 탐지기에 충분한 재현 가능하고 검증 가능하며 비용 효율적인 데이터를 받게됩니다.