Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule opisano sposób konfigurowania zewnętrznej lokalizacji w katalogu Unity w celu kontrolowania dostępu do magazynu w chmurze w usłudze Azure Databricks.
Omówienie lokalizacji zewnętrznych
Lokalizacje zewnętrzne kojarzą poświadczenia magazynu z kontenerami magazynu obiektów w chmurze. Lokalizacje zewnętrzne służą do definiowania:
Zarządzane lokalizacje przechowywania dla zarządzanych tabel i woluminów. Zarządzane lokalizacje przechowywania mogą istnieć na poziomie magazynu metadanych, katalogu lub schematu. Zobacz Określanie zarządzanej lokalizacji magazynowej w Unity Catalog.
Lokalizacje tabel zewnętrznych i woluminów zewnętrznych.
Lokalizacje zewnętrzne mogą odnosić się do przechowywania danych w kontenerze Azure Data Lake Storage, bucketu AWS S3 lub bucketu Cloudflare R2.
Na poniższym diagramie pokazano, jak lokalizacje zewnętrzne odwołują się do poświadczeń magazynu i lokalizacji magazynu w chmurze.
Na tym diagramie:
- Każda lokalizacja zewnętrzna odwołuje się do jednego poświadczenia magazynu i jednej lokalizacji magazynu w chmurze.
- Do jednego poświadczenia magazynu można odwoływać się w wielu lokalizacjach zewnętrznych.
Poświadczenie magazynu 1 daje dostęp do wszystkiego w ramach ścieżki
bucket/tables/*, więc do niej odwołuje się zarówno lokalizacja zewnętrzna A, jak i lokalizacja zewnętrzna B.
Omówienie tworzenia lokalizacji zewnętrznej
Do utworzenia lokalizacji zewnętrznej można użyć dowolnego z następujących interfejsów:
-
Ta opcja zapewnia graficzny interfejs użytkownika. Eksplorator wykazu umożliwia tworzenie lokalizacji zewnętrznych odwołujących się do kontenerów usługi Azure Data Lake Storage, zasobników S3 (tylko do odczytu), zasobników Cloudflare R2 i głównego systemu plików DBFS (starsza wersja)
W tym artykule opisano opcje 1 i 2.
Note
Przechowywanie danych w głównej lokalizacji DBFS jest starszą praktyką, a usługa Databricks odradza jej stosowanie. Jeśli jednak obszar roboczy przechowuje dane w katalogu głównym DBFS, możesz utworzyć lokalizację zewnętrzną, aby zarządzać dostępem do tych danych przy użyciu Unity Catalog. Aby uzyskać szczegółowe informacje, zobacz Connect to a DBFS root external location (starsza wersja).
Aby uzyskać więcej informacji na temat użycia lokalizacji zewnętrznych i relacji między poświadczeniami magazynu a lokalizacjami zewnętrznymi, zobacz Połączenie z magazynem obiektów w chmurze za pomocą Unity Catalog.
Przed rozpoczęciem
Prerequisites:
Przed utworzeniem obiektu lokalizacji zewnętrznej w usłudze Azure Databricks musisz utworzyć kontener magazynu usługi Azure Data Lake Storage, zasobnik AWS S3 lub zasobnik Cloudflare R2, którego chcesz użyć jako lokalizacji zewnętrznej.
Konta magazynu usługi Azure Data Lake Storage używane jako lokalizacje zewnętrzne muszą mieć hierarchiczną przestrzeń nazw.
Nie można używać kontenerów usługi Azure Storage z niezmiennością (WORM — zapis jednokrotny, odczyt wielu) zasad włączonych jako lokalizacje zewnętrzne. Katalog Unity wymaga uprawnień DELETE do kontenerów magazynu, co uniemożliwiają zasady niezmienności. Aby uzyskać więcej informacji na temat zasad niezmienności, zobacz Konfigurowanie zasad niezmienności dla kontenerów.
Jeśli dostęp do sieci publicznej jest wyłączony na koncie magazynu, musisz włączyć opcję Zezwalaj na zaufane usługi platformy Azure , aby zezwolić usłudze Azure Databricks na łączenie się z kontem magazynu. To ustawienie można skonfigurować przy użyciu interfejsu wiersza polecenia platformy Azure:
# Check current network rule set az storage account show --name <storage_account_name> --resource-group <resource_group_name> --query "networkRuleSet" # Set bypass for Azure Services az storage account update \ --name <storage_account_name> \ --resource-group <resource_group_name> \ --bypass AzureServices
Nie używaj notacji kropkowej (na przykład
incorrect.bucket.name.notation) w nazwach zasobnika S3. Mimo że platforma AWS zezwala na kropki w nazwach zasobników, usługa Databricks nie obsługuje zasobników S3 z notacją kropki. Wiadra zawierające kropki mogą powodować problemy ze zgodnością z funkcjami, takimi jak Delta Sharing, z powodu niepowodzeń weryfikacji certyfikatu SSL. Aby uzyskać więcej informacji, zobacz najlepsze rozwiązania dotyczące nazewnictwa zasobników platformy AWS.Ścieżki lokalizacji zewnętrznej muszą zawierać tylko standardowe znaki ASCII (litery
A–Z,a–z, cyfry0–9i typowe symbole, takie jak/,_,-).
- Musisz mieć uwierzytelnienia zdefiniowane w usłudze Azure Databricks, które przyznają dostęp do ścieżki dostępu do magazynu w chmurze. Zobacz Tworzenie poświadczeń magazynu na potrzeby nawiązywania połączenia z usługą Azure Data Lake Storage, Tworzenie poświadczeń magazynu na potrzeby nawiązywania połączenia z usługą Cloudflare R2 lub Tworzenie poświadczeń magazynu na potrzeby nawiązywania połączenia z usługą AWS S3 (tylko do odczytu).
Wymagania dotyczące uprawnień:
- Musisz mieć przywilej
CREATE EXTERNAL LOCATIONzarówno w metastore, jak i w poświadczeniu magazynu, do którego odwołuje się lokalizacja zewnętrzna. Administratorzy magazynu metadanych domyślnie mająCREATE EXTERNAL LOCATIONw magazynie metadanych. - Jeśli tworzysz lokalizację zewnętrzną dla głównej lokalizacji magazynu systemu PLIKÓW DBFS, system może utworzyć poświadczenia magazynu dla Ciebie, ale musisz być administratorem obszaru roboczego. Aby uzyskać szczegółowe informacje, zobacz Connect to a DBFS root external location (starsza wersja)
Opcja 1. Tworzenie lokalizacji zewnętrznej przy użyciu Eksploratora wykazu
Lokalizację zewnętrzną można utworzyć ręcznie za pomocą Eksploratora wykazu.
Uprawnienia i wymagania wstępne: zobacz Przed rozpoczęciem.
Aby utworzyć lokalizację zewnętrzną:
Zaloguj się do obszaru roboczego dołączonego do magazynu metadanych.
Na pasku bocznym kliknij
Wykaz.
Kliknij przycisk Dane >zewnętrzne, przejdź do karty Lokalizacje zewnętrzne, a następnie kliknij pozycję Utwórz lokalizację.
Wprowadź nazwę lokalizacji zewnętrznej.
Wybierz typ magazynu: Azure Data Lake Storage, S3 (tylko do odczytu),R2 lub DBFS Root.
Przechowywanie danych w katalogu głównym DBFS jest niezalecaną, przestarzałą praktyką. Aby uzyskać szczegółowe informacje, zobacz Connect to a DBFS root external location (starsza wersja).
Pod URLwprowadź lub wybierz ścieżkę do lokalizacji zewnętrznej.
W przypadku usług Azure Data Lake Storage, S3 i R2 dostępne są następujące opcje:
Aby skopiować ścieżkę kontenera z istniejącego punktu montowania DBFS , kliknij Kopiuj z DBFS.
Jeśli nie kopiujesz z istniejącego punktu montowania, użyj pola adresu URL, aby wprowadzić ścieżkę kontenera lub zasobnika, której chcesz użyć jako lokalizacji zewnętrznej.
Na przykład:
abfss://my-container-name@my-storage-account.dfs.core.windows.net/<path>lubr2://my-bucket@my-account-id.r2.cloudflarestorage.com/<path>.
W przypadku głównego systemu plików DBFS:
- System uzupełnia ścieżkę podrzędną prowadzącą do głównej lokalizacji magazynu DBFS. Jeśli jesteś administratorem obszaru roboczego, system utworzy również poświadczenie magazynu dla ciebie.
Zobacz Nawiązywanie połączenia z lokalizacją zewnętrzną systemu plików DBFS (starsza wersja).
Wybierz poświadczenie magazynowe, które umożliwia dostęp do lokalizacji zewnętrznej.
Note
Jeśli lokalizacja zewnętrzna dotyczy katalogu głównego systemu DBFS i jesteś administratorem obszaru roboczego, system automatycznie tworzy poświadczenie dostępu do magazynu dla Ciebie i nie musisz go wybierać.
Jeśli nie masz poświadczeń magazynu, możesz je utworzyć:
Na liście rozwijanej poświadczenia magazynu wybierz + Utwórz nowe poświadczenie magazynu.
Wprowadzone informacje o poświadczeniach zależą od typu pamięci:
W przypadku usługi Azure Data Lake Storage wprowadź identyfikator łącznika dostępu i (opcjonalnie) tożsamość zarządzaną przypisaną przez użytkownika, która zapewnia dostęp do lokalizacji magazynu. Zobacz Utwórz poświadczenie magazynowe, które uzyskuje dostęp do usługi Azure Data Lake Storage
Aby uzyskać tokeny API Cloudflare, wprowadź konto Cloudflare, identyfikator klucza dostępu i tajny klucz dostępu. Zobacz Create a storage credential for connecting to Cloudflare R2 (Tworzenie poświadczeń magazynu w celu nawiązania połączenia z usługą Cloudflare R2).
W przypadku usługi AWS S3 wprowadź rolę IAM ARN, która zapewnia dostęp do lokalizacji magazynu. Zobacz Tworzenie poświadczeń przechowywania do połączenia się z usługą AWS S3 (tylko do odczytu).
(Opcjonalnie) Jeśli chcesz, aby użytkownicy mieli dostęp do lokalizacji zewnętrznej tylko do odczytu, kliknij pozycję Opcje zaawansowane i wybierz pozycję Tylko do odczytu. Aby uzyskać więcej informacji, zobacz Oznaczanie lokalizacji zewnętrznej jako tylko do odczytu.
Lokalizacje zewnętrzne odwołujące się do ścieżek usługi AWS S3 są z natury tylko do odczytu.
(Opcjonalnie) Jeśli lokalizacja zewnętrzna jest przeznaczona dla katalogu federacyjnego metastore Hive, kliknij pozycję Opcje zaawansowane i włącz tryb awaryjny .
Zobacz Włączanie trybu rezerwowego w lokalizacjach zewnętrznych.
(Opcjonalnie, tylko w przypadku lokalizacji usługi AWS S3) Jeśli bucket S3 wymaga szyfrowania SSE, można skonfigurować algorytm szyfrowania, aby umożliwić zewnętrznym tabelom i woluminom w katalogu Unity dostęp do danych w bucket S3.
Aby uzyskać instrukcje, zobacz Konfigurowanie algorytmu szyfrowania w lokalizacji zewnętrznej (tylko platforma AWS S3).
(Opcjonalnie) Aby umożliwić subskrybowanie powiadomień o zmianie w lokalizacji zewnętrznej, kliknij pozycję Opcje zaawansowane i wybierz pozycję Włącz zdarzenia plików.
Aby uzyskać szczegółowe informacje, zobacz (Zalecane) Włącz zdarzenia plików dla lokalizacji zewnętrznej.
Kliknij pozycję Utwórz.
(Opcjonalnie) Powiąż lokalizację zewnętrzną z określonymi obszarami roboczymi.
Domyślnie każdy uprzywilejowany użytkownik może używać lokalizacji zewnętrznej w dowolnym obszarze roboczym dołączonym do magazynu metadanych. Jeśli chcesz zezwolić na dostęp tylko z określonych obszarów roboczych, przejdź do karty Obszary robocze i przypisz obszary robocze. Zobacz (Opcjonalnie) Przypisywanie lokalizacji zewnętrznej do określonych obszarów roboczych.
Przejdź do karty Uprawnienia, aby udzielić uprawnień do korzystania z lokalizacji zewnętrznej.
Aby każda osoba korzystała z lokalizacji zewnętrznej, musisz przyznać uprawnienia:
- Aby użyć zewnętrznej lokalizacji do dodania zarządzanej lokalizacji magazynu do metastore, katalogu lub schematu, przyznaj uprawnienie
CREATE MANAGED LOCATION. - Aby utworzyć tabele zewnętrzne lub woluminy, przyznaj
CREATE EXTERNAL TABLElubCREATE EXTERNAL VOLUME.
- Kliknij Grant.
- W oknie dialogowym dotyczącego
<external location>wybierz użytkowników, grupy lub podmioty usług w polu Principals i wybierz uprawnienie, które chcesz przyznać. - Kliknij Grant.
- Aby użyć zewnętrznej lokalizacji do dodania zarządzanej lokalizacji magazynu do metastore, katalogu lub schematu, przyznaj uprawnienie
Opcja 2. Tworzenie lokalizacji zewnętrznej przy użyciu języka SQL
Aby utworzyć lokalizację zewnętrzną przy użyciu języka SQL, uruchom następujące polecenie w notesie lub edytorze zapytań SQL. Zastąp wartości zastępcze. Aby uzyskać wymagane uprawnienia i wymagania wstępne, zobacz Przed rozpoczęciem.
-
<location-name>: nazwa lokalizacji zewnętrznej. Jeślilocation_namezawiera znaki specjalne, takie jak łączniki (-), musi być otoczony przez cudzysłowy odwrotne (` `). Zobacz Nazwy.
-
<bucket-path>: ścieżka w dzierżawie chmury, do której ta lokalizacja zewnętrzna zapewnia dostęp. Na przykład:abfss://my-container-name@my-storage-account.dfs.core.windows.net/<path>lubr2://my-bucket@my-account-id.r2.cloudflarestorage.com/<path>. -
<storage-credential-name>: Nazwa poświadczenia magazynu, które autoryzuje odczyt z i zapis do kontenera magazynowego lub ścieżki zasobnika. Jeśli nazwa poświadczeń magazynu zawiera znaki specjalne, takie jak łączniki (-), musi być ujęta w apostrofy (` `).
CREATE EXTERNAL LOCATION [IF NOT EXISTS] `<location-name>`
URL '<bucket-path>'
WITH ([STORAGE] CREDENTIAL `<storage-credential-name>`)
[COMMENT '<comment-string>'];
Jeśli chcesz ograniczyć dostęp lokalizacji zewnętrznej do określonych obszarów roboczych na koncie, nazywanym również powiązaniem obszaru roboczego lub izolacją lokalizacji zewnętrznej, zobacz (opcjonalnie) Przypisywanie lokalizacji zewnętrznej do określonych obszarów roboczych.
(Opcjonalnie) Przypisywanie lokalizacji zewnętrznej do określonych obszarów roboczych
Domyślnie lokalizacja zewnętrzna jest dostępna we wszystkich obszarach roboczych w metastore. Oznacza to, że jeśli użytkownik otrzymał uprawnienie (takie jak READ FILES) w tej lokalizacji zewnętrznej, może korzystać z tego uprawnienia z dowolnego obszaru roboczego powiązanego z magazynem metadanych. Jeśli używasz obszarów roboczych do izolowania dostępu do danych użytkownika, możesz zezwolić na dostęp do lokalizacji zewnętrznej tylko z określonych obszarów roboczych. Ta funkcja jest nazywana powiązaniem obszaru roboczego lub izolacją lokalizacji zewnętrznej.
Typowe przypadki użycia powiązania lokalizacji zewnętrznej z określonymi obszarami roboczymi obejmują:
- Zapewnienie, że inżynierowie danych, którzy mają uprawnienia
CREATE EXTERNAL TABLEw lokalizacji zewnętrznej zawierającej dane produkcyjne, mogą tworzyć tabele zewnętrzne w tej lokalizacji tylko w obszarze roboczym produkcyjnym. - Zapewnienie, że inżynierowie danych, którzy mają
READ FILESuprawnienia do lokalizacji zewnętrznej zawierającej poufne dane, mogą używać tylko określonych obszarów roboczych do uzyskiwania dostępu do tych danych.
Aby uzyskać więcej informacji na temat ograniczania innych typów dostępu do danych według obszaru roboczego, zobacz Ograniczanie dostępu katalogu do określonych obszarów roboczych.
Important
Powiązania obszaru roboczego są odwoływane w momencie realizacji uprawnień wobec lokalizacji zewnętrznej. Jeśli na przykład użytkownik tworzy tabelę zewnętrzną, wydając instrukcję CREATE TABLE myCat.mySch.myTable LOCATION 'abfss://my-container-name@storage-account-name.dfs.core.windows.net/finance' z obszaru roboczego myWorkspace, następujące kontrole powiązań obszaru roboczego są wykonywane oprócz regularnych kontroli uprawnień użytkownika:
- Czy lokalizacja zewnętrzna
'abfss://my-container-name@storage-account-name.dfs.core.windows.net/finance'jest powiązana zmyWorkspace? - Czy katalog
myCatjest powiązany zmyWorkspaceprzy użyciu poziomu dostępuRead & Write?
Jeśli lokalizacja zewnętrzna jest następnie niezwiązana z myWorkspace, tabela zewnętrzna będzie nadal działać.
Ta funkcja umożliwia również utworzenie katalogu w centralnym obszarze roboczym i udostępnienie go innym obszarom roboczym z użyciem powiązań katalogu, bez konieczności udostępniania lokalizacji zewnętrznej w innych obszarach roboczych.
Jeśli kontrola ruchu wychodzącego w architekturze bezserwerowej nie jest skonfigurowana, powiązania lokalizacji zewnętrznej są sprawdzane tylko wtedy, gdy lokalizacja zewnętrzna jest odwoływana bezpośrednio, na przykład w CREATE TABLE lub CREATE EXTERNAL TABLE instrukcji.
Po skonfigurowaniu kontrolki ruchu wychodzącego bezserwerowego powiązania są również sprawdzane pośrednio, na przykład gdy użytkownicy uzyskują dostęp do danych w katalogu lub tabeli zewnętrznej, która zależy od tej lokalizacji zewnętrznej. W takim przypadku powiązania lokalizacji zewnętrznej muszą być zgodne z powiązaniami katalogu lub zostać wyłączone przez wybór opcji Wszystkie obszary robocze mają dostęp lub zmianę isolation-mode na OPEN.
Wiązanie lokalizacji zewnętrznej z co najmniej jednym obszarem roboczym
Aby przypisać lokalizację zewnętrzną do określonych obszarów roboczych, możesz użyć Eksploratora wykazu lub interfejsu wiersza polecenia usługi Databricks.
Wymagane uprawnienia: administrator magazynu metadanych, właściciel lokalizacji zewnętrznej lub MANAGE w lokalizacji zewnętrznej.
Note
Administratorzy magazynu metadanych mogą wyświetlać wszystkie lokalizacje zewnętrzne w magazynie przy użyciu Eksploratora Wykazu, a właściciele lokalizacji zewnętrznych mogą zobaczyć wszystkie lokalizacje zewnętrzne, których są właścicielami w magazynie, niezależnie od tego, czy lokalizacja zewnętrzna jest przypisana do bieżącego obszaru roboczego. Lokalizacje zewnętrzne, które nie są przypisane do obszaru roboczego, są wyszarywane.
Eksplorator wykazu
Zaloguj się do obszaru roboczego połączonego z magazynem metadanych.
Na pasku bocznym kliknij
Wykaz.
Kliknij przycisk Dane >zewnętrzne, aby przejść do karty Lokalizacje zewnętrzne.
Wybierz lokalizację zewnętrzną i przejdź do karty Obszary robocze.
Na karcie Obszary robocze wyczyść pole wyboru Wszystkie obszary robocze mają dostęp.
Jeśli lokalizacja zewnętrzna jest już powiązana z co najmniej jednym obszarem roboczym, to pole wyboru zostało już wyczyszczone.
Kliknij Przypisz do obszarów roboczych i wprowadź lub znajdź obszary robocze, które chcesz przypisać.
Aby odwołać dostęp, przejdź do karty Obszary robocze, wybierz obszar roboczy, a następnie kliknij pozycję Odwołaj. Aby zezwolić na dostęp ze wszystkich obszarów roboczych, zaznacz pole wyboru Wszystkie obszary robocze mają dostęp.
CLI
Istnieją dwie grupy poleceń interfejsu wiersza polecenia usługi Databricks i dwa kroki wymagane do przypisania lokalizacji zewnętrznej do obszaru roboczego.
W poniższych przykładach zastąp <profile-name> nazwą profilu konfiguracji uwierzytelniania Azure Databricks. Powinna ona zawierać wartość osobistego tokenu dostępu, jak również identyfikator obszaru roboczego i nazwę wystąpienia obszaru roboczego, w którym wygenerowano osobisty token dostępu. Zobacz Osobiste uwierzytelnianie tokenu dostępu (przestarzałe).
Użyj polecenia
external-locationsgrupyupdate, aby ustawić zewnętrzną lokalizacjęisolation modenaISOLATED:databricks external-locations update <my-location> \ --isolation-mode ISOLATED \ --profile <profile-name>Domyślna wartość
isolation-modejestOPENdla wszystkich obszarów roboczych powiązanych z magazynem metadanych.workspace-bindingsUżyj polecenia grupyupdate-bindingspoleceń, aby przypisać obszary robocze do lokalizacji zewnętrznej:databricks workspace-bindings update-bindings external-location <my-location> \ --json '{ "add": [{"workspace_id": <workspace-id>}...], "remove": [{"workspace_id": <workspace-id>}...] }' --profile <profile-name>Użyj właściwości
"add"i"remove", aby dodać lub usunąć powiązania obszaru roboczego.Note
Powiązanie tylko do odczytu (
BINDING_TYPE_READ_ONLY) nie jest dostępne dla lokalizacji zewnętrznych. W związku z tym nie ma powodu, aby ustawićbinding_typedla powiązania lokalizacji zewnętrznych.
Aby wyświetlić listę wszystkich przypisań obszarów roboczych dla lokalizacji zewnętrznej workspace-bindings, użyj polecenia z grupy get-bindings:
databricks workspace-bindings get-bindings external-location <my-location> \
--profile <profile-name>
Zobacz również Powiązania przestrzeni roboczej w dokumentacji interfejsu API REST.
Odłącz lokalizację zewnętrzną od obszaru roboczego
Instrukcje dotyczące odwołania dostępu do obszaru roboczego z zewnętrznej lokalizacji przy użyciu Eksploratora Katalogu lub grupy poleceń interfejsu wiersza polecenia workspace-bindings są zawarte w Powiązanie zewnętrznej lokalizacji z co najmniej jednym obszarem roboczym.
Dalsze kroki
- Udziel innym użytkownikom uprawnień do używania lokalizacji zewnętrznych. Zobacz Zarządzanie lokalizacjami zewnętrznymi.
- Zdefiniuj zarządzane lokalizacje magazynu przy użyciu lokalizacji zewnętrznych. Zobacz Określanie zarządzanej lokalizacji magazynowej w Unity Catalog.
- Zdefiniuj tabele zewnętrzne przy użyciu lokalizacji zewnętrznych. Zobacz Praca z tabelami zewnętrznymi.
- Zdefiniuj woluminy zewnętrzne przy użyciu lokalizacji zewnętrznych. Zobacz Co to są woluminy Unity Catalog?.