GH GambleHub

다른 소스에서 데이터를 병합

다른 소스에서 데이터를 병합

데이터 병합은 이기종 흐름 (제품 데이터베이스, CRM, 지불 제공 업체, 이벤트 로그, 타사 레지스트리) 을 전체적인 엔티티 및 일관된 상점으로 결합하는 프로세스입니다. 목표는 분석, ML 및 운영 사례에 대한 황금 기록과 일관된 삭감을 얻는 것입니다.

1) 전형적인 시나리오 및 목표

본질적으로 360 °: 클라이언트/플레이어, 장치, 결제 기기, 판매자.
거래 통합: 여러 PSP/현금 레지스터 → 필수 demempotency가있는 단일 로그.
이벤트 정규화: 웹/모바일/백엔드 로그 → 단일 이벤트 사전.
농축: 외부 디렉토리 (geo, FX, AML/제재, 마케팅 소스).
통합 지표: 통화/에스코트 조정, 체계 및 인코딩.

2) 소스 계약 및 체계

시작하기 전에-각 소스의 데이터 계약:
  • 스키마: 필드, 유형, 무효성, 키, 값 도메인.
  • 시맨틱: 각 필드 (사전) 의 의미.
  • SLA: 신선도/주파수, 최대 대기 시간 및 고장.
  • 진화: 계획 변경 정책 (후진/전진), 우울증.
  • 품질: 키의 독창성, 허용 가능한 범위, 참조 무결성.

3) 식별: 키와 매핑 (레코드 연결)

3. 1. 하드 ID

자연 키: 'user _ id', 'travel _ id', 'diche _ id', 'iban'.
프록시 키: 전자 메일/전화 (정규화: 사례, 공간, 국가 코드).
대리: 보편적 인 키가없는 허브 테이블의 'surrogate _ id'.

3. 2. 소프트 매칭 규칙

결정 론적: 정규화 된 전자 메일 + DR의 정확한 일치; "집 "/" 휴대 전화" → E.164.
확률 (퍼지): 이름/주소에 대한 Jaro-Winkler/Levenshtein, 문자열에 대한 TF-IDF/포함, 가속을 위해 거친 해시/접두사에 의한 "차단" (차단).

그래프 접근 방식: 노드로서의 엔티티, 에지로서의 우연의 일치; 연결 구성 요소 클러스터링

스텝 업 전략: 매뉴얼 "테두리에서" 검토를 통해 엄격한 규칙에서 소프트 규칙까지.

3. 3. 통합 규칙 (생존)

소스의 우선 순위는 값이 충돌 할 때 "KYC 레지스트리> CRM> 로그" 입니다.
신선도: 최신 타임 스탬프가 승리합니다 (유효성에 따라 조정).
완전: 비 -NOL을 선호합니다. 세트를 결합하여 주소/태그를 병합합니다.
감사: "솔루션 트레일" 을 유지하십시오-덮어 쓰여진 이유와 이유.

4) 중복 제거 및 MDM

MDM 계층 (마스터 데이터 관리): 마스터 엔티티 테이블 + istochnik → 마스터 관계.
황금 기록: '자신감' 분야/진실의 근원을 가진 집계 된 기록.
이력: 시간에 따른 속성에 대한 SCD 유형 2 (주소, KYC 상태).
식별: "병합 "/" 유출" 날짜로 맵 테이블을 병합하십시오.

5) 흐름 변경: CDC, 후발 기호 및 중복

CDC (데이터 캡처 변경): 싶어 '삽입/업데이트/삭제' + '소스 _ lsn '/오프셋.
늦은 이벤트: 워터 마크 및 유예 기간, 조정을위한 늦은 업데이트 저장.
순서가 맞지 않음: 키와 시간별로 정렬, 업데이트 보정.
복식: demempotent 키 ('이벤트 _ id', 'deidempotency _ key'), 창에서 dedup.
정확히 한 번: 트랜잭션 싱글/스토어, 결정 론적 논리가있는 'MERGE'.

6) 시간대, 통화 및 일정

시간: UTC + 현지화 된 슬라이스에 저장; 'ingested _ at' 및 'event _ time' 을 명시 적으로 저장합니다.
통화: "원시 통화" 를 저장하고 거래 날짜에 요율로 '기본 _ ccy' 를 정규화했습니다.
달력: 공정한 비교를 위해 지역별 휴일/근무일 테이블.

7) 합병 용 의사-SQL (upsert/merge)

7. 1. 거래 (demotent journal)

sql
MERGE INTO fact_transactions t
USING staging_transactions s
ON t. txn_id = s. txn_id
WHEN MATCHED AND s. updated_at > t. updated_at THEN
UPDATE SET amount = s. amount,
currency = s. currency,
status = s. status,
updated_at = s. updated_at
WHEN NOT MATCHED THEN
INSERT (txn_id, user_ext_id, amount, currency, status, event_time, updated_at)
VALUES (s. txn_id, s. user_ext_id, s. amount, s. currency, s. status, s. event_time, s. updated_at);

7. 2. 사용자 "골든 레코드" (소스 우선 순위 + 신선도)

