Share via


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')