GH GambleHub

데이터 레이크 및 중앙 집중식 스토

(섹션: 기술 및 인프라)

간략한 요약

Data Lake는 원자재 및 통합 데이터 세트의 중앙 집중식 저장의 기본 계층입니다. iGaming의 경우 베팅/결제/게임 로그 이벤트, 제휴 업로드, OLTP의 CDC를 수락하여 분석, 사기 방지, CRM 및 BI에 제공합니다. 최신 관행-레이크 하우스: 열린 열 형식 + ACID 테이블 계층 + 단일 디렉토리 + 트랜잭션/데이터 버전. 성공의 핵심은 체계 및 분할, 비용 관리, PII 보안 및 엄격한 운영 문화 (DQ, 계보, DR) 의 규율입니다.

iGaming 플랫폼에서 Data Lake의 역할

분석의 단일 진실 점: 소스 및 형식에 관계없이 원시 및 정제 된 데이터를 저장합니다.
유연성: 배치 및 스트리밍 지원 (CDC/커넥터, 이벤트 스트림).
진화: 생 청동에서 컨 포멀 실버 및 골드 비즈니스 사례에 이르기까지.
책임 부서: 생산 서비스는 타이어/준비, 분석/ML이 Lake 레이어에서 소비합니다.

건축 모델: Lake vs Lakehouse

데이터 레이크 (S3/ADLS/GCS + Parquet/ORC): 스키마 판독, 저렴한 스토리지, 유연한 형식.
레이크 하우스 (Delta/Iceberg/Hudi over Parquet): ACID 트랜잭션, 업 세트/병합, 시간 여행, 소형 파일, 진공, 인덱싱/클러스터링.
실습: Lakehouse는 iGaming을 메인 레이어로, 외부 OLAP (ClickHouse/Bigquery/Snowflake/Pinot) 를 쇼케이스 및 특수 엔진으로 사용하는 데 유리합니다.

메달리온 레이어 모델

청동 (Raw/Staging): 소스의 원시 파일 (CDC, 로그 덤프, 계열사 및 웹 후크). "그대로" 최소 검증.
은 (변형): 청소/결제, 통화/시간대 정규화, 타이핑, SCD 측정, 일관된 키.
금 (마트/서빙): GGR/NGR/LTV/보존을위한 집계, BI/CRM/사기 방지를위한 구체화 된 상점.
TTL: 청동에 공격적, 은색에 보통, 금 단위에 장기.

형식 및 테이블 레이어

열: Parquet (사실상 표준), ORC.

오픈 테이블 형식 (ACID):
  • 델타 레이크 - 거래, 'MERGE', 시간 여행, 최적화/진공, Z 주문.
  • Apache Iceberg-표현/스냅 샷, 숨겨진 파티션, 'MERGE/DELETE/업데이트', 시간 여행 테이블.
  • Apache Hudi-카피 온 라이팅/병합-온-리드, 업저트 최적화, 증분 추출.
  • 체계 진화의 확대/스트리밍/유연성에 대한 생태계 및 요구 사항을 기반으로 선택하십시오.

카탈로그 및 메타 스터

단일 디렉토리 (Hive Metastore/Unity/Glue/플랫폼 디렉토리) 는 스키마, 당사자, 버전, 권한을 저장합니다.
요구 사항: 테이블 레이어와의 거래 일관성, 여러 엔진 (Spark, Trino/Presto, Flink, dbt) 지원, 감사/계보.

계획과 진화

스키마 계약: 필수 필드, 유형, 의미론을 수정합니다. 버전 지정 소스 ('스키마 _ 버전').
진화: 옵션 필드 추가, 마이그레이션없이 변경 중단 금지; 파이프 라인의 자동 점검 체계.
PII 세분화: 민감한 필드-암호화 및 별도의 권한을 가진 별도의 열/테이블로.

데이터 분할 및 배치

날짜/시간-이벤트의 기본 키; 선택적 필드: '국가', '제품', '테넌트 _ id'.
하이브 스타일 우수: 's3 ://lake/bronds/payment/source = pspA/dt = 2025-11-05/hour = 13/part-0001. 쪽모이 세공 마비 '.

