Sdílet prostřednictvím


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 svazku READ 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.