Adatok betöltése a COPY INTO használatával Unity Catalog-kötetekkel vagy külső helyekkel
Megtudhatja, hogyan használhatja COPY INTO
az adatok a Unity Catalog által felügyelt vagy külső táblákba való betöltését a COPY INTO által támogatott bármely forrás- és fájlformátumból. A Unity Catalog új lehetőségeket ad a nyers adatokhoz való biztonságos hozzáférés konfigurálásához. A Unity Catalog-kötetek vagy külső helyek használatával hozzáférhet a felhőobjektum-tárolóban tárolt adatokhoz.
A Databricks azt javasolja, hogy kötetekkel férhessenek hozzá a felhőbeli tárolóban lévő fájlokhoz a betöltési folyamat COPY INTO
részeként. A kötetek és a külső helyek használatára vonatkozó javaslatokról további információt a Unity Catalog ajánlott eljárásaiban talál.
Ez a cikk azt ismerteti, hogyan tölthető be a parancs az COPY INTO
Azure-fiókban lévő Azure Data Lake Storage Gen2 (ADLS Gen2) tárolóból egy Databricks SQL-táblába.
A cikk lépései feltételezik, hogy a rendszergazda konfigurált egy Unity Catalog-kötetet vagy egy külső helyet, hogy hozzáférhessen a forrásfájlokhoz az ADLS Gen2-ben. Ha a rendszergazda egy számítási erőforrást konfigurált szolgáltatásnév használatára, olvassa el az adatok betöltése a COPY INTO szolgáltatásnévvel vagy oktatóanyag: COPY INTO és Spark SQL használatával című témakört. Ha a rendszergazda ideiglenes hitelesítő adatokat (blob SAS-jogkivonatot) adott meg, kövesse az adatok betöltése a COPY INTO és az ideiglenes hitelesítő adatok használatával című témakörben leírt lépéseket.
Mielőtt elkezdené
Mielőtt COPY INTO
unitykatalógus-kötetből vagy egy külső Unity Catalog-helyként definiált felhőobjektum-tárolóútvonalról töltené be az adatokat, az alábbiakkal kell rendelkeznie:
Egy
READ VOLUME
kötet vagy egyREAD FILES
külső hely jogosultsága.További információ a kötetek létrehozásáról: Mik azok a Unity Catalog-kötetek?.
A külső helyek létrehozásával kapcsolatos további információkért tekintse meg a felhőbeli tároló Azure Databrickshez való csatlakoztatásához szükséges külső hely létrehozását ismertető témakört.
A forrásadatok elérési útja egy felhőalapú objektumtároló URL-címe vagy egy kötet elérési útja formájában.
Példa felhőobjektum-tároló URL-címe:
abfss://container@storageAccount.dfs.core.windows.net/raw-data/json
.Példa kötet elérési útjára:
/Volumes/quickstart_catalog/quickstart_schema/quickstart_volume/raw_data/json
.A
USE SCHEMA
céltáblát tartalmazó séma jogosultsága.A
USE CATALOG
szülőkatalógus jogosultsága.
A Unity Catalog-jogosultságokkal kapcsolatos további információkért lásd a Unity Catalog jogosultságait és a biztonságos objektumokat.
Adatok betöltése kötetből
A Unity Catalog-kötetből származó adatok betöltéséhez rendelkeznie kell a READ VOLUME
jogosultsággal. A kötetjogjogok a megadott kötet alatti összes beágyazott könyvtárra vonatkoznak.
Ha például rendelkezik hozzáféréssel egy kötethez az elérési úttal /Volumes/quickstart_catalog/quickstart_schema/quickstart_volume/
, a következő parancsok érvényesek:
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;
A dbfs-sémával mennyiségi elérési utat is használhat. Például a következő parancsok is érvényesek:
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;
Adatok betöltése külső hely használatával
Az alábbi példa adatokat tölt be az ADLS Gen2-ből egy táblába a Unity Catalog külső helyeinek használatával, hogy hozzáférést biztosítson a forráskódhoz.
COPY INTO my_json_data
FROM 'abfss://container@storageAccount.dfs.core.windows.net/jsonData'
FILEFORMAT = JSON;
Külső hely jogosultságöröklése
A külső hely jogosultságai a megadott helyen lévő összes beágyazott könyvtárra vonatkoznak.
Ha például rendelkezik hozzáféréssel egy URL-címmel abfss://container@storageAccount.dfs.core.windows.net/raw-data
definiált külső helyhez, a következő parancsok érvényesek:
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;
Ezen a külső helyen az engedélyek nem biztosítanak jogosultságot a megadott hely fölötti vagy párhuzamos címtárakhoz. Például az alábbi parancsok egyike sem érvényes:
COPY INTO parent_table
FROM 's3://landing-bucket'
FILEFORMAT = PARQUET;
COPY INTO sibling_table
FROM 's3://landing-bucket/json-data'
FILEFORMAT = JSON;
Háromszintű névtér céltáblákhoz
Egy Unity Catalog-táblát háromrétegű azonosítóval (<catalog_name>.<database_name>.<table_name>
) célozhat meg. A USE CATALOG <catalog_name>
USE <database_name>
parancsokkal beállíthatja az aktuális lekérdezés vagy jegyzetfüzet alapértelmezett katalógusát és adatbázisát.