Azure Synapse Analyticsのパイプライン実行で”CREATE EXTERNAL TABLE AS SELECT statement failed as the path name…”エラーが発生する

こんにちは。今回はAzure Synapse Analyticsのトラブルシューティングメモです。

問題

Synapase Analyticsで、パイプラインを実行したところ以下のエラーがでて失敗した。

パイプラインで、シンクにデータを保存する際にステージングコピーを利用しているが、そこで指定していたADLS (Azure Data Lake Storage) Gen2へのデータコピー時に発生していた模様。

Operation on target パイプライン名 failed: {"StatusCode":"DFExecutorUserError","Message":"Job failed due to reason: at Source 'XXX': shaded.msdataflow.com.microsoft.sqlserver.jdbc.SQLServerException: CREATE EXTERNAL TABLE AS SELECT statement failed as the path name 'abfss://xxxx@xxx.dfs.core.windows.net/995f1fb6985d4fc1b1370aa203c7cf33/' could not be used for export. Please ensure that the specified path is a directory which exists or can be created, and that files can be created in that directory.","Details":"shaded.msdataflow.com.microsoft.sqlserver.jdbc.SQLServerException: CREATE EXTERNAL TABLE AS SELECT statement failed as the path name 'abfss://xxx@xxx.dfs.core.windows.net/995f1fb6985d4fc1b1370aa203c7cf33/' could not be used for export. Please ensure that the specified path is a directory which exists or can be created, and that files can be created in that directory.\n\tat shaded.msdataflow.com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:262)\n\tat shaded.msdataflow.com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1632)\n\tat shaded.msdataflow.com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement(SQLServerStatement.java:872)\n\tat shaded.msdataflow.com.microsoft.sqlserver.jdbc.SQLServerStatement$StmtExecCmd.doExecute(SQLServerStatement.java:767)\n\tat shaded.msdataflow.com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7418)\n\tat shaded.msdataflow.com.microsoft.sqlserver.jdbc.SQLServerConnectio"}

原因と解決方法

原因は非常にシンプルで、ステージング先として指定していたADLSのコンテナが存在しなかったためでした(指定したコンテナ名が誤っていた)。

というわけで、”Please ensure that the specified path is a directory which exists or can be created, and that files can be created in that directory”とあるように、権限設定の可能性もありえそうだけど、まずはパスの指定が正しいかを確認してみるとよさそう。

参考になりましたら幸いです。

おしまい

この記事を気に入っていただけたらシェアをお願いします!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

ABOUT US
Yuu113
初めまして。ゆうたろうと申します。 兵庫県出身、東京でシステムエンジニアをしております。現在は主にデータ分析、機械学習を活用してビジネスモデリングに取り組んでいます。 日々学んだことや経験したことを整理していきたいと思い、ブログを始めました。旅行、カメラ、IT技術、江戸文化が大好きですので、これらについても記事にしていきたいと思っています。