Aracılığıyla paylaş


Azure Data Lake Analytics kodunuzu test etme

Azure Data Lake , U-SQL dilini sağlar. U-SQL, verileri herhangi bir ölçekte işlemek için bildirim temelli SQL'i kesinlik temelli C# ile birleştirir. Bu belgede U-SQL ve genişletilmiş C# kullanıcı tanımlı işleç (UDO) kodu için test çalışmaları oluşturmayı öğreneceksiniz.

Önemli

Azure Data Lake Analytics 29 Şubat 2024'te kullanımdan kaldırıldı. Bu duyuru ile daha fazla bilgi edinin.

Veri analizi için kuruluşunuz Azure Synapse Analytics veya Microsoft Fabric kullanabilir.

U-SQL betiklerini test etme

U-SQL betiği derlenmiş ve yürütülebilir kodun Azure'da veya yerel bilgisayarınızda çalışması için iyileştirilmiştir. Derleme ve iyileştirme işlemi, U-SQL betiğinin tamamını bir bütün olarak ele alır. Her deyim için geleneksel birim testi yapamazsınız. Ancak U-SQL test SDK'sını ve yerel çalıştırma SDK'sını kullanarak betik düzeyinde testler yapabilirsiniz.

U-SQL betiği için test çalışmaları oluşturma

Visual Studio için Azure Data Lake Araçları, U-SQL betik testi çalışmaları oluşturmanıza olanak tanır.

  1. Çözüm Gezgini'da bir U-SQL betiğine sağ tıklayın ve ardından Birim Testi Oluştur'u seçin.

  2. Yeni bir test projesi oluşturun veya mevcut bir test projesine test çalışması ekleyin.

    Visual Studio için Data Lake Araçları -- U-SQL test projesi yapılandırması oluşturma

Test veri kaynağını yönetme

U-SQL betiklerini test ederken giriş dosyalarını test etmeniz gerekir. Test verilerini yönetmek için Çözüm Gezgini'de U-SQL projesine sağ tıklayın ve Özellikler'i seçin. Test Veri Kaynağı'nda bir kaynak girebilirsiniz.

Visual Studio için Data Lake Araçları -- proje testi veri kaynağını yapılandırma

U-SQL test SDK'sında arabirimi çağırdığınızda Initialize() , test projesinin çalışma dizini altında geçici bir yerel veri kök klasörü oluşturulur. Test veri kaynağı klasöründeki tüm dosya ve klasörler, U-SQL betik testi çalışmalarını çalıştırmadan önce geçici yerel veri kök klasörüne kopyalanır. Test verisi klasör yolunu noktalı virgülle bölerek daha fazla test veri kaynağı klasörü ekleyebilirsiniz.

Test için veritabanı ortamını yönetme

U-SQL betikleriniz U-SQL veritabanı nesnelerini kullanıyor veya sorgularsa, U-SQL test çalışmalarını çalıştırmadan önce veritabanı ortamını başlatmanız gerekir. Saklı yordamlar çağrılırken bu yaklaşım gerekli olabilir. Initialize() U-SQL test SDK'sı arabirimi, U-SQL projesi tarafından başvuruda bulunılan tüm veritabanlarını test projesinin çalışma dizinindeki geçici yerel veri kök klasörüne dağıtmanıza yardımcı olur.

U-SQL projesi için U-SQL veritabanı proje başvurularını yönetme hakkında daha fazla bilgi için bkz. U-SQL veritabanı projesine başvurma.

Test sonuçlarını doğrulama

Arabirim Run() bir iş yürütme sonucu döndürür. 0 başarı, 1 ise başarısızlık anlamına gelir. Çıkışları doğrulamak için C# onay işlevlerini de kullanabilirsiniz.

Visual Studio'da test çalışmalarını çalıştırma

U-SQL betik testi projesi, C# birim testi çerçevesinin üzerine kurulmuştur. Projeyi derledikten sonraWindows>Test Gezgini'ni testet'i> seçin. Test Çalışmalarını Test Gezgini'nden çalıştırabilirsiniz. Alternatif olarak, birim testinizde .cs dosyasına sağ tıklayın ve Testleri Çalıştır'ı seçin.

