[Python] Jak wygenerować ładowanie (job) w Databricks używając REST API?

Jak wygenerować ładowanie (job) w Databricks używając REST API?

Problem:

Ładujesz warstwę brązową (bronze layer) w Databricks. Masz utworzone notebooki i teraz chciałbyś utworzyć ich ładowanie (job). Nie jest dla Ciebie istotna kolejność ładowania. Ważne jest tylko wygenerowanie workflow.

Rozwiązanie:

1. Utwórz job ładujący dane.
2. Zautomatyzuj tworzenie ładowania – wykorzystamy w tym celu Databricks REST API.

Read More

Jak połączyć się z Databricks do SQL Servera?

Jak połączyć się z Databricks to Azure SQL Server?

Problem:

Wykonanie połączenia między Databricks i bazą danych SQL Servera w chmurze Azure.

Rozwiązanie

Co będzie potrzebne?

1. Databricks 😉
2. Azure SQL Server utworzony w Azure Portal
3. Otwarte połączenia sieciowe – Databricks i SQL Server mają mieć możliwość komunikacji. Jeżeli masz problemy na tym poziomie, to niestety nie będzie przedmiotem tego wpisu.
4. Service principal – żeby połączyć się z Databricks do SQL Servera w bezpieczny i prosty sposób
5. Key Vault – do przechowywania sekretów
6. Biblioteki Python – biblioteka do wykonania połączenia JDBC i do używania modułu Azure Identity

Wszystko gotowe? Zaczynamy!

Read More

Databricks – User Table Columns

databricks user table columns

Databricks – User Table Columns?

Przenosisz się ze świata baz danych do świata Databricksów?

Zmieniono nazwę Twojego stanowiska na Data Engineer i będziesz teraz pracował w Databricks?

W świecie baz danych przyzwyczaiłeś się zapewne do prostego i intuicyjnego dostępu do metadanych. Możliwe, że używałeś ich, żeby zautomatyzować pracę lub wykryć w prosty sposób, gdzie trzeba przeprowadzić zmianę.

Świat Databricks i Hive metastore to trochę inne doświadczenia.

Mówiąc łagodnie.

Patrząc co jest tam dostępne brakuje mi czegoś podobnego do Oraclowego all_tab_columns (user_tab_columns) albo SQL Serverowego Information_Schema.Columns.

Zróbmy więc go sami wykorzystując możliwości jakie daje Databricks.

Read More

Databricks job aborted

databricks job aborted

Problem

Ładujesz dane do Databricks. Skrypt uruchamiałeś już dziesiątki razy. Tym razem jednak dostałeś komunikat: „Job aborted”. To jest główny, podobno najbardziej znaczący komunikat błędu.

Próbujesz ponownego uruchomienia? Dzwonisz do wsparcia technicznego?

Jakie rozwiązania możesz zaproponować?

Propozycje rozwiązań

Co można zasugerować do puli rozwiązań?
– Klaster znalazł się w nieokreślonym stanie i wymaga restartu?
– Pliki Delta stały się nieczytelne, zostały zniszczone, uszkodzone lub nie ma do nich dostępu
– Zabrakło pamięci na przetwarzanie
– Zmiany w danych spowodowały, że job został anulowany

Read More

Power BI audyt obszaru roboczego (workspace)

Power BI audyt

Wyobraź sobie, że tworzysz i rozwijasz raporty w Power BI. Przychodzisz do nowego projektu. Dostajesz pod opiekę kilka obszarów roboczych (workspace) w Power BI. Osoba, która do tej pory się tym zajmowała nie ma zbyt wiele czasu dla Ciebie.

Potrzebujesz sprawdzić jakie są źródła danych do raportów: Gdzie odwołujesz się do bazy danych, jakie tabele są wykorzystywane.

Albo:

Inżynierowie danych zapowiadają wielki re-design. Potrzebują, żebyś zrobił inwentaryzację i powiedział, jakich tabel używasz w raportach Power BI. Gdy masz jeden raport, nie stanowi to wielkiego problemu. Natomiast gdy masz tych raportów 15 to już nie chcesz robić tego zadania ręcznie. Przydałby się jakiś skrypt.

Albo:

Planowana jest migracja z SQL Servera na Databricks. Potrzebujesz sprawdzić w jakich raportach odwołujesz się do bazy danych. Musisz wylistować wszystkie tabele i najlepiej też kolumny z których korzystasz.

Jak zawsze najlepiej zrobić to automatycznie. Możesz zapytać ChatGPT jak rozwiąże ten problem albo poczytać niżej.

Zapraszam dalej pokaże Ci jak ja rozwiązałem ten problem.

Read More

Co to jest wymiar w hurtowni danych?

co to jest wymiar

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 More

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