Udostępnij za pośrednictwem


Ładowanie danych przy użyciu funkcji COPY INTO z woluminami wykazu aparatu Unity lub lokalizacjami zewnętrznymi

Dowiedz się, jak pozyskiwać COPY INTO dane do tabel zarządzanych lub zewnętrznych w wykazie aparatu Unity z dowolnego formatu źródłowego i pliku obsługiwanego przez funkcję COPY INTO. Wykaz aparatu Unity dodaje nowe opcje konfigurowania bezpiecznego dostępu do danych pierwotnych. Do uzyskiwania dostępu do danych w magazynie obiektów w chmurze można użyć woluminów wykazu aparatu Unity lub lokalizacji zewnętrznych.

Usługa Databricks zaleca używanie woluminów do uzyskiwania dostępu do plików w magazynie w chmurze w ramach procesu pozyskiwania przy użyciu polecenia COPY INTO. Aby uzyskać więcej informacji na temat zaleceń dotyczących używania woluminów i lokalizacji zewnętrznych, zobacz Artykuł Unity Catalog best practices (Najlepsze rozwiązania dotyczące wykazu aparatu Unity).

W tym artykule opisano sposób ładowania COPY INTO danych z kontenera usługi Azure Data Lake Storage Gen2 (ADLS Gen2) na koncie platformy Azure do tabeli w usłudze Databricks SQL.

W krokach opisanych w tym artykule przyjęto założenie, że administrator skonfigurował wolumin wykazu aparatu Unity lub lokalizację zewnętrzną, aby uzyskać dostęp do plików źródłowych w usłudze ADLS Gen2. Jeśli administrator skonfigurował zasób obliczeniowy do używania jednostki usługi, zobacz Load data using COPY INTO with a service principal (Ładowanie danych przy użyciu jednostki usługi) lub Tutorial: COPY INTO with Spark SQL zamiast tego (Samouczek: COPY INTO z usługą Spark SQL ). Jeśli administrator udzielił Ci tymczasowych poświadczeń (tokenu SAS obiektu blob), wykonaj kroki opisane w temacie Ładowanie danych przy użyciu funkcji COPY INTO z tymczasowymi poświadczeniami .

Zanim rozpoczniesz

COPY INTO Aby załadować dane z woluminu wykazu aparatu Unity lub ścieżki magazynu obiektów w chmurze zdefiniowanej jako lokalizacja zewnętrzna wykazu aparatu Unity, musisz mieć następujące elementy:

  • Uprawnienie READ VOLUME do woluminu READ FILES lub uprawnienia w lokalizacji zewnętrznej.

    Aby uzyskać więcej informacji na temat tworzenia woluminów, zobacz Co to są woluminy wykazu aparatu Unity?.

    Aby uzyskać więcej informacji na temat tworzenia lokalizacji zewnętrznych, zobacz Tworzenie lokalizacji zewnętrznej w celu połączenia magazynu w chmurze z usługą Azure Databricks.

  • Ścieżka do danych źródłowych w postaci adresu URL magazynu obiektów w chmurze lub ścieżki woluminu.

    Przykładowy adres URL magazynu obiektów w chmurze: abfss://container@storageAccount.dfs.core.windows.net/raw-data/json.

    Przykładowa ścieżka woluminu: /Volumes/quickstart_catalog/quickstart_schema/quickstart_volume/raw_data/json.

  • Uprawnienie USE SCHEMA do schematu zawierającego tabelę docelową.

  • Uprawnienie USE CATALOG do katalogu nadrzędnego.

Aby uzyskać więcej informacji na temat uprawnień wykazu aparatu Unity, zobacz Uprawnienia wykazu aparatu Unity i zabezpieczane obiekty.

Ładowanie danych z woluminu

Aby załadować dane z woluminu wykazu aparatu Unity, musisz mieć READ VOLUME uprawnienia. Uprawnienia woluminu mają zastosowanie do wszystkich katalogów zagnieżdżonych w ramach określonego woluminu.

Jeśli na przykład masz dostęp do woluminu ze ścieżką /Volumes/quickstart_catalog/quickstart_schema/quickstart_volume/, następujące polecenia są prawidłowe:

COPY INTO landing_table
FROM '/Volumes/quickstart_catalog/quickstart_schema/quickstart_volume/raw_data'
FILEFORMAT = PARQUET;

COPY INTO json_table
FROM '/Volumes/quickstart_catalog/quickstart_schema/quickstart_volume/raw_data/json'
FILEFORMAT = JSON;

Opcjonalnie możesz również użyć ścieżki woluminu ze schematem dbfs. Na przykład następujące polecenia są również prawidłowe:

COPY INTO landing_table
FROM 'dbfs:/Volumes/quickstart_catalog/quickstart_schema/quickstart_volume/raw_data'
FILEFORMAT = PARQUET;

COPY INTO json_table
FROM 'dbfs:/Volumes/quickstart_catalog/quickstart_schema/quickstart_volume/raw_data/json'
FILEFORMAT = JSON;

Ładowanie danych przy użyciu lokalizacji zewnętrznej

Poniższy przykład ładuje dane z usługi ADLS Gen2 do tabeli przy użyciu lokalizacji zewnętrznych wykazu aparatu Unity w celu zapewnienia dostępu do kodu źródłowego.

COPY INTO my_json_data
FROM 'abfss://container@storageAccount.dfs.core.windows.net/jsonData'
FILEFORMAT = JSON;

Dziedziczenie uprawnień lokalizacji zewnętrznej

Uprawnienia lokalizacji zewnętrznej mają zastosowanie do wszystkich katalogów zagnieżdżonych w określonej lokalizacji.

Jeśli na przykład masz dostęp do lokalizacji zewnętrznej zdefiniowanej przy użyciu adresu URL abfss://container@storageAccount.dfs.core.windows.net/raw-data, następujące polecenia są prawidłowe:

COPY INTO landing_table
FROM 'abfss://container@storageAccount.dfs.core.windows.net/raw-data'
FILEFORMAT = PARQUET;

COPY INTO json_table
FROM 'abfss://container@storageAccount.dfs.core.windows.net/raw-data/json'
FILEFORMAT = JSON;

Uprawnienia do tej lokalizacji zewnętrznej nie przyznają żadnych uprawnień do katalogów powyżej ani równoległych do określonej lokalizacji. Na przykład żadna z następujących poleceń nie jest prawidłowa:

COPY INTO parent_table
FROM 's3://landing-bucket'
FILEFORMAT = PARQUET;

COPY INTO sibling_table
FROM 's3://landing-bucket/json-data'
FILEFORMAT = JSON;

Trzy-poziomowa przestrzeń nazw dla tabel docelowych

Tabelę wykazu aparatu Unity można określić przy użyciu identyfikatora trójwarstwowego (<catalog_name>.<database_name>.<table_name>). Polecenia i USE <database_name> umożliwiają USE CATALOG <catalog_name> ustawienie domyślnego katalogu i bazy danych dla bieżącego zapytania lub notesu.