Adatok betöltése a COPY INTO használatával ideiglenes hitelesítő adatokkal
Ha az Azure Databricks-fürt vagy az SQL Warehouse nem rendelkezik a forrásfájlok olvasására vonatkozó engedélyekkel, ideiglenes hitelesítő adatokkal hozzáférhet a külső felhőobjektum-tárolóból származó adatokhoz, és fájlokat tölthet be egy Delta Lake-táblába.
Attól függően, hogy szervezete hogyan kezeli a felhőbiztonságot, előfordulhat, hogy meg kell kérnie egy felhőadminisztrátort vagy egy energiafelhasználót, hogy adja meg a hitelesítő adatokat. További információ: Ideiglenes hitelesítő adatok létrehozása a betöltéshez.
Ideiglenes hitelesítő adatok vagy titkosítási beállítások megadása az adatok eléréséhez
Feljegyzés
A hitelesítő és titkosítási lehetőségek a Databricks Runtime 10.4 LTS-ben és újabb verziókban érhetők el.
COPY INTO
Támogatja:
- Azure SAS-jogkivonatok az ADLS Gen2 és az Azure Blob Storage adatainak beolvasásához. Az Azure Blob Storage ideiglenes jogkivonatai a tároló szintjén vannak, míg az ADLS Gen2-jogkivonatok a tárolószint mellett a címtár szintjén is lehetnek. A Databricks a címtárszintű SAS-jogkivonatok használatát javasolja, ha lehetséges. Az SAS-jogkivonatnak "Olvasás", "Lista" és "Engedélyek" engedélyekkel kell rendelkeznie.
- AWS STS-jogkivonatok az AWS S3-ból származó adatok olvasásához. A jogkivonatoknak "s3:GetObject*", "s3:ListBucket" és "s3:GetBucketLocation" engedélyekkel kell rendelkezniük.
Figyelmeztetés
Az ideiglenes hitelesítő adatokkal való visszaélés vagy kitettség elkerülése érdekében a Databricks azt javasolja, hogy olyan lejárati horizontokat állítson be, amelyek elég hosszúak a feladat elvégzéséhez.
COPY INTO
támogatja a titkosított adatok AWS S3-ból való betöltését. A titkosított adatok betöltéséhez adja meg a titkosítás típusát és az adatok visszafejtéséhez szükséges kulcsot.
Adatok betöltése ideiglenes hitelesítő adatokkal
Az alábbi példa az S3-ból és az ADLS Gen2-ből tölt be adatokat ideiglenes hitelesítő adatok használatával a forrásadatokhoz való hozzáférés biztosításához.
COPY INTO my_json_data
FROM 's3://my-bucket/jsonData' WITH (
CREDENTIAL (AWS_ACCESS_KEY = '...', AWS_SECRET_KEY = '...', AWS_SESSION_TOKEN = '...')
)
FILEFORMAT = JSON
COPY INTO my_json_data
FROM 'abfss://container@storageAccount.dfs.core.windows.net/jsonData' WITH (
CREDENTIAL (AZURE_SAS_TOKEN = '...')
)
FILEFORMAT = JSON
Titkosított adatok betöltése
Az ügyfél által megadott titkosítási kulcsok használatával az alábbi példa adatokat tölt be az S3-ból.
COPY INTO my_json_data
FROM 's3://my-bucket/jsonData' WITH (
ENCRYPTION (TYPE = 'AWS_SSE_C', MASTER_KEY = '...')
)
FILEFORMAT = JSON
JSON-adatok betöltése a forrás és a cél hitelesítő adataival
Az alábbi példa JSON-adatokat tölt be egy Azure-fájlból a külső Delta-táblába.my_json_data
Ezt a táblát a végrehajtás előtt COPY INTO
létre kell hozni.
A parancs egy meglévő hitelesítő adatot használ a külső Delta-táblába való íráshoz, egy másik pedig az ABFSS-helyről való olvasáshoz.
COPY INTO my_json_data WITH (CREDENTIAL target_credential)
FROM 'abfss://container@storageAccount.dfs.core.windows.net/base/path' WITH (CREDENTIAL source_credential)
FILEFORMAT = JSON
FILES = ('f.json')