Co to jest klucz zastępczy? (surrogate key)

klucz zastępczy

Klucz zastępczy (surrogate key) to identyfikator stworzony w hurtowni danych na potrzeby wymiaru albo faktu. Zastępuje klucz główny z systemu źródłowego.

Surrogate key posiada następujące właściwości:
– Jest unikalny w obrębie wymiaru, nie ma dwóch takich samych wartości w ramach jednego wymiaru
– Za tym kluczem nie stoi żadna logika biznesowa: to jest zwyczajny ciąg liczb lub znaków.
– Wykorzystujesz go, żeby łączyć wymiar z faktem albo łączyć wymiary ze sobą

Nigdy nie łączysz wymiaru z faktem wykorzystując klucz naturalny albo klucz z systemu źródłowego.

Klucz zastępczy możesz być typu INT, BIGINT, GUID. Zazwyczaj jest to wartość generowana przez motor bazy danych, Lakehouse albo narzędzie ETL.

Dzięki kluczowi zastępczemu nie bazujesz na wartościach z systemu źródłowego. Pozwala Ci to na swobodę zarządzania kluczami. Określania jakiego typu są wartości, jaki jest ich cykl życia, w jaki sposób są tworzone.

Read More

Co może pójść źle w testowaniu hurtowni danych?

testowanie hurtowni danych

Co może pójść źle w testowaniu hurtowni danych? Przecież to jest proste!

Dostajesz dane na wejściu. Przetwarzasz je. Dostajesz dane na wyjściu. Co może pójść źle?

Wyobrażasz sobie, że dane wejściowe dostajesz zawsze dobrej jakości? W wielu wypadkach tak jest. Niestety czasami jakość danych wejściowych pozostawia wiele do życzenia.

W tej kolumnie miały być tylko liczby, a dostajesz ciągi znaków.

Zamiast daty dostajesz wartość TRUE albo FALSE.

Albo jeszcze gorzej, miałeś dostawać zysk brutto a dostajesz dochód brutto. To już nie tak łatwo wychwycić.

Faktura miała mieć zawsze przypisane dane klienta, a czasami brakuje tych danych.

Wartość rezydualna miała być zawsze dodatnia, a jest ujemna.

Zdarza się, że z biegiem czasu logika w systemie źródłowym ewaluowała i próba pobrania historii to budowa zupełnie innego przetwarzania niż przetwarzanie bieżących danych.

Już sama analiza tego, co jest na wejściu to gotowy ból głowy.

A dane wejściowe to dopiero początek drogi.

Read More

Co to jest SCD?

co to jest cdc

Co to jest SCD? To akronim od angielskiego Slowly Changing Dimension czyli wolno zmieniający się wymiar. To nic innego, jak sposób na śledzenia zmian w danych w hurtowniach danych. W zależności od potrzeby stosuje się różne typy SCD.

Wyróżniamy sześć (6) typów SCD.

SCD 0 – ignorujesz zmiany

SCD 1 – nadpisujesz zmiany

SCD 2 – przechowujesz historię dla atrybutów w oddzielnym rekordzie.

SCD 3 – przechowujesz historię dla atrybutów w tym samym rekordzie ale innej kolumnie

SCD 4 – przechowujesz historię zmian w innej tabeli

SCD 6 – to kombinacja 1 + 2 + 3 = 6. Historia przechowywana jest zarówno w osobnej kolumnie jak i rekordzie.

U niektórych autorów znajdziesz również SCD 5 oraz SCD 7.

Najpopularniejsze są typy SCD 1, 2. Na rozmowie o prace, możesz dostać pytanie o SCD3. Tym trzem typom poświęcimy dzisiaj uwagę.

Read More

Co to jest ELT?

co to jest ETL

Co to jest ETL? To przeniesienie danych z jednego miejsca do drugiego i nadanie im oczekiwanej struktury. O ETL’u mówimy w kontekście przetwarzania zbiorów danych i budowaniu hurtowni danych lub data lake.

ETL służy do integracji i transformacji danych.

Wysoko poziomowo:
Na wejściu masz dane.
Przekształcasz je.
Zapisujesz.

Wynikiem ETL’a są przekształcone dane.

Po co jest ETL? Na przykład, żeby pobrać dane z systemu transakcyjnego i zapisać w hurtowni danych i potem stworzyć na podstawie tych danych raport. Pobierasz dane o zamówienia i klientach. Tworzysz zestawienie sprzedaży klienta. Dane do raportu aktualizujesz codziennie

Dodając więcej kontekstu:
Wynikiem ETL są uporządkowane dane. Mogą tworzyć wymiar lub tabelę faktów. Połączenie wymiarów i faktów tworzy większą strukturę: hurtownia danych.

Read More

Zalety chmury w rozwiązaniach data

Zalety chmury w rozwiązaniach data

Pracowałeś już z chmurą przy projekcie hurtowni danych albo data lake?

