GH GambleHub

데이터 액세스 인터페이스

1) 신중한 인터페이스 인 이유

속도 및 예측 가능성: "수동 업로드" 없이 비즈니스 메트릭 및 보고서가 SLA에 적합합니다.
보안 및 개인 정보 보호: 통제중인 PII/생체 인식, k- 익명 성, 지리 경계.
유연성: 다른 고객 (BI, 서비스, 파트너, DS/ML) 이 필요한 것을 정확하게 얻습니다.
계약 및 버전으로 "데이터를 제품으로" 재사용하십시오.

2) 인터페이스 맵 (언제)

SQL/ANSI + 공급 업체 방언: 대화 형 분석, BI, 임시.
REST JSON: 안정적인 집계 및 운영 데이터, 파트너와의 통합.
GraphQL: 유연한 "선택적" 판독 및 탐색 그래프 (치수/사실).
gRPC (원형): 온라인 서핑의 대기 시간이 짧습니다 (Feature Store, 채점).
HTT/S3- 사전 서명 된 Arrow Flight/Parquet: DS/ML 용 빠른 열 덤프.
OData: 엔터프라이즈 도구, 서비스 테이블 모델.
스트림 (Kafka/Pulsar) + CDC/Webhooks: 실시간 이벤트, 반응성 통합.
페더레이션 (Trino/Presto): 여러 출처에 대한 단일 진입 점.

규칙: 집계 및 안정적인 슬라이스 → REST/MV, 풍부한 임의의 쿼리 → SQL, 낮은 대기 시간/온라인 기능 → gRPC, 유연한 응답 형태 → GraphQL, 질량 이진 교환 → Arrow/Parquet.

3) 계약 및 버전 (세미 버)

'마조 르. 미노르. 그림% 1개의 캡션을 편집했습니다.
메이저: 호환되지 않는 변경 (새 경로/주제/테이블).
MINOR: 호환 가능한 필드/인수 추가.
PATCH: 설명/제한 편집.
계약, 필터, 한계, 개인 정보 보호, SLO 등 계약이 수정되었습니다.

OpenAPI (조각, REST 메트릭):
yaml openapi: "3. 0. 3"
info: {title: "Analytics API", version: "2. 4. 0"}
paths:
/v2/payments/metrics:
get:
parameters:
- {name: brand, in: query, schema: {type: string}, required: true}
- {name: country, in: query, schema: {type: string}}
- {name: from, in: query, schema: {type: string, format: date-time}}
- {name: to, in: query, schema: {type: string, format: date-time}}
- {name: group_by, in: query, schema: {type: string, enum: [psp,status,day]}}
- {name: limit, in: query, schema: {type: integer, default: 500}}
responses:
"200": {description: "OK"}
x-slo: {p95_latency_ms: 1200, freshness_max: "PT5M"}
x-privacy: {pii: false, min_group_size: 20}

4) 분석 액세스 (SQL 및 페더레이션)

역할/마스크 (행/열 수준 보안) 가있는 SQL 게이트웨이.
블리자드/BI 프로젝션: 안정적인 이름과 의미론; 무거운 요청은 사전 집계로갑니다.
페더레이션 (Trino/Presto): 단일 진입 점이지만 정책: 디렉토리 및 사용 가능한 기능.
레이크 하우스 (Iceberg/Delta/Hudi): SQL/REST를 통한 시간 여행, 스냅 샷 검색.
게 이름이다: 스캔 바이트/쿼리, 동시성, 벽 타임.

5) 그래프 QL (유연한 형태)

우리는 클라이언트에게 원하는 필드를 수집하도록하지만 깊이/뼈 제한이있는 준비된 블리자드/프로젝션을 실행합니다.

graphql type Query {
payments(
brand: String!, country: String, from: DateTime!, to: DateTime!,
first: Int = 200, after: String
): PaymentConnection
}

정책: 깊이 5, 총 노드 우리는 빈번한 요청을 캐시합니다.

6) gRPC/기능 상점 (낮은 대기 시간)

사기 방지/권장 사항/RG 채점을위한 온라인 기능.

proto service FeatureStore {
rpc GetFeatures (FeatureRequest) returns (FeatureResponse);
}
message FeatureRequest { string user_tok = 1; repeated string features = 2; }
message FeatureResponse { map<string, FeatureValue> values = 1; int64 ts_micros = 2; }

요구 사항: p95 소 50-100 ms, 정확한 오프레인 온라인 일관성, TTL 기능, LRU 캐시, demempotency 및 mTLS.

7) 흐름과 CDC

