GH GambleHub

Көлдөр маалыматтар жана агымдардын бириктирүү

1) Максаты жана баалуулугу

Data Lake/Lakehouse - узак сактоо жана масштабдуу окуу таяныч катмары, кайда:
  • Продукциянын/оюндардын/төлөмдөрдүн агымдары Bronze "кандай болсо" конушат.
  • Silver макулдашылган ачкычтарды жана сапатын камсыз кылуу, нормалдаштыруу жана байытуу.
  • Gold - BI, жөнгө салуучу, антифрод/RG үчүн топтолгон витриналар (анын ичинде real-/near-real-time).

Lakehouse боюнча агымдардын агрегациясы төмөнкүлөрдү берет: отчеттордун төмөн кечигүүсү, болжолдуу наркы, кайталануучулук жана форензия.

2) Референттик архитектура

1. Ingest/Edge: HTTP/gRPC, OTel, batch endpoints → шина (Kafka/Redpanda).
2. Bronze (append-only): объект сактоо + ACID-стол (Delta/Iceberg/Hudi), партия by date/market/tenant; баштапкы payload сактоо.
3. Stream Compute: Flink/Spark/Beam - терезе агрегаттары, CEP, дедуп, онлайн-lookups.
4. Silver (clean/conform): акча нормалдаштыруу/убакыт, FK/маалымдамалар, өлчөө үчүн SCD.
5. Serving/OLAP: ClickHouse/Pinot/Druid - панелдер үчүн материалдык мүнөт/секунд агрегаттар.
6. Алтын (serve): күндүзгү/саат терезелер, жөнгө салуучу тилкелер, өзгөрүлбөгөн экспорттук пакеттер (WORM).
7. Башкаруу контурлары: Schema Registry, DQ-Code, Lineage, каталогдор, сырлар/KMS, RBAC/ABAC.

3) Келишимдер жана схемалар

Schema-first: JSON/Avro/Protobuf; Милдеттүү талаалар: 'event _ time (UTC)', 'event _ id', 'trace _ id', 'user _ pseudo _ id', 'market', 'schema _ version'.
Эволюция: back-compatible → nullable кошуу; breaking → '/v2 '+ кош жазуу.
Каталог: домен сүрөттөлүшү, ээси, SLA сергектик, DQ эрежелери, сызык.

4) Көлгө агымдардын конушу

түбүндө Exactly-once: at-least-once жарыялоо + empotent sink (MERGE/upsert 'event _ id').
Дедуп: агымда stateful + Silver уникалдуулугу.
Файлдарды жыйноо: small files → окуу жана наркы үчүн үзгүлтүксүз OPTIMIZE/VACUUM.
Time-travel: Hata, реплика жана аудит камтыйт.

Мисалы, Iceberg партиялаштыруу (DDL идея):
sql
CREATE TABLE bronze. payment_events (
event_id STRING, user_pseudo_id STRING, currency STRING,
amount DECIMAL(18,2), market STRING, event_time TIMESTAMP, payload STRING
)
PARTITIONED BY (days(event_time), market);

5) агымдардын жыйындысы: терезелер жана watermarks

Терезелер:
  • Tumbling - туруктуу панелдер үчүн белгиленген (мисалы, 1 мин/5 мин).
  • Hopping - "жылмакай" метриктер үчүн бири-бирине (кадам <терезе).
  • Session - жигердүү эмес жүрүм-турум ажырым.
  • Watermarks: башкаруу late маалыматтар (адатта 2-5 мүнөт), кошумча эмиссия/оңдоо эрежелери.
Flink SQL - рыноктордо 1 мүнөттүк депозиттер:
sql
SELECT market,
TUMBLE_START(event_time, INTERVAL '1' MINUTE) AS ts_min,
COUNT() AS deposits_1m,
SUM(amount_base) AS sum_1m
FROM silver. payments
GROUP BY market, TUMBLE(event_time, INTERVAL '1' MINUTE);

6) Агрегаттарды материалдаштыруу

OLAP кыймылдаткычы (ClickHouse/Pinot/Druid): Dashboard жана ыкчам талдоо үчүн мүнөт/секунд бирдиктерин сактайт.
Lakehouse Gold: Отчеттуулук жана салыштыруу үчүн күнүмдүк/саат тилкелерин сактайт (кайталоо).

ClickHouse - materialized view (мүнөт сайын 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;
Gold - күндүзгү кесилиш (Lakehouse):
sql
CREATE OR REPLACE VIEW gold. ggr_daily AS
SELECT
DATE(event_time) AS event_date,
market, provider_id,
SUM(stake_base) AS stakes_eur,
SUM(payout_base) AS payouts_eur,
SUM(stake_base) - SUM(payout_base) AS ggr_eur
FROM silver. fact_game_financials
GROUP BY 1,2,3;

7) Күмүш: нормалдаштыруу жана макулдашуу