클러스터링/정렬: 자주 필터링 된 필드 (플레이어 _ id, 국가) 별 Z- 순서/정렬 키

파일 크기: 128-1024 MB를 목표로합니다. "작은 파일" 을 피하십시오 (아래 참조).
숨겨진 파티셔닝을위한 가상 열 (Iceberg/Delta).

작은 파일 및 압축 문제

소스는 스캔 및 메타 데이터의 작은 덩어리 → 저하를 스트리밍합니다.
솔루션: 주기적으로 최적화/압축 (통합), 압축 작업 스케줄러, 섭취시 배치 마이크로 번들, 'autoOptimize' (사용 가능한 경우).
병합 읽기 대 복사 쓰기 정책은 쓰기 대기 시간과 읽기 속도 사이의 균형입니다.

Injest: 배치, 스트림, CDC

OLTP (Debezium/Connectors) 의 CDC → 청동 (분 신선도).
스트림 (Kafka/Flink/Spark Structured Streaming) → 은/금은 점진적으로 (upsert/merge).
배치 (파트너 보고서/CS/JSON) - 표시가있는 "수신기" 를 통해 체크섬으로 복제본을 제어합니다.
이념성: 키 (idempotency _ key), (key, ts), 나중에 도착하는 레코드에 대한 "워터 마크".

데이터 품질 (DQ) 및 계보

DQ 점검: 완전성, 키의 고유성, 범위, 참조 무결성 (국가/통화 목록), 비즈니스 규칙 (GGR λ0).
Liniage: 보고서에서 소스까지의 종속성 그래프, 모델 코드 버전 및 테이블의 스냅 샷.
스키마 제어: "파괴" 변경을 차단하는 자동 백/포워드 컴파트 테스트.
감사 다운로드: 누가/언제/얼마나 많은지, 배치를 거부하고 배상합니다.

서빙 및 액세스

SQL 엔진: 임시 및 변환을위한 Spark/Trino/Presto; ELT 모델 용 dbt.
실시간/실시간: 매장으로서의 피노/드루이드/클릭 하우스; 레이크 하우스는 증분 싱크대를 통한 소스입니다.
데이터 공유: 사본없이 테이블/스냅 샷을 외부 명령에 공유합니다 (형식에서 지원하는 경우).

보안, PII 및 다중 임대

암호화: 휴식 (KMS) 및 운송 중 (SL).
IAM/RBAC/ABAC: 디렉토리/테이블/열/행 레벨 (마스킹, 동적 정책) 의 역할.
지역별 세분화 (EU/터키/LatAm 현지화): 버킷 격리 및 수영장 계산.
다중 테넌시: 네임 스페이스/디렉토리 및 경로 접두사, '테넌트 _ id' 필터, 선택적 행 수준 정책.
액세스 감사: 메타 데이터 읽기/변경 로그, 보존 및 수정 불가능한 로그.

비용 관리

스토리지 클래스: 표준 클래스, 아카이브-TTL 정책이있는 콜드/빙하 클래스에서 핫 (종종 읽을 수 있음).
파티셔닝/클러스터는 스캔 → $ $ 미만을 줄입니다.
값 비싼 보고서를위한 재료 상점; BI 결과 캐시.
압축 및 "올바른 파일 크기" -메타 데이터 및 I/O가 적습니다.
쿼타 및 예산 책정: 클러스터/작업 계산 제한, 데이터 세트/팀의 비용 보고서.
쓰레기 제거: 테이블 형식의 'VACUUM/REWRITE', TTL 청동.

DR 및 재현성

시간 여행 테이블 버전 지정 및 카탈로그 스냅 샷.
버킷 및 메타 데이터의 교차 지역 복제.
PITR: 테이블 트랜잭션 로그 (Delta/Iceberg/Hudi) 및 파이프 라인 로그 저장.
게임 데이: 정기적 인 복구 연습 및 전환 지역.