C# UDO'larını test etme

C# UDF'leri için test çalışmaları oluşturma

C# kullanıcı tanımlı işleçlerinizi (UDO) test etmek için bir C# birim testi çerçevesi kullanabilirsiniz. UDF'leri test ederken, ilgili IRowset nesnelerini giriş olarak hazırlamanız gerekir.

IRowset nesnesi oluşturmanın iki yolu vardır:

  • IRowset oluşturmak için bir dosyadan veri yükleyin:

    //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 oluşturmak için veri koleksiyonundaki verileri kullanın:

    //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());
    

Test sonuçlarını doğrulama

UDO işlevlerini çağırdıktan sonra, C# assert işlevlerini kullanarak şema ve Satır kümesi değer doğrulaması aracılığıyla sonuçları doğrulayabilirsiniz. Çözümünüze U-SQL C# UDO Birim Testi Projesi ekleyebilirsiniz. Bunu yapmak için Visual Studio'da Dosya > Yeni > Proje'yi seçin.

Visual Studio'da test çalışmalarını çalıştırma

Projeyi derledikten sonraWindows>Test Gezgini'ni testet'i> seçin. Test Çalışmalarını Test Gezgini'nden çalıştırabilirsiniz. Alternatif olarak, birim testinizde .cs dosyasına sağ tıklayın ve Testleri Çalıştır'ı seçin.

Azure Pipelines'da test çalışmalarını çalıştırma

Hem U-SQL betik testi projeleri hem de C# UDO test projeleri C# birim testi projelerini devralır. Azure Pipelines'daki Visual Studio test görevi bu test çalışmalarını çalıştırabilir.

Azure Pipelines'da U-SQL test çalışmalarını çalıştırma

U-SQL testi için, derleme bilgisayarınıza yüklediğinizden CPPSDK emin olun ve yolunu adresine USqlScriptTestRunner(cppSdkFolderFullPath: @"")geçirinCPPSDK.

CPPSDK nedir?

CPPSDK, Microsoft Visual C++ 14 ve Windows SDK 10.0.10240.0 içeren bir pakettir. Bu paket, U-SQL çalışma zamanı için gereken ortamı içerir. Bu paketi Visual Studio için Azure Data Lake Araçları yükleme klasöründen alabilirsiniz:

  • Visual Studio 2015 için 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 için C:\Program Files (x86)\Microsoft Visual Studio\2017\<Visual Studio Edition>\SDK\ScopeCppSDK
  • Visual Studio 2019 için C:\Program Files (x86)\Microsoft Visual Studio\2019\<Visual Studio Edition>\SDK\ScopeCppSDK

Azure Pipelines derleme aracısında CPPSDK'yi hazırlama

Azure Pipelines'da CPPSDK bağımlılığını hazırlamanın en yaygın yolu aşağıdaki gibidir:

  1. CPPSDK kitaplıklarını içeren klasörü sıkıştırın.

  2. .zip dosyasını kaynak denetim sisteminize iade edin. .zip dosyası, CPPSDK klasörünün altındaki tüm kitaplıkları iade etmenizi sağlar, böylece dosyalar bir .gitignore dosya nedeniyle yoksayılamaz.

  3. Derleme işlem hattında .zip dosyasının sıkıştırmasını açın.

  4. Derleme bilgisayarında sıkıştırması açılmış bu klasörün üzerine gelin USqlScriptTestRunner .

Azure Pipelines'da C# UDO test çalışmalarını çalıştırma

C# UDO testi için, UDO'lar için gereken aşağıdaki derlemelere başvurduğunuzdan emin olun.

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

Bunlara Microsoft.Azure.DataLake.USQL.Interfaces NuGet paketi aracılığıyla başvurursanız, derleme işlem hattınıza bir NuGet Geri Yükleme görevi eklediğinizden emin olun.

Sonraki adımlar