Убакыт жана валюта: 'event _ time (UTC)', 'amount _ base', 'fx _ rate _ used', 'fx _ source'.
Ачкычтар/маалымдамалар: 'user _ pseudo _ id', 'game _ id', 'provider _ id', 'market'.
SCD II: өлчөө тарыхын (users/games/providers/RG/KYC).
DQ эрежелери: ачкычтардын уникалдуулугу, маалымдамалар, суммалардын диапазондору, temporal-validity.

8) Агрегаттардын реестри жана "туура" аныктамалар

Semantic Layer: GGR/NGR бирдиктүү формулалары, коюмдар/утуштар, конверсия, ARPPU, latency p95.
Метриканын версиясы: 'metric _ version' жана "as-of" эсептөө.
Doc-карталар: owner, формула, булактары, SLA даяр.

9) Exactly-once/боштук жана тартиби

Шин: at-least-once + партиялаштыруу (жергиликтүү тартип).
Иштетүү: дедуп 'event _ id' (TTL 24-72h), SER/терезе операторлору түзөтүүлөр менен.
Sink: бүтүм же idempotent upsert/merge.
Outbox/Inbox: кепилдик менен OLTP домен окуяларды жарыялоо.

10) Late маалыматтар жана түзөтүүлөр

Allowed lateness: 2-5 мүнөт үчүн оперативдүү терезелер; Gold үчүн күнүмдүк кайра чогултуу.
Оңдоолор: OLAPке кошумча эмиссиялар жана Gold (idempotent) кайра тандоо.
желектер: 'late = true', 'correction _ of = <event _ id>' аудит үчүн.

11) Байкоо жана DQ

SLI/SLO (көрсөтмөлөр):
  • p95 ingest → 1-мин ≤ 2-5 с; Gold daily 06:00 лок чейин даяр.
  • Completeness ≥ 99. 5%; Schema validity ≥ 99. 9%; Trace coverage ≥ 98%.
  • пайплайн метрика: lag/throughput/busy time/state size, late-ratio, dup-rate.
  • DQ-dashboard: Freshness/Completeness/Validity, жоготуу Huni, карта "ысык" ачкычтар.
  • Lineage: Алтын/экспорт үчүн Bronze жол; өзгөрүү учурунда impact-талдоо.

12) Купуялык, резиденттик, коопсуздук

PII-минималдаштыруу: псевдонимдештирүү, өзүнчө корголгон mapping.
Residency: EEA/UK/BR - өзүнчө каталогдору жана шифрлөө ачкычтары; негизсиз кросс-аймактык join's тыюу салуу.
Шифрлөө: TLS in-transit; KMS/CMK at-rest; экспорттук кол + жөнгө салуучу WORM.
DSAR/RTBF/Legal Hold: тандалма түзөтүүлөр, тоңдуруу, аудитордук жетүү.

13) аткаруу жана наркы

Партиялаштыруу: датасы/рыногу/тенанты боюнча; көп чыпкалоочу атрибуттар боюнча кластерлештирүү/Z-order.
Компакция: small files жоюу, үзгүлтүксүз OPTIMIZE/VACUUM.
Материалдаштыруу: мүнөт/секунд - OLAP; күн/саат - Алтын.
Tiered storage: hot/warm/cold, SLA калыбына келтирүү, буйрук боюнча chargeback (cost/GB, cost/query).
Predagregation/эскиздер: HyperLogLog/approx-distinct алгылыктуу жерде.

14) Мисалдар (фрагменттер)

Flink CEP - депозиттерди структуралаштыруу (10 мин):
python if count_deposits(window=10MIN) >= 3 \
and sum_deposits(window=10MIN) > THRESH \
and all(d. amount < REPORTING_LIMIT for d in window_events):
emit_alert("AML_STRUCTURING", user_id, snapshot())
SQL - Silver жүктөөдө дедуп:
sql
CREATE TABLE silver. payments AS
SELECT EXCEPT(rn) FROM (
SELECT p., ROW_NUMBER() OVER (PARTITION BY event_id ORDER BY event_time) rn
FROM bronze. payment_events p
) WHERE rn = 1;
Iceberg/Delta - MERGE Idempotent:
sql
MERGE INTO silver. fact_bets s
USING stage. fact_bets_delta d
ON s. bet_id = d. bet_id
WHEN MATCHED THEN UPDATE SET
WHEN NOT MATCHED THEN INSERT;

15) Процесстер жана RACI

