共用方式為


使用 COPY INTO 搭配暫存認證載入數據

如果您的 Azure Databricks 叢集或 SQL 倉儲沒有讀取來源檔案的許可權,您可以使用暫存認證來存取外部雲端物件記憶體的數據,並將檔案載入 Delta Lake 數據表。

根據貴組織管理雲端安全性的方式,您可能需要要求雲端系統管理員或進階使用者提供認證。 如需詳細資訊,請參閱 產生擷取的暫存認證。

指定存取資料的暫存認證或加密選項

注意

Databricks Runtime 10.4 LTS 和更新版本提供認證和加密選項。

COPY INTO 支援:

警告

為了避免誤用或暴露暫時認證,Databricks 建議您設定到期日範圍,只要夠長的時間才能完成工作。

COPY INTO 支援從 AWS S3 載入加密的數據。 若要載入加密的數據,請提供加密類型和金鑰來解密數據。

使用暫存認證載入數據

下列範例會使用暫存認證從 S3 和 ADLS Gen2 載入數據,以提供源數據的存取權。

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

載入加密的數據

使用客戶提供的加密金鑰,下列範例會從 S3 載入數據。

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

使用來源和目標的認證載入 JSON 數據

下列範例會將 JSON 數據從 Azure 上的檔案載入至名為 my_json_data的外部 Delta 資料表。 必須先建立此數據表, COPY INTO 才能執行。 命令會使用一個現有的認證來寫入外部 Delta 數據表,另一個認證會從 ABFSS 位置讀取。

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