Aplicar Transformação SQL

Este artigo descreve um componente do estruturador do Azure Machine Learning.

Com o componente Aplicar Transformação de SQL, pode:

  • Crie tabelas para resultados e guarde os conjuntos de dados numa base de dados portátil.

  • Efetue transformações personalizadas em tipos de dados ou crie agregados.

  • Execute instruções de consulta SQL para filtrar ou alterar dados e devolver os resultados da consulta como uma tabela de dados.

Importante

O motor SQL utilizado neste componente é o SQLite. Para obter mais informações sobre a sintaxe SQLite, veja SQL como Compreendido pelo SQLite. Este componente irá aumentar os dados para o SQLite, que se encontra na BD de memória, pelo que a execução do componente requer muito mais memória e poderá ocorrer um Out of memory erro. Certifique-se de que o computador tem RAM suficiente.

Como configurar a Transformação do SQL

O componente pode ocupar até três conjuntos de dados como entradas. Quando referencia os conjuntos de dados ligados a cada porta de entrada, tem de utilizar os nomes t1, t2e t3. O número da tabela indica o índice da porta de entrada.

Segue-se o código de exemplo para mostrar como associar duas tabelas. t1 e t2 são dois conjuntos de dados ligados às portas de entrada esquerda e média de Aplicar Transformação de SQL:

SELECT t1.*
    , t3.Average_Rating
FROM t1 join
    (SELECT placeID
        , AVG(rating) AS Average_Rating
    FROM t2
    GROUP BY placeID
    ) as t3
on t1.placeID = t3.placeID

O parâmetro restante é uma consulta SQL, que utiliza a sintaxe SQLite. Ao escrever várias linhas na caixa de texto script do SQL , utilize um ponto e vírgula para terminar cada instrução. Caso contrário, as quebras de linha são convertidas em espaços.

Este componente suporta todas as instruções padrão da sintaxe SQLite. Para obter uma lista de instruções não suportadas, consulte a secção Notas Técnicas .

Notas técnicas

Esta secção contém detalhes de implementação, sugestões e respostas a perguntas mais frequentes.

  • É sempre necessária uma entrada na porta 1.

  • Para os identificadores de colunas que contêm um espaço ou outros carateres especiais, coloque sempre o identificador de coluna entre parênteses retos ou aspas duplas ao referir-se à coluna nas SELECT cláusulas or WHERE .

  • Se tiver utilizado Editar Metadados para especificar os metadados de coluna (categóricos ou campos) antes de Aplicar Transformação de SQL, as saídas de Aplicar Transformação de SQL não irão conter estes atributos. Tem de utilizar Editar Metadados para editar a coluna após Aplicar Transformação de SQL.

Instruções não suportadas

Embora o SQLite suporte grande parte da norma SQL ANSI, não inclui muitas funcionalidades suportadas por sistemas de bases de dados relacionais comerciais. Para obter mais informações, veja SQL como Compreendido pelo SQLite. Além disso, tenha em atenção as seguintes restrições ao criar instruções SQL:

  • O SQLite utiliza a escrita dinâmica para valores, em vez de atribuir um tipo a uma coluna como na maioria dos sistemas de bases de dados relacionais. Está fracamente escrito e permite a conversão de tipo implícito.

  • LEFT OUTER JOIN é implementado, mas não RIGHT OUTER JOIN ou FULL OUTER JOIN.

  • Pode utilizar RENAME TABLE e ADD COLUMN instruções com o ALTER TABLE comando, mas outras cláusulas não são suportadas, incluindo DROP COLUMN, ALTER COLUMNe ADD CONSTRAINT.

  • Pode criar uma VISTA no SQLite, mas as vistas posteriores são só de leitura. Não pode executar uma DELETEinstrução , INSERTou UPDATE numa vista. No entanto, pode criar um acionador que é acionado numa tentativa DELETEde , INSERTou UPDATE numa vista e executar outras operações no corpo do acionador.

Além da lista de funções não suportadas fornecidas no site oficial do SQLite, o wiki seguinte fornece uma lista de outras funcionalidades não suportadas: SQLite – SQL Não Suportado

Passos seguintes

Veja o conjunto de componentes disponíveis para o Azure Machine Learning.