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?

Databricks にてカタログ統合した Azure Storage 上にある Snowflake-managed Iceberg テーブルを参照する際の認証エラーへの対応方法

Last updated at Posted at 2025-10-16

概要

Databricks にてカタログ統合した Azure Storage 上にある Snowflake-managed Iceberg テーブルを参照する際に認証がエラーとなった場合の暫定対応方法を紹介します。 Snowflake が blob エンドポイントを利用しているのですが、 Databricks のストレージ資格情報を利用できないことが原因のようです。

Databricks Serverless Cluster で発生するエラー

[DELTA_UNIFORM_INGRESS_VIOLATION.CONVERT_TO_DELTA_METADATA_FAILED] Read Delta Uniform fails: Metadata conversion from Iceberg to Delta failed, Failure to initialize configuration for storage account sf2dbx123.blob.core.windows.net: Invalid configuration value detected for fs.azure.account.key. SQLSTATE: KD00E

image.png

Databricks Classic Cluster で発生するエラー

[FAILED_READ_FILE.NO_HINT] Error while reading file abfss:REDACTED_LOCAL_PART@sf2dbx123.blob.core.windows.net/snowflakecatalog/nation_iceberg4.idKGImTz/data/snow_UxDU4_q7r50_AOBii2oEbhg_0_2_002.parquet. SQLSTATE: KD001

image.png

2025年10月16日時点で動作を確認できている方法は下記です。 1 の方法については、 Databricks Serverless Cluster では Spark Config の設定に制限があるため、 Databricks Classic Cluster を利用する必要があります。

  1. Spark Conf にて Azure Storega に対する認証情報を設定する方法

前提情報

事前準備

1. Snowflake 側で Snowflake-managed Iceberg テーブルを作成

下記の記事を参考にしてください。

2. Azure Stoarge 上でSnowflake が作成したテーブルのメタデータファイルを 確認

Apache Iceberg の仕様として絶対パスがメタデータファイルに書かれるのですが、 dfs.core.windows.net(dfs エンドポイント)ではなく、 blob.core.windows.net(blob エンドポイント)となっていることを確認できます。

image.png

本動作は Snowflake にて外部 Volume を作成する際の設定に起因します。 dfs.core.windows.net(dfs エンドポイント)を指定はできませんでした。

image.png

出所:CREATE EXTERNAL VOLUME | Snowflake Documentation

3. Databricks にて Snowflake のカタログフェデレーションを設定

下記ドキュメントを参考に設定してください。

4. Databricks のテーブルを確認

テーブルを確認すると下記のようになっています。 Databricks では blob エンドポイントではなく、dfs エンドポイントの利用が前提となっています。

image.png

image.png

Databricks にて Apahce Iceberg テーブルにアクセスする場合には、 Delta Lake のメタデータを作成する仕様となっているのですが、 Delta Lake のメタデータを確認すると blob エンドポイントとなっています。

image.png

対応方法

1. Spark Conf にて Azure Storega に対する認証情報を設定する方法

Databricks Classic Cluster を作成します。

image.png

account_name = "sf2dbxxxx"
account_key  = "xRO0AhhcqvE3acZwuulqdR6ooZAFww8rdxxxxxx"

spark.conf.set(f"fs.azure.account.key.{account_name}.blob.core.windows.net", account_key)

spark.table("`sf-iceberg_catalog`.public.nation_iceberg4").display()

image.png

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?