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.
Dowiedz się, jak używać COPY INTO do wprowadzania danych do zarządzanych przez katalog Unity tabel lub tabel zewnętrznych z dowolnego źródła i formatu pliku obsługiwanego przez COPY INTO. Unity Catalog dodaje nowe opcje konfigurowania bezpiecznego dostępu do surowych danych. Aby uzyskać dostęp do danych w magazynie obiektowym w chmurze, można użyć woluminów katalogu Unity lub lokalizacji zewnętrznych.
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.
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ń.
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ń w Unity Catalog, zobacz uprawnienia Unity Catalog i zabezpieczane obiekty.
Ł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;
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
W poniższym przykładzie dane są ładowane z usługi ADLS do tabeli przy użyciu zewnętrznych lokalizacji w Unity Catalog, co umożliwia 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 's3://landing-bucket'
FILEFORMAT = PARQUET;
COPY INTO sibling_table
FROM 's3://landing-bucket/json-data'
FILEFORMAT = JSON;
Trzy-poziomowa przestrzeń nazw dla tabel docelowych
Można wybrać tabelę katalogu Unity, używając identyfikatora trójwarstwowego (<catalog_name>.<database_name>.<table_name>). Możesz użyć poleceń USE CATALOG <catalog_name> i USE <database_name>, aby ustawić domyślny wykaz i bazę danych dla bieżącego zapytania lub notesu.