도메인 이벤트: '결제. (PHP 3 = 3.0.6, PHP 4) 라운드 _ 완료 '.
CDC (OLTP에서): 거의 실시간으로 상태/제한 변경.
파트너를위한 웹 후크: 집계 가입 (예: "PSP 실패> 임계 값").
재 트레이/승인 정책: 정확히 한 번은 중요하고 적어도 한 번은 모니터링입니다.

8) 호수와 큰 샘플

DS/ML로 빠른 열 배출을위한 화살표 비행.
짧은 TTL 및 서명 된 요청으로 Parquet/Feather에 SM에 서명했습니다.
청크 전송 및 파일 크기 제어; 로그 다운로드 (WORM 감사).

9) 필터, 페이지 정렬, 정렬

큰 세트의 경우 OFFSET 대신 키셋 페이지 매김 (커서).
필터: 필드, 유형 및 연산자 별 화이트리스트 ('=, IN, BETWEEN, 접두사').
정렬: 제한된 필드 목록, 기본 순서.
부분 응답: 'fields = 브랜드, 국가, 금액' 은 페이로드를 줄입니다.

http
GET /v2/game-rounds? brand=X&from=...&to=...&first=1000&after=eyJkYXRlIjoi...

10) 캐싱 및 비용

스냅 샷 ID로 비활성화 된 템플릿 요청에 대한 결과 캐시.
공개/반 공개 집계 (PII 없음) 를위한 에지 캐시/CDN입니다.
예산 매개 변수: 스캔 된 바이트 제한, 요청 시간 초과, rps/min 할당량.
수영장의 우선 순위: 'bi _ hot', 'adhoc', 'partner _ api'.

11) 보안 및 개인 정보 보호

권한: OAuth2/OIDC (서비스를위한 클라이언트 자격 증명, 사람들을위한 PKCE).
AuthZ: RBAC + ABAC (속성: 브랜드, 국가, 라이센스, 역할).
서비스 간의 mTLS, TLS 1. 2 + 아웃.
PII 위생: API 레이어의 마스크/토큰 화, 컬럼 마스크, 골재의 k- 익명 성.
Geo/테넌트 격리: 라이센스 영역으로의 라우팅 요청; 브랜드/지역당 암호화 키.
DSAR/Legal Hold: 주제 토큰별로 검색, 동결 세트의 비밀.

12) 관찰 가능성 (SLI/SLO) 및 보호

SLI: p50/p95/p99 lat, 오류율, rps, 바이트 스캔, 캐시 적중, 할당량/제한, 마스크 열의 공유, 인증 오류 공유.
SLO: p95 대기 시간, 데이터 신선도,% 성공적인 요청, 응답에 대한 최소 그룹 크기.
경고: 스캔 된 바이트 상승, 적중률 하락, 429/5xx 스파이크, PII 액세스 시도, 커서 누출.

정책 예:
yaml slo:
p95_latency_ms: 1200 success_rate: 0. 995 freshness_max: "PT5M"
privacy:
pii_allowed: false min_group_size: 20 quotas:
rps: 50 max_scanned_mb: 256

13) 형식과 압축

호환성을위한 JSON; CSV - 작고 간단한 수출에만 해당됩니다.
Parquet/Arrow-큰 업로드의 기본값.
압축: ggip/zstd ('수락 인코딩' 을 통한 협상).
컨텐츠 협상: '수락: 응용 프로그램/x-parquet'.

14) API로서의 측정 항목 (분석/OLAP 게이트웨이)

최상위 메트릭: GGR/NET, CR, 보류, RG 사건-매개 변수 '브랜드, 국가, 창, 그룹 _ by' 의 리소스로서.

약 (HLL/TDigest)

키 캐시: '(메트릭, 파람, 스냅 샷 _ id)'.

15) iGaming 특이성-기성품 엔드 포인트

'GET/v2/payment/metrics' -7/30d 창이있는 PSP/country/brand의 실패/업데이트.
'GET/v2/game-rounds/metrics' -최고의 게임/제공 업체, p95 지속 시간, RTP 창.
'GET/v2/rg/cases' -활성 제한/자체 제외 (k 익명 집계).
'POST/v1/features: get' (gRPC) - 사기/추천을위한 온라인 기능.
'POST/v1/webhooks/psp-alerts' - 알림 "감소율> 임계 값".

16) 계약 예

GraphQL 쿼리 얇은 슬라이스:
graphql query {
payments(brand:"X", country:"TR", from:"2025-10-01", to:"2025-10-31", first:500) {
edges { node { day totalAmount declines psp } cursor }
pageInfo { hasNextPage endCursor }
}
}
카프카 (이벤트, Avro):
json
{"event_id":"...","occurred_at":169..., "brand":"X","psp":"Papara","status":"declined","amount":"100. 00","currency":"TRY"}
화살표 비행 (펜):