관찰 가능성 및 SLO

SLO 신선도: 브론즈

메트릭: 파일의 볼륨/수, 평균 파켓 파일 크기, 스캔 시간, 누락 된 배치 공유, 압축 빈도, 비용/날짜, DQ 오류, 늦은 데이터.
경고: 작은 파일 급증, 비용 증가, p95/p99 저하, DQ/체계 위반, 스트림 블루 지연.

명명 규칙 및 경로 (템플릿)


s3://<lake>/<layer>/<domain>/<dataset>/
source=<sys>/      # для Bronze dt=YYYY-MM-DD/
hour=HH/
country=XX/

데이터 세트 이름: 'bets _ raw', 'payment _ 소', 'players _ silver', 'mart _ ggr _ daily'.
메타 데이터 열: 'ingest _ ts', 'source', 'schima _ version', 'trace _ id', 'tenit _ id'.

예 (일반화)

1) Iceberg: 날짜별로 숨겨진 파티가있는은 테이블

sql
CREATE TABLE silver. bets (
bet_id    BIGINT,
player_id   BIGINT,
country    STRING,
stake     DECIMAL(18,2),
win      DECIMAL(18,2),
event_ts   TIMESTAMP,
ingest_ts   TIMESTAMP,
schema_version INT
)
PARTITIONED BY (days(event_ts))
TBLPROPERTIES ('format-version'='2');

2) 델타: CDC로부터의 증분

sql
MERGE INTO silver. players t
USING bronze. players_cdc s
ON t. player_id = s. player_id
WHEN MATCHED THEN UPDATE SET
WHEN NOT MATCHED THEN INSERT;

3) 청동에 대한 TTL 정책 (아이디어)


bronze/: keep 30 days silver/: keep 365 days (non-PII), 90 days (PII masked)
gold/marts/: keep 2–3 years (aggregated)

구현 체크리스트

1. 테이블 형식 (Delta/Iceberg/Hudi) 및 디렉토리를 선택하십시오. 엔진 (Spark/Trino/Flink/dbt) 과 정렬하십시오.
2. 메달리온 레이어, TTL 규칙 및 팀 책임을 정의하십시오.
3. 스키마 계약, 진화 제어, PII 세분화 및 암호화 캡처.

4. 설계 배치: 부품, 정렬 키, 대상 파일 크기; 압축을 가능하게합니다

5. demempotency 및 deduplication으로 ideest (CDC/stream/batch) 를 설정합니다.
6. DQ/계보, 메타 데이터 카탈로그 및 감사 사용.
7. 신선도/비용 SLO, 대시 보드 및 경고를 정의하십시오.
8. DR 구성: 스냅 샷/복제/복구 + 규칙적인 연습.
9. 명명 및 경로, 메타 열 ('ingest _ ts', 'source', 'skima _ version') 을 표준화하십시오.
10. 올바른 OLAP/RT 엔진에 골드 쇼케이스 및 실시간 서비스를 제공하십시오.

반 패턴

레이어가없는 하나의 일반적인 "백" 과 TTL → 혼돈 및 비용 폭발.
국가/제품 → 무거운 스캔을 제외한 시간 전용 파티션.
압축없이 시간당 수천 개의 작은 파일을 생성하는 스레드.
체계 통제 부족 및 DQ → "파괴" 변경 및 보고서 불신.
마스킹/권한 분리없이 PEI와 골드 쇼케이스를 혼합합니다.
디렉토리 및 표 정책 대신 버킷 수준의 액세스 권한 하드 코드.

요약

iGaming을위한 Modern Data Lake는 개방형 테이블 형식, 단일 카탈로그 및 메달 모델이있는 레이크 하우스입니다. 체계/당사자의 규율, 소규모 파일에 대한 압축, DQ/계보, PII 보안 및 비용 위생은 호수 층을 지속 가능한 기초로 바꿉니다. 토너먼트 피크와 배치 분석 및 거의 실시간 상점 모두를 지원합니다.

Contact

문의하기

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

통합 시작

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

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

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