GH GambleHub

스트리밍 및 스트리밍 분석

1) 목적과 가치

스트리밍 회로는 즉시 의사 결정을 제공합니다

사기 방지/AML: 예금 구조, 속도 공격, 공급자의 이상 식별.
책임있는 게임 (RG): 한계 초과, 위험 패턴, 자기 배제.
작업/SRE: SLA 저하, 오류 버스트, 초기 사고 신호.
제품/마케팅: 개인화 이벤트, 미션/퀘스트, 실시간 세분화.
거의 실시간으로보고: GGR/NGR 쇼케이스, 작동 패널.

목표 특성: p95 엔드 투 엔드 0. 5-5 초, 완전 99 이상. 5%, 관리 가치.


2) 참조 아키텍처

1. 소화/가장자리

'/이벤트/배치 '(TH/2/3), gRPC, OTel 수집기.
체계 검증, 중복 방지, 지리 라우팅.

2. 이벤트 버스

Kafka/Redpanda ('user _ id/세입자/시장' 으로 분할).
"파손 된" 메시지에 대한 보존 3-7 일, 압축, DLQ/" 검역 ".

3. 스트리밍

Flink/Spark 구조화 된 스트리밍/빔.
고마운 진술, CEP, 워터 마크는 지연 시간, 중복 제거를 허용했습니다.
농축 (Redis/Scylla/ClickHouse-Lookup), 타임 아웃이있는 비동기 I/O.

4. 서빙/운영 디스플레이

분/초 집계 및 대시 보드를위한 ClickHouse/Pinot/Druid.
스코어링 모델의 피처 스토어 (온라인).
경고 주제 → SOAR/발권/웹 후크.

5. 장기 보관 (레이크 하우스)

청동 (생), 은 (깨끗한), 금 (서브) -Parquet + Delta/Iceberg/Hudi.
재생/백 테스트, 시간 여행.

6. 관찰 가능

파이프 라인 메트릭, 트레이싱 (OTel), 로그, 계보.


3) 계획 및 계약

스키마 우선: 각 이벤트에서 JSON/Avro/ProtoGrapi + 레지스트리, '스키마 _ 버전'.
진화: 역 호환-새로운 널링 가능 필드; 속보 - '/v2 '+ 이중 출판.
필요한 필드는 '이벤트 _ time' (UTC), '이벤트 _ id', 'trace _ id', '사용자입니다. pseudo _ id ',' market ',' source '.


4) Windows, 워터 마크 및 최신 데이터

창:
  • 텀블링, 호핑, 세션.
  • 워터 마크: 이벤트 타임 "지식" 임계 값; 예: 2-5 분
  • 늦은 데이터: 발행 전 조정, "늦게 = 참", DLQ 지연이 심합니다.
Flink SQL 예 (10 분 침전 속도):
sql
SELECT user_id,
TUMBLE_START(event_time, INTERVAL '10' MINUTE) AS win_start,
COUNT() AS deposits_10m,
SUM(amount_base) AS sum_10m
FROM stream.payments
GROUP BY user_id, TUMBLE(event_time, INTERVAL '10' MINUTE);

5) 고마운 집계 및 CEP

키: 'user _ id', 'diche _ id', 'payment. 계정 _ id '.
상태: 중복 제거를위한 슬라이딩 합/카운터, 세션, 블룸 필터.
CEP 패턴: 구조화 (<임계 값, 3 배, T 창), 장치 스위치, RG 피로.

CEP 의사 코드:
python if deposits.count(last=10MIN) >= 3 and deposits.sum(last=10MIN) > THRESH and all(d.amount < REPORTING_THRESHOLD):
emit_alert("AML_STRUCTURING", user_id, window_snapshot())

6) 정확한 한 번, 순서 및 demmpotence

버스: 적어도 한 번은 + 파티션 키가 로컬 주문을 제공합니다.
이데올로기: '이벤트 _ id' + dedup 상태 (TTL 24-72 h).
싱크: 거래 커밋 (2 상) 또는 upsert/merge-demempotency.
전송/받은 편지함: OLTP의 도메인 이벤트 게시 보장.


