Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule opisano sposób użycia polecenia COPY INTO w celu załadowania danych z kontenera usługi Azure Data Lake Storage (ADLS) na koncie platformy Azure do tabeli w usłudze Databricks SQL.
W krokach opisanych w tym artykule przyjęto, że administrator skonfigurował wolumin katalogu Unity lub lokalizację zewnętrzną, aby uzyskać dostęp do plików źródłowych w ADLS. Jeśli administrator skonfigurował zasób obliczeniowy do używania jednostki usługi, zobacz Ładowanie danych przy użyciu COPY INTO z jednostką usługi lub Samouczek: COPY INTO z usługą Spark SQL. Jeśli administrator przydzielił Ci tymczasowe poświadczenia (token SAS obiektu Blob), wykonaj kroki opisane w Ładowanie danych za pomocą COPY INTO przy użyciu tymczasowych poświadczeń.
Usługa Databricks zaleca używanie woluminów do uzyskiwania dostępu do plików w przechowywaniu w chmurze w ramach procesu dostosowywania przy użyciu COPY INTO. Aby uzyskać więcej informacji na temat zaleceń dotyczących używania woluminów i lokalizacji zewnętrznych, zobacz najlepsze praktyki katalogu Unity.
Zanim rozpoczniesz
Aby załadować dane z wolumenu Unity Catalog lub ze ścieżki przechowywania obiektów w chmurze, zdefiniowanej jako zewnętrzna lokalizacja Unity Catalog, musisz posiadać następujące:
Uprawnienie
READ VOLUMEna woluminie lub uprawnienieREAD FILESw lokalizacji zewnętrznej. Aby uzyskać więcej informacji na temat tworzenia woluminów, zobacz w Co to są woluminy katalogu Unity?. Aby uzyskać więcej informacji na temat tworzenia lokalizacji zewnętrznych, zobacz Omówienie lokalizacji zewnętrznych.Ś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.Przywilej
USE SCHEMAw schemacie zawierającym tabelę docelową.Uprawnienie
USE CATALOGw katalogu głównym.
Aby uzyskać więcej informacji na temat uprawnień Unity Catalog, zobacz referencje dotyczące uprawnień Unity Catalog.
Ładowanie danych z woluminu
Aby załadować dane z woluminu Unity Catalog, musisz mieć uprawnienia READ VOLUME. 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;
Prefiks dbfs: schematu jest również obsługiwany ze ścieżkami woluminu (na przykład dbfs:/Volumes/...), ale usługa Databricks zaleca użycie /Volumes/ formatu ścieżki pokazanego powyżej.
Ładowanie danych przy użyciu lokalizacji zewnętrznej
Note
Usługa Databricks zaleca używanie woluminów do uzyskiwania dostępu do plików w magazynie w chmurze. Lokalizacje zewnętrzne są obsługiwane, ale nie są zalecaną opcją. Zobacz Tabele zarządzane i zewnętrzne.
W poniższym przykładzie pokazano ładowanie danych z ADLS do tabeli przy użyciu zewnętrznych lokalizacji Katalogu Unity, aby umożliwić dostęp do danych źródłowych.
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 zapewniają żadnych przywilejów na katalogi powyżej lub równoległe do wskazanej lokalizacji. Na przykład żadna z następujących poleceń nie jest prawidłowa:
COPY INTO parent_table
FROM 'abfss://container@storageAccount.dfs.core.windows.net'
FILEFORMAT = PARQUET;
COPY INTO sibling_table
FROM 'abfss://container@storageAccount.dfs.core.windows.net/json-data'
FILEFORMAT = JSON;
Trzy-poziomowa przestrzeń nazw dla tabel docelowych
Tabelę Katalogu Unity można odwołać się do przy użyciu trzypoziomowej przestrzeni nazw (<catalog_name>.<schema_name>.<table_name>). Użyj poleceń USE CATALOG <catalog_name> i USE SCHEMA <schema_name>, aby ustawić domyślny wykaz i schemat dla bieżącego zapytania lub notesu.
W poniższym przykładzie dane są ładowane z woluminu do tabeli przy użyciu przestrzeni nazw trzypoziomowej:
COPY INTO quickstart_catalog.quickstart_schema.landing_table
FROM '/Volumes/quickstart_catalog/quickstart_schema/quickstart_volume/raw_data'
FILEFORMAT = PARQUET;
Możesz również najpierw ustawić domyślny wykaz i schemat:
USE CATALOG quickstart_catalog;
USE SCHEMA quickstart_schema;
COPY INTO landing_table
FROM '/Volumes/quickstart_catalog/quickstart_schema/quickstart_volume/raw_data'
FILEFORMAT = PARQUET;