3
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.

Azure Databricks にて Unity Catalog volumes 利用時の Azure Storage にファイヤーウォールを設定した際の動作検証

Posted at

概要

Databricks Unity Catalog の一機能である volumes 利用時に Azure Storage にファイヤーウォールを設定した際には次のような制約がある旨が記載されており、どういった制約となるかの検証結果を共有します。検証結果から、Data Explorer のVolume UI にて、GUI によりアップロードとダウンロードができないという制約があることを確認できました。クラスターから Azure Storage のファイルの読み込みや書き込みは想定通りに実施できました。

You cannot upload or download files for volumes backed by Azure storage accounts configured with Azure Firewall or Private Link.

引用元:Create volumes - Azure Databricks | Microsoft Learn

Azure Firewall や Private Link で構成された Azure ストレージ アカウントでバックアップされたボリュームに対しては、ファイルのアップロードやダウンロードはできません。

上記の翻訳

事前準備

1. Azure Storage にファイヤーウォールを設定

Azure Storage にて次のファイヤーウォール設定を有効にします。

  1. Databricks アクセスコネクターからのアクセス(下記画像のリソース インスタンスの箇所)
  2. VNet インジェクション先仮想ネットワークのサブネットからのアクセス(下記画像の仮想ネットワークの箇所)

image.png

2. 外部ロケーションの作成

Data Explorer にて、ファイヤーウォールを設定したストレージの外部ロケーションを作成します。

image.png

3. 検証用カタログ、スキーマ、および、 Volume を作成

検証に利用するカタログ、スキーマ、および、 Volume を作成します。

%sql
CREATE CATALOG IF NOT EXISTS upload_ui;
CREATE SCHEMA IF NOT EXISTS upload_ui.schema_01;

DROP VOLUME IF EXISTS upload_ui.schema_01.volumes_01;
CREATE EXTERNAL VOLUME upload_ui.schema_01.volumes_01
LOCATION 'abfss://external@dbuce.dfs.core.windows.net/volumes';

image.png

動作検証

1. Azure Storage へファイルの書き込み

次のコードの実行結果から、ファイルの書き込みが実施できることを確認できました。

dbutils.fs.mkdirs('/Volumes/upload_ui/schema_01/volumes_01/tpch')

# dbfs 上のファイルをストレージにコピー
dbutils.fs.cp(
    "dbfs:/databricks-datasets/tpch/README.md",
    "/Volumes/upload_ui/schema_01/volumes_01/tpch/README.md",
)

# ファイルを表示
print(dbutils.fs.head("/Volumes/upload_ui/schema_01/volumes_01/tpch/README.md"))

image.png

2. Azure Storage からファイルの取得

次のコードの実行結果から、ファイルの取得が実施できることを確認できました。

# ストレージ上のファイルから dbfs をにコピー
dbutils.fs.cp(
    "/Volumes/upload_ui/schema_01/volumes_01/tpch/README.md",
    "dbfs:/FileStore/test/README.md",
    True,
)

# ファイルを表示
print(dbutils.fs.head("dbfs:/FileStore/test/README.md"))

image.png

3.Volume UI の検証

次の記事に記載されている Volume UI にて、アップロードとダウンロードの動作を確認しましたが、いずれも想定通りに動作しませんでした。

Data Exlorer にて、volume にファイルをアップロードしようとすると、次のようなエラーが発生しました。

An error occurred while uploading. Please try again

image.png

Data Exlorer にて、volume にファイルをダウンロードロードしようとすると、ブラウザーにて次のようなエラーが発生しました。

ダウンロードできませんでした - 問題が発生しました。もう一度お試しになるか、お客様の組織に問い合わせてください。

image.png

3
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
3
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?