다음을 통해 공유


Azure Data Lake Analytics 코드 테스트

Azure Data Lake는 U-SQL 언어를 제공합니다. U-SQL은 선언적 SQL과 명령적 C#을 결합하여 모든 규모의 데이터를 처리합니다. 이 문서에서는 U-SQL 및 확장된 C# UDO(사용자 정의 연산자) 코드에 대한 테스트 사례를 만드는 방법을 알아봅니다.

중요합니다

Azure Data Lake Analytics는 2024년 2월 29일에 사용 중지되었습니다. 에 대해 더 알고 싶다면 이 공지을 확인하세요.

데이터 분석의 경우 조직에서 Azure Synapse Analytics 사용하거나 Microsoft Fabric 수 있습니다.

U-SQL 스크립트 테스트

U-SQL 스크립트는 Azure 또는 로컬 컴퓨터에서 실행 코드가 실행되도록 컴파일되고 최적화됩니다. 컴파일 및 최적화 프로세스는 전체 U-SQL 스크립트를 처리합니다. 모든 문에 대해 기존의 단위 테스트를 수행할 수는 없습니다. 그러나 U-SQL 테스트 SDK 및 로컬 실행 SDK를 사용하여 스크립트 수준 테스트를 수행할 수 있습니다.

U-SQL 스크립트에 대한 테스트 사례 만들기

Azure Data Lake Tools for Visual Studio를 사용하면 U-SQL 스크립트 테스트 사례를 만들 수 있습니다.

  1. 솔루션 탐색기에서 U-SQL 스크립트를 마우스 오른쪽 단추로 클릭한 다음, 단위 테스트 만들기 선택합니다.

  2. 새 테스트 프로젝트를 만들거나 기존 테스트 프로젝트에 테스트 사례를 삽입합니다.

    Data Lake Tools for Visual Studio -- U-SQL 테스트 프로젝트 구성 만들기

테스트 데이터 원본 관리

U-SQL 스크립트를 테스트할 때는 테스트 입력 파일이 필요합니다. 테스트 데이터를 관리하려면 솔루션 탐색기U-SQL 프로젝트를 마우스 오른쪽 단추로 클릭하고 속성선택합니다. 테스트 데이터 원본을 입력할 수 있습니다.

Data Lake Tools for Visual Studio - 프로젝트 테스트 데이터 원본 구성

U-SQL 테스트 SDK에서 Initialize() 인터페이스를 호출하면 테스트 프로젝트의 작업 디렉터리 아래에 임시 로컬 데이터 루트 폴더가 만들어집니다. U-SQL 스크립트 테스트 사례를 실행하기 전에 테스트 데이터 원본 폴더의 모든 파일과 폴더가 임시 로컬 데이터 루트 폴더에 복사됩니다. 테스트 데이터 폴더 경로를 세미콜론으로 분할하여 테스트 데이터 원본 폴더를 더 추가할 수 있습니다.

테스트를 위한 데이터베이스 환경 관리

U-SQL 스크립트에서 U-SQL 데이터베이스 개체를 사용하거나 쿼리하는 경우 U-SQL 테스트 사례를 실행하기 전에 데이터베이스 환경을 초기화해야 합니다. 이 방법은 저장 프로시저를 호출할 때 필요할 수 있습니다. U-SQL 테스트 SDK의 Initialize() 인터페이스를 사용하면 U-SQL 프로젝트에서 참조하는 모든 데이터베이스를 테스트 프로젝트의 작업 디렉터리에 있는 임시 로컬 데이터 루트 폴더에 배포할 수 있습니다.

U-SQL 프로젝트에 대한 U-SQL 데이터베이스 프로젝트 참조를 관리하는 방법에 대한 자세한 내용은 U-SQL 데이터베이스 프로젝트참조하세요.

테스트 결과 확인

Run() 인터페이스는 작업 실행 결과를 반환합니다. 0 성공을 의미하며 1 실패를 의미합니다. C# 어설션 함수를 사용하여 출력을 확인할 수도 있습니다.

Visual Studio에서 테스트 사례 실행

U-SQL 스크립트 테스트 프로젝트는 C# 단위 테스트 프레임워크를 기반으로 빌드됩니다. 프로젝트를 빌드한 후 테스트>Windows>테스트 탐색기선택합니다. 테스트 탐색기에서 테스트 사례를 실행할 수 있습니다. 또는 단위 테스트에서 .cs 파일을 마우스 오른쪽 단추로 클릭하고 테스트 실행 선택합니다.

C# UDO 테스트

C# UDO에 대한 테스트 사례 만들기

C# 단위 테스트 프레임워크를 사용하여 C# UDO(사용자 정의 연산자)를 테스트할 수 있습니다. UDO를 테스트할 때 해당 IRowset 개체를 입력으로 준비해야 합니다.

