Architektura przepływu danych
1) Cel i zasady
Cele: dostarczanie poprawnych, terminowych i zgodnych z wymaganiami danych w zakresie analizy, sprawozdawczości, zwalczania nadużyć finansowych, personalizacji i ML.
Zasady:- Dane jako produkt: jasne właścicieli, kontrakty, SLO i wersioning.
- Schemat pierwszy: wymagane są programy; ewolucja według zasad.
- Privacy-by-Design: minimalizacja PII, aliasing, kontrola dostępu.
- Obserwacja domyślnie: ślady, mierniki, rodowód, profile jakości.
- Świadomość kosztów: magazynowanie wielopoziomowe, próbkowanie hałaśliwych zdarzeń, kompresja.
2) Źródło i krajobraz wydarzeń
Transakcja: depozyty/wypłaty, zakłady/wypłaty, bonusy, obciążenie zwrotne.
Użytkownik: sesje, kliknięcia, konwersje, limity RG, statusy KYC.
Działanie: dzienniki aplikacji, wskaźniki wydajności, wpisy.
Dostawcy: PSP/KYC/sankcje/studia gier (agregatory).
Odniesienie: katalogi gier, katalogi krajów/walut, taryfy/podatki.
json
{
"event_time":"2025-10-31T19:20:11Z",
"event_type":"payment. deposit",
"schema_version":"1. 3. 0",
"user":{"id":"U-123","country":"EE","age_band":"18-24"},
"payment":{"amount":200. 00,"currency":"EUR","method":"card","psp_ref":"PSP-222"},
"ctx":{"ip":"198. 51. 100. 10","session_id":"s-2233","trace_id":"f4c2..."}
}
3) Architektura referencyjna wysokiego poziomu
1. Warstwa do spożycia
Bramki (HTTP/gRPC), złącza CDC (z OLTP), kolejki/autobusy (Kafka/Redpanda), kolektory telemetryczne.
Walidacja, normalizacja, wydanie PII na wejściu, egzekwowanie umów.
2. Warstwa strumieniowa
Strumień jabs (Flink/Iskra Structured Streaming/Beam) z deduplication, znak wodny, kruszywa stanowe.
Fan-out to storage and online services (fichestore, anti-fraud).
3. Warstwa wsadowa
Orkiestra (Airflow/Dagster), dodatkowe pliki do pobrania, backtests i retroprocesses, typy SCD.
4. Magazynowanie (Lakehouse)
Brąz: surowe zdarzenia (tylko dodatek, niezmienne).
Srebro: oczyszczone, zgodne stoły z jakością i deduplikacją.
Złoto: gabloty/marty do konkretnych przypadków (BI/regulator/ML).
Formaty stołowe z ACID (Delta/Iceberg/Hudi), warstwa gorąca/ciepła/zimna.
5. Obsługa i dostęp
BI/SQL (Trino/Presto/DuckDB), warstwa semantyczna (warstwa metryczna), API/GraphQL, Sklep funkcyjny dla konsystencji online/offline.
6. Zarządzanie i bezpieczeństwo
Katalog/linia, zasady DQ, silnik dostępu politycznego (RBAC/ABAC), maskowanie/tokenizacja, archiwum WORM do raportów.
4) Umowy i systemy
Umowy o dane: OpenAPI/AsyncAPI/JSON Schema/Avro.
Ewolucja: wersje semantyczne; zmiany kompatybilne wstecz - dodawanie pól nieważnych; przerwanie - tylko przy „/v2 ”i podwójnym wpisie w okresie migracji.
Rejestry: Rejestr schematu, katalog domeny (Płatności, Gameplay, Marketing).
5) Wzorce integracji
CDC (Change Data Capture): z OLTP do bus (Debezium), partytura klucza domeny.
Skrzynka odbiorcza/skrzynka odbiorcza: gwarantowana dostawa zdarzeń logicznych domeny.
Exactly-Once/Effective-Once: transakcje w stanie, idempotent sink, klucze deduplicacji.
Późne dane i znaki wodne: obsługa późnych zdarzeń; okna z dozwolonym opóźnieniem.
Ponowne przetwarzanie: rurociągi idempotentne, podróże w czasie, poprawki migawkowe.
6) Model Lakehouse: brąz/srebro/złoto
Brąz (surowy):- Strony czasu (event_date) i rynku (jurysdykcja).
- Tylko dodatek; przechowywanie oryginalnego ładunku do kryminalistyki.
- Typy znormalizowane, księgi referencyjne, deduplikowanie przez '(event_id, event_time)'.
- Weryfikacja FK, standaryzacja waluty/timezon, wzbogacanie.
- Denormalizowane prezentacje (GGR, RG, LTV, stoły kohortowe).
- SLA do aktualizacji, agregaty dla BI i sprawozdawczości.
7) Jakość danych
Zasady: walidacja obwodu, zakresy, wyjątkowość, kompletność, integralność odniesienia.
Profilowanie: dystrybucja, kardynalność, „dryfowanie” znaków.
Monitorowanie: opóźnienie rurociągu p50/p95, spadek, budżet błędu.
Polityka degradacji: automatyczny upadek (ostatni migawka), alerty i t-testy dla mierników.
yaml table: silver. payments rules:
- name: amount_positive type: range column: amount min: 0. 01
- name: currency_valid type: in_set column: currency set: [EUR,USD,GBP,TRY,BRL]
- name: unique_tx type: unique columns: [transaction_id]
slo:
freshness_minutes: 15 completeness_percent: 99. 5
8) Prywatność i zgodność
Minimalizacja i maskowanie PII: przechowywać pseudo-ID, oddzielne mapy wyszukiwania.
Regionalizacja: wiadra geo-lokalne/katalogi (EOG/UK/BR), „rezydencja danych”.
Operacje prawne: DSAR/RTBF (obliczeniowe projekcje i selektywne edycje), Legal Hold, niezmienne archiwum raportów.
Rejestrowanie dostępu: audyt odczytuje „wrażliwe” tabele, break-glass i dostęp JIT.
9) Obserwowalność i zarządzanie
Linege-Automatycznie śledzi zależności od źródła do sklepu.
Metryka rurociągu: przepustowość, opóźnienie, awaria, koszt/GB, koszt/zapytanie.
Ślad (OTel): 'trace _ id' z aplikacji jest wrzucany do zdarzeń → budujemy ścieżkę żądań typu end-to-end.
Wpisy: budżety SLO, anomalie świeżości/objętości/kardynalności.
10) Model dostępu i bezpieczeństwa
Kategorie danych: publiczne/wewnętrzne/poufne/ograniczone.
Zasady: bezpieczeństwo na poziomie wiersza/kolumny; maskowanie dynamiczne (PAN/IBAN/email).
Zarządzanie kluczami: KMS/CMK, szyfrowanie podczas odpoczynku/tranzytu, rotacja.
Segregacja obowiązków: osobne role prod/analyst/admin/reviewer.
11) Siatka danych i podejście do produktu
Довена: Płatności, Gameplay, Marketing, Ryzyko, Zgodność.
Produkt danych: właściciel, świeżość SLA, słownik terenowy, testy, wersje, metryka zużycia.
Umowy między domenami: testy wersjonowane, wsteczne, konsumenckie.
12) Strumienie Fichestor i ML
Rejestr funkcji: opis funkcji, źródła, transformacje, SLO.
Spójność online/offline: jeden kod transformacji, opóźnienie materializacji online ≤ 200-500 ms.
Monitorowanie dryfu: PSI/KS, automatyczne wpisy i rolki modelu, sterowanie PII.
Dziennik eksperymentów: metadane, wersje, odtwarzalność, mapy modelowe.
13) Finmodel i optymalizacja kosztów
Partycjonowanie i Z-order/Cluster według częstych predykatów.
Chłodnia i TTL dla nieużywanych tabel, VACUUM.
Zmaterializowane widoki tylko dla stabilnych wzorów zapytań.
kwoty i budżety na ciężkie miejsca pracy; obciążenie zwrotne przez zespół.
14) Topologia regionalna i wieloosobowa
Multi-region active-active: replikacja tematów i tabel, niezależne obwody rurociągu.
Awaria/DR: cele RPO/RTO, migawki metadanych orkiestrowych, kontrola odzyskiwania.
Wielopoziomowość: katalog/klucz/izolacja kwot, oznaczenie tenant_id.
15) Procesy i RACI (w skrócie)
R: Platforma danych (połknięcie, przechowywanie, orkiestra), Inżynieria danych (transformacja).
A: szef danych/główny inspektor danych.
C: Zgodność/Prawny/Inspektor Ochrony Danych, Architektura, SRE.
I: BI/Analytics, Produkt, Marketing, Finanse.
16) SLO/SLI dla przepływów
świeżość: p95 opóźnienie Srebro ≤ 15 min, Złoto (dziennie) gotowe ≤ 06:00 zamek. czas.
Kompletność: ≥ 99. 5% zdarzeń na okno T.
Ważność: wskaźnik błędów w kontrolach DQ <0. 5% objętości.
Dostępność porcji: ≥ 99. 9% dla interfejsu API BI/Feature.
17) Szablony tabeli i podziału
sql
-- Bronze: Deposit events
CREATE TABLE bronze. payment_deposits (
event_time TIMESTAMP,
event_id STRING,
user_pseudo_id STRING,
amount DECIMAL(18,2),
currency STRING,
psp_ref STRING,
payload VARIANT
)
PARTITION BY DATE(event_time)
CLUSTER BY (currency);
-- Silver: normalized model
CREATE TABLE silver. payments AS
SELECT event_id,
CAST(event_time AS TIMESTAMP) AS ts,
user_pseudo_id,
amount,
currency,
psp_ref
FROM bronze. payment_deposits
QUALIFY ROW_NUMBER() OVER (PARTITION BY event_id ORDER BY ts) = 1;
18) Orkiestra i DevX
Infra-as-Code: repozytoria rurociągów, testy, recenzje, GitOps.
Umowy o dane CI: lintery obwodów, testy DQ przed wdrożeniem.
Ramy zasypki: bezpieczne procesy retro z ograniczeniami R/W i idempotencji.
Katalogi i szablony: generatory plików cookie-cutter, najlepsze praktyki.
19) Plan działania w zakresie wdrażania
MVP (4-6 tygodni):1. Autobus imprezowy + połknięcie 2-3 kluczowych źródeł (OLTP CDC, brama API).
2. Lakehouse Bronze/Silver, ACID format, katalog i podstawowe zasady DQ.
3. 1-2 Złote skrzynki (codziennie GGR i lejek konwersji).
4. Mierniki lag/kompletności, rodowód podstawowy, RBAC i maskowanie PII.
Faza 2 (6-12 tygodni):- Jednostki przesyłania strumieniowego (opóźnienie p95 ≤ 5 min), sklep funkcyjny, prezentacje RG/AML.
- warstwa semantyczna mierników, SLA do sprawozdawczości; deski rozdzielcze.
- Regionalizacja (EOG/Wielka Brytania), procedury DSAR/RTBF, przechowywanie artefaktów.
- Siatka danych: domeny produktów, umowy konsumenckie.
- Operacje ML z monitorowaniem dryfów, automatyczne negocjacje online/offline.
- Automatyczna symulacja zmian schematu (analiza wpływu) i „co-jeśli” według kosztów.
20) Częste błędy i jak ich uniknąć
Surowe ładunki użytkowe bez schematów: wdrożyć schemat-pierwszy, rejestr i walidację CI.
Brak deduplikacji - klawisze zdarzeń i synchronizacje idempotentne w Silver.
Wymieszaj PII z analityką - Oddzielne mapowania i pola maski.
Złoto bez właściciela: przypisać właściciela, SLO i metryki konsumpcji.
Nie ma strategii regeneracji: podróże w czasie, wersioning logiczny, kontrola „podwójnego liczenia”.
Wartość niemożliwa do opanowania: partie, kompresja, TTL, obserwowalność wartości.
21) Słownik (krótki)
CDC - Przechwytywanie zmian z OLTP.
Outbox - publikujemy zdarzenia domeny transakcyjnie.
Znak wodny - ocena kompletności przepływu dla okien.
Lakehouse - jezioro danych + tablice ACID.
Data Product - jednostka produktowa danych z właścicielem i SLO.
Funkcja Sklep - spójna dystrybucja funkcji ML.
22) Linia dolna
Architektura przepływu danych jest zarządzalnym systemem aranżacji: jasnych umów, obserwowalności, bezpieczeństwa i kosztów pod kontrolą. Zgodnie z opisanymi wzorami (schemat-first, brąz/srebro/złoto, CDC + Outbox, DQ i lineage, prywatność-by-design) platforma niezawodnie dostarcza biznesu, zgodności i ML z danymi jakościowymi z przewidywalnymi SLO i zrozumiałym kosztem własności.