7) 실시간 농축

조회: Redis/Scylla (RG 제한, KYC 상태, BIN → MCC, IP → Geo/ASN).
비동기 호출: 타임 아웃 및 폴백 ("알 수 없음") 이있는 제재/APP API.
FX/시간대: 금액과 현지 시장 시간의 정규화 ('fx _ source', 'tz').


8) 서빙 및 실시간 상점

ClickHouse/Pinot/Druid: 분/초당 집계, 구체화 된보기.
골드 스트림: 작동 테이블 GGR/RG/AML, SLA 지연 1-5 분.
API/GraphQL: 대시 보드 및 외부 통합을위한 낮은 대기 시간.

ClickHouse 예 (분당 GGR):
sql
CREATE MATERIALIZED VIEW mv_ggr_1m
ENGINE = AggregatingMergeTree()
PARTITION BY toDate(event_time)
ORDER BY (toStartOfMinute(event_time), market, provider_id) AS
SELECT toStartOfMinute(event_time) AS ts_min,
market,
provider_id,
sumState(stake_base) AS s_stake,
sumState(payout_base) AS s_payout
FROM stream.game_events
GROUP BY ts_min, market, provider_id;

9) 관찰 및 SLO

SLI/SLO (랜드 마크):
  • p95 섭취 → 경고
  • 그림% 1개의 캡션을 편집했습니다. 5%.
  • 스키마 오류 1%; 'trace _ id' 를 가진 이벤트의 비율은 98% 입니다.
  • 서비스 가용성을 99 이상으로 스트리밍하십시 9%.
대시 보드:
  • 파티/주제 지연, 바쁜 시간 운영자, 주 규모.
  • 깔때기 "sobytiye → pravilo → key", "hot" 키의 맵, 늦은 비율.
  • 비용: 비용/GB, 비용/쿼리, 체크 포인트/재생 비용.

10) 개인 정보 보호 및 준수

PII 최소화: ID 가명화, 필드 마스킹, PAN/IBAN 토큰 화.
데이터 상주: 지역 파이프 라인 (EEA/UK/BR), 개별 암호화 키.
법적 운영: 다운 스트림 상점의 DSAR/RTBF, 사례/보고서에 대한 법적 보류.
감사: 로그 액세스, 변경되지 않은 솔루션 아카이브.


11) 경제와 생산성

키 및 샤딩: "핫" 키 (소금/복합 키) 를 피하십시오.
조건: 합리적인 TTL, 스냅 샷, 튜닝 RocksDB/백엔드 상태.
준비: 시끄러운 스트림의 선행 감소.
샘플링: 중요하지 않은 지표 (트랜잭션/규정 준수가 아님) 에 유효합니다.
충전: 테마/작업, 할당량 및 팀 할당 예산.


12) 스트리밍 DQ (품질)

Ingest-validation (스키마, 에넘, 크기), dedup '(이벤트 _ id, 소스)'.
스트림에서: 완전성/dup 비율/후기 비율, 창 제어 (이중 계산 없음).

반응 정책: 중요한 → DLQ + 경고; 메이저/마이너 → 태그를 지정한 다음 지우십시

최소 규칙 (YAML, 예):
yaml stream: payments rules:
- name: schema_valid type: schema severity: critical
- name: currency_whitelist type: in_set column: currency set: [EUR,USD,GBP,TRY,BRL]
- name: dedup_window type: unique keys: [event_id]
window_minutes: 1440

13) 액세스 보안 및 릴리스 제어

RBAC/ABAC: 스레드 읽기, 규칙/모델 변경을위한 별도의 역할.
이중 제어: "2 키" 를 통한 규칙 및 모델 출시.
카나리아/A/B: 어두운 규칙 및 모델 실행, 정밀/리콜 제어.
비밀: KMS/CMK, 정기적 인 회전, 로그의 비밀 금지.


14) 프로세스 및 RACI

