Udostępnij za pośrednictwem


Tworzenie lokalizacji zewnętrznej w celu połączenia magazynu w chmurze z usługą Azure Databricks

W tym artykule opisano, jak skonfigurować lokalizację zewnętrzną w Unity Catalog, aby podłączyć magazyn w chmurze do usługi Azure Databricks.

Lokalizacje zewnętrzne kojarzą poświadczenia magazynu dla Katalogu Unity z kontenerami chmurowego magazynu obiektów. Lokalizacje zewnętrzne służą do definiowania zarządzanych lokalizacji magazynu dla katalogów i schematów oraz do definiowania lokalizacji dla tabel zewnętrznych i woluminów zewnętrznych.

Możesz utworzyć lokalizację zewnętrzną, która odwołuje się do magazynu w kontenerze magazynu usługi Azure Data Lake Storage Gen2 lub zasobniku Cloudflare R2.

Lokalizację zewnętrzną można utworzyć przy użyciu Eksploratora wykazu, interfejsu wiersza polecenia usługi Databricks, poleceń SQL w notesie lub zapytaniu SQL usługi Databricks albo narzędzia Terraform.

Aby uzyskać więcej informacji na temat używania lokalizacji zewnętrznych i relacji między poświadczeniami magazynu i lokalizacjami zewnętrznymi, zobacz Zarządzanie dostępem do magazynu w chmurze przy użyciu Unity Catalog.

Przed rozpoczęciem

Wymagania wstępne:

Wymagania dotyczące uprawnień:

  • Musisz mieć CREATE EXTERNAL LOCATION uprawnienia zarówno w magazynie metadanych, jak i poświadczeniu magazynu, do którego odwołuje się lokalizacja zewnętrzna. Administratorzy magazynu metadanych domyślnie mają w CREATE EXTERNAL LOCATION magazynie metadanych.
  • Jeśli tworzysz lokalizację zewnętrzną dla głównej lokalizacji magazynu w systemie plików DBFS, system może utworzyć dla Ciebie poświadczenia magazynu, ale musisz być administratorem obszaru roboczego. Aby uzyskać szczegółowe informacje, zobacz Tworzenie lokalizacji zewnętrznej dla danych w głównym systemie plików DBFS

