ADFv2からU-SQLスクリプトを実行しようとしていますが、実行を妨げるエラーがあります。この問題に関するMSの文書が役に立たないことを考慮して、私は再びこの問題を解決するための助けを求めています。ADFからU-SQLスクリプトを実行できません:ScriptPathをnullにしないでください。
最初の問題は、U-SQLスクリプトをADLAにデプロイする方法です。参考になるものは見つけられず、ADLAとAzure Blob Storageの2つの形式(.usqlと.txt)でスクリプトをコピー&ペーストしてしまいました。 (これも問題の1つになる可能性があります)。
MS documentationに従ってARMを作成しましたが、エラーが発生して失敗しています:
ScriptPath should not be null
この値はリンクサービスおよびアクティビティでも既に指定されているため、奇妙です。
以下は、我々が作成したLSと活動している:
LinkedService:
{
"type": "linkedservices",
"name": "LinkedServiceofAzureBlobStorageforscriptPath",
"dependsOn": ["[parameters('dataFactoryName')]"],
"apiVersion": "[variables('apiVersion')]",
"properties": {
"type": "AzureStorage",
"typeProperties": {
"connectionString": {
"type": "SecureString",
"value": "DefaultEndpointsProtocol=https;AccountName=<account>;AccountKey=<key>;EndpointSuffix=core.windows.net"
}
"scriptPath": "container\\script.txt"
//"scriptPath": "https://storage.blob.core.windows.net/container/script.txt"//"wasb://[email protected]/script.txt",
}
}
}
活動:
{
"type": "DataLakeAnalyticsU-SQL",
"typeProperties": {
//"script": "master.dbo.sp_test()",
"scriptPath": "container\\script.txt"//"scriptPath": "https://storage.blob.core.windows.net/container/script.txt"//"wasb://[email protected]/script.txt",
"scriptLinkedService": {
"referenceName": "LinkedServiceofAzureBlobStorageforscriptPath",
"type": "LinkedServiceReference"
},
"degreeOfParallelism": 3,
"priority": 100
},
"name": "CopyFromAzureBlobToAzureSQL",
"description": "Copy data frm Azure blob to Azure SQL",
"linkedServiceName": {
"referenceName": "AzureDataLakeAnalyticsLinkedService",
"type": "LinkedServiceReference"
}
}
はまた
this approachまだありません成功を収めてみました。
これは、我々がテストしているダミーのスクリプトです:
@a =
SELECT *
FROM(
VALUES
(
"Contoso",
1500.0
),
(
"Woodgrove",
2700.0
),
(
"Contoso",
1500.0
),
(
"Woodgrove",
2700.0
),
(
"Contoso",
1500.0
),
(
"Woodgrove",
2700.0
),
(
"Contoso",
1500.0
),
(
"Woodgrove",
2700.0
),
(
"Contoso",
1500.0
),
(
"Woodgrove",
2700.0
),
(
"Contoso",
1500.0
),
(
"Woodgrove",
2700.0
)
) AS
D(customer, amount);
OUTPUT @a
TO "/data"+DateTime.Now.ToString("yyyyMMddHHmmss")+".csv"
USING Outputters.Csv();
いますが、スクリプト内の背後にあるいくつかのコードでいくつかのより複雑な例を指すことができれば、それは素晴らしいことです。
ありがとうございました!
アップデート2018年1月26日
usqlの展開についてMSと協議した後、我々は、PowerShellのコマンドの組み合わせで来た:
- 我々はあるの.dllをアップロードするスクリプトを実行しますDatalake上のフォルダにあるu-sqlアセンブリのbinにあります。
- ディレクトリをループし、それぞれのアセンブリを個別に作成します。
- 私たちはDatalake Analyticsでストアドプロシージャとしてそれらを作成し、それらのプロシージャを必要なパラメータで実行するシンプルなu-sqlスクリプトをアップロードしました。
"container \\ script.txt" - > "container/script.usql"のスクリプトパスを変更しました。また、Blob LSの定義に問題がありました(もっと明確な答えで投稿します)。依存する.dll(質問のパート1)を使用してu-sqlスクリプトをデプロイする方法と、scriptPathが必要なので、u-sqlプロシージャを実行する方法についてのチュートリアルを教えてください。私が見つけたすべてのサンプルはそれを持っていません。 –