R (Responsible):
  • Data Platform (Lakehouse/каталог/ACID, компакция),
  • Streaming (агрегаттар/CEP/dedup),
  • Domain Analytics (метрика/Gold).
  • A (Accountable): Head of Data/CDO.
  • C (Consulted): Compliance/Legal/DPO (PII/residency/Legal Hold), Finance (FX/GGR), SRE (SLO/стоимость), Security.
  • I (Informed): BI/Продукт/Маркетинг/Операциялар.

16) Ишке ашыруунун жол картасы

MVP (3-5 жума):

1. Lakehouse Bronze/Silver (ACID таблицалар), Kafka тартып ingest, схемаларды каттоо.

2. Негизги агым агрегаттары (1-5 мин) OLAP; Gold витринасы. ggr_daily (D + 1 06:00 чейин).

3. DQ-Code үчүн Payments/Gameplay, Dashboard Freshness/Completeness.

4. Compaction/OPTIMIZE, минималдуу cost-метриктер жана alerty lag/late/dup.

2-этап (5-10 жума):
  • Silver узартуу (users/games/providers үчүн SCD II), сызык жана таасир талдоо.
  • Асинхрондук lookups (RG/KYC/ASN/BIN), late-түзөтүү башкаруу.
  • Семантикалык метр катмары, экспорттук регламент (WORM/кол тамгалар).
Этап 3 (10-16 жума):
  • Көп аймак, DR/реплика-симулятор, auto-tuning терезелер жана watermarks.
  • Cost-dashboard, chargeback/квота, tiered storage жана архивдөө.
  • Автогенерация документации витрин и карточки метриков.

17) Азык-түлүктүн алдындагы чек-тизме

  • Реестрдеги схемалар жана контракттар; back-compat тесттер жашыл.
  • Дедуп камтылган, watermark/allowed lateness, DLQ.
  • Compaction/OPTIMIZE/VACUUM тартиби боюнча орнотулган.
  • SLO: p95 ingest→minute-view, Gold до 06:00; lag/late/dup/state size.
  • DQ эрежелери активдүү; lineage экспортторго Bronze көрүнүп турат.
  • RBAC/ABAC и KMS; резиденттүүлүк жана DSAR/RTBF/Legal Hold сыналган.
  • контролдоо боюнча наркы (cost/GB, cost/query, cold үлүшү), реплика боюнча чектер.

18) Анти-үлгүлөрү жана тобокелдиктер

Чийки жана отчеттук маалыматтарды бир таблицада аралаштыруу: reproducibility бузат.
Компакциянын жоктугу: жардыруу small files → кымбат суроо.
FX эсептөө "артка": тарыхты жана отчетторду бузат.
Жок watermarks/late-саясат: "калкып" терезелер жана алерталар.
Муктаждык жок Full reload: инкременттерди/MERGE жана түзөтүүлөрдү колдонуу.
Аналитикада PII: маппингдерди өзүнчө кармаңыз, CLS/RLSди кошуңуз.

19) Глоссарий (кыскача)

Lakehouse - маалымат lake + ACID таблицалары жана SQL кыймылдаткычы.
Bronze/Silver/Gold - чийки/нормалдаштырылган/тейлөө катмарлары.
Watermark - event-time терезелердин даяр чек.
Materialized View - тез окуу үчүн алдын ала белгиленген терезе.
Time-travel - таблицалардын тарыхый версияларын окуу.
WORM - экспорттук артефакттарды туруктуу сактоо.

20) Жыйынтык

Туура агым-агрегация менен көлдүн маалыматтар катмарлары жана келишимдер тартип болуп саналат: Bronze "бар", нормалдаштыруу жана сапаты үчүн күмүш, мүнөт панелдер үчүн OLAP, ойнотулган отчеттор үчүн алтын. Терезелерди жана суу маркаларын, дедупты жана компакцияны, купуялыкты жана наркты башкаруу менен, сиз продукт, комплаенс жана операциялык башкаруу үчүн тез, текшерилүүчү жана комплаенс витриналарды аласыз.

Contact

Биз менен байланышыңыз

Кандай гана суроо же колдоо керек болбосун — бизге кайрылыңыз.Биз дайым жардам берүүгө даярбыз!

Telegram
@Gamble_GC
Интеграцияны баштоо

Email — милдеттүү. Telegram же WhatsApp — каалооңузга жараша.

Атыңыз милдеттүү эмес
Email милдеттүү эмес
Тема милдеттүү эмес
Билдирүү милдеттүү эмес
Telegram милдеттүү эмес
@
Эгер Telegram көрсөтсөңүз — Emailден тышкары ошол жактан да жооп беребиз.
WhatsApp милдеттүү эмес
Формат: өлкөнүн коду жана номер (мисалы, +996XXXXXXXXX).

Түшүрүү баскычын басуу менен сиз маалыматтарыңыздын иштетилишине макул болосуз.