GH GambleHub

자가 치유 데이터

1) 정의와 목표

자가 치유 데이터는 결함이 자동으로 감지되는 데이터 엔지니어링에 대한 접근 방식이며 수정 조치 (복구, 재전달, 롤백, 재 통합, 재 인덱싱) 는 사람의 개입없이 또는 최소한의 개입없이 수행됩니다 (민감한 경우 루프).
목표: 데이터 MTTR 감소, 신뢰 증가, 드리프트 및 실패에 대한 탄력성, 예측 가능한 소유 비용.

2) 치료할 전형적인 결함

계획 및 계약: 호환되지 않는 변경, 누락 된 열, 유형 충돌.
품질/무결성: 중복, 누락, 고유성/참조 무결성 위반.
시간과 신선도: 주입 지연, 창문의 "구멍", TZ/로케일의 비 동기화.
식별자 및 키: ID 생성기 변경, 충돌, 부유 자연 키.
이벤트 순서: 늦은 이벤트, 재정렬, 재전달 (적어도 한 번).
스토리: 배치 저하, 파일/블록 파손, 샤딩 왜곡.

권한/보안: 잘못된 마스크/암호화, PII 누출 업로드

3) 자기 치유의 기둥

1. 자동 테스트로 데이터 계약 (스키마 + 규칙).
2. 이데올로기 파이프 라인 (이중 효과없이 다시 시작).
3. 저널 및 재현성 (원시/청동 변경 불가능, 계보).
4. 수리 메커니즘 (재생, 백필, 압축, 병합 수리, 재건).
5. 관찰 및 SLO (신선도, 완전성, 독창성, 대기 시간).
6. 의사 결정 정책 (자동 수정 할 때, 확대 될 때).

4) 계약 및 품질 테스트

계약서에는 체계, 허용 가능한 범위, 고유성, RLS/마스킹, SLA 신선도가 설명되어 있습니다.

예 (YAML 스타일):
yaml dataset: payments schema:
- name: txn_id; type: string; unique: true
- name: user_id; type: string; not_null: true
- name: amount; type: decimal(18,2); min: 0
- name: created_at; type: timestamp; tz: UTC freshness_sla: 15m constraints:
- "count(distinct txn_id) = count()"
- "pct_null(user_id) < 0. 1%"
privacy:
- mask: card_pan -> BIN6LAST4 actions_on_violation:
- auto_quarantine_partition
- backfill_missing_window
- notify_owner_and_open_ticket

테스트는 모든 단계에서 실행됩니다: 주입 → 준비 → 쇼케이스. 규칙 위반은 자동 수리 (아래 참조) 및/또는 검역을 활성화합니다.

5) 이념과 결정론

안정적인 키 (역사의 경우 SCD2, 슬라이스의 경우 SCD1) 에 의한 Upsert/Merge.
결정 론적 변환: 동일한 매개 변수를 가진 하나의 입력 → 하나의 출력.
Versioning-코드/스키마/계층 버전 및 데이터 레이블 (워터 마크) 을 수정합니다.
이데올로기 싱크: 스테이징 + 원자 스왑/이름 변경을 통한 기록.
정확히 한 번의 의미: 허용 가능한 "적어도 한 번" 전송 + dempotent 수신기.

6) 수리 툴킷

재생/백필: 변경할 수없는 로그 (원시) 에서 창 [T0, T1] 에 대한 재전송.
조정: 레이어 간의 집계/키 (원시 선별 됨 마트) 와 시스템 (소스 DWH) 간의 비교.
중복 제거: 키 별 창 제거 (txn _ id, 이벤트 _ id) + 거리 휴리스틱 (더러운 키의 경우 퍼지).
압축: 작은 파일을 큰 당사자 (Parquet/ORC) 로 전송, 재 색인.
병합 수리: 레코드가 충돌하면 우선 순위가 결정됩니다 (소스/시간/버전별).
인덱스/재구성: 집계/큐브/롤업 재 계산.
검역/그림자: 의심스러운 당사자들은 스스로를 격리시 소비자는 "깨끗한" 스레드를 읽습니다.
스키마 중재: 사소한 변경에 대한 자동 투영 선택기 (채우기 불이행, 계산 가능한 열).