R (책임): 스트리밍 플랫폼 (인프라/릴리스), 도메인 분석 (규칙/기능), MLops (점수).
A (책임): 도메인 별 데이터/위험/준수 책임자.
C (컨설팅): DPO/Legal (PII/보존), SRE (SLO/Incidents), 아키텍처.
I (정보): 제품, 지원, 마케팅, 재무.


15) 구현 로드맵

MVP (2-4 주):

1. Kafka/Redpanda + 두 가지 중요한 주제 ('결제', '지정').

2. 워터 마크, 중복 제거 및 하나의 CEP 규칙 (AML 또는 RG) 이있는 플링크 작업.

3. ClickHouse/Pinot 쇼케이스 1-5 분, 대시 보드 지연/완성.

4. 인시던트 채널 (webhooks/Jira), 기본 SLO 및 경고.

2 단계 (4-8 주):
  • 온라인 농축 (Redis/Scylla), Feature Store, 비동기 전망대.
  • 코드로서의 규칙 관리, 카나리아 릴리스, A/B.
  • DQ 스트리밍, 파이프 라인 지역화, DSAR/RTBF 절차.
3 단계 (8-12 주):
  • 다중 영역 활성 활성, What-if 재생 시뮬레이터, 임계 값의 자동 보정.
  • 거의 실시간으로보고되는 전체 골드 스트림 쇼케이스 (GGR/RG/AML).
  • 가치 대시 보드, 청구서, DR 연습.

16) 예 (조각)

Flink CEP - 장치 스위치:
sql
MATCH_RECOGNIZE (
PARTITION BY user_id
ORDER BY event_time
MEASURES
FIRST(A.device_id) AS d1,
LAST(B.device_id) AS d2,
COUNT() AS cnt
PATTERN (A B+)
DEFINE
B AS B.device_id <> PREV(device_id) AND B.ip_asn <> PREV(ip_asn)
) MR
카프카 스트림-dem 등원 필터:
java if (seenStore.putIfAbsent(eventId, now()) == null) {
context.forward(event);
}

17) 사전 판매 점검표

  • Registry, back-compat 테스트의 계획 및 계약은 녹색입니다.
  • 포함 된 워터 마크/허용 된 지연 시간, dedup 및 DLQ.
  • 구성 SLO 및 경고 (지연/후기/염색/상태 크기).
  • 캐시와 타임 아웃으로 농축, 대체 "알 수 없음".
  • 규칙/모델에 대한 RBAC/이중 제어, 모든 변경 사항이 기록됩니다.
  • 규칙, 상점 및 런북 문서 및 재생/롤백.

18) 빈번한 실수와 피하는 방법

이벤트 시간을 무시하십시오: 워터 마크가 없으면 메트릭이 "플로트" 됩니다.
중복 없음: 잘못된 경고 및 이중 계산.
핫 키: 파티의 왜곡 → 소금/리 샤딩.
핫 경로의 동기식 프론트 엔드 API: async + 캐시 만.
관리되지 않는 비용: 집계, TTL 상태, 할당량, 비용 대시 보드.
시뮬레이터 부족: "재생" 이없는 롤아웃은 회귀로 이어집니다.


19) 용어집 (브리핑)

CEP-복잡한 이벤트 처리.
워터 마크-이벤트 시간별 창 준비 상태 제한.
허용 된 지연 - 늦은 사건의 허용.
Stateful Operator-상태가 저장된 운영자.
Feature Store-조정 된 기능 서핑 (온라인/오프라인).


20) 결론

스트리밍 및 스트리밍 분석은 계약, 창문 및 워터 마크, 상태 논리 및 CEP, 농축 및 실시간 상점, SLO 및 관찰 가능성, 개인 정보 보호 및 관리 가치 관리 시스템입니다. 설명 된 관행에 따라 플랫폼은 예측 가능한 대기 시간과 비용으로 안정적인 위험 감지기, 운영 패널 및 개인화를받습니다.

Contact

문의하기

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

통합 시작

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

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

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