Synapse Studioからクエリが実行できないが、DataFactoryからはクエリが実行できる

鈴木 宏基 20 評価のポイント
2025-11-13T02:47:13.06+00:00

Synapse Analyticsサーバレスを経由し、CSVのデータをData Factoryで処理するフローを実装しています。

Synapse Analyticsへクエリを発行し、Synapse Analyticsで処理を行う想定です。

実装および環境構築が完了し、Data Factoryから想定どおりに処理が行えるようになりました。

データも想定どおりに出力されることも確認しています。

しかし、Synapse Studioの画面からData Factoryで実行していたクエリがエラーで実行できない状態です。

External table '``<テーブル名>``' is not accessible because content of directory cannot be listed.というエラーが発生し、クエリが失敗します。

select * from <テーブル>で実行しても同じエラーが発生します。

Data Factoryの実行時には一切発生しておりません。

権限関連の問題を疑い調査をしていましたが、Data FactoryとSynapseで差が見つからず原因が不明です。

そもそもとして、中間サービスでは失敗するがその後ろのサービスでは成功するという挙動がなぜ発生するかも理解できていません。

この問題に心当たりなどありましたら、教えていただけますと幸いです。

■概要図

2025-11-13.コミュニティ問い合わせ

■実行環境

〇共通

  • 対象ファイルを配置しているストレージアカウントの"ストレージ BLOB データ共同作成者"をマネージド IDに付与済み
  • ネットワークは"パブリックエンドポイント"

〇Synapse Analytics

  • アクセス制御でMicrosoftアカウントに"Synapse Administrator"と"Synapse Contributor"を付与済み

〇DataFactory

  • "スクリプト"アクティビティでクエリを実行
  • リンクサービスの認証方法は"システム割り当てマネージドID"
Azure Synapse Analytics
Azure Synapse Analytics

データ統合、エンタープライズ データ ウェアハウス、ビッグ データ分析を 1 つにまとめた Azure 分析サービス。 旧称 Azure SQL Data Warehouse。

0 件のコメント コメントはありません

質問作成者が受け入れた回答
Smaran Thoomu 35,375 評価のポイント モデレーター
2025-11-18T09:19:20.49+00:00

鈴木 宏基

この問題は、多くの場合、Synapse Studio と Data Factory が 外部テーブルへアクセスする際に使用する ID が異なる ことが原因で発生します。

Data Factory がクエリを実行する時は マネージド ID が使われ、この ID にはすでに Data Lake への必要な権限が付与されています。 一方で、Synapse Studio で手動でクエリを実行する際は、ご自身の Azure AD ユーザーアカウント が使用されます。 このアカウントがフォルダー内のファイル一覧を取得できない場合、Synapse Studio では次のエラーが表示されます。

External table '<テーブル名>' is not accessible because content of directory cannot be listed.

そのため、

Data Factory では問題なく動くのに

Synapse Studio では失敗する

という状況が起こります。

1. ユーザーアカウントに正しい権限があるか確認してください

対象のコンテナーまたはフォルダーに、次のいずれかのロールを付与してください。

  • Storage Blob Data Contributor または
  • Storage Blob Data Owner

(※ マネージド ID に権限があっても、ユーザーアカウント側に無ければ Synapse Studio はアクセスできません)

2. Azure Portal でフォルダーを開けるか確認してください

ストレージアカウント → コンテナー → 対象フォルダー ここでファイル一覧が表示されれば OK です。 表示できない場合、Synapse Studio でも同じエラーになります。

3. ADLS Gen1 を使用している場合

以下の追加権限が必要です。

  • Reader and Data Access
  • Data Lake Store File System Owner / Contributor

ユーザーアカウントにも適切な権限を付与すれば、Synapse Studio でも問題なくクエリを実行できるようになるはずです。

この回答は役に立ちましたか?

1 人がこの回答が役に立ったと思いました。

0 件の追加の回答

並べ替え方法: 最も役に立つ

お客様の回答

質問作成者は回答に "承認済み"、モデレーターは "おすすめ" とマークできます。これにより、ユーザーは作成者の問題が回答によって解決したことを把握できます。