Деректерді топтап өңдеу
1) Мақсаты және құндылығы
Batch-конвейерлер:- Реттеушілік және қаржылық есептілік (GGR/NGR, салықтар, RG/AML тізілімдер).
- BI және азық-түлік талдауы (когорттар, LTV, конверсиялық құйғыштар).
- Дәлдікті салыстыру (OLTP, DWH, провайдерлер/PSP), тарихтандыру (SCD).
- ML үшін фичтер мен оқыту жиынтықтарын дайындау.
Түйінді қасиеттері: болжамдылығы, толықтығы, жаңғыртылуы, деректер бірлігіне төмен құны.
2) Сәулет (референс)
1. Ingest (raw capture): HTTP/gRPC, ALTP-дан CDC, провайдерлік жүктеулер → Bronze.
2. Lakehouse: Bronze (raw, append-only) → Silver (clean/conform) → Gold (serve).
3. Оркестрлеу: Airflow/Dagster/Prefect (DAG 'и, тәуелділік, ретра, SLA).
4. Өңдеу: Spark/Trino/DBT/SQL-қозғалтқыштар; партиялану және ACID форматтары (Delta/Iceberg/Hudi).
5. DQ және Келісімшарттар: Schema Registry, DQ-ережелер (YAML/SQL), consumer-tests.
6. Сервинг: BI/семантикалық қабат, есептік экспорт (CSV/PDF/JSON + hash), API/GraphQL.
7. Байқалуы: пайплайндар метрикасы, lineage, логи, құны (cost/GB, cost/query).
3) Жиіліктер және SLAs
Күнделікті (D + 1 - 06:00 лок.) : GGR есептері, реттеуші түсіру, салыстыру.
Сағаттық/квазиреалтайм: Ops/Қаржы үшін жедел панельдер.
Апталық/айлық: қаржылық консолидация, модельдер және ретропроцесстер.
- Gold-күнделікті витриналар жергілікті уақыт бойынша 06: 00-ге дейін дайын.
- Freshness Silver p95 ≤ 15 мин микробатча үшін/ ≤ 2 сағ күндізгі үшін.
- Completeness ≥ 99. 5%, Validity (схема) ≥ 99. 9%.
4) Инкременталды жүктеулер және CDC
Тәсілдер:- CDC (Change Data Capture): Debezium/log-репликация → Bronze → Silver инкременттері.
- Watermark уақыты бойынша: 'updated _ at> max_loaded_ts'.
- Өзгерту детекторы үшін 'md5 (row)' хэш салыстыру.
- Upsert/Merge: Silver/Gold.
sql
MERGE INTO silver. payments AS s
USING staging. payments_delta AS d
ON s. transaction_id = d. transaction_id
WHEN MATCHED THEN UPDATE SET
WHEN NOT MATCHED THEN INSERT;
5) SCD (өлшемдерді тарихтау)
SCD I: қайта жазу (орфография, шағын түзетулер).
SCD II: толық функционалды тарихы ('valid _ from/valid _ to/is _ current').
SCD III: қысқаша салыстырулар үшін «дейін/кейін».
sql
MERGE INTO dim. users_scd t
USING stage. users u
ON t. user_pseudo_id = u. user_pseudo_id AND t. is_current = TRUE
WHEN MATCHED AND (t. country <> u. country OR t. rg_status <> u. rg_status)
THEN UPDATE SET t. is_current = FALSE, t. valid_to = CURRENT_TIMESTAMP
WHEN NOT MATCHED
THEN INSERT (user_pseudo_id, country, rg_status, valid_from, valid_to, is_current)
VALUES (u. user_pseudo_id, u. country, u. rg_status, CURRENT_TIMESTAMP, NULL, TRUE);
6) Backfill и Reprocessing
Backfill: бастапқы толтыру/тарихи жүктеу.
Reprocessing: логика/деректерді түзетуден кейін сөрелерді қайта есептеу.
- Іспеттестік (MERGE/upsert), Bronze өзгермейтіндігі, логиканы нұсқалау.
- қайтадан жүріп өту үшін Time-travel; метадеректер снапшоты.
- Guardrails: диапазондарды, квоталарды және бәсекелі кендірлерді шектеу.
- Құжаттама: аяқтау қадамдары мен өлшемдері бар runbook.
7) Қабаттарды модельдеу
Bronze:- Append-only, 'event _ date', 'jurisdiction', 'tenant' партиялары.
- Бастапқы payload (форензия үшін) сақтаймыз, 'ingested _ at' -ті белгілейміз.
- Нормалау және стандарттау: FK/анықтамалықтар, дедуп, FX/таймзондтар.
- Фактілер/өлшеулер кестелері (3NF/BCNF), негізгі өлшеулер үшін SCD.
- BI/реттегіш/қаржы, SLA дайындығы бар нормаланған витриналар.
- Агрегаттарды материалдандыру; өзгермейтін экспорт артефактілері (hash + WORM).
8) Деректер сапасы (DQ-код сияқты)
Silver үшін YAML ережелерінің мысалы:yaml table: silver. payments slo:
freshness_minutes: 15 completeness_percent: 99. 5 rules:
- name: amount_positive type: range column: amount_base min: 0. 01 severity: critical
- name: currency_whitelist type: in_set column: currency set: [EUR,USD,GBP,TRY,BRL]
severity: major
- name: unique_tx type: unique columns: [transaction_id]
severity: critical
- name: fk_user type: foreign_key column: user_pseudo_id ref_table: dim. users_scd severity: critical
Реакция саясаты: critical → fail job + DLQ; major/minor → тег + есеп.
9) Семантикалық қабат және есептілік
Метриктердің бірыңғай анықтамалары (GGR/NGR, ARPPU, Retention) semantic-layer/metrics-store.
Метриканы нұсқалау; BI/экспорттық пакеттермен интеграциялау.
Есептер: CSV/JSON/PDF + sha256, түсіру журналы және қажет болған жағдайда Legal Hold.
10) Құпиялылық, резиденттік, қауіпсіздік
PII-азайту: пайдаланушыларды бүркеншік атау; маппинг - жеке қорғалған контурда.
Data residency: EEA/UK/BR бойынша жеке каталогтар/кілттер; құқықтық негізсіз кросс-өңірлік join 'оларға тыйым салу.
Шифрлау: TLS in-transit; KMS/CMK at-rest; экспортты бақылау.
DSAR/RTBF: есептелетін проекциялар, селективті редакциялау; қолжетімділік аудиті.
Legal Hold: WORM-реттеуші артефактілерге арналған мұрағаттар.
11) Өнімділік және құн
Күні/нарығы/теңгерімі бойынша партияландыру; Z-order/cluster жиі предикаттар бойынша.
Пішімдер: Parquet + ACID кестелері; компрессия/статистика, OPTIMIZE/VACUUM.
Материалдандыру: Gold тұрақты агрегациясы; «тұтас» кендірден аулақ болу керек.
Квоталар/бюджеттер: командалар бойынша chargeback; backfill/ауыр сұрауларға арналған лимиттер.
Жоспарлау: төмен жүктеме терезелері (түн/демалыс), кезектердің басымдықтары.
12) Бақылау және басқару
Пайплайн өлшемдері: duration, success rate, retries, rows processed, cost/query.
DQ-метриктер: completeness, validity, uniqueness, FK-қателер, drift.
Freshness heatmap: домендер мен нарықтар бойынша; SLA-дашборд.
Lineage: Bronze бастап есептерге дейін шығу тегі; өзгерістер алдында impact-талдау.
Алерттар: SLO-бюджеттер, DQ деградациялары, кідірістер, құнның өсуі.
13) SQL мысалдары/модельдері
Валюталарды қалыпқа келтіру (Silver):sql
CREATE OR REPLACE TABLE silver. payments AS
SELECT p. transaction_id,
p. user_pseudo_id,
p. currency,
p. amount_orig,
r. rate AS fx_rate_used,
p. amount_orig r. rate AS amount_base,
p. market,
CAST(p. event_time AS TIMESTAMP) AS event_time
FROM bronze. payment_events p
JOIN dim. fx_rates r
ON r. date = DATE(p. event_time)
AND r. ccy_from = p. currency AND r. ccy_to = 'EUR';
GGR (Gold) күнделікті витринасы:
sql
CREATE OR REPLACE VIEW gold. ggr_daily AS
SELECT
DATE(b. event_time) AS event_date,
b. market,
g. provider_id,
SUM(b. stake_base) AS stakes_eur,
SUM(p. amount_base) AS payouts_eur,
SUM(b. stake_base) - SUM(p. amount_base) AS ggr_eur
FROM silver. fact_bets b
LEFT JOIN silver. fact_payouts p
ON p. user_pseudo_id = b. user_pseudo_id
AND p. game_id = b. game_id
AND DATE(p. event_time) = DATE(b. event_time)
JOIN dim. games g ON g. game_id = b. game_id
GROUP BY 1,2,3;
Толықтығын бақылау (DQ SQL):
sql
SELECT market, event_date, COUNT() AS n
FROM silver. fact_bets
GROUP BY market, DATE(event_time) AS event_date
HAVING n = 0;
14) Процестер және RACI
R (Responsible): Data Engineering (DAG 'i, Silver/Gold модельдері), Data Platform (инфра, схемалар тіркелімі, DQ).
A (Accountable): Head of Data / Chief Data Officer.
C (Consulted): Compliance/Legal/DPO (PII/retention), Finance (FX/GGR), Risk (RG/AML), SRE (SLO/стоимость).
I (Informed): BI/Өнім/Маркетинг/Операциялар.
15) Енгізу жол картасы
MVP (4-6 апта):1. Lakehouse Bronze/Silver (ACID-формат), CDC/2-3 домендерге арналған инкременттер.
2. DQ-код ретінде: Payments/Gameplay + CI-валидациясы үшін 10-15 ереже.
3. Бірінші Gold-витрина (GGR Daily) SLA-дан 06: 00-ге дейін; есептік экспорт + hash.
4. Дашбордтар Freshness/Completeness/Cost, базалық алерталар.
2-фаза (6-12 апта):- SCD II для users/games/providers; домендерді кеңейту.
- Метриканың семантикалық қабаты; OLTP/провайдерлермен салыстыру (accuracy).
- backfill/reprocessing, lineage және impact-талдау, аймақтандыру (EEA/UK) рәсімдері.
- Өзгерістерді автосимуляциялау (dry-run), бюджеттер/квоталар, chargeback.
- Автоматты құжаттама (data product pages), DR-жаттығулар және time-travel-қалпына келтіру.
- Құнды оңтайландыру (кластерлеу, материалдандыру, TTL, вакуум).
16) Азық-түлік алдындағы чек-парағы
- Registry-дегі келісімшарттар мен схемалар, сыйысымдылық тестілері жасыл.
- Инкременталды жүктеулер/CDC жұмыс істейді, MERGE іспеттес.
- DQ-ережелер белсенді; critical → fail + DLQ; бұзушылықтар туралы есеп.
- жас/толымдылық SLA/дашбордтар; тәуекелдер теңшелді.
- PII/DSAR/RTBF/Legal Hold саясаты Заңды/DPO расталған.
- Runbook 'және backfill/reprocessing/DR сынақтан өтті.
- Бақылаудағы құн (cost/query, cost/GB, квоталар).
17) Қарсы үлгілер және қалай болдырмау керек
Монолитті түнгі джобтар: тәуелсіз қадамдарға бөлшектеңіз, партияларға параллельдеңіз.
Қажетсіз Full-reload: инкременттерді/CDC/мерджерлерді пайдаланыңыз.
Талдамада PII араластыру: маппингтерді бөлек ұстаңыз, CLS/RLS қолданыңыз.
DQ/lineage жоқ: DQ-кодты енгізіңіз және шығу тегін қадағалаңыз.
«Қолмен» backfill ': автоматтандырады және құжаттайды, ауқымдарды шектейді.
Басқарылмайтын құн: кластерлеу, материалдандыру, ретеншн-саясат.
18) Глоссарий (қысқаша)
CDC - OLTP өзгертулерін басып алу.
SCD - баяу өзгеретін өлшемдер (I/II/III).
Lakehouse - data lake + ACID кестелері.
MERGE/Upsert - теңшелетін жаңарту әрекеттері.
Time-travel - кестелердің тарихи нұсқаларын оқу.
WORM - артефактілерді өзгермейтін сақтау.
19) Қорытынды
Пакеттік өңдеу - бұл болжамды, қайта шығарылатын және комплаентті конвейерлердің тәртібі. Schema-first, инкременттер/CDC, SCD-тарихтандыру, DQ-код, бақылау және саналы экономика қағидаттарына сүйене отырып, сіз тұрақты Gold-витриналар мен жарқылдар тексеретін және кез келген уақытта аудитке дайын есептерді аласыз.