Databricks: Jak pobrać definicję tabel i widoków?

Problem
Przeprowadzasz audyt istniejącego rozwiązania zbudowanego w oparciu o Databricks i Sparka.
Dla potrzeb budowy nowego modułu potrzebujesz sprawdzić, gdzie w widokach jest odwołanie do tabeli, którą będziesz zmieniał. Masz nieodparte wrażenie, że development został wykonany w sposób niechlujny i w notebookach nie ma wszystkiego. Część została zrobiona i potem zapomniana.
Potrzebujesz wydobyć definicję tabel i widoków zapisaną w hive metastore.

Rozwiązanie
Użyj polecenia

SHOW CREATE TABLE

Generuje ono skrypt SQL z definicją tabeli lub widoku.
Potrzeba trochę ulepszyć tą metodę. Ona zwraca definicję dla jednej tabeli i widoku. W naszej bazie jest tych tabel i widoków 100+.
Wykorzystamy SHOW VIEWS i SHOW TABLE i zautomatyzujemy sobie pracę. Na koniec zapiszemy wszystko do tabeli.

Read More

Databricks: Jak opublikować report w Power BI używając Pythona?

Problem:
Dostawca zewnętrzny umieszcza na Azure Storage Account raport w Power BI. Masz zadanie umieścić ten raport w serwisie Power BI. Będziesz to robił cyklicznie, więc chcesz uprościć sobie pracę. W jaki sposób to zrobisz?

Co masz dostępne?
Narzędzie, która masz dostępne to Databricks i całe dobrodziejstwo jakie z tym się wiąże.

Rozwiązanie:
Skrypt w Pythonie wykorzystujący Power BI Rest API, Key Vault i Azure Identity do automatycznego importu raportu w pbix.

Potrzebne oczywistości:
1. Storage Account – tam przechowywany będzie plik pbix.
2. Service Principal – do połączenia Databricks – Power BI. Pamiętaj o ustawieniu odpowiedniej roli.
3. Biblioteka Azure Identity – do autentykacji
4. Key Vault – do przechowywania sekretów. To nie jest „must have” ale to jest dobra praktyka.

Read More

[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

7 tips to automate your daily DWH/BI developer life using PowerShell and Excel

Connect to Excel using PowerShell

PowerShell is a powerfull tool that will make your life easier. You can use it to automate your daily work or make boring taks interesting. It can also save you time to do whatherever you like.

If you are working on a Windows machine you already have it installed. This is an additional benefit.

As a bonus please find a git scripts at the end of the article. There are two working programs that are doing all the juicy stuff.

In this blog post you will see how can you:
– Connect to Excel using PowerShell
– Get a sheet name
– Find a named table
– Display value from the cell
– Loop through table
– Execute Excel Macro from PowerShell
– And finally save an Excel file using PowerShell

Read More

Jak automatycznie odświeżać widoki w Netezza?

Problem
Masz istniejący schemat bazy danych, biznes prosi, żeby dodać jeszcze jedną kolumnę w tabeli.

Pomyślisz bułka z masłem.

Jest tylko jedna kwestia, o której warto pamiętać, gdy pracujesz z Netezza.

Gdy zmienisz strukturę tabeli wtedy Netezza unieważnia (?) (invalidates) wszystkie widoki, które mają choćby złączenia do tej tabeli. Oznacza to, że nie możesz czytać z tego widoku.

Czyli wszystkie zasilania, które czerpały z tego widoku albo raporty, które się do niego odwoływały przestają działać.

Co można zrobić, żeby przeciwdziałać tej katastrofie? Jak odświeżać widoki w Netezza? Najlepiej automatycznie.

Read More