IRowset 개체를 만드는 방법에는 두 가지가 있습니다.

  • 파일에서 데이터를 로드하여 IRowset만듭니다.

    //Schema: "a:int, b:int"
    USqlColumn<int> col1 = new USqlColumn<int>("a");
    USqlColumn<int> col2 = new USqlColumn<int>("b");
    List<IColumn> columns = new List<IColumn> { col1, col2 };
    USqlSchema schema = new USqlSchema(columns);
    
    //Generate one row with default values
    IUpdatableRow output = new USqlRow(schema, null).AsUpdatable();
    
    //Get data from file
    IRowset rowset = UnitTestHelper.GetRowsetFromFile(@"processor.txt", schema, output.AsReadOnly(), discardAdditionalColumns: true, rowDelimiter: null, columnSeparator: '\t');
    
  • 데이터 컬렉션의 데이터를 사용하여 IRowset만듭니다.

    //Schema: "a:int, b:int"
    USqlSchema schema = new USqlSchema(
        new USqlColumn<int>("a"),
        new USqlColumn<int>("b")
    );
    
    IUpdatableRow output = new USqlRow(schema, null).AsUpdatable();
    
    //Generate Rowset with specified values
    List<object[]> values = new List<object[]>{
        new object[2] { 2, 3 },
        new object[2] { 10, 20 }
    };
    
    IEnumerable<IRow> rows = UnitTestHelper.CreateRowsFromValues(schema, values);
    IRowset rowset = UnitTestHelper.GetRowsetFromCollection(rows, output.AsReadOnly());
    

테스트 결과 확인

UDO 함수를 호출한 후 C# 어설션 함수를 사용하여 스키마 및 행 집합 값 확인을 통해 결과를 확인할 수 있습니다. U-SQL C# UDO 단위 테스트 프로젝트 솔루션에 추가할 수 있습니다. 이렇게 하려면 Visual Studio에서 파일 > 새 > 프로젝트 선택합니다.

Visual Studio에서 테스트 사례 실행

프로젝트를 빌드한 후 테스트>Windows>테스트 탐색기선택합니다. 테스트 탐색기에서 테스트 사례를 실행할 수 있습니다. 또는 단위 테스트에서 .cs 파일을 마우스 오른쪽 단추로 클릭하고 테스트 실행 선택합니다.

Azure Pipelines 테스트 사례 실행

U-SQL 스크립트 테스트 프로젝트C# UDO 테스트 프로젝트는 모두 C# 단위 테스트 프로젝트를 상속합니다. Azure Pipelines의 Visual Studio 테스트 작업 이러한 테스트 사례를 실행할 수 있습니다.

Azure Pipelines에서 U-SQL 테스트 사례 실행

U-SQL 테스트를 위해, 반드시 빌드 컴퓨터에서 CPPSDK를 로드하고 CPPSDK 경로를 USqlScriptTestRunner(cppSdkFolderFullPath: @"")에 전달하세요.

CPPSDK란?

CPPSDK는 Microsoft Visual C++ 14 및 Windows SDK 10.0.10240.0을 포함하는 패키지입니다. 이 패키지에는 U-SQL 런타임에 필요한 환경이 포함되어 있습니다. Visual Studio용 Azure Data Lake Tools 설치 폴더에서 이 패키지를 가져올 수 있습니다.

  • Visual Studio 2015의 경우 C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Microsoft Azure Data Lake Tools for Visual Studio 2015\X.X.XXXX.X\CppSDK 아래에 있습니다.
  • Visual Studio 2017의 경우 C:\Program Files (x86)\Microsoft Visual Studio\2017\<Visual Studio Edition>\SDK\ScopeCppSDK 아래에 있습니다.
  • Visual Studio 2019의 경우 C:\Program Files (x86)\Microsoft Visual Studio\2019\<Visual Studio Edition>\SDK\ScopeCppSDK 아래에 있습니다.

Azure Pipelines 빌드 에이전트에서 CPPSDK 준비

Azure Pipelines에서 CPPSDK 종속성을 준비하는 가장 일반적인 방법은 다음과 같습니다.

  1. CPPSDK 라이브러리가 포함된 폴더를 압축합니다.

  2. 소스 제어 시스템에 .zip 파일을 체크 인합니다. .zip 파일은 .gitignore 파일로 인해 파일이 무시되지 않도록 CPPSDK 폴더 아래의 모든 라이브러리를 체크 인하도록 합니다.

  3. 빌드 파이프라인에서 .zip 파일의 압축을 푸십시오.

  4. 빌드 컴퓨터에서 압축을 푼 이 폴더를 USqlScriptTestRunner로 지정하십시오.

Azure Pipelines에서 C# UDO 테스트 사례 실행

C# UDO 테스트의 경우 UDO에 필요한 다음 어셈블리를 참조해야 합니다.

  • Microsoft.Analytics.Interfaces
  • Microsoft.Analytics.Types
  • Microsoft.Analytics.UnitTest

NuGet 패키지 Microsoft.Azure.DataLake.USQL.Interfaces 통해 참조하는 경우 빌드 파이프라인에 NuGet 복원 작업을 추가해야 합니다.

다음 단계