Gegevens laden met COPY INTO met tijdelijke referenties
Als uw Azure Databricks-cluster of SQL Warehouse geen machtigingen heeft om uw bronbestanden te lezen, kunt u tijdelijke referenties gebruiken om toegang te krijgen tot gegevens uit de opslag van externe cloudobjecten en bestanden in een Delta Lake-tabel te laden.
Afhankelijk van hoe uw organisatie uw cloudbeveiliging beheert, moet u mogelijk een cloudbeheerder of hoofdgebruiker vragen om u referenties te verstrekken. Zie Tijdelijke referenties genereren voor opname voor meer informatie.
Tijdelijke referenties of versleutelingsopties opgeven voor toegang tot gegevens
Notitie
Referentie- en versleutelingsopties zijn beschikbaar in Databricks Runtime 10.4 LTS en hoger.
COPY INTO
Ondersteunt:
- Azure SAS-tokens voor het lezen van gegevens uit ADLS Gen2 en Azure Blob Storage. Tijdelijke Azure Blob Storage-tokens bevinden zich op containerniveau, terwijl ADLS Gen2-tokens naast het containerniveau op directoryniveau kunnen zijn. Databricks raadt het gebruik van SAS-tokens op directoryniveau aan, indien mogelijk. Het SAS-token moet de machtigingen Lezen, Lijst en Machtigingen hebben.
- AWS STS-tokens voor het lezen van gegevens uit AWS S3. Uw tokens moeten de machtigingen 's3:GetObject*', 's3:ListBucket' en 's3:GetBucketLocation' hebben.
Waarschuwing
Om misbruik of blootstelling van tijdelijke referenties te voorkomen, raadt Databricks u aan verloopperioden in te stellen die net genoeg zijn om de taak te voltooien.
COPY INTO
ondersteunt het laden van versleutelde gegevens van AWS S3. Als u versleutelde gegevens wilt laden, geeft u het type versleuteling en de sleutel op om de gegevens te ontsleutelen.
Gegevens laden met tijdelijke referenties
In het volgende voorbeeld worden gegevens uit S3 en ADLS Gen2 geladen met behulp van tijdelijke referenties voor toegang tot de brongegevens.
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
Versleutelde gegevens laden
Met behulp van door de klant verstrekte versleutelingssleutels wordt in het volgende voorbeeld gegevens uit S3 geladen.
COPY INTO my_json_data
FROM 's3://my-bucket/jsonData' WITH (
ENCRYPTION (TYPE = 'AWS_SSE_C', MASTER_KEY = '...')
)
FILEFORMAT = JSON
JSON-gegevens laden met referenties voor bron en doel
In het volgende voorbeeld worden JSON-gegevens uit een bestand in Azure geladen in de externe Delta-tabel met de naam my_json_data
.
Deze tabel moet worden gemaakt voordat COPY INTO
deze kan worden uitgevoerd.
De opdracht gebruikt één bestaande referentie om te schrijven naar een externe Delta-tabel en een andere om te lezen vanaf de ABFSS-locatie.
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')