7) 저장 보호 및 무결성

금액 및 차단 유효성 검사 (CRC, 패리티).
쿼럼 스토리지 (RAFT/Paxos 호환 시스템, 쿼럼 읽기/쓰기).
비용 효율적인 중복성을위한 지연 코딩.
오브젝트 저장 버전 (삭제되지 않음).
원자 커밋 온라인 레이크 하우스 (트랜잭션 로그, ACID-та따라서: Delta/Iceberg/Hudi).

8) 사건의 순서와 "더러운 현실"

늦은 이벤트: 지연 시간을 유지하고 워터 마크를 사용하십시오 '및; 창문을 다시 계산합니다.
재배송: 글로벌 '이벤트 _ id', demempotency 키 테이블에 의한 디드 업.
오프셋 시간: TZ 정규화, 'ingested _ at' 및 'event _ time' 저장.
순서가 맞지 않음: 워터 마크 조정이있는 이벤트 _ time 기반 집계.

9) 의사 결정 논리 (정책 엔진)

규칙: "어떤 이상 → 어떤 행동 → 임계 값 → 누가 소유자인가".

예 (의사):
yaml policy: payments_freshness detect: freshness_delay > 15m auto_actions:
- trigger: backfill(last_60m)
- if: gap_persisted > 30m then: quarantine_partition(date=today, hour=current_hour)
escalate:
- if: gap_persisted > 60m -> page_oncall:data guardrails:
- do_not_expose_unverified_to_marts

10) 데이터에 대한 관찰 및 SLO

SLO 세트:
  • 디스플레이 케이스의 신선도
  • 완전성> 99. 주요 분야에서 5%.
  • 독창성: 중복 <0. 01%.
  • 계산 대기 시간: p95 <5 분
  • 수리 안정성: MTTR- 데이터 <30 분.

측정 및 경고: Prometheus/Grafana에 전시; 데이터 사고의 우선 순위 테이프를 작성하십

11) 화해 (관행)

집계 확인: 슬라이딩 창의 레이어/시스템 간의 'count/sum/min/max'.

주요 조정: 집합의 대칭 차이 '

정기적 인 "감사 작업": 소스와의 비교, 소스에서의 선택적 점검.
지불/금융: 이중 입장, 일일 차단 조정, 조정 로그.

12) 서킷 관리 및 진화

체계에 대한 SemVer: MAJOR (break )/MINOR (add )/PATCH (fixes).
CI/CD 계약: 스키마-디프, 호환성, 마이그레이션 자동 생성.
백필 후크: MINOR를 사용하면 기본값/계산 된 필드를 추가하고 쇼케이스를 다시 계산하십시오.
유연한 프로젝션: 독자는 열의 하위 집합을 읽습니다. "SELECT" 금지.

13) 보안, 개인 정보 보호, 규정 준수

RLS/CLS: 행/열 필터, 특히 수리 지점 및 수출에서.
지속 가능한 중복 제거를위한 PII 기반 토큰 화.
액세스/내보내기 감사: 누가 수출했는지, 어디로 보냈는지 확인했습니다.
DSAR/보존: 수리 프로세스에서의 자동 삭제/익명화; 리베이트는 법적 요구 사항을 고려합니다.

14) 비용과 성능

비용 인식 백필: 창문 너비 제한 (예: 3-7 일 슬라이딩).
재료 및 캐시: 변경된 배치 만 다시 계산합니다 (증분).
우선 순위: 첫 번째 중요한 쇼케이스 (금융, 위험), 분석.
피크가 아닌 수리: 스케줄러의 야간 창/낮은 우선 순위.

15) 테스트 및 사고 시뮬레이션

