중요합니다
Azure Data Lake Analytics는 2024년 2월 29일에 사용 중지되었습니다. 에 대해 더 알고 싶다면 이 공지을 확인하세요.
데이터 분석을 위해 조직은 Azure Synapse Analytics 또는 Microsoft Fabric을 사용할 수 있습니다.
컴파일러, 최적화 프로그램 및 작업 관리자를 포함한 Azure Data Lake U-SQL 런타임은 U-SQL 코드를 처리합니다.
U-SQL 런타임 버전 선택
Visual Studio, ADL SDK 또는 Azure Data Lake Analytics 포털에서 U-SQL 작업을 제출하면 작업이 현재 사용 가능한 기본 런타임을 사용합니다. 새 버전의 U-SQL 런타임은 정기적으로 릴리스되며 부 업데이트와 보안 수정 사항을 모두 포함합니다.
사용자 지정 런타임 버전을 선택할 수도 있습니다. 새 업데이트를 사용해 보려고 하거나, 이전 버전의 런타임을 유지해야 하거나, 정기적인 새 업데이트를 기다릴 수 없는 보고된 문제에 대한 핫픽스가 제공되었기 때문입니다.
주의
기본값과 다른 런타임을 선택하면 U-SQL 작업이 중단될 가능성이 있습니다. 테스트에만 이러한 다른 버전을 사용합니다.
드문 경우에서 Microsoft 지원은 계정의 기본값으로 다른 버전의 런타임을 고정할 수 있습니다. 가능한 한 빨리 이 핀을 되돌려 주세요. 해당 버전에 고정된 상태로 유지되면 나중에 만료됩니다.
작업 U-SQL 런타임 버전 모니터링
Visual Studio의 작업 브라우저 또는 Azure Portal의 작업 기록을 통해 이전 작업이 계정의 작업 기록에 사용한 런타임 버전의 기록을 볼 수 있습니다.
- Azure Portal에서 Data Lake Analytics 계정으로 이동합니다.
- 모든 작업 보기를 선택합니다. 계정의 모든 활성 및 최근에 완료된 작업의 목록이 나타납니다.
- 필요에 따라 필터 를 선택하여 시간 범위, 작업 이름 및 작성자 값별로 작업을 찾을 수 있습니다.
- 완료된 작업에 사용된 런타임을 볼 수 있습니다.
사용 가능한 런타임 버전은 시간이 지남에 따라 변경됩니다. 기본 런타임은 항상 "기본값"이라고 하며, 이전 런타임을 일정 시간 동안 사용할 수 있도록 유지하고 다양한 이유로 특수 런타임을 사용할 수 있도록 합니다. 명시적으로 명명된 런타임은 일반적으로 다음 형식을 따릅니다(기울임꼴은 변수 파트에 사용되며 []는 선택적 부분을 나타냅니다.)
release_YYYYMMDD_adl_buildno[_modifier]
예를 들어 release_20190318_adl_3394512_2 2019년 3월 18일 런타임 릴리스의 두 번째 빌드 3394512 의미하며 release_20190318_adl_3394512_private 동일한 릴리스의 프라이빗 빌드를 의미합니다. 참고: 날짜는 해당 릴리스에 대한 마지막 체크 인이 수행된 날짜와 관련이 있으며 반드시 공식 릴리스 날짜가 아닙니다.
U-SQL 런타임 버전 문제 해결
다음과 같은 두 가지 가능한 런타임 버전 문제가 발생할 수 있습니다.
스크립트 또는 일부 사용자 코드가 한 릴리스에서 다음 릴리스로 동작을 변경합니다. 이러한 호환성이 손상되는 변경 내용은 일반적으로 릴리스 정보 게시와 함께 미리 전달됩니다. 이러한 호환성이 손상되는 변경이 발생하는 경우 Microsoft 지원에 문의하여 이 호환성이 손상되는 동작(아직 문서화되지 않은 경우)을 보고하고 이전 런타임 버전에 대해 작업을 제출합니다.
계정에 고정된 경우 명시적으로 또는 암시적으로 비디폴트 런타임을 사용했으며, 일정 시간 후에 해당 런타임이 제거되었습니다. 누락된 런타임이 발생하는 경우 스크립트를 업그레이드하여 현재 기본 런타임으로 실행합니다. 더 많은 시간이 필요한 경우 Microsoft 지원에 문의하세요.
알려진 문제
USQL 스크립트에서 Newtonsoft.Json 파일 버전 12.0.3 이상 참조하면 다음과 같은 컴파일 오류가 발생합니다.
"죄송합니다. Data Lake Analytics 계정에서 실행되는 작업은 더 느리게 실행되거나 완료되지 않을 수 있습니다. 예기치 않은 문제로 인해 Azure Data Lake Analytics 계정으로 이 기능을 자동으로 복원할 수 없습니다. Azure Data Lake 엔지니어에게 문의하여 조사했습니다."
호출 스택에 포함되는 위치는 다음과 같습니다.
System.IndexOutOfRangeException: Index was outside the bounds of the array.
at Roslyn.Compilers.MetadataReader.PEFile.CustomAttributeTableReader.get_Item(UInt32 rowId)
...
해결 방법: Newtonsoft.Json 파일 v12.0.2 이하를 사용합니다.
고객은 저장소에 임시 파일 및 폴더를 볼 수 있습니다. 이러한 작업은 일반 작업 실행의 일부로 생성되지만 일반적으로 고객이 보기 전에 삭제됩니다. 드물고 무작위인 특정 상황에서는 계속 표시될 수 있습니다. 결국 삭제되며 사용자 스토리지의 일부로 계산되지 않거나 어떤 형태의 요금도 생성되지 않습니다. 고객의 작업 논리에 따라 문제가 발생할 수 있습니다. 예를 들어 작업이 폴더의 모든 파일을 열거한 다음 파일 목록을 비교하는 경우 예기치 않은 임시 파일이 있기 때문에 실패할 수 있습니다. 마찬가지로 다운스트림 작업이 추가 처리를 위해 지정된 폴더의 모든 파일을 열거하는 경우 임시 파일을 열거할 수도 있습니다.
해결 방법: 임시 파일이 현재 출력 폴더가 아닌 계정 수준 임시 폴더에 저장되는 런타임에서 수정 사항이 식별됩니다. 임시 파일은 이 새 임시 폴더에 기록되며 작업 실행이 끝날 때 삭제됩니다.
이 수정 사항은 고객 데이터를 처리하므로 릴리스되기 전에 MSFT 내에서 이 수정 사항의 유효성을 잘 검사해야 합니다. 이 수정 사항은 2021년 중반에 베타 런타임으로, 2021년 하반기에는 기본 런타임으로 사용할 수 있을 것으로 예상됩니다.