/flight/v1/query? dataset=gold. payments&from=...&to=...&brand=X&format=arrow

17) 새로운 인터페이스 게시 프로

1. ADR: 문제/가치/고객/보안/비용.
2. 계약: 체계, 필터, 한계, 개인 정보 보호, SLO, 버전.
3. 로드 모델링: 상위 N 요청, p95/스캔 바이트, 비용.
4. 검증/캐시/할당량: 기본적으로 활성화하십시오.
5. 문서 및 SDK: 예, 한계, 오류, 배상, demotency.
6. 카나리아: 클라이언트의%, 회귀 테스트, 경고.
7. GA: 데이터 제품 카탈로그 버전, 효과 보고서.

18) 반 패턴

모든 사람에게 "원시" SQL을 엽니 다-PII 누출, 예측할 수없는 비용.
OFFSET 페이지 매김 및 'SELECT' -대기 시간과 계산에 따른 통증.
깊이/비용 제약이없는 GraphQL.
'fields =...' 없이 너무 많은 열을 반환하는 REST.
k- 익명 성 및 최소 그룹 크기의 집계 부족.
할당량/제한 제로 및 비활성화 된 캐시.
버전 지정/계약 없음-변경 사항마다 클라이언트를 "파괴" 합니다.
모든 국가/브랜드에 대해 동일한 인터페이스는 지역 규칙을 무시합니다.

19) 구현 로드맵

0-30 일 (MVP)

1. 데이터 제품 카탈로그 (메트릭/슬라이스) 및 OpenAPI/GraphQL 계약.
2. RLS/CLS가있는 SQL 게이트웨이, 집계 k- 익명 성, 기본 할당량.
3. 하나의 REST 메트릭 엔드 포인트 ('/payment/metrics ') + 캐시 + 풀' bi _ hot/adhoc '.
4. gRPC Feature Store: 10-20 주요 온라인 기능 읽기 (p95 λ80 ms).

30-90 일

1. PSP 경고/게임 이벤트에 대한 인터페이스 (Kafka/Webhook) 를 스트리밍하십시오.
2. 화살표/Parquet는 제시된 PK에서 업로드합니다. 스냅 샷 카탈로그.
3. 명시적인 정책이있는 페더레이션 게이트웨이 (Trino/Presto).
4. 관찰 가능성: 대시 보드 SLI/SLO, 비용/대기 시간/PII 경고.

3-6 개월

1. 배송/dedempotency/할당량이있는 SDK (TypeScript/Pine/Go).
2. 제품 및 파트너를위한 얇은 GraphQL 슬라이스.
3. gRPC/FS 확장, 오프 라인 온라인 협상; 그림자 → 카나리아 릴리스.
4. 개인 정보 보호 감사/DSAR; 규정 준수 보고서에 액세스하십시오.

20) RACI

데이터 플랫폼 (R): 게이트웨이, 캐시, 할당량, 페더레이션, 관찰 가능성.
데이터 거버넌스 (A/R): 계약, 버전, 개인 정보 보호/k 익명 성.
도메인 소유자 (R): 필드 시맨틱, 비즈니스 불변량, 데이터 제품.
보안/DPO (A/R): AuthN/Z, 지리 격리, DSAR/Legal Hold.
SRE/Observability (C): SLO/SLI, 경고, 용량.
분석/BI/DS (C): 양식/집계 요구 사항, SDK.

21) 관련 섹션

분석 스토리지 인덱싱, 분석 쿼리 최적화, 데이터 스키마 및 진화, 데이터 검증, 데이터 유효성, 분석 및 메트릭 AP, 기능 저장소, 데이터 보안 및 암호화, 액세스 제어, 데이터 보존 정책.

합계

적절하게 설계된 데이터 액세스 인터페이스는 스토리지를 전환하고 예측 가능한 SLA, 제어 된 비용, 개인 정보 보호 준수 및 제품 팀, 분석, 규정 준수 및 파트너를위한 단일 언어 등 신뢰할 수있는 "제품" 으로 흐릅니다. iGaming에서 이는 PSP 충돌을 더 빨리 포착하고 플레이어 동작을 이해하고 수동 업로드 및 야간 마이그레이션없이 규제 요구 사항을 충족시키는 것을 의미합니다.

Contact

문의하기

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

Telegram
@Gamble_GC
통합 시작

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

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

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