Freigeben über


Laden von Daten mithilfe von COPY INTO mit temporären Anmeldeinformationen

Wenn Ihr Azure Databricks-Cluster oder SQL-Warehouse über keine Berechtigungen zum Lesen Ihrer Quelldateien verfügt, können Sie temporäre Anmeldeinformationen verwenden, um auf Daten aus dem externen Cloudobjektspeicher zuzugreifen und Dateien in eine Delta Lake-Tabelle zu laden.

Je nachdem, wie Ihre Organisation Ihre Cloudsicherheit verwaltet, müssen Sie möglicherweise eine*n Cloudadministrator*in oder einen Poweruser bitten, Ihnen Anmeldeinformationen bereitzustellen. Weitere Informationen finden Sie unter Generieren temporärer Anmeldeinformationen für die Erfassung.

Angeben temporärer Anmeldeinformationen oder Verschlüsselungsoptionen für den Datenzugriff

Hinweis

Optionen für Anmeldeinformationen und Verschlüsselung sind in Databricks Runtime 10.4 LTS und höher verfügbar.

COPY INTO unterstützt:

  • Azure SAS-Token zum Lesen von Daten aus ADLS Gen2 und Azure Blob Storage. Temporäre Token für Azure Blob Storage befinden sich auf Containerebene, während ADLS Gen2-Token zusätzlich zur Containerebene auf Verzeichnisebene vorhanden sein können. Databricks empfiehlt, wenn möglich SAS-Token auf Verzeichnisebene zu verwenden. Das SAS-Token muss über die Berechtigungen „Lesen“, „Auflisten“ und „Berechtigungen“ verfügen.
  • AWS STS-Token zum Lesen von Daten aus AWS S3. Die Token müssen über die Berechtigungen „s3:GetObject*“, „s3:ListBucket“ und „s3:GetBucketLocation“ verfügen.

Warnung

Um Missbrauch oder Offenlegung temporärer Anmeldeinformationen zu vermeiden, empfiehlt Databricks, dass Sie Ablaufzeithorizonte festlegen, die nur lange genug sind, um die Aufgabe abzuschließen.

COPY INTO unterstützt das Laden verschlüsselter Daten von AWS S3. Geben Sie zum Laden verschlüsselter Daten den Verschlüsselungstyp und den Schlüssel zum Entschlüsseln der Daten an.

Laden von Daten unter Verwendung temporärer Anmeldeinformationen

Das folgende Beispiel lädt Daten aus S3 sowie ADLS Gen2 und nutzt dabei temporäre Anmeldeinformationen, um Zugriff auf die Quelldaten zu ermöglichen.

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

Laden verschlüsselter Daten

Mithilfe von vom Kunden bereitgestellten Verschlüsselungsschlüsseln lädt das folgende Beispiel Daten aus S3.

COPY INTO my_json_data
FROM 's3://my-bucket/jsonData' WITH (
  ENCRYPTION (TYPE = 'AWS_SSE_C', MASTER_KEY = '...')
)
FILEFORMAT = JSON

Laden von JSON-Daten unter Verwendung von Anmeldeinformationen für Quelle und Ziel

Im folgenden Beispiel werden JSON-Daten aus einer Datei in Azure in die externe Delta-Tabelle mit dem Namen my_json_data geladen. Diese Tabelle muss erstellt werden, damit COPY INTO ausgeführt werden kann. Der Befehl verwendet vorhandene Anmeldeinformationen zum Schreiben in eine externe Delta-Tabelle und andere Anmeldeinformationen zum Lesen aus dem ABFSS-Speicherort.

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