使用臨時憑據用COPY INTO加載數據

如果Databricks集群或SQL倉庫沒有讀取源文件的權限,則可以使用臨時憑證從外部雲對象存儲訪問數據,並將文件加載到Delta Lake表中。

根據組織管理雲安全的方式,您可能需要要求雲管理員或高級用戶向您提供憑據。

指定訪問數據的臨時憑證或加密選項

請注意

在Databricks Runtime 10.2及以上版本中提供憑據和加密選項。

複製支持:

  • Azure SAS令牌從ADLS Gen2和Azure Blob Storage讀取數據。Azure Blob Storage臨時令牌位於容器級別,而ADLS Gen2令牌除了位於容器級別之外,還可以位於目錄級別。Databricks建議盡可能使用目錄級別的SAS令牌。SAS令牌必須具有“Read”、“List”和“Permissions”權限。

  • AWS STS令牌從AWS S3讀取數據。你的令牌應該具有“s3:GetObject*”,“s3:ListBucket”和“s3:GetBucketLocation”權限。

警告

為了避免濫用或暴露臨時憑據,Databricks建議您將過期期限設置為剛好足夠完成任務的長度。

複製支持從AWS S3加載加密數據。要加載加密數據,請提供加密類型和解密數據的密鑰。

使用臨時憑證加載數據

下麵的示例使用臨時憑證從S3和ADLS Gen2加載數據,以提供對源數據的訪問。

複製my_json_data“s3: / /桶/ jsonData”憑證AWS_ACCESS_KEY“……”AWS_SECRET_KEY“……”AWS_SESSION_TOKEN“……”FILEFORMATJSON複製my_json_data“abfss: / / container@storageAccount.dfs.core.windows.net/jsonData”憑證AZURE_SAS_TOKEN“……”FILEFORMATJSON

加載加密數據

下麵的示例使用客戶提供的加密密鑰從S3加載數據。

複製my_json_data“s3: / /桶/ jsonData”加密類型“AWS_SSE_C”MASTER_KEY“……”FILEFORMATJSON

使用源和目標的憑證加載JSON數據

下麵的示例將JSON數據從AWS S3上的文件加載到名為my_json_data.該表必須是以前創建的複製可執行。該命令使用一個現有憑據寫入外部Delta表,使用另一個憑據從S3位置讀取。

複製my_json_data憑證target_credential“s3: / /桶/ jsonData”憑證source_credentialFILEFORMATJSON文件“f.json”