Visual Studio 内から正常に実行されるジョブを実行しようとしています。これを ADF パイプラインで実行したいのですが、ジョブが構文エラーで失敗します。
ERRORID: E_CSC_USER_SYNTAXERROR
SEVERITY: Error
COMPONENT: CSC
SOURCE: USER
MESSAGE:
syntax error. Expected one of: '[' end-of-file ALTER COMBINE CREATE DEPLOY DROP EXTRACT IF INSERT OUTPUT PROCESS REDUCE REFERENCE RESOURCE SELECT TABLE TRUNCATE UPDATE USE USING VIEW identifier quoted-identifier variable ';' '('
DETAILS:
at token [], line 2
near the ###:
**************
DECLARE @outSlice string = "somepath.csv";
### USE DATABASE myDB;
//LOCAL
//DECLARE @root string = @"some local path";
//CLOUD
//DECLARE @root string = "adl://storeuri";
DECLARE @root string = "wasb://container@account/";
//RUN MODE 0
//DECLARE @var2 int = 1;
//DECLARE @var1 int = 1;
DECLARE @path1 string = @root + @"path1/xyz.csv";
編集: USE DATABASE ステートメントで両方を試してみましたが、上記のようにコメントアウトしました; ### はどちらの場合もまったく同じ場所に表示されます。EDIT2: @michael-rys からのリクエストごとに連続したコード行を追加しましたスクリプトの後半で、パラメータ @outSlice が次のような出力ステートメントで使用されます
OUTPUT @dataset
TO @outSlice
USING Outputters.Csv();
パラメータは、パイプライン アクティビティ内で決定されます。以下のスニペット:
"type": "DataLakeAnalyticsU-SQL",
"typeProperties": {
"scriptPath": "script.usql",
"scriptLinkedService": "storageXYX",
"degreeOfParallelism": 2,
"priority": 0,
"parameters": {
"outSlice": "$$Text.Format('/Output/{0:yyyy}/{0:MM}/{0:dd}/{0:HH}/somefile.csv',SliceStart)"
}