sql
WITH ranked AS (
SELECT s. ext_user_id,
s. norm_email,
s. phone_e164,
s. addr_struct,
s. source,
s. updated_at,
ROW_NUMBER() OVER (
PARTITION BY s. ext_user_id
ORDER BY
CASE s. source
WHEN 'KYC' THEN 1 WHEN 'CRM' THEN 2 ELSE 3 END,
s. updated_at DESC
) AS rn
FROM staging_users s
)
MERGE INTO dim_user_golden g
USING ranked r
ON g. ext_user_id = r. ext_user_id
WHEN MATCHED AND r. rn = 1 THEN
UPDATE SET email = COALESCE(r. norm_email, g. email),
phone = COALESCE(r. phone_e164, g. phone),
address = COALESCE(r. addr_struct, g. address),
source_of_truth = r. source,
updated_at = r. updated_at
WHEN NOT MATCHED AND r. rn = 1 THEN
INSERT (ext_user_id, email, phone, address, source_of_truth, updated_at)
VALUES (r. ext_user_id, r. norm_email, r. phone_e164, r. addr_struct, r. source, r. updated_at);

8) 품질 및 테스트

테스트 스키마: 필요한 필드, 유형, 도메인.
논리 테스트: 키의 독창성, 복제본 없음, "다시 시간" 없음.
조정: 소스 대 최종 쇼케이스별로 금액; 불일치 → 티켓.
프로파일 링: 분포, 분수형, "긴 꼬리".
병합 메트릭: 정밀/리콜 매핑, 신뢰 측정 값 임계 값이있는 레코드의%.

9) 관찰 및 SLO

SLO 신선도: 창 지연시간은 1 분/시간입니다. 지연 모니터링 및 백 로깅.
경고: 중복 증가, 충돌 급증, 적용 범위 키 감소.
리니지 로그: 필드가 취해진 소스, 언제 어디서 덮어 쓰여졌는지.
런북: 사건 시나리오 (늦은 배치, CDC 폭풍, 잘못된 FX).

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

PII: BI에서 앨리어싱, ID 해싱, 마스킹.
RLS/CLS: 역할 및 행별 액세스; 내보내기 - 토큰 및 만료 날짜.
데이터 수명: 스토리지 일정; (DSAR) 및 "법적 보류" 를 제거 할 권리.
재 식별: 민감한 테이블의 결합을 최소화하기위한 규칙.

11) 모델 및 데이터 조직

레이어: '원시' (예:) → '준비' (청소/정규화) → '핵심' (마스터 엔티티, 사실/측정) → '마트' (분석/ML에 대한 쇼케이스).

SCD: 속성의 경우 타입 2, 오류 수정의 경우 타입 1; (PHP 3 = 3.0.6, PHP 4)

Feature Store: 변환 기능은 온라인/오프라인과 동일합니다 포인트 인 타임 정확성.

12) 구현 패턴

의미 계층이있는 ELT: 병합 논리는 선언적으로 설명됩니다 (규칙, 우선 순위, 키).
스트림 + 마이크로 패치: 거의 실시간 디스플레이 용-워터 마크가있는 마이크로 캐치 1-15 분.
그래프 연결: 복잡한 식별 (장치, 맵, 주소) 을위한 별도의 그래프 허브.
스텝 업 검증: 섀도우 모드의 새로운 연결 규칙을 포함하고 정확도 측정 항목을 수집하십시오.

13) 사전 병합 루프 릴리스 점검표

  • 소스 계약 서명; 스키마와 현장 사전은 일관됩니다
  • 연결 키/규칙 정의; 중복 제거 전략이 있습니다
  • 생존 규칙 및 소스 우선 순위가 설정됩니다. 감사 로그 활성화
  • CDC/dedempotency/late 데이터 처리 구현
  • 통화/시간대/달력 정규화
  • 품질 테스트 및 조정이 설정됩니다. 관찰 가능한 대시 보드를 사용할 수 있습니다
  • SLO 신선도 및 가용성이 수정되었습니다. 경고와 룬 문서가 준비되었습니다
  • PII/액세스/스토리지 호환
  • 문서: 엔터티 여권, 계보 스키마, 샘플 요청

14) "골든 레코드" 여권 (템플릿)

엔터티: 'USER _ GOLDEN'

키: 'user _ master _ id' (대리), 매핑 'source _ user _ id []'

필드 및 규칙:
  • '이메일': 정규화 + 우선 순위 'KYC> CRM> LOG'
  • '전화': E.164 정규화, 검증 분할
  • '이름': Jaro-Winkler 92, 폴백-KYC 소스
  • '주소': 복합 객체; 노조 + 신선도 우선 순위
  • 역사: SCD2 ('유효한 _ from/유효한 _ to')
  • 계보: 기증자 필드 참조 목록
  • 품질: 적용 범위는 98% 이상이며 더블리 케이트 3%
  • SLO: 신선도는 1 시간, 가용성은 99 이상입니다. 9%
  • 소유자: 데이터 플랫폼, KYC/AML
  • 위험: 이름 충돌, "가족" 전화, 공유 장치

15) 요약 및 권장 사항

합병은 "JOIN by key" 일뿐만 아니라 개요: 소스 계약 → 식별 및 dedup → 우선 순위 및 CDC → 의 "골든 레코드" 및 늦은 → 품질 및 관찰 가능성 → 안전 및 변경 기록.
규칙을 투명하게 작성하고 각 솔루션에 대한 감사를 유지하고 SCD 및 정확히 한 번만 지원하십시오. 이것이 수십 가지 소스의 데이터가 제품, 분석 및 ML에 대한 신뢰할 수있는 상점 및 지속 가능한 지표로 바뀌는 방법입니다.

Contact

문의하기

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

Telegram
@Gamble_GC
통합 시작

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

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

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