Masz już zapewne wyrobione zdanie: Co Ci się podoba, a co jest chwytem marketingowym, co wymaga dopracowania, gdzie czekasz na kolejną wersję, gdzie przydałoby się lepsze API zamiast interfejsu graficznego albo odwrotnie, bardziej wolałbyś interfejs graficzny zamiast pisania kodu.

Zrozumienie chmury to nie jest proces do ogarnięcia w czasie przerwy na kawę.

Ale jeżeli masz tylko tyle czasu, wtedy należy mieć nadzieję, że masz bogatego klienta.

Dla bogatego klienta, przesuwasz suwak maksymalnie w prawo i już nigdy nie martwisz się o wydajność. Tacy klienci, to niestety miejska legenda.

Większość klientów patrzy uważnie, ile chmura kosztuje i czy to się opłaca.

Jeżeli szukasz argumentów, jak rozmawiać o chmurze, zapraszam.

Dzisiaj o tej jasnej stronie chmury, na przykładzie Azure.

Read More

Power BI: pytania na rozmowę kwalifikacyjną

power bi rozmowa kwalifikacyjna

Power BI pytania na rozmowę kwalifikacyjną.

DAX:
1. Co to jest 'Tabular Object Model’ (TOM)?
2. Jaka jest różnica między Power Query (m) i DAX?
3. Czym różni się SUM od SUMX?
4. Jak policzyć sumę tylko dla wybranych wartości? (używając filtra)
5. Czym się różni ROWCONTEXT od FILTERCONTEXT w DAX?
6. Jak sprawdzić czy kolumna jest filtrowana po konkretnej wartości w raporcie?

Read More

SQL IN – dla dociekliwych

next level sql in

Wyrażenie IN w SQL’u pozwala uprościć przekazywanie do zapytania listy warunków.

Wyobraź sobie, że tabele z markami samochodów. Do głowy powinny Ci przyjść nazwy najbardziej popularnych producentów: Volvo, Tesla, Audi, Volkswagen, Ford, Toyota, Honda itd. Chciałbyś ograniczyć listę wyników tylko do trzech najbardziej popularnych w Polsce marek: Toyota, Volkswagen i Audi.

Read More

Zwinna hurtownia danych

zwinna hurtownia danych

Przenosząc rozwiązanie hurtowni danych do chmury, masz gotowy ból głowy.

Jak się odnaleźć w nowym środowisku? Jak dostarczyć tam dane? Jaką usługę wybrać? Jak przechowywać dane? Jak przetwarzać dane? Jak ustawić model dostępu do danych?

I jeszcze jedno wielkie pytanie:

Jak nie zbankrutować?

W niektórych przypadkach rozwiązaniem jest zwinna hurtownia danych.

Zwinna hurtownia danych to taka, która nie opiera się o bazę danych. Dane przechowuje w systemie plików, może to być na przykład Data Lake w chmurze (np. Azure Data Lake Gen 2 [nazewnictwo aktualne na kwiecień 2022]).

Zdecydowaną zaletą takiego rozwiązania jest niska cena.

Jak określić, czy taka hurtownia będzie dobra właśnie dla Ciebie?

Read More

Dobre praktyki SQL: select * w produkcyjnym kodzie?

Jakie są dobre praktyki SQL? Co jest ważne, gdy zaczynasz pisać kod SQL?

Wyobraź sobie swoje pierwsze zapytanie zapytanie SQL albo pierwszy kod który ujrzy produkcyjne światło:

  • Jako świeżo mianowany data engineer: Na potrzeby projektu data.
  • Na potrzeby testowania i sprawdzania jakości danych.
  • Na potrzeby analizy i przygotowywania wymagań dla nowych zmian.
  • Niektóre dobre praktyki, na które warto zwrócić uwagę na początku. Poznanie ich pozwoli Ci pisać lepszy i bardziej odporny na zmiany kod. Będzie on też lepiej przystosowany do późniejszych zmian albo udostępnienia członkom zespołu.

  • SELECT * – czy to na pewno dobry pomysł
  • Aliasy – jak, kiedy dlaczego
  • Read More

    Next Level SQL

    next level SQL

    Zdecydowałeś o podjęciu kroków zmierzających do nauki SQL’a, pora na ułożenie agendy.

    Naukę podzieliłbym na trzy segmenty. Podstawowy, środnio zaawansowany i zaawansowany.

    W zależności od Twojego stopnia zaawansowania, możesz przejść do odpowiedniego poziomu.

    Next Level SQL to odpowiedź na obecne potrzebny. Chcesz podnieść wiedzę dotyczącą SQL’a szybko albo odpowiedzieć na najbardziej palące problemy i przygotować się do rozmowy o pracę.

    Agenda jest szczególnie przydatna, jeżeli pracujesz na co dzień z danymi. Jesteś Testerem, Business Analitykiem, Data Scientistem. Albo zmierzasz wielkimi krokami w stronę Data Engineera lub Data Analysta,

    Daj mi proszę znać w komentarzu, czy którymś modułem jesteś szczególnie zainteresowany. Postaram się wtedy potraktować go priorytetowo.

    Read More