혼돈 데이터 테스트: 무대에서 파티션/회로를 고의로 중단하십시오.
가짜 지연: 가짜 배치, 고장 난, 복제.
황금 데이터 세트: 수리 후 조정을위한 벤치 마크.
게임 데이: 런북에 대한 정기적 인 팀 교육.

16) 안티 패턴

"보이지 않는" 수정: 감사 나보고없이 자동 편집.
테스트되지 않은 백필: 진실 소스/수식 버전 없음.
수리하는 동안 OLTP에 대한 실시간 요청: prod를 완료합니다.
소비자의 SELECT: MINOR 변경으로 중단됩니다.
중복의 유일한 키는 폴백 키/해시 서명이 없다는 것입니다.

17) 구현 로드맵

1. 발견: 중요한 세트/메트릭, 위험, 소유자; 종속성 맵.
2. 계약 및 테스트: CI의 체계/규칙을 공식화; 용어집을 게시합니다.
3. 이데올로기: 주요 파이프 라인을 업 세트/병합, 원자 싱크로 다시 작성하십시오.
4. 원시 로그 및 계보: 불변의 레이어, 전체 메타 데이터, 워터 마크 '및.
5. 수리 역학: 백필/리플레이, 디드 업, 압축, 검역; 정책 엔진.
6. 관찰 및 SLO: 고품질 대시 보드, 경고, 우선 순위 테이프.
7. 혼돈 데이터 및 교육: 정기적 인 운동 + 런북 '및.
8. 비용 최적화: 증분 재계산, 창 우선 순위.

18) 시험판 점검표

  • 데이터 계약 및 품질 테스트는 중요한 세트를 다룹니다.
  • 파이프 라인은 demmpotent입니다. 원자 커밋과 풀백이 있습니다.
  • 백필/재생 및 검역이 구성되고 에스컬레이션 정책이 설명됩니다.
  • Freshness/Completeness/Uniqueness/Latency 메트릭 및 경고.
  • 편집/수리에 대한 감사 포함; 공식 및 상점 버전을 저장합니다.
  • 수리 및 롤백을 위해 DSAR/유지가 수행됩니다.
  • 런북이 있으며 연습을 수행하면 MTTR 대상이 고정됩니다.
  • 백필 비용은 예산 담당자에 의해 제한됩니다.

19) 자동 동작의 예 (템플릿)

"창 신선도 실패 X" → 백필 (마지막 _ 2h) → 30 분 안에 괜찮지 않으면 → 검역 + 통화 페이지.
"중복 txn _ id 스파이크" → 는 엄격한 dedup + 소스 조정 → 원인 보고서를 포함합니다.
"MINOR 스키마 변경" → 계산 된 기본 필드 → 재구성 집계를 생성합니다.
"배치 손실" → 버전이있는 객체에서 체크 금액의 → 검증을 복원합니다.

결론: 자체 치유 데이터는 하나의 "수리 스크립트" 가 아니라 공식 계약, dempotent 파이프 라인, 안정적인 로깅, 자동 수리 메커니즘 및 엄격한 SLO의 투명한 관찰 가능성과 같은 시스템 아키텍처입니다. 이러한 시스템은 스스로 수리 할뿐만 아니라 이해할 수있는 비용과 복구 시간으로 사고를 관리 가능한 이벤트로 전환합니다.

Contact

문의하기

질문이나 지원이 필요하시면 언제든지 연락하십시오.우리는 항상 도울 준비가 되어 있습니다!

Telegram
@Gamble_GC
통합 시작

Email — 필수. Telegram 또는 WhatsApp — 선택 사항.

이름 선택 사항
Email 선택 사항
제목 선택 사항
메시지 선택 사항
Telegram 선택 사항
@
Telegram을 입력하시면 Email과 함께 Telegram에서도 답변드립니다.
WhatsApp 선택 사항
형식: +국가 코드 + 번호 (예: +82XXXXXXXXX).

버튼을 클릭하면 데이터 처리에 동의하는 것으로 간주됩니다.