Načtení dat pomocí funkce COPY INTO se svazky katalogu Unity nebo externími umístěními
Naučte se používat COPY INTO
k ingestování dat do spravované nebo externí tabulky Služby Unity z libovolného zdrojového formátu a formátu souboru podporovaného nástrojem COPY INTO. Katalog Unity přidává nové možnosti konfigurace zabezpečeného přístupu k nezpracovaných datům. Svazky katalogu Unity nebo externí umístění můžete použít pro přístup k datům v cloudovém úložišti objektů.
Databricks doporučuje používat svazky pro přístup k souborům v cloudovém úložišti v rámci procesu příjmu dat pomocí COPY INTO
. Další informace o doporučeních pro používání svazků a externích umístění najdete v tématu Osvědčené postupy katalogu Unity.
Tento článek popisuje, jak pomocí COPY INTO
příkazu načíst data z kontejneru Azure Data Lake Storage Gen2 (ADLS Gen2) ve vašem účtu Azure do tabulky v Databricks SQL.
Kroky v tomto článku předpokládají, že správce nakonfiguroval svazek katalogu Unity nebo externí umístění, abyste měli přístup ke zdrojovým souborům v ADLS Gen2. Pokud správce nakonfiguroval výpočetní prostředek pro použití instančního objektu, přečtěte si téma Načtení dat pomocí příkazu COPY INTO s instančním objektem nebo kurz: COPY INTO s Spark SQL . Pokud vám správce dal dočasné přihlašovací údaje (token SAS objektu blob), postupujte podle pokynů v tématu Načtení dat pomocí funkce COPY INTO s dočasnými přihlašovacími údaji .
Než začnete
Před načtením COPY INTO
dat ze svazku katalogu Unity nebo z cesty cloudového úložiště objektů, která je definovaná jako externí umístění katalogu Unity, musíte mít následující:
Oprávnění
READ VOLUME
ke svazkuREAD FILES
nebo oprávnění k externímu umístění.Další informace o vytváření svazků najdete v tématu Co jsou svazky katalogu Unity?.
Další informace o vytváření externích umístění najdete v tématu Vytvoření externího umístění pro připojení cloudového úložiště k Azure Databricks.
Cesta ke zdrojovým datům ve formě adresy URL cloudového úložiště objektů nebo cesty ke svazku.
Příklad adresy URL cloudového úložiště objektů:
abfss://container@storageAccount.dfs.core.windows.net/raw-data/json
.Příklad cesty svazku:
/Volumes/quickstart_catalog/quickstart_schema/quickstart_volume/raw_data/json
.Oprávnění
USE SCHEMA
ke schématu, které obsahuje cílovou tabulku.Oprávnění
USE CATALOG
nadřazeného katalogu.
Další informace o oprávněních katalogu Unity naleznete v tématu Oprávnění katalogu Unity a zabezpečitelné objekty.
Načtení dat ze svazku
Pokud chcete načíst data ze svazku katalogu Unity, musíte mít READ VOLUME
oprávnění. Oprávnění svazku se vztahují na všechny vnořené adresáře v zadaném svazku.
Pokud máte například přístup ke svazku s cestou /Volumes/quickstart_catalog/quickstart_schema/quickstart_volume/
, jsou platné následující příkazy:
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;
Volitelně můžete použít také cestu ke svazku se schématem dbfs. Platné jsou například také následující příkazy:
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;
Načtení dat pomocí externího umístění
Následující příklad načte data z ADLS Gen2 do tabulky pomocí externích umístění katalogu Unity, která poskytují přístup ke zdrojovému kódu.
COPY INTO my_json_data
FROM 'abfss://container@storageAccount.dfs.core.windows.net/jsonData'
FILEFORMAT = JSON;
Dědičnost oprávnění externího umístění
Oprávnění externího umístění se vztahují na všechny vnořené adresáře v zadaném umístění.
Pokud máte například přístup k externímu umístění definovanému pomocí adresy URL abfss://container@storageAccount.dfs.core.windows.net/raw-data
, jsou platné následující příkazy:
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;
Oprávnění k tomuto externímu umístění neudělují žádná oprávnění k adresářům nad zadaným umístěním ani paralelně. Například žádný z následujících příkazů není platný:
COPY INTO parent_table
FROM 's3://landing-bucket'
FILEFORMAT = PARQUET;
COPY INTO sibling_table
FROM 's3://landing-bucket/json-data'
FILEFORMAT = JSON;
Tříúrovňový obor názvů pro cílové tabulky
Tabulku katalogu Unity můžete cílit pomocí třívrstvého identifikátoru (<catalog_name>.<database_name>.<table_name>
). Pomocí příkazů USE CATALOG <catalog_name>
a USE <database_name>
příkazů můžete nastavit výchozí katalog a databázi pro aktuální dotaz nebo poznámkový blok.