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.
Çözüm Gezgini'da bir U-SQL betiğine sağ tıklayın ve ardından Birim Testi Oluştur'u seçin.
Yeni bir test projesi oluşturun veya mevcut bir test projesine test çalışması ekleyin.
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.
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:
CPPSDK kitaplıklarını içeren klasörü sıkıştırın.
.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.Derleme işlem hattında .zip dosyasının sıkıştırmasını açın.
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.