2
1

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 3 years have passed since last update.

azcopyでCentOSからAzure Data Lake Gen2へファイルをアップロードする

Last updated at Posted at 2020-09-01

以下の記事にて、TPC-Hのデータを作ってみたのですがazcopyでCentOSからファイルをアップロードしたのでその方法を記載します。
TPC-Hを使ってテスト環境を作成する(Synapse SQLプール)

1.ストレージアカウントと、コンテナの作成

まずはアップロードするストレージアカウントおよびコンテナを作成します。
※すでに存在している場合は、この作成は不要です。

1-1.Azureポータルでストレージアカウントを選択

image.png

1-2.ストレージアカウントの追加

image.png

1-3.基本タブにて必要な情報を追加

今回の例では、リソースグループストレージアカウント名レプリケーション以外はデフォルトで指定しています。
※ストレージアカウント名は全世界で1つです。
image.png

1-4.ネットワークタブにて必要な情報を選択

ネットワークの設定では今回はデフォルトのまま何も変えず作成しています。
image.png

1-5.データの保護を選択

今回は何も設定していません。
image.png

1-6.詳細タブにてData Lake Storage Gen2を選択

image.png

1-7.確認および作成にてストレージアカウントを作成

image.png

作成ボタンを押下するとストレージアカウントが作成されます。

1-8.コンテナの作成

ストレージアカウントが作成されたら、作成されたストレージアカウントよりコンテナの作成を行ってください。
image.png
以下の画面より+ コンテナーを選択します。
image.png
azcopytestというコンテナを作成しました。
image.png

2.ストレージアカウントのアクセス制御(IAM)の設定

Blobへのアクセスを行うために、IAMの設定が必要です。また、ここで設定したIAMの情報を利用して、azcopyを行う事になります。
この設定を行わないとazcopy時に403 This request is not authorized to perform this operation using this permission.のようなエラーが発生し、azcopyが出来なくなります。

2-1.先ほど作成したストレージアカウントを選択

image.png

2-2.アクセス制御(IAM)からロールの割り当てを追加

image.png

役割はストレージBLOBデータ共同作成者等必要な権限を選択し、IAMの割り当てを行うユーザを指定します。
image.png

3.CentOSにてazcopyを導入

まずはwgetにてazcopyをダウンロードします。

$ wget https://azcopyvnext.azureedge.net/release20200818/azcopy_linux_amd64_10.6.0.tar.gz

ダウンロードしたら解凍し、作成されたディレクトリへ移動します。

$ tar xvfx azcopy_linux_amd64_10.6.0.tar.gz
$ cd azcopy_linux_amd64_10.6.0

4.azcopyにてログインを実施

azcopyにてファイルをアップロードする前に、azcopyにてログインをする必要があります。

4-1.テナントIDの確認

azcopyでログインする際にテナントIDの入力が必要なので、テナントIDを確認します。
テナントIDはAzure ADから確認することが可能です。
image.png

画面遷移後テナントの情報から確認できます。
image.png

4-2.azcopyにてログイン

以下の要領でCentOSからログインを実行します。

$ ./azcopy login --tenant-id "<テナントID>"

実行するとブラウザを開いて、指定のURLよりコードを入れるように求められるので、ブラウザを開いてコードを入れます。
image.png

ブラウザで指定のURLを入力すると以下の画面が出ますのでコードを入力します。
image.png

ログインが成功すると以下のようにsucceededと出力されます。
image.png

4.azcopyにてBLOBにアップロード

azcopyのcopyコマンドを使用してBlobへアップロードします。

$ ./azcopy copy "ローカルのファイル名" "https://<ストレージアカウント名>.blob.core.windows.net/<コンテナ名>"

また、複数のファイルをアップロードしたい場合には、*などを指定することができます。

$ ./azcopy copy "ローカルのディレクトリ/*" "https://<ストレージアカウント名>.blob.core.windows.net/<コンテナ名>"

5.おまけ

アップロードが完了すればAzure Syanpase Analytics SQLプールにPolyBase等を使ってデータをロードすることが可能です。
方法は別の記事に乗せていますので、よろしければご参考までに。
PolyBaseでSynapse SQLプールにデータを投入してみた

2
1
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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?