概要
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
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
2025年10月16日時点で動作を確認できている方法は下記です。 1 の方法については、 Databricks Serverless Cluster では Spark Config の設定に制限があるため、 Databricks Classic Cluster を利用する必要があります。
- 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 エンドポイント)となっていることを確認できます。
本動作は Snowflake にて外部 Volume を作成する際の設定に起因します。 dfs.core.windows.net(dfs エンドポイント)を指定はできませんでした。
出所:CREATE EXTERNAL VOLUME | Snowflake Documentation
3. Databricks にて Snowflake のカタログフェデレーションを設定
下記ドキュメントを参考に設定してください。
4. Databricks のテーブルを確認
テーブルを確認すると下記のようになっています。 Databricks では blob エンドポイントではなく、dfs エンドポイントの利用が前提となっています。
Databricks にて Apahce Iceberg テーブルにアクセスする場合には、 Delta Lake のメタデータを作成する仕様となっているのですが、 Delta Lake のメタデータを確認すると blob エンドポイントとなっています。
対応方法
1. Spark Conf にて Azure Storega に対する認証情報を設定する方法
Databricks Classic Cluster を作成します。
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()