Ręczne 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ą:

  1. Zaloguj się do obszaru roboczego dołączonego do magazynu metadanych.

  2. Na pasku bocznym kliknij ikonę katalogu .

  3. Na stronie Szybki dostęp kliknij >zewnętrzne, przejdź do karty Lokalizacje zewnętrzne i kliknij pozycję Utwórz lokalizację.

  4. Wprowadź nazwę lokalizacji zewnętrznej.

  5. Pod URLwprowadź lub wybierz ścieżkę do lokalizacji zewnętrznej. Dostępne są trzy opcje:

    • Aby skopiować ścieżkę kontenera z istniejącego punktu montowania DBFS , kliknij Kopiuj z DBFS.

    • Aby skopiować ścieżkę podrzędną do głównej lokalizacji magazynu systemu plików DBFS, kliknij przycisk Kopiuj z systemu plików DBFS i wybierz pozycję Kopiuj z katalogu głównego systemu plików DBFS. Jeśli jesteś administratorem obszaru roboczego, system utworzy również poświadczenie magazynu dla ciebie.

      Zobacz Utwórz zewnętrzną lokalizację dla danych w katalogu głównym DBFS.

    • Jeśli nie kopiujesz z istniejącego punktu instalacji lub katalogu głównego systemu plików DBFS, użyj pola adresu URL , aby wprowadzić kontener magazynu lub ścieżkę zasobnika R2, której chcesz użyć jako lokalizacji zewnętrznej.

      Na przykład: abfss://my-container-name@my-storage-account.dfs.core.windows.net/<path> lub r2://my-bucket@my-account-id.r2.cloudflarestorage.com/<path>.

  6. Wybierz poświadczenie magazynowe, które umożliwia dostęp do lokalizacji zewnętrznej.

    Uwaga

    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ć:

    1. Na liście rozwijanej poświadczeń usługi Storage wybierz pozycję + Utwórz nowe poświadczenia magazynu.

    2. Na liście rozwijanej Typ poświadczeń wybierz typ poświadczenia, którego chcesz użyć w obiekcie poświadczeń magazynu: zarządzana tożsamość platformy Azure lub token interfejsu API Cloudflare.

    3. W polu Tożsamość zarządzana platformy Azure wprowadź identyfikator łącznika dostępu i (opcjonalnie) tożsamość zarządzaną przypisaną przez użytkownika, która zapewnia dostęp do lokalizacji magazynu. Aby uzyskać tokeny API Cloudflare, wprowadź konto Cloudflare, identyfikator klucza dostępu i tajny klucz dostępu.

      Aby uzyskać więcej informacji, zobacz Utwórz poświadczenie magazynu, aby połączyć się z Azure Data Lake Storage Gen2 lub Utwórz poświadczenie magazynu, aby połączyć się z Cloudflare R2.

  7. (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.

  8. (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.

  9. Kliknij pozycję Utwórz.

  10. (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.

  11. 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 TABLE lub CREATE EXTERNAL VOLUME.
    1. Kliknij Zezwól.
    2. 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ć.
    3. Kliknij , aby udzielić.

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śli location_name zawiera znaki specjalne, takie jak łączniki (-), musi być otoczony przez backticks (` `). Zobacz Nazwy.

  • <bucket-path>: ścieżka w dzierżawie chmury, do którego ta lokalizacja zewnętrzna udziela dostępu. Na przykład: abfss://my-container-name@my-storage-account.dfs.core.windows.net/<path> lub r2://my-bucket@my-account-id.r2.cloudflarestorage.com/<path>.

  • <storage-credential-name>: nazwa poświadczeń magazynu, które autoryzuje odczyt z kontenera magazynu lub ścieżkę zasobnika i zapisuje je w kontenerze magazynu lub ścieżce zasobnika. Jeśli nazwa poświadczeń magazynu zawiera znaki specjalne, takie jak łączniki (-), musi być otoczona przez backticks (` `).

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

Ważne

Ta funkcja jest dostępna w publicznej wersji zapoznawczej.

Domyślnie lokalizacja zewnętrzna jest dostępna ze wszystkich obszarów roboczych w magazynie metadanych. Oznacza to, że jeśli użytkownik otrzymał uprawnienie (takie jak READ FILES) w tej lokalizacji zewnętrznej, może wykonać to uprawnienie z dowolnego obszaru roboczego dołączonego do magazynu 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 TABLE w 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 FILES uprawnienia 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.

Ważne

Powiązania obszaru roboczego są odwoływania się w momencie wykonywania uprawnień do 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 jest 'abfss://my-container-name@storage-account-name.dfs.core.windows.net/finance' powiązana z myWorkspace?
  • Czy katalog myCat jest powiązany z myWorkspace przy użyciu poziomu dostępu Read & 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.

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.

Uwaga

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

  1. Zaloguj się do obszaru roboczego połączonego z magazynem metadanych.

  2. Na pasku bocznym kliknij ikonę katalogu.

  3. Na stronie Szybki dostęp kliknij przycisk Dane > zewnętrzne, aby przejść do karty Lokalizacje zewnętrzne.

  4. Wybierz lokalizację zewnętrzną i przejdź do karty Obszary robocze.

  5. 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.

  6. Kliknij pozycję 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> ciąg nazwą profilu konfiguracji uwierzytelniania usługi 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 Uwierzytelnianie osobistego tokenu dostępu w usłudze Azure Databricks.

  1. Użyj polecenia update z grupy external-locations, aby ustawić isolation mode lokalizacji zewnętrznej na ISOLATED.

    databricks external-locations update <my-location> \
    --isolation-mode ISOLATED \
    --profile <profile-name>
    

    Wartość domyślna isolation-mode to OPEN wszystkie obszary robocze dołączone do magazynu metadanych.

  2. workspace-bindings Użyj polecenia grupy update-bindings poleceń, 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.

    Uwaga

    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_type dla powiązania lokalizacji zewnętrznych.

Aby wyświetlić wszystkie przypisania obszarów roboczych dla lokalizacji zewnętrznej, użyj polecenia get-bindings z grupy poleceń workspace-bindings.

databricks workspace-bindings get-bindings external-location <my-location> \
--profile <profile-name>

Zobacz również Powiązania obszaru roboczego 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.

Następne kroki