使用暫存 credentials 使用 COPY INTO 載入數據
如果您的 Azure Databricks 叢集或 SQL 倉儲沒有讀取來源檔案的許可權,您可以使用暫存 credentials 從外部雲端物件記憶體存取數據,並將檔案載入 Delta Lake table。
視組織管理雲端安全性的方式而定,您可能需要要求雲端系統管理員或進階使用者提供您 credentials。 如需詳細資訊,請參閱 Generate 的暫存 credentials 用於攝取的。
指定credentials暫時性或加密選項以存取資料
注意
Databricks Runtime 10.4 LTS 和更新版本提供認證和加密選項。
COPY INTO
支援:
- 從 ADLS Gen2 和 Azure Blob 儲存體 讀取數據的 Azure SAS 令牌。 Azure Blob 儲存體 暫存令牌位於容器層級,而 ADLS Gen2 令牌除了容器層級之外,也可以位於目錄層級。 Databricks 建議盡可能使用目錄層級 SAS 令牌。 SAS 令牌必須具有「讀取」、「List」和「權限」的權限。
- 要從 AWS S3 讀取資料的 AWS STS 令牌 。 您的令牌應該具有 “s3:GetObject*”、“s3:ListBucket” 和 “s3:GetBucketLocation” 許可權。
警告
為了避免誤用或暴露暫時 credentials,Databricks 建議您 set 到期日線,只要夠長才能完成工作。
COPY INTO
支援從 AWS S3 載入加密的數據。 若要載入加密的數據,請提供加密類型和金鑰來解密數據。
使用暫存 credentials 載入數據
下列範例會使用暫存 credentials 從 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
使用 credentials 來載入來源和目標的 JSON 資料
下列範例會將 JSON 數據從 Azure 上的檔案載入至名為 my_json_data
的外部 Delta table。
必須先建立此 table,才能執行 COPY INTO
。
命令會使用一個現有的憑證來寫入至外部的 Delta table,並使用另一個憑證從 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')