Aplicar transformação de SQL

Este artigo descreve o componente do Azure Machine Learning Designer.

Usando o componente Aplicar Transformação SQL, você pode:

  • Criar tabelas para resultados e salvar os conjuntos de dados em um banco de dados portátil.

  • Realizar transformações personalizadas em tipos de dados ou criar agregações.

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

Importante

O mecanismo SQL usado neste componente é o SQLite. Para obter mais informações sobre a sintaxe do SQLite, veja SQL como compreendido pelo SQLite. Esse componente enviará os dados para o SQLite, que está no banco de dados de memória, portanto, a execução do componente requer muito mais memória e pode gerar um erro Out of memory. Verifique se o computador tem RAM suficiente.

Como configurar Aplicar Transformação de SQL

O componente pode ter até três conjuntos de dados como entradas. Quando você referencia os conjuntos de dados conectados a cada porta de entrada, é preciso usar os nomes t1, t2 e t3. O número da tabela indica o índice da porta de entrada.

Veja a seguir o código de exemplo para mostrar como unir duas tabelas. t1 e t2 são dois conjuntos de dados conectados às portas de entrada esquerda e intermediária de Aplicar Transformação 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 usa a sintaxe do SQLite. Ao digitar várias linhas na caixa de texto Script SQL, use um ponto e vírgula para encerrar cada instrução. Caso contrário, as quebras de linha serão convertidas em espaços.

Este componente oferece suporte a todas as instruções padrão da sintaxe do SQLite. Para obter uma lista de instruções sem suporte, veja a seção Observações técnicas.

Observações técnicas

Essa seção contém detalhes de implementação, dicas e respostas para perguntas frequentes.

  • Uma entrada é sempre necessária na porta 1.

  • Para identificadores de coluna que contêm um espaço ou outros caracteres especiais, sempre coloque o identificador de coluna entre colchetes ou aspas duplas ao se referir à coluna nas cláusulas SELECT ou WHERE.

  • Caso tenha usado Editar Metadados para especificar os metadados da coluna (categóricos ou campos) antes de Aplicar Transformação SQL, as saídas do Aplicar Transformação SQL não conterão esses atributos. É necessário usar Editar Metadados para editar a coluna depois de Aplicar Transformação SQL.

Instruções sem suporte

Embora SQLite suporte a maior parte do padrão ANSI SQL, ele não inclui muitos recursos com suporte nos sistemas de banco de dados relacional comercial. Para obter mais informações, veja SQL como compreendido pelo SQLite. Além disso, lembre-se das seguintes restrições ao criar instruções SQL:

  • O SQLite usa digitação dinâmica para valores, em vez de atribuir um tipo a uma coluna como na maioria dos sistemas de banco de dados relacional. Ele é digitado sem rigidez e permite a conversão implícita de tipos.

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

  • Você pode usar as instruções RENAME TABLE e ADD COLUMN com o comando ALTER TABLE, mas outras cláusulas não são suportadas, incluindo DROP COLUMN, ALTER COLUMN e ADD CONSTRAINT.

  • Você pode criar uma VIEW dentro do SQLite, mas depois disso as exibições serão somente leitura. Você não pode executar uma instrução DELETE, INSERT ou UPDATE em uma exibição. No entanto, você pode criar um disparador que é acionado em uma tentativa de DELETE, INSERT ou UPDATE em uma exibição e executar outras operações no corpo do gatilho.

Além da lista de funções sem suporte fornecida pelo site oficial do SQLite, o wiki a seguir fornece uma lista de outros recursos sem suporte: SQLite – SQL sem suporte

Próximas etapas

Confira o conjunto de componentes disponíveis no Azure Machine Learning.