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

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

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

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

注:

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

COPY INTO 楨:

  • ADLS Gen2 と Azure Blob Storage からデータを読み取るための Azure SAS トークン。Azure Blob Storage の一時トークンはコンテナー レベルにありますが、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')