0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

COPY INTOを用いたデータロードにおける一時資格情報の活用

Posted at

Use temporary credentials to load data with COPY INTO | Databricks on AWS [2022/9/27時点]の翻訳です。

本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。

お使いのDatabricksクラスターやSQLウェアハウスがソースファイルを読み込む権限を有していない場合、外部クラウドオブジェクトストレージのデータにアクセスするために一時資格情報を使うことができます。

皆様の組織でクラウドセキュリティをどのように関しているのかに応じて、クラウド管理者やパワーユーザーに資格情報を提供してもらうように依頼する必要があるかもしれません。

データにアクセスするための一時資格情報、あるいは暗号化オプションの指定

注意
資格情報と暗号化オプションはDatabricksランタイム10.2以降で利用できます。

COPY INTOは以下をサポートしています:

  • ADLS Gen2やAzure Blob Storageからデータを読み込むためのAzure SASトークン。Azure Blob Storageの一時トークンはコンテナレベルですが、ADLS Gen2のトークンはコンテナレベルに加えてディレクトリレベルとなります。可能な限り、ディレクトリレベルのSASを使うことをお勧めします。SASトークンにはReadListPermissions権限が必要です。
  • AWS S3からデータを読み込むためのAWS STSトークン。トークンにはs3:GetObject*s3:ListBuckets3:GetBucketLocation権限が必要です。

警告!
一時資格情報の誤用や漏洩を避けるために、タスクを完了するのに十分な有効期限を設定することをお勧めします。

COPY INTOはAWS S3の暗号化データのロードをサポートしています。暗号化データをロードするには、暗号化のタイプとデータを複合するためのキーを指定する必要があります。

一時資格情報を用いたデータのロード

以下のサンプルでは、ソースデータへのアクセスを提供するために一時資格情報を用いてS3とADLS Gen2のデータをロードしています。

SQL
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からデータをロードしています。

SQL
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を実行する前に作成しておく必要があります。このコマンドでは、外部Deltaテーブルに書き込むための資格情報と、S3ロケーションから読み込むための資格情報をそれぞれで使用しています。

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

Databricks 無料トライアル

Databricks 無料トライアル

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?