Najlepsze rozwiązania dotyczące wykazu Unity Catalog
Ten dokument zawiera zalecenia dotyczące używania wykazu aparatu Unity i udostępniania różnicowego w celu spełnienia wymagań związanych z zarządzaniem danymi.
Wykaz aparatu Unity to szczegółowe rozwiązanie do zapewniania ładu dla danych i sztucznej inteligencji na platformie Databricks. Pomaga to uprościć zabezpieczenia i nadzór nad danymi, zapewniając centralne miejsce do administrowania i inspekcji dostępu do danych. Usługa Delta Sharing to bezpieczna platforma do udostępniania danych, która umożliwia udostępnianie danych w usłudze Azure Databricks użytkownikom spoza organizacji. Używa wykazu aparatu Unity do zarządzania zachowaniem udostępniania i inspekcji.
Bloki konstrukcyjne ładu danych i izolacji danych
Aby opracować model zapewniania ładu danych i plan izolacji danych, który działa dla organizacji, pomaga zrozumieć podstawowe bloki konstrukcyjne, które są dostępne podczas tworzenia rozwiązania do zapewniania ładu danych w usłudze Azure Databricks.
Na poniższym diagramie przedstawiono podstawową hierarchię danych w wykazie aparatu Unity (niektóre zabezpieczane obiekty są wyszarzone, aby podkreślić hierarchię obiektów zarządzanych w wykazach).
Obiekty w tej hierarchii obejmują następujące elementy:
Magazyn metadanych: magazyn metadanych jest kontenerem najwyższego poziomu obiektów w wykazie aparatu Unity. Magazyny metadanych działają na poziomie konta i działają jako górna część piramidy w modelu nadzoru danych usługi Azure Databricks.
Magazyny metadanych zarządzają zasobami danych (tabelami, widokami i woluminami) oraz uprawnieniami, które zarządzają dostępem do nich. Administratorzy konta usługi Azure Databricks mogą utworzyć jeden magazyn metadanych dla każdego regionu, w którym działają, i przypisać je do wielu obszarów roboczych usługi Azure Databricks w tym samym regionie. Administratorzy magazynu metadanych mogą zarządzać wszystkimi obiektami w magazynie metadanych. Nie mają bezpośredniego dostępu do odczytu i zapisu w tabelach zarejestrowanych w magazynie metadanych, ale mają dostęp pośredni dzięki możliwości transferu własności obiektu danych.
Magazyn fizyczny dla dowolnego magazynu metadanych jest domyślnie odizolowany od magazynu dla dowolnego innego magazynu metadanych na twoim koncie.
Magazyny metadanych zapewniają izolację regionalną, ale nie są przeznaczone jako jednostki izolacji danych. Izolacja danych powinna rozpoczynać się na poziomie wykazu.
Wykaz: wykazy są najwyższym poziomem w hierarchii danych (tabela/>widok/wolumin katalogu>) zarządzany przez magazyn metadanych wykazu aparatu Unity. Są one przeznaczone jako podstawowa jednostka izolacji danych w typowym modelu ładu danych usługi Azure Databricks.
Wykazy reprezentują logiczne grupowanie schematów, zwykle powiązane z wymaganiami dotyczącymi dostępu do danych. Wykazy często dubluje jednostki organizacyjne lub zakresy cyklu życia tworzenia oprogramowania. Możesz na przykład wybrać wykaz danych produkcyjnych i wykaz danych programistycznych lub wykaz danych innych niż klient oraz wykaz danych innych niż klient oraz wykaz poufnych danych klientów.
Wykazy mogą być przechowywane na poziomie magazynu metadanych lub można skonfigurować katalog do przechowywania oddzielnie od pozostałej części nadrzędnego magazynu metadanych. Jeśli obszar roboczy został włączony automatycznie dla wykazu aparatu Unity, nie ma magazynu na poziomie magazynu metadanych i należy określić lokalizację magazynu podczas tworzenia wykazu.
Jeśli katalog jest podstawową jednostką izolacji danych w modelu ładu danych usługi Azure Databricks, obszar roboczy jest podstawowym środowiskiem do pracy z zasobami danych. Administratorzy magazynu metadanych i właściciele wykazu mogą zarządzać dostępem do katalogów niezależnie od obszarów roboczych lub mogą powiązać katalogi z określonymi obszarami roboczymi, aby upewnić się, że niektóre rodzaje danych są przetwarzane tylko w tych obszarach roboczych. Możesz chcieć oddzielić obszary robocze produkcyjne i programistyczne, na przykład lub oddzielny obszar roboczy do przetwarzania danych osobowych.
Domyślnie uprawnienia dostępu do zabezpieczanego obiektu są dziedziczone przez elementy podrzędne tego obiektu z wykazami w górnej części hierarchii. Ułatwia to konfigurowanie domyślnych reguł dostępu dla danych i określanie różnych reguł na każdym poziomie hierarchii tylko wtedy, gdy są one potrzebne.
Schemat (baza danych): schematy, znane również jako bazy danych, to logiczne grupowanie danych tabelarycznych (tabel i widoków), danych innych niż tabelaryczne (woluminy), funkcje i modele uczenia maszynowego. Zapewniają one sposób organizowania i kontrolowania dostępu do danych, które są bardziej szczegółowe niż wykazy. Zazwyczaj reprezentują one pojedynczy przypadek użycia, projekt lub piaskownicę zespołu.
Schematy mogą być przechowywane w tym samym magazynie fizycznym co katalog nadrzędny lub można skonfigurować schemat do przechowywania oddzielnie od pozostałej części katalogu nadrzędnego.
Administratorzy magazynu metadanych, właściciele katalogu nadrzędnego i właściciele schematów mogą zarządzać dostępem do schematów.
Tabele: tabele znajdują się w trzeciej warstwie trójwarstwowej przestrzeni nazw wykazu aparatu Unity. Zawierają wiersze danych.
Wykaz aparatu Unity umożliwia tworzenie zarządzanych tabel i tabel zewnętrznych.
W przypadku tabel zarządzanych katalog aparatu Unity w pełni zarządza cyklem życia i układem plików. Domyślnie tabele zarządzane są przechowywane w głównej lokalizacji magazynu skonfigurowanej podczas tworzenia magazynu metadanych. Zamiast tego można wyizolować magazyn dla tabel zarządzanych na poziomach wykazu lub schematu.
Tabele zewnętrzne to tabele, których cykl życia danych i układ plików są zarządzane przy użyciu dostawcy usług w chmurze i innych platform danych, a nie wykazu aparatu Unity. Zazwyczaj używasz tabel zewnętrznych do rejestrowania dużych ilości istniejących danych lub jeśli potrzebujesz również dostępu do zapisu do danych przy użyciu narzędzi spoza klastrów usługi Azure Databricks i magazynów SQL usługi Databricks. Po zarejestrowaniu tabeli zewnętrznej w magazynie metadanych wykazu aparatu Unity możesz zarządzać dostępem usługi Azure Databricks i przeprowadzać do niej inspekcję, tak jak w przypadku tabel zarządzanych.
Właściciele wykazu nadrzędnego i właściciele schematów mogą zarządzać dostępem do tabel, podobnie jak administratorzy magazynu metadanych (pośrednio).
Widoki: widok jest obiektem tylko do odczytu pochodzącym z co najmniej jednej tabeli i widoków w magazynie metadanych.
Wiersze i kolumny: dostęp na poziomie wiersza i kolumny wraz z maskowaniem danych jest udzielany przy użyciu widoków dynamicznych lub filtrów wierszy i masek kolumn. Widoki dynamiczne są tylko do odczytu.
Woluminy: woluminy znajdują się w trzeciej warstwie trzywarstwowej przestrzeni nazw wykazu aparatu Unity. Zarządzają danymi nie tabelarycznymi. Za pomocą woluminów można przechowywać, organizować i uzyskiwać dostęp do plików w dowolnym formacie, w tym ustrukturyzowane, częściowo ustrukturyzowane i nieustrukturyzowane dane. Plików w woluminach nie można zarejestrować jako tabel.
Modele i funkcje: Chociaż nie są, ściśle rzecz biorąc, zasoby danych, zarejestrowane modele i funkcje zdefiniowane przez użytkownika mogą być również zarządzane w wykazie aparatu Unity i znajdują się na najniższym poziomie w hierarchii obiektów. Zobacz Zarządzanie cyklem życia modelu w wykazie aparatu Unity i funkcjach zdefiniowanych przez użytkownika (UDF) w wykazie aparatu Unity.
Planowanie modelu izolacji danych
Gdy organizacja korzysta z platformy danych, takiej jak Azure Databricks, często trzeba mieć granice izolacji danych między środowiskami (takimi jak programowanie i produkcja) lub między jednostkami operacyjnymi organizacji.
Standardy izolacji mogą się różnić w twojej organizacji, ale zazwyczaj obejmują one następujące oczekiwania:
- Użytkownicy mogą uzyskiwać dostęp tylko do danych na podstawie określonych reguł dostępu.
- Dane mogą być zarządzane tylko przez wyznaczone osoby lub zespoły.
- Dane są fizycznie oddzielone w magazynie.
- Dostęp do danych można uzyskać tylko w wyznaczonych środowiskach.
Potrzeba izolacji danych może prowadzić do środowisk silosowych, które mogą utrudnić zarządzanie danymi i współpracę. Usługa Azure Databricks rozwiązuje ten problem przy użyciu wykazu aparatu Unity, który zapewnia wiele opcji izolacji danych przy zachowaniu ujednoliconej platformy zapewniania ładu danych. W tej sekcji omówiono opcje izolacji danych dostępne w usłudze Azure Databricks i sposób ich używania, niezależnie od tego, czy wolisz scentralizowany model ładu danych, czy rozproszony.
Użytkownicy mogą uzyskiwać dostęp tylko do danych na podstawie określonych reguł dostępu
Większość organizacji ma ścisłe wymagania dotyczące dostępu do danych na podstawie wymagań wewnętrznych lub regulacyjnych. Typowe przykłady danych, które muszą być bezpieczne, obejmują informacje o wynagrodzeniach pracowników lub informacje o płatności kartą kredytową. Dostęp do tego typu informacji jest zwykle ściśle kontrolowany i okresowo poddawane inspekcji. Wykaz aparatu Unity zapewnia szczegółową kontrolę nad elementami zawartości danych w katalogu w celu spełnienia tych standardów branżowych. Dzięki kontrolkom dostępnym w wykazie aparatu Unity użytkownicy mogą wyświetlać i wykonywać zapytania tylko o dane, do których mają prawo wyświetlać i wykonywać zapytania.
Dane mogą być zarządzane tylko przez wyznaczone osoby lub zespoły
Katalog aparatu Unity umożliwia wybór między scentralizowanymi i rozproszonymi modelami ładu.
W scentralizowanym modelu zapewniania ładu administratorzy ładu są właścicielami magazynu metadanych i mogą przejąć na własność dowolny obiekt oraz przyznać i odwołać uprawnienia.
W modelu ładu rozproszonego wykaz lub zestaw wykazów to domena danych. Właściciel tego wykazu może tworzyć i posiadać wszystkie zasoby oraz zarządzać ładem w tej domenie. Właściciele dowolnej domeny mogą działać niezależnie od właścicieli innych domen.
Niezależnie od tego, czy wybrano magazyn metadanych, czy katalogi jako domenę danych, usługa Databricks zdecydowanie zaleca ustawienie grupy jako administratora magazynu metadanych lub właściciela wykazu.
Właściciele mogą udzielać użytkownikom, jednostkom usługi i grupom uprawnień MANAGE
, aby umożliwić im przyznawanie i odwoływanie uprawnień do obiektów.
Dane są fizycznie oddzielone w magazynie
Organizacja może wymagać, aby dane niektórych typów mogły być przechowywane na określonych kontach lub zasobnikach w dzierżawie chmury.
Katalog aparatu Unity umożliwia konfigurowanie lokalizacji magazynu na poziomie magazynu metadanych, katalogu lub schematu w celu spełnienia takich wymagań.
Załóżmy na przykład, że Organizacja ma zasady zgodności firmy, które wymagają danych produkcyjnych odnoszących się do zasobów ludzkich, które znajdują się w kontenerze abfss://mycompany-hr-prod@storage-account.dfs.core.windows.net. W katalogu aparatu Unity można osiągnąć to wymaganie, ustawiając lokalizację na poziomie wykazu, tworząc katalog o nazwie, na przykład hr_prod
, i przypisując do niego lokalizację abfss://mycompany-hr-prod@storage-account.dfs.core.windows.net/unity-catalog. Oznacza to, że zarządzane tabele lub woluminy utworzone w wykazie hr_prod
(na przykład przy użyciu ) CREATE TABLE hr_prod.default.table …
przechowują swoje dane w katalogu abfss://mycompany-hr-prod@storage-account.dfs.core.windows.net/unity-catalog. Opcjonalnie możesz podać lokalizacje na poziomie schematu w celu organizowania danych na hr_prod catalog
bardziej szczegółowym poziomie.
Jeśli taka izolacja magazynu nie jest wymagana, możesz ustawić lokalizację magazynu na poziomie magazynu metadanych. W rezultacie ta lokalizacja służy jako domyślna lokalizacja do przechowywania zarządzanych tabel i woluminów w katalogach i schematach w magazynie metadanych.
System ocenia hierarchię lokalizacji magazynu ze schematu do wykazu do magazynu metadanych.
Jeśli na przykład tabela myCatalog.mySchema.myTable
jest tworzona w my-region-metastore
programie , lokalizacja magazynu tabel jest określana zgodnie z następującą regułą:
- Jeśli lokalizacja została podana dla
mySchema
programu , zostanie tam zapisana. - Jeśli nie, a lokalizacja została podana w
myCatalog
lokalizacji , zostanie tam zapisana. - Na koniec, jeśli w lokalizacji
myCatalog
nie podano lokalizacji , zostanie ona zapisana w lokalizacji skojarzonej z elementemmy-region-metastore
.
Dostęp do danych można uzyskać tylko w wyznaczonych środowiskach
Wymagania dotyczące organizacji i zgodności często określają, że niektóre dane, takie jak dane osobowe, są dostępne tylko w niektórych środowiskach. Możesz również zachować dane produkcyjne odizolowane od środowisk deweloperskich lub upewnić się, że niektóre zestawy danych i domeny nigdy nie są połączone razem.
W usłudze Databricks obszar roboczy jest podstawowym środowiskiem przetwarzania danych, a katalogi są domeną danych podstawowych. Unity Catalog umożliwia administratorom magazynu metadanych, właścicielom katalogu oraz użytkownikom z uprawnieniami MANAGE
przypisywanie, czyli „wiążenie”, katalogów z określonymi obszarami roboczymi. Te powiązania obsługujące środowisko umożliwiają zapewnienie, że tylko niektóre wykazy są dostępne w obszarze roboczym, niezależnie od określonych uprawnień do obiektów danych przyznanych użytkownikowi.
Teraz przyjrzyjmy się bliżej procesowi konfigurowania wykazu aparatu Unity w celu spełnienia Twoich potrzeb.
Konfigurowanie magazynu metadanych wykazu aparatu Unity
Magazyn metadanych to kontener obiektów najwyższego poziomu w wykazie aparatu Unity. Magazyny metadanych zarządzają zasobami danych (tabelami, widokami i woluminami), a także innymi zabezpieczanymi obiektami zarządzanymi przez wykaz aparatu Unity. Aby uzyskać pełną listę zabezpieczanych obiektów, zobacz Zabezpieczane obiekty w wykazie aparatu Unity.
Ta sekcja zawiera porady dotyczące tworzenia i konfigurowania magazynów metadanych. Jeśli obszar roboczy został automatycznie włączony dla wykazu aparatu Unity, nie musisz tworzyć magazynu metadanych, ale informacje przedstawione w tej sekcji mogą być nadal przydatne. Patrz Automatyczne włączanie wykazu Unity.
Porady dotyczące konfigurowania magazynów metadanych:
Należy skonfigurować jeden magazyn metadanych dla każdego regionu, w którym masz obszary robocze usługi Azure Databricks.
Każdy obszar roboczy dołączony do jednego regionalnego magazynu metadanych ma dostęp do danych zarządzanych przez magazyn metadanych. Jeśli chcesz udostępniać dane między magazynami metadanych, użyj funkcji Udostępniania różnicowego.
Każdy magazyn metadanych można skonfigurować przy użyciu zarządzanej lokalizacji magazynu (nazywanej również magazynem głównym) w dzierżawie chmury, która może służyć do przechowywania zarządzanych tabel i woluminów zarządzanych.
Jeśli zdecydujesz się utworzyć lokalizację zarządzaną na poziomie magazynu metadanych, musisz upewnić się, że żaden użytkownik nie ma bezpośredniego dostępu do niej (czyli za pośrednictwem konta w chmurze, które go zawiera). Udzielenie dostępu do tej lokalizacji magazynu może umożliwić użytkownikowi obejście kontroli dostępu w magazynie metadanych wykazu aparatu Unity i zakłócanie inspekcji. Z tych powodów magazyn zarządzany magazynu metadanych powinien być dedykowanym kontenerem. Nie należy ponownie używać kontenera, który jest również głównym systemem plików DBFS lub wcześniej był głównym systemem plików DBFS.
Istnieje również możliwość definiowania magazynu zarządzanego na poziomach katalogu i schematu, przesłaniając główną lokalizację magazynu metadanych. W większości scenariuszy usługa Databricks zaleca przechowywanie zarządzanych danych na poziomie wykazu.
Należy zapoznać się z uprawnieniami administratorów obszaru roboczego w obszarach roboczych, które są włączone dla wykazu aparatu Unity, i przejrzeć istniejące przypisania administratora obszaru roboczego.
Administratorzy obszaru roboczego mogą zarządzać operacjami dla swojego obszaru roboczego, w tym dodawać użytkowników i jednostki usług, tworzyć klastry i delegować innych użytkowników jako administratorów obszaru roboczego. Jeśli obszar roboczy został automatycznie włączony dla wykazu aparatu Unity, administratorzy obszaru roboczego mogą domyślnie tworzyć katalogi i wiele innych obiektów wykazu aparatu Unity. Zobacz Uprawnienia administratora obszaru roboczego, gdy obszary robocze są włączone automatycznie dla wykazu aparatu Unity
Administratorzy obszaru roboczego mają również możliwość wykonywania zadań zarządzania obszarami roboczymi, takich jak zarządzanie własnością zadań i wyświetlanie notesów, co może zapewnić pośredni dostęp do danych zarejestrowanych w wykazie aparatu Unity. Administrator obszaru roboczego to rola uprzywilejowana, którą należy dokładnie dystrybuować.
Jeśli używasz obszarów roboczych do izolowania dostępu do danych użytkownika, możesz użyć powiązań katalogu obszarów roboczych. Powiązania katalogu obszarów roboczych umożliwiają ograniczenie dostępu do wykazu według granic obszaru roboczego. Możesz na przykład upewnić się, że administratorzy obszaru roboczego i użytkownicy mogą uzyskiwać dostęp tylko do danych produkcyjnych w
prod_catalog
środowisku obszaru roboczego produkcyjnego.prod_workspace
Domyślnym ustawieniem jest udostępnienie wykazu wszystkim obszarom roboczym dołączonym do bieżącego magazynu metadanych. Zobacz Ograniczanie dostępu katalogu do określonych obszarów roboczych.Jeśli obszar roboczy został włączony automatycznie dla wykazu aparatu Unity, katalog wstępnie aprowizowanego obszaru roboczego jest domyślnie powiązany z obszarem roboczym.
Zobacz Tworzenie magazynu metadanych wykazu aparatu Unity.
Konfigurowanie lokalizacji zewnętrznych i poświadczeń magazynu
Lokalizacje zewnętrzne umożliwiają katalogowi aparatu Unity odczytywanie i zapisywanie danych w dzierżawie chmury w imieniu użytkowników. Lokalizacje zewnętrzne są definiowane jako ścieżka do magazynu w chmurze w połączeniu z poświadczeniami magazynu, których można użyć do uzyskania dostępu do tej lokalizacji.
Lokalizacje zewnętrzne umożliwiają rejestrowanie tabel zewnętrznych i woluminów zewnętrznych w wykazie aparatu Unity. Zawartość tych jednostek znajduje się fizycznie na ścieżce podrzędnej w lokalizacji zewnętrznej, do której odwołuje się użytkownik, tworząc wolumin lub tabelę.
Poświadczenia magazynu hermetyzują długoterminowe poświadczenia chmury, które zapewniają dostęp do magazynu w chmurze. Może to być tożsamość zarządzana platformy Azure (zdecydowanie zalecana) lub jednostka usługi. Korzystanie z tożsamości zarządzanej platformy Azure ma następujące korzyści wynikające z używania jednostki usługi:
- Tożsamości zarządzane nie wymagają obsługi poświadczeń ani rotacji wpisów tajnych.
- Jeśli obszar roboczy usługi Azure Databricks zostanie wdrożony we własnej sieci wirtualnej (nazywanej również iniekcją sieci wirtualnej), możesz nawiązać połączenie z kontem usługi Azure Data Lake Storage Gen2 chronionym przez zaporę magazynu.
W celu zwiększenia izolacji danych można powiązać poświadczenia usługi, poświadczenia magazynu i lokalizacje zewnętrzne z określonymi obszarami roboczymi. Zobacz (Opcjonalnie) Przypisywanie poświadczeń usługi do określonych obszarów roboczych, (opcjonalnie) Przypisywanie lokalizacji zewnętrznej do określonych obszarów roboczych i (opcjonalnie) Przypisywanie poświadczeń magazynu do określonych obszarów roboczych.
Napiwek
Lokalizacje zewnętrzne, łącząc poświadczenia magazynu i ścieżki magazynu, zapewniają silną kontrolę i inspekcję dostępu do magazynu. Aby uniemożliwić użytkownikom pomijanie kontroli dostępu udostępnianej przez wykaz aparatu Unity, należy upewnić się, że ograniczysz liczbę użytkowników z bezpośrednim dostępem do dowolnego kontenera, który jest używany jako lokalizacja zewnętrzna. Z tego samego powodu nie należy instalować kont magazynu w systemie plików DBFS, jeśli są one również używane jako lokalizacje zewnętrzne. Usługa Databricks zaleca migrowanie instalacji w lokalizacjach magazynu w chmurze do lokalizacji zewnętrznych w wykazie aparatu Unity przy użyciu Eksploratora wykazu.
Aby uzyskać listę najlepszych rozwiązań dotyczących zarządzania lokalizacjami zewnętrznymi, zobacz Zarządzanie lokalizacjami zewnętrznymi, tabelami zewnętrznymi i woluminami zewnętrznymi. Zobacz również Tworzenie lokalizacji zewnętrznej w celu połączenia magazynu w chmurze z usługą Azure Databricks.
Organizowanie danych
Usługa Databricks zaleca używanie katalogów w celu zapewnienia segregacji w architekturze informacji organizacji. Często oznacza to, że wykazy odpowiadają zakresowi środowiska programistycznego, zespołowi lub jednostce biznesowej. Jeśli używasz obszarów roboczych jako narzędzia do izolacji danych — na przykład przy użyciu różnych obszarów roboczych dla środowisk produkcyjnych i deweloperskich lub określonego obszaru roboczego do pracy z wysoce poufnymi danymi, możesz również powiązać katalog z określonymi obszarami roboczymi. Gwarantuje to, że wszystkie przetwarzanie określonych danych jest obsługiwane w odpowiednim obszarze roboczym. Zobacz Ograniczanie dostępu katalogu do określonych obszarów roboczych.
Schemat (nazywany również bazą danych) to druga warstwa trójwarstwowej przestrzeni nazw wykazu aparatu Unity i organizuje tabele, widoki i woluminy. Możesz użyć schematów do organizowania i definiowania uprawnień dla zasobów.
Obiekty zarządzane przez wykaz aparatu Unity mogą być zarządzane lub zewnętrzne:
Obiekty zarządzane to domyślny sposób tworzenia obiektów danych w wykazie aparatu Unity.
Wykaz aparatu Unity zarządza cyklem życia i układem plików dla tych zabezpieczanych obiektów. Nie należy używać narzędzi spoza usługi Azure Databricks do bezpośredniego manipulowania plikami w zarządzanych tabelach lub woluminach.
Zarządzane tabele i woluminy są przechowywane w magazynie zarządzanym, który może istnieć na poziomie magazynu metadanych, katalogu lub schematu dla dowolnej tabeli lub woluminu. Zobacz Dane są fizycznie oddzielone w magazynie.
Zarządzane tabele i woluminy to wygodne rozwiązanie, gdy chcesz aprowizować zarządzaną lokalizację zawartości bez konieczności tworzenia lokalizacji zewnętrznych i poświadczeń magazynu oraz zarządzania nimi.
Tabele zarządzane zawsze używają formatu tabeli delty .
Obiekty zewnętrzne są zabezpieczane, których cykl życia danych i układ plików nie są zarządzane przez wykaz aparatu Unity.
Woluminy zewnętrzne i tabele są rejestrowane w lokalizacji zewnętrznej, aby zapewnić dostęp do dużej liczby plików, które już istnieją w magazynie w chmurze bez konieczności działania kopiowania danych. Użyj obiektów zewnętrznych, gdy masz pliki tworzone przez inne systemy i chcesz, aby były przygotowane do uzyskania dostępu z poziomu usługi Azure Databricks lub gdy narzędzia spoza usługi Azure Databricks wymagają bezpośredniego dostępu do tych plików.
Tabele zewnętrzne obsługują usługę Delta Lake i wiele innych formatów danych, w tym Parquet, JSON i CSV. Woluminy zarządzane i zewnętrzne mogą służyć do uzyskiwania dostępu do plików dowolnego formatu i przechowywania ich: dane mogą być ustrukturyzowane, częściowo ustrukturyzowane lub nieustrukturyzowane.
Aby uzyskać więcej informacji na temat tworzenia tabel i woluminów, zobacz Co to są tabele i widoki? i Co to są woluminy wykazu aparatu Unity?.
Zarządzanie lokalizacjami zewnętrznymi, tabelami zewnętrznymi i woluminami zewnętrznymi
Na poniższym diagramie przedstawiono hierarchię systemu plików pojedynczego kontenera magazynu w chmurze z czterema lokalizacjami zewnętrznymi, które współużytkujące jedno poświadczenie magazynu.
Po skonfigurowaniu lokalizacji zewnętrznych w wykazie aparatu Unity można tworzyć zewnętrzne tabele i woluminy w katalogach wewnątrz lokalizacji zewnętrznych. Następnie możesz użyć wykazu aparatu Unity do zarządzania dostępem użytkowników i grup do tych tabel i woluminów. Dzięki temu można zapewnić określonym użytkownikom lub grupom dostęp do określonych katalogów i plików w kontenerze magazynu w chmurze.
Uwaga
Podczas definiowania woluminu zewnętrznego dostęp identyfikatora URI chmury do danych w ścieżce woluminu podlega uprawnieniam przyznanym na woluminie, a nie uprawnieniami przyznanymi w lokalizacji zewnętrznej, w której jest przechowywany wolumin.
Zalecenia dotyczące korzystania z lokalizacji zewnętrznych
Zalecenia dotyczące udzielania uprawnień w lokalizacjach zewnętrznych:
Przyznaj możliwość tworzenia lokalizacji zewnętrznych tylko administratorowi, któremu zadaniem jest skonfigurowanie połączeń między katalogiem aparatu Unity i magazynem w chmurze, lub zaufanym inżynierom danych.
Lokalizacje zewnętrzne zapewniają dostęp z katalogu aparatu Unity do szeroko zakrojonej lokalizacji w magazynie w chmurze — na przykład całego zasobnika lub kontenera (abfss://) lub szerokiej ścieżki podrzędnej (abfss://my-container@storage-account.dfs.core.windows.netmy-container@storage-account.dfs.core.windows.net/ścieżki/do/podkatalogu). Celem jest to, że administrator chmury może być zaangażowany w skonfigurowanie kilku lokalizacji zewnętrznych, a następnie delegowanie odpowiedzialności za zarządzanie tymi lokalizacjami do administratora usługi Azure Databricks w organizacji. Administrator usługi Azure Databricks może następnie dodatkowo zorganizować lokalizację zewnętrzną w obszarach z bardziej szczegółowymi uprawnieniami, rejestrując woluminy zewnętrzne lub tabele zewnętrzne w określonych prefiksach w lokalizacji zewnętrznej.
Ponieważ lokalizacje zewnętrzne są tak obejmujące, usługa Databricks zaleca przyznanie
CREATE EXTERNAL LOCATION
uprawnień tylko administratorowi, któremu zadaniem jest skonfigurowanie połączeń między katalogiem aparatu Unity i magazynem w chmurze, lub zaufanym inżynierom danych. Aby zapewnić innym użytkownikom bardziej szczegółowy dostęp, usługa Databricks zaleca rejestrowanie tabel zewnętrznych lub woluminów w oparciu o lokalizacje zewnętrzne i udzielanie użytkownikom dostępu do danych przy użyciu woluminów lub tabel. Ponieważ tabele i woluminy są elementami podrzędnym wykazu i schematu, administratorzy wykazu lub schematu mają ostateczną kontrolę nad uprawnieniami dostępu.Możesz również kontrolować dostęp do lokalizacji zewnętrznej, łącząc go z określonymi obszarami roboczymi. Zobacz (Opcjonalnie) Przypisywanie lokalizacji zewnętrznej do określonych obszarów roboczych.
Nie udzielaj użytkownikom końcowym uprawnień ogólnych
READ FILES
aniWRITE FILES
uprawnień do lokalizacji zewnętrznych.Dzięki dostępności woluminów użytkownicy nie powinni używać lokalizacji zewnętrznych do tworzenia tabel, woluminów ani lokalizacji zarządzanych. Nie powinny używać lokalizacji zewnętrznych na potrzeby dostępu opartego na ścieżkach do nauki o danych lub innych przypadków użycia danych innych niż tabelaryczne.
Woluminy zapewniają obsługę pracy z plikami przy użyciu poleceń SQL, dbutils, interfejsów API platformy Spark, interfejsów API REST, narzędzia Terraform i interfejsu użytkownika do przeglądania, przekazywania i pobierania plików. Ponadto woluminy oferują instalację FUSE dostępną w lokalnym systemie plików w obszarze
/Volumes/<catalog_name>/<schema_name>/<volume_name>/
. Instalacja FUSE umożliwia analitykom danych i inżynierom uczenia maszynowego dostęp do plików tak, jakby znajdowały się w lokalnym systemie plików, zgodnie z wymaganiami wielu bibliotek uczenia maszynowego lub systemu operacyjnego.Jeśli musisz udzielić bezpośredniego dostępu do plików w lokalizacji zewnętrznej (w celu eksplorowania plików w magazynie w chmurze, zanim użytkownik utworzy zewnętrzną tabelę lub wolumin, na przykład), możesz przyznać .
READ FILES
Przypadki użycia udzielaniaWRITE FILES
są rzadkie.
Aby wykonać następujące czynności, należy użyć lokalizacji zewnętrznych:
- Rejestrowanie tabel i woluminów zewnętrznych przy użyciu
CREATE EXTERNAL VOLUME
poleceń lubCREATE TABLE
. - Zapoznaj się z istniejącymi plikami w magazynie w chmurze przed utworzeniem tabeli zewnętrznej lub woluminu pod określonym prefiksem. Uprawnienie
READ FILES
jest warunkiem wstępnym. - Zarejestruj lokalizację jako magazyn zarządzany dla katalogów i schematów zamiast zasobnika głównego magazynu metadanych. Uprawnienie
CREATE MANAGED STORAGE
jest warunkiem wstępnym.
Więcej zaleceń dotyczących używania lokalizacji zewnętrznych:
Unikaj konfliktów nakładających się ścieżek: nigdy nie twórz woluminów zewnętrznych ani tabel w katalogu głównym lokalizacji zewnętrznej.
W przypadku tworzenia woluminów zewnętrznych lub tabel w katalogu głównym lokalizacji zewnętrznej nie można utworzyć żadnych dodatkowych woluminów zewnętrznych ani tabel w lokalizacji zewnętrznej. Zamiast tego utwórz woluminy zewnętrzne lub tabele w podkatalogu wewnątrz lokalizacji zewnętrznej.
Zalecenia dotyczące używania woluminów zewnętrznych
Aby wykonać następujące czynności, należy użyć woluminów zewnętrznych:
- Zarejestruj obszary docelowe dla danych pierwotnych generowanych przez systemy zewnętrzne, aby obsługiwać przetwarzanie na wczesnym etapie potoków ETL i innych działań inżynieryjnych.
- Zarejestruj lokalizacje przejściowe na potrzeby pozyskiwania, na przykład za pomocą instrukcji Auto Loader,
COPY INTO
lub CTAS (CREATE TABLE AS
). - Udostępniaj lokalizacje przechowywania plików dla analityków danych, analityków danych i inżynierów uczenia maszynowego do użycia jako części eksploracyjnej analizy danych i innych zadań nauki o danych, gdy woluminy zarządzane nie są opcją.
- Zapewnij użytkownikom usługi Azure Databricks dostęp do dowolnych plików utworzonych i zdeponowanych w magazynie w chmurze przez inne systemy, na przykład dużych kolekcji danych bez struktury (takich jak obrazy, pliki audio, wideo i PLIKI PDF) przechwycone przez systemy nadzoru lub urządzenia IoT albo pliki bibliotek (pliki JARs i Python wheel) wyeksportowane z lokalnych systemów zarządzania zależnościami lub potoków ciągłej integracji/ciągłego wdrażania.
- Przechowywanie danych operacyjnych, takich jak rejestrowanie lub pliki punktów kontrolnych, gdy woluminy zarządzane nie są opcją.
Więcej zaleceń dotyczących używania woluminów zewnętrznych:
- Usługa Databricks zaleca utworzenie woluminów zewnętrznych z jednej lokalizacji zewnętrznej w jednym schemacie.
Napiwek
W przypadku przypadków użycia pozyskiwania, w których dane są kopiowane do innej lokalizacji , na przykład przy użyciu modułu automatycznego ładowania lub COPY INTO
użyj woluminów zewnętrznych. Użyj tabel zewnętrznych, jeśli chcesz wykonywać zapytania o dane w miejscu jako tabelę, bez udziału kopii.
Zalecenia dotyczące korzystania z tabel zewnętrznych
Tabele zewnętrzne powinny obsługiwać normalne wzorce wykonywania zapytań na podstawie danych przechowywanych w magazynie w chmurze, gdy tworzenie tabel zarządzanych nie jest opcją.
Więcej zaleceń dotyczących używania tabel zewnętrznych:
- Usługa Databricks zaleca tworzenie tabel zewnętrznych przy użyciu jednej lokalizacji zewnętrznej na schemat.
- Usługa Databricks zdecydowanie zaleca zarejestrowanie tabeli jako tabeli zewnętrznej w więcej niż jednym magazynie metadanych ze względu na ryzyko problemów ze spójnością. Na przykład zmiana schematu w jednym magazynie metadanych nie zostanie zarejestrowana w drugim magazynie metadanych. Udostępnianie różnicowe umożliwia udostępnianie danych między magazynami metadanych. Zobacz Bezpieczne udostępnianie danych przy użyciu funkcji udostępniania różnicowego.
Konfigurowanie kontroli dostępu
Każdy zabezpieczany obiekt w wykazie aparatu Unity ma właściciela. Podmiot zabezpieczeń tworzący obiekt staje się jego początkowym właścicielem. Właściciel obiektu ma wszystkie uprawnienia do obiektu, a także uprawnienia do udzielania ich innym podmiotom do obiektu zabezpieczanego, takie jak SELECT
i MODIFY
w tabeli. Właściciele mogą udzielać uprawnień do tego obiektu innym podmiotom, w tym MANAGE
, które daje możliwość nadawania uprawnień do obiektu. Właściciel, administratorzy magazynu metadanych i użytkownicy z uprawnieniami MANAGE
mogą przenieść własność zabezpieczanego obiektu do grupy. Ponadto, jeśli obiekt znajduje się w wykazie (na przykład w tabeli lub widoku), właściciel wykazu i schematu może zmienić własność obiektu.
Zabezpieczane obiekty w rozwiązaniu Unity Catalog są hierarchiczne, a uprawnienia są dziedziczone w dół. Oznacza to, że udzielenie uprawnienia do wykazu lub schematu automatycznie udziela uprawnienia do wszystkich bieżących i przyszłych obiektów w wykazie lub schemacie. Aby uzyskać więcej informacji, zobacz Model dziedziczenia.
Aby odczytywać dane z tabeli lub wyświetlić użytkownika, musi mieć następujące uprawnienia:
-
SELECT
w tabeli lub widoku -
USE SCHEMA
w schemacie, który jest właścicielem tabeli -
USE CATALOG
w wykazie, który jest właścicielem schematu
USE CATALOG
umożliwia udzielnikowi przechodzenie przez wykaz w celu uzyskania dostępu do jego obiektów podrzędnych i USE SCHEMA
umożliwia użytkownikowi przechodzenie przez schemat w celu uzyskania dostępu do jego obiektów podrzędnych. Na przykład aby wybrać dane z tabeli, użytkownicy muszą mieć SELECT
uprawnienia do tej tabeli i USE CATALOG
uprawnienia w katalogu nadrzędnym wraz z uprawnieniami USE SCHEMA
w schemacie nadrzędnym. W związku z tym możesz użyć tego uprawnienia, aby ograniczyć dostęp do sekcji przestrzeni nazw danych do określonych grup. Typowym scenariuszem jest skonfigurowanie schematu dla każdego zespołu, w którym tylko ten zespół ma USE SCHEMA
i CREATE
na schemacie. Oznacza to, że wszystkie tabele utworzone przez członków zespołu mogą być udostępniane tylko w zespole.
Dostęp do tabeli można zabezpieczyć przy użyciu następującej składni SQL:
GRANT USE CATALOG ON CATALOG < catalog_name > TO < group_name >;
GRANT USE SCHEMA ON SCHEMA < catalog_name >.< schema_name >
TO < group_name >;
GRANT
SELECT
ON < catalog_name >.< schema_name >.< table_name >;
TO < group_name >;
Dostęp do kolumn można zabezpieczyć przy użyciu widoku dynamicznego w schemacie pomocniczym, jak pokazano w następującej składni SQL:
CREATE VIEW < catalog_name >.< schema_name >.< view_name > as
SELECT
id,
CASE WHEN is_account_group_member(< group_name >) THEN email ELSE 'REDACTED' END AS email,
country,
product,
total
FROM
< catalog_name >.< schema_name >.< table_name >;
GRANT USE CATALOG ON CATALOG < catalog_name > TO < group_name >;
GRANT USE SCHEMA ON SCHEMA < catalog_name >.< schema_name >.< view_name >;
TO < group_name >;
GRANT
SELECT
ON < catalog_name >.< schema_name >.< view_name >;
TO < group_name >;
Dostęp do wierszy można zabezpieczyć przy użyciu widoku dynamicznego w schemacie pomocniczym, jak pokazano w następującej składni SQL:
CREATE VIEW < catalog_name >.< schema_name >.< view_name > as
SELECT
*
FROM
< catalog_name >.< schema_name >.< table_name >
WHERE
CASE WHEN is_account_group_member(managers) THEN TRUE ELSE total <= 1000000 END;
GRANT USE CATALOG ON CATALOG < catalog_name > TO < group_name >;
GRANT USE SCHEMA ON SCHEMA < catalog_name >.< schema_name >.< table_name >;
TO < group_name >;
GRANT
SELECT
ON < catalog_name >.< schema_name >.< table_name >;
TO < group_name >;
Można również udzielić użytkownikom bezpiecznego dostępu do tabel przy użyciu filtrów wierszy i masek kolumn. Aby uzyskać więcej informacji, zobacz Filtrowanie poufnych danych tabeli przy użyciu filtrów wierszy i masek kolumn.
Aby uzyskać więcej informacji na temat wszystkich uprawnień w wykazie aparatu Unity, zobacz Zarządzanie uprawnieniami w wykazie aparatu Unity.
Zarządzanie konfiguracjami obliczeniowymi
Usługa Databricks zaleca używanie zasad obliczeniowych, aby ograniczyć możliwość konfigurowania klastrów na podstawie zestawu reguł. Zasady obliczeniowe umożliwiają ograniczenie dostępu wyłącznie do tworzenia klastrów z obsługą katalogu Unity Catalog. Użycie zasad obliczeniowych zmniejsza dostępne opcje, co znacznie upraszcza proces tworzenia klastra dla użytkowników i zapewnia bezproblemowy dostęp do danych. Zasady obliczeniowe umożliwiają również kontrolowanie kosztów przez ograniczenie maksymalnego kosztu klastra.
Aby zapewnić integralność kontroli dostępu i wymusić silną izolację, katalog aparatu Unity nakłada wymagania dotyczące zabezpieczeń dla zasobów obliczeniowych. Z tego powodu wykaz aparatu Unity wprowadza koncepcję trybu dostępu klastra. Wykaz aparatu Unity jest domyślnie bezpieczny; Jeśli klaster nie jest skonfigurowany z odpowiednim trybem dostępu, klaster nie może uzyskać dostępu do danych w wykazie aparatu Unity. Zobacz Wymagania dotyczące obliczeń.
Usługa Databricks zaleca tryb dostępu współdzielonego dla wszystkich obciążeń. Używaj trybu dostępu pojedynczego użytkownika tylko wtedy, gdy wymagana funkcja nie jest obsługiwana przez tryb dostępu współdzielonego. Zobacz Tryby dostępu.
Poniższy kod JSON zawiera definicję zasad dla klastra z trybem dostępu współdzielonego:
{
"spark_version": {
"type": "regex",
"pattern": "1[0-1]\\.[0-9]*\\.x-scala.*",
"defaultValue": "10.4.x-scala2.12"
},
"access_mode": {
"type": "fixed",
"value": "USER_ISOLATION",
"hidden": true
}
}
Poniższy kod JSON zawiera definicję zasad dla zautomatyzowanego klastra zadań z trybem dostępu pojedynczy użytkownik:
{
"spark_version": {
"type": "regex",
"pattern": "1[0-1]\\.[0-9].*",
"defaultValue": "10.4.x-scala2.12"
},
"access_mode": {
"type": "fixed",
"value": "SINGLE_USER",
"hidden": true
},
"single_user_name": {
"type": "regex",
"pattern": ".*",
"hidden": true
}
}
Inspekcja dostępu
Kompletne rozwiązanie do zapewniania ładu danych wymaga inspekcji dostępu do danych oraz zapewniania możliwości alertów i monitorowania. Wykaz aparatu Unity przechwytuje dziennik inspekcji akcji wykonywanych względem magazynu metadanych, a te dzienniki są dostarczane w ramach dzienników inspekcji usługi Azure Databricks.
Dostęp do dzienników inspekcji konta można uzyskać przy użyciu tabel systemowych. Aby uzyskać więcej informacji na temat tabeli systemu dzienników inspekcji, zobacz Dokumentacja tabeli systemu dzienników inspekcji.
Zobacz Monitorowanie platformy analizy danych usługi Databricks za pomocą dzienników inspekcji , aby uzyskać szczegółowe informacje na temat sposobu uzyskiwania pełnego wglądu w zdarzenia krytyczne dotyczące platformy analizy danych usługi Databricks.
Bezpieczne udostępnianie danych przy użyciu funkcji udostępniania różnicowego
Usługa Delta Sharing to otwarty protokół opracowany przez usługę Databricks na potrzeby bezpiecznego udostępniania danych innym organizacjom lub innym działom w organizacji, niezależnie od platform obliczeniowych, z których korzystają. Gdy udostępnianie różnicowe jest włączone w magazynie metadanych, wykaz aparatu Unity uruchamia serwer udostępniania różnicowego.
Aby udostępniać dane między magazynami metadanych, możesz użyć funkcji udostępniania różnicowego usługi Databricks do usługi Databricks. Dzięki temu można rejestrować tabele z magazynów metadanych w różnych regionach. Te tabele będą wyświetlane jako obiekty tylko do odczytu w magazynie metadanych zużywających dane. Te tabele mogą mieć dostęp jak każdy inny obiekt w wykazie aparatu Unity.
W przypadku używania funkcji udostępniania różnicowego usługi Databricks do udostępniania między magazynami metadanych należy pamiętać, że kontrola dostępu jest ograniczona do jednego magazynu metadanych. Jeśli zabezpieczany obiekt, taki jak tabela, ma nadania i ten zasób jest współużytkowany w magazynie metadanych wewnątrz konta, granty ze źródła nie będą miały zastosowania do udziału docelowego. Udział docelowy będzie musiał ustawić własne dotacje.