ADFv2에서 U-SQL 스크립트를 실행하려고하지만 실행을 방해하는 오류가 있습니다. 이 문제에 관한 MS 문서가 도움이되지 않는다는 것을 고려할 때, 나는이 문제를 수정하는 데 도움을 청합니다.ADF에서 U-SQL 스크립트를 실행할 수 없습니다. ScriptPath는 null이 아니어야합니다.
초기 문제는 U-SQL 스크립트를 ADLA에 배포하는 방법입니다. 도움이되는 것을 찾지 못했고 ADLA와 Azure Blob Storage에 .usql과 .txt 형식의 스크립트를 복사하여 붙여 넣기 만했습니다. (이것은 또한 문제 중 하나 일 수 있습니다).
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();
하지만 당신은 스크립트의 뒤에 몇 가지 코드를 좀 더 복잡한 예제를 가리 수 있다면 그것은 좋은 것 :
이것은 우리가 테스트 더미 스크립트입니다.
감사합니다. 있는 .DLL을 업로드하는
- 우리가 스크립트를 실행합니다
는 업데이트 2018년 1월 26일는
MS는 usql의 배포에 관한과 협의 후, 우리는 파워 쉘 명령어의 조합과 함께 Datalake의 폴더에있는 u-SQL 어셈블리의 bin에 위치합니다.
- 그런 다음 디렉토리를 반복하여 각각의 어셈블리를 개별적으로 만듭니다.
- 우리는 Datalake Analytics의 저장 프로 시저로 u-sql 스크립트를 만들고 필요한 매개 변수로 해당 프로 시저를 실행하는 간단한 u-sql 스크립트를 업로드합니다.
"container \\ script.txt"-> "container/script.usql"에서 스크립트 경로를 변경 했으므로 이제 작동 중입니다. 또한 Blob LS의 정의에 문제가있었습니다 (더 명확한 답변으로 게시 할 예정). 종속 경로 (.dll)로 u-sql 스크립트를 배포하는 방법과 scriptPath가 필요하므로 u-sql 프로 시저를 실행하는 방법에 대한 자습서를 가르쳐 주시겠습니까? 내가 찾은 모든 샘플에는 그 샘플이 없습니다. –