一時的な認証情報 で COPY INTO を使用してデータをロードする

Databricks クラスターまたは SQLウェアハウスにソース ファイルを読み取るアクセス許可がない場合は、一時的な資格情報を使用して、外部クラウド オブジェクト ストレージからデータにアクセスし、ファイルを Delta Lake テーブルに読み込むことができます。

組織がクラウドセキュリティを管理する方法によっては、クラウド管理者またはパワーユーザーに資格情報の提供を依頼する必要がある場合があります。 詳細については、「 インジェスト用の一時的な認証情報を生成する」を参照してください。

データ にアクセスするための一時的な認証情報または暗号化オプションの指定

資格情報と暗号化オプションは、Databricks Runtime 10.4 LTS 以降で利用できます。

COPY INTO 楨:

  • ADLS Gen2 および Azure Blob ストレージからデータを読み取るための Azure SAS トークン 。Azure Blob ストレージ一時トークンはコンテナー レベルですが、ADLS Gen2 トークンはコンテナー レベルに加えてディレクトリ レベルに配置できます。 Databricks では、可能な場合はディレクトリ レベルの SAS トークンを使用することをお勧めします。 SAS トークンには、"読み取り"、"リスト"、および "アクセス許可" アクセス許可が必要です。

  • AWS S3 からデータを読み取るための AWS STS トークン 。トークンには、"s3:GetObject*"、"s3:ListBucket"、および "s3:GetBucketLocation" アクセス許可が必要です。

警告

一時的な資格情報の誤用や公開を避けるために、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データのロード

次の例では、AWS S3 上のファイルから my_json_data という外部 Delta テーブルに JSON データをロードします。 このテーブルは、 COPY INTO を実行する前に作成する必要があります。 このコマンドは、1 つの既存の認証情報を使用して外部 Delta テーブルに書き込み、もう 1 つの認証情報を使用して S3 の場所から読み取ります。

COPY INTO my_json_data WITH (CREDENTIAL target_credential)
  FROM 's3://my-bucket/jsonData' WITH (CREDENTIAL source_credential)
  FILEFORMAT = JSON
  FILES = ('f.json')