Testar o código de Data Lake Analytics do Azure

O Azure Data Lake fornece a linguagem U-SQL . O U-SQL combina SQL declarativo com C# imperativo para processar dados em qualquer escala. Neste documento, vai aprender a criar casos de teste para o código U-SQL e de operador definido pelo utilizador (UDO) de C# expandido.

Importante

O Azure Data Lake Analytics descontinuado a 29 de fevereiro de 2024. Saiba mais com este anúncio.

Para análise de dados, a sua organização pode utilizar o Azure Synapse Analytics ou o Microsoft Fabric.

Testar scripts U-SQL

O script U-SQL é compilado e otimizado para que o código executável seja executado no Azure ou no computador local. O processo de compilação e otimização trata todo o script U-SQL como um todo. Não pode fazer um teste de unidade tradicional para cada instrução. No entanto, ao utilizar o SDK de teste U-SQL e o SDK de execução local, pode fazer testes ao nível do script.

Criar casos de teste para script U-SQL

O Azure Data Lake Tools para Visual Studio permite-lhe criar casos de teste de scripts U-SQL.

  1. Clique com o botão direito do rato num script U-SQL no Explorador de Soluções e, em seguida, selecione Criar Teste de Unidade.

  2. Crie um novo projeto de teste ou insira o caso de teste num projeto de teste existente.

    Ferramentas do Data Lake para Visual Studio – criar uma configuração de projeto de teste U-SQL

Gerir a origem de dados de teste

Quando testa scripts U-SQL, precisa de testar ficheiros de entrada. Para gerir os dados de teste, em Explorador de Soluções, clique com o botão direito do rato no projeto U-SQL e selecione Propriedades. Pode introduzir uma origem na Origem de Dados de Teste.

Ferramentas do Data Lake para Visual Studio – configurar a origem de dados de teste do projeto

Quando chama a Initialize() interface no SDK de teste U-SQL, é criada uma pasta de raiz de dados local temporária no diretório de trabalho do projeto de teste. Todos os ficheiros e pastas na pasta de origem de dados de teste são copiados para a pasta de raiz de dados local temporária antes de executar os casos de teste do script U-SQL. Pode adicionar mais pastas de origem de dados de teste ao dividir o caminho da pasta de dados de teste com um ponto e vírgula.

Gerir o ambiente da base de dados para testes

Se os scripts U-SQL utilizarem ou consultarem objetos de base de dados U-SQL, terá de inicializar o ambiente da base de dados antes de executar casos de teste U-SQL. Esta abordagem pode ser necessária ao chamar os procedimentos armazenados. A Initialize() interface no SDK de teste U-SQL ajuda-o a implementar todas as bases de dados referenciadas pelo projeto U-SQL na pasta de raiz de dados local temporária no diretório de trabalho do projeto de teste.

Para obter mais informações sobre como gerir referências de projetos de base de dados U-SQL para um projeto U-SQL, veja Referenciar um projeto de base de dados U-SQL.

Verificar os resultados do teste

A Run() interface devolve um resultado de execução da tarefa. 0 significa sucesso e 1 significa falha. Também pode utilizar funções de afirmação C# para verificar as saídas.

Executar casos de teste no Visual Studio

Um projeto de teste de script U-SQL é criado com base numa arquitetura de teste de unidade C#. Depois de criar o projeto, selecione Testar>Explorador de Testes doWindows>. Pode executar casos de teste a partir do Explorador de Testes. Em alternativa, clique com o botão direito do rato no ficheiro .cs no teste de unidade e selecione Executar Testes.

Testar UDOs C#

Criar casos de teste para UDOs C#

Pode utilizar uma arquitetura de teste de unidadeS C# para testar os operadores definidos pelo utilizador (UDOs) em C#. Ao testar UDOs, tem de preparar os objetos IRowset correspondentes como entradas.

Existem duas formas de criar um objeto IRowset :

  • Carregar dados a partir de um ficheiro para criar o 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');
    
  • Utilize dados de uma coleção de dados para criar o 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());
    

Verificar os resultados do teste

Depois de chamar as funções UDO, pode verificar os resultados através do esquema e verificação do valor Do conjunto de linhas com as funções de afirmação C#. Pode adicionar um Projeto de Teste de Unidade U-SQL C# UDO à sua solução. Para tal, selecione Ficheiro > Novo > Projeto no Visual Studio.

Executar casos de teste no Visual Studio

Depois de criar o projeto, selecione Testar>Explorador de Testes doWindows>. Pode executar casos de teste a partir do Explorador de Testes. Em alternativa, clique com o botão direito do rato no ficheiro .cs no teste de unidade e selecione Executar Testes.

Executar casos de teste nos Pipelines do Azure

Tanto os projetos de teste de script U-SQL como os projetos de teste C# UDO herdam projetos de teste de unidades C#. A tarefa de teste do Visual Studio nos Pipelines do Azure pode executar estes casos de teste.

Executar casos de teste U-SQL nos Pipelines do Azure

Para um teste U-SQL, certifique-se de que carrega CPPSDK no computador de compilação e, em seguida, passe o CPPSDK caminho para USqlScriptTestRunner(cppSdkFolderFullPath: @"").

O que é o CPPSDK?

O CPPSDK é um pacote que inclui o Microsoft Visual C++ 14 e Windows SDK 10.0.10240.0. Este pacote inclui o ambiente necessário para o runtime U-SQL. Pode obter este pacote na pasta de instalação do Azure Data Lake Tools for Visual Studio:

  • Para o Visual Studio 2015, está em 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
  • Para o Visual Studio 2017, está em C:\Program Files (x86)\Microsoft Visual Studio\2017\<Visual Studio Edition>\SDK\ScopeCppSDK
  • Para o Visual Studio 2019, está em C:\Program Files (x86)\Microsoft Visual Studio\2019\<Visual Studio Edition>\SDK\ScopeCppSDK

Preparar o CPPSDK no agente de compilação dos Pipelines do Azure

A forma mais comum de preparar a dependência do CPPSDK nos Pipelines do Azure é a seguinte:

  1. Zipe a pasta que inclui as bibliotecas do CPPSDK.

  2. Verifique o ficheiro .zip no sistema de controlo de origem. O ficheiro .zip garante que verifica todas as bibliotecas na pasta CPPSDK para que os ficheiros não sejam ignorados devido a um .gitignore ficheiro.

  3. Deszipe o ficheiro .zip no pipeline de compilação.

  4. Aponte USqlScriptTestRunner para esta pasta deszipada no computador de compilação.

Executar casos de teste de UDO C# nos Pipelines do Azure

Para um teste UDO C#, certifique-se de que referencia as seguintes assemblagens, que são necessárias para UDOs.

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

Se os referenciar através do pacote NuGet Microsoft.Azure.DataLake.USQL.Interfaces, certifique-se de que adiciona uma tarefa de Restauro NuGet no pipeline de compilação.

Passos seguintes