Content is under construction and will be here soon 🙂
Read MoreCo to jest left anti join?
Problem:
Posiadasz rozwiązanie działające w Databricks.
Jak wybrać z tabeli z zamówieniami tylko rekordy, które nie mają przypisanych klientów albo klienci, z jakiegoś powodu nie istnieją. Rozwiązanie zbuduj w oparciu o SQL’a.
Rozwiązanie:
Rozwiązanie pierwsze:
select o.* from d_order o
left join d_customer c on (o.customer_tk = c.customer_tk)
where c.coustomer_tk is null
Albo
select o.* from d_order o
left anti join d_customer c on (o.customer_tk = c.customer_tk)
To są równoznaczne zapytania. Ich rezultatem jest ten sam zbiór danych, różnią się tylko składnią.
Warto zauważyć, że to drugie z użyciem słowa kluczowego anti jest bardziej zwięzłe. Natomiast, gdy ten kod SQL próbujesz migrować na inną platformę, wtedy może nie zadziałać.
Read MoreCo to jest wymiar w hurtowni danych?
Co to jest wymiar w hurtowni danych?
Spójrz z lotu ptaka na hurtownie danych. Upraszczając, widzisz dwa typy obiektów. Fakty i wymiary.
Wymiar opisuje fakt, pozwala wykonać na nim agregacje i filtrowanie.
Pozwala go zobaczyć w kontekście i obejrzeć go z wielu płaszczyzn.
Opis faktu to na przykład, numer umowy, numer rejestracyjny, również komentarz. Takie dane nie nadają się zazwyczaj do agregacji.
Wymiar pomaga zagregować fakty: zobaczyć podsumowanie po wartościach z wymiarów. Tworzyć zestawienia i reporty. To atrybuty: status umowy, typ klienta, segmentacja klienta.
Wymiar umożliwia też filtrowanie po wartościach. Czyli odrzucenie tego, co nie jest potrzebne i pozostawienie tylko wartości, które mają być analizowane. Na przykład różnego rodzaju flagi, czy aktywny, czy zapłacone, czy faktura wysłana ale też wspomniane wcześniej statusy, kategorie i segmentacje wykorzystasz do filtrowania.
W wymiarze możesz przechowywać także hierarchie, na przykład relacje: marketów, pracowników albo kalendarz.
Wymiar to: Czas, Klient, Pojazd, Pacjent, Umowa, Waluta.
Dobrze się też zastanowić jaka jest strategia odnośnie przechowywania historii (SCD) oraz wstawiania singletonów.
Jeżeli te teoretyczna piguła to niewystarczające wyjaśnienie, przejdźmy dalej i popracujmy trochę na konkretach.
Read MoreCo to jest klucz zastępczy? (surrogate key)
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 MoreCo może pójść źle w testowaniu 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 MoreCo to jest SCD?
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 MoreCo to jest ELT?
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.
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 MoreCzym zajmuje się Data Engineer i Data Analyst?
W dużej organizacji systemów przechowujących dane jest wiele.
Użytkowników korzystających z tych systemów jest jeszcze więcej.
Użytkownicy mają wiele potrzeb i problemów, które dane mogą rozwiązać.
Ale tutaj uwaga. Nie patrz na dane pod kątem jednego systemu.
On znajdują się w wielu systemach i dopiero, gdy uzupełnimy jedne dane drugimi możemy uzyskać pełniejszy obraz.
Jeden system prezentuje wąski wycinek rzeczywistości – możesz powiedzieć jeden piksel.
Bardziej to zaciemnia, niż umożliwia na odpowiedź na kluczowe pytania. Potrzebujesz zobaczyć szerszy kontekst i zobaczyć dane i systemy holistycznie.
Do skomplikowanej pracy z danymi do ich integracji i potem analizy, odpowiedzi na kluczowe pytania, potrzebni są specjaliści.
I to właśnie o bohaterowie dzisiejszego odcinka:
Data Engineer i Data Analyst, tworzą pełniejszy obraz świata.
Czym zajmuje się Data Engineer?
Read More4 ways to improve Impala performance
Useful Impala commands that you can use to improve queries performance are:
COMPUTE STATS
SET MEM_LIMIT
CREATING TEMP TABLE
Those statements will make your code smarter.
Performance will be greater and your managers, users and DB’s will be happy to work with you.
INSERT OVERWRITE – will make your life much easier when handling deletes.
Continue reading to know when it is good to apply those statements.
Read More