GH GambleHub

Integralność danych

1) Czym jest integralność danych

Integralność danych jest zbiorem właściwości i kontroli, aby zapewnić poprawność, spójność i spójność danych w całym cyklu życia, od źródeł i przekształceń do sklepów, API i eksportu. Celem jest to, że to samo stwierdzenie daje taką samą odpowiedź po powtórzeniu, a wszelkie zmiany są identyfikowalne i weryfikowalne.


2) Rodzaje integralności i miejsca zamieszkania

Unikalne klucze podstawowe, brak duplikatów.
Referential-Valid FK łączy brak „wiszących” linków.
Domena-Ważne zakresy i formaty (typ, długość, katalogi).
Zasady prowadzenia działalności: niezmienne obszary tematyczne (saldo ≥ 0, kwota transakcji = 0 itd.).
Tymczasowe: monotonia i spójność znacznika czasu, prawidłowe strefy czasowe.
Zasady dostępu: RLS/CLS nie narusza logicznej spójności widocznych danych.


3) Umowy i schematy dotyczące danych (źródło prawdy)

Ustalamy formalne kontrakty na zestawy i imprezy; stosujemy je przy wejściu i po każdej transformacji.

Przykład (YAML, uproszczony):
yaml dataset: payments primary_key: txn_id foreign_keys:
- fk: user_id -> users.user_id schema:
- {name: txn_id, type: string, unique: true}
- {name: user_id, type: string, not_null: true}
- {name: amount, type: decimal(18,2), min: 0}
- {name: currency, type: string, in: [USD,EUR,TRY,UAH]}
- {name: event_time, type: timestamp, tz: UTC}
dq_rules:
- "duplicates(txn_id)=0"
- "ref_integrity(user_id, users.user_id)=true"
- "sum(amount) >= 0"
evolution:
semver: [MAJOR, MINOR, PATCH]
breaking_changes_require: approval:data-governance

4) Gwarancje transakcyjne i izolacja

KWAS dla OLTP: atomowość, konsystencja, izolacja, trwałość.
Poziomy izolacji: Czytaj Zaangażowany/Powtarzalny Czytaj/Serializowalny - wybierz na ryzyko „brudny „/unikalny/phantom czyta.
OLAP i lakehouse: commits atomowe tabel (dziennik transakcji), sink idempotent i schemat-ewolucja z kontrolą kompatybilności.
Spójność formuł KPI: warstwa semantyczna → jedna prawda dla raportów i API.


5) Systemy rozproszone: zamówienia, powtórzenia, idempotencja

Kolejność zdarzeń: użyj 'event _ time' + 'ingested _ at', znaków wodnych i tolerancji opóźnień; agregaty oparte na czasie zdarzenia.
Redeliveria (co najmniej raz): globalne 'event _ id', tabele kluczy idempotencji, upsert/merge przez stabilny klucz.
Out-of-order: ponowne obliczenie okien, strategia opóźnienia, rekompensata.
Dokładnie raz w znaczeniu: transport może być co najmniej raz, odbiornik - idempotent.


6) Walidacja integralności (DQ) na każdej warstwie

Uwzględniamy zasady integralności w CI/CD i w rurociągu:
  • Świeżość/Kompletność/Wyjątkowość/Ważne wartości/Integralność odniesienia.
  • Anomalie: wybuchy duplikatów, luki czasowe, ostre zmiany w rozkładzie.
  • Kontrola wzorów KPI: wersioning obliczeń i testów do dopasowania wyników (złote zestawy).
  • Kontrola wywozu - zakaz wydawania zestawów z naruszeniami (kwarantanna).
Przykład (styl wielkich oczekiwań):
yaml expect_column_values_to_be_unique: {column: txn_id}
expect_column_values_to_not_be_null: {column: user_id}
expect_column_values_to_be_in_set: {column: currency, value_set: [USD,EUR,TRY,UAH]}

7) Integralność finansowa i operacyjna

Podwójny wpis: debet/kredyt w saldzie; podsumowanie uzgodnień w odcięciu.
Niezmienne kwoty ogółem: kwota wypłaty = kwota umorzenia + opłaty + korekty.
Niezmienne działania: SLA/mierniki barier nie łamią zasad biznesowych (na przykład auto-naprawa nie tworzy duplikatów).


8) Rodowód, audyt i odtwarzalność

Linage: źródło do prezentacji/funkcji; widoczność przekształceń i właścicieli.
Ścieżki audytu: kto zmienił co, kiedy i dlaczego; schemat/wzór/wersje zadania.
Migawki/punkty kontrolne: możliwość ponownego obliczenia i potwierdzenia wcześniejszych raportów.
Repro: to samo zapytanie na tym samym kawałku → ten sam wynik (wersje i warstwy).


9) Bezpieczeństwo i prywatność bez utraty integralności

RLS/CLS: filtry wiersza/kolumny nie powinny naruszać stałych (na przykład suma widocznej próbki powinna odpowiadać zadeklarowanemu).
Maskowanie/tokenizacja: deterministyczne strategie zapewniające utrzymanie integralności dedup i referencyjnej.
Szyfrowanie: w kanale i „na dysku” po kompresji; zarządzanie kluczami i audyt dostępu.
DSAR/Retention: delete/anonymize nie łamie łączności (zasady kaskadowe).


10) Samoobsługa i automatyczna naprawa

kwarantanna: izolacja podejrzanych stron/partii; konsumenci - „czysta” gałąź.
Replay/Backfill: Powtarza okno z niezmienionego, surowego dziennika.
Uzgadnianie: uzgadnianie warstwy i systemu (surowe istochnik اDWH).
Dedup/Compaction/Rebuild: procedury systemowe do naprawy indeksów/kruszyw.
Policy-as-code: „what anomaly → what action → thresholds → escalation”.


