Wstęp
Czym jest Unity Catalog? Jest to centralny system zarządzania danymi w Databricks. W pracy z systemem plików DBFS ograniczeniem było że każdy z informacją o ścieżce mógł pobierać z niej dane. Dzięki systemowi Unity Catalog możemy precyzyjnie określić Tkto do czego ma dostęp.
Dane w tym systemie posiadają następującą hierarchię:
- Metastore
- Katalog
- Schema (baza danych)
- Tabele, widoki, wolumeny
Na poziomie każdej z tych hierarchii użytkownicy dostają lub nadają uprawnienia. Do nich należą np. Admin, Create Catalog, Create External Location; Usage, Create Schema; Usage, Create Table, Modify; Select, Insert, Delete.
Spójrzmy więc jak możemy tworzyć Unity Catalog i nadawać poszczególne uprawnienia:
Podłączenie do katalogu w zewnętrznym Storage do Databricks
Nasz Unity Catalog to tak naprawdę kontener w źródle zewnętrznym. W Azure najczęściej używa się do tego kontenera utworzonego w Data Lake. Taki też utworzyliśmy, zawierający foldery „prod” i „testing”

Do tego kontenera musimy się podłączyć. Robimy to inaczej niż w systemie DBFS, wykorzystując do tego Unity Catalog Access Connector:

W naszym Data Lake musimy dodać rolę IAM dla tego konektora:

Wybieramy Managed Identity, All system-assigned i nasz konektor

Teraz przechodzimy do Databricks
Klikamy w Catalog – Create a new external location:

Wpisujemy adres URL naszego kontenera, jako storage credential wybieramy nasz utworzony konektor i gotowe 🙂
Praca
Wszystko generalnie robimy w zakładce „Catalog”. Klikając w Create Schema dodajemy bazę do naszego katalogu:

Wchodząc w bazę i klikając „Grant” nadajemy uprawnienia użytkownikom

Z poziomu bazy możemy dodać tabele, wolumeny (miejsca na wolne pliki) i widoki

Po utworzeniu wolumenu możemy dodawać do niego pliki. Pliki te fizycznie będą umieszczone w naszej połączonej lokalizacji Data Lake
