こんにちは。今回は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”とあるように、権限設定の可能性もありえそうだけど、まずはパスの指定が正しいかを確認してみるとよさそう。
参考になりましたら幸いです。
おしまい
コメントを残す