11) Praktyki modelowania i przechowywania

Stabilne klucze: zastępcze PK (UUID/ULID), niezmienione naturalne klucze w książkach referencyjnych.
Normalizatsiya اdenormalizatsiya: połączenia FK w źródłach, denormalizowane prezentacje z kontrolą wersji logicznej.
SCD1/SCD2: historia kierowana dla wymiarów.
Sortowanie/klastrowanie: Poprawia mapy RLE/strefy i upraszcza pojednanie.
Hashes i checksums: sprawdzanie integralności plików/partii.


12) Integralność w czasie i w sprawozdawczości

Wersje formuły: Raport ze stycznia 2025 r. powinien być powtarzalny za pomocą formuły X.
Odcięcie i „zamknięcie okresu”: zamrażanie okien sklepu i plasterki archiwum.
Spóźnione fakty: mechanika napełniania i recenzje ze znakiem wersji raportu.
Nadmiar dokumentacji: korekty ręczne - tylko audyt.


13) Integracja i API

Umowa API: schematy, typy, wymagane pola, kody błędów; wersioning (v1/v2).
Walidacja przy wejściu: odrzucić złe ładunki, nie „naprawić cicho”.
Idempotent POST: klucz idempotencji, bezpieczny.
Eksport do plików: konsystencja partii, hashes, podpisy.


14) Antypattery

WYBIERZ w zapytaniach sprzedaży i blizzzards - rozbija się z ewolucją MINOR.
FK „w słowach”: brak rzeczywistego sprawdzenia odniesienia.
Ciche korekty danych bez audytu i sprawozdawczości.
Mix TZ i formaty czasu w jednym zestawie.
„Uchwyt” KPI nadaje się bez wersji i dzienników.
Pojedynczy klucz do deduplikacji bez strategii awaryjnych.
Usunięcie DSAR bez sprawdzania łącza kaskadowego.


15) Plan działania w zakresie wdrażania

1. Inwentaryzacja i krytyka: zestaw/mapa zdarzeń, właściciele, ryzyko, niezmienne.
2. Umowy i programy: formalizowanie typów/ograniczeń/FK, kontrole zgodności CI.
3. DQ w rurociągu: świeżość/kompletność/wyjątkowość/RI, kwarantanna, wpisy.
4. Podstawa transakcyjna: zlewozmywak atomowy, upsert/fuzja, historia SCD, wersioning wzoru.
5. Rodowód i audyt: katalog, ślad, dzienniki zmian, dzienniki dostępu.
6. Zasady naprawy: powtórka/zasypka/dedup/reconcile jako kod; runbook 'ка SLO MTTR-data.
7. Bezpieczeństwo: RLS/CLS, maskowanie, szyfrowanie, procesy DSAR.
8. Raportowanie: odcięcie, zamrożenie plasterków, wersioning KPI.


16) Lista kontrolna/etui wyświetlacza przed zwolnieniem

  • PK/FK i ograniczenia domeny są ustawione i przejść testy.
  • Włączona jest weryfikacja schematu/wzoru; schemat-diff zielony.
  • Zasady DQ (świeżość/kompletność/wyjątkowość/zakresy/RI) są zielone.
  • Idempotentne wpisy: upsert/merge, idempotence key (dla wydarzeń).
  • Czas: 'event _ time' i 'ingested _ at', TZ = UTC; późna polityka danych.
  • Widoczny rodowód i audyt; obejmowały kwarantannę i wpisy.
  • RLS/CLS/maskowanie nie narusza stałych i RI.
  • DSAR/Retention testowane; odcięcie/archiwum jest gotowe.

17) Mini szablony

SQL: referencyjna kontrola integralności

sql select count() as orphans from fact_payments f left join dim_users u on f.user_id = u.user_id where u.user_id is null;
-- ожидаем orphans = 0

polityka kwarantanny/naprawy (pseudo-YAML)

yaml policy: payments_integrity detect:
- rule: duplicates(txn_id) > 0
- rule: ref_integrity(user_id, users.user_id) = false auto_actions:
- quarantine_partition: {date: today}
- trigger_replay: {window: "last_2h"}
escalate_if:
- condition: violations_persist>30m page: "oncall-data"

Diagram SCD2 pomiaru

sql
-- dim_user_status (SCD2)
user_id, status, valid_from, valid_to, is_current

18) Najważniejsze

Integralność danych nie jest jednolitą kontrolą, lecz systemem gwarancji typu end-to-end: formalne umowy i ograniczenia, nieustanne transakcje i dystrybucje, walidacja i automatyzacja napraw, rodowód i audyt, prywatność i prawa. Kiedy te elementy współpracują, dane stają się wiarygodną podstawą rozwiązań, a incydenty są rzadkie, krótkie i przewidywalne.

Contact

Skontaktuj się z nami

Napisz do nas w każdej sprawie — pytania, wsparcie, konsultacje.Zawsze jesteśmy gotowi pomóc!

Rozpocznij integrację

Email jest wymagany. Telegram lub WhatsApp są opcjonalne.

Twoje imię opcjonalne
Email opcjonalne
Temat opcjonalne
Wiadomość opcjonalne
Telegram opcjonalne
@
Jeśli podasz Telegram — odpowiemy także tam, oprócz emaila.
WhatsApp opcjonalne
Format: kod kraju i numer (np. +48XXXXXXXXX).

Klikając przycisk, wyrażasz zgodę na przetwarzanie swoich danych.