Otimização de SQL
É possível enviar por push muitas operações de preparação e mineração de dados diretamente em seu banco de dados para melhorar o desempenho.
Uma das capacidades mais poderosas do SPSS Modeler é a capacidade de realizar muitas operações de preparação de dados e mineração diretamente no banco de dados. Ao gerar o código SQL que pode ser enviado de volta ao banco de dados para execução, muitas operações, como amostragem, classificação, derivação de novos campos e certos tipos de gráficos, podem ser realizadas no banco de dados em vez de no computador cliente ou computador servidor. Quando você está trabalhando com grandes conjuntos de dados, esses pushbacks podem melhorar drasticamente o desempenho de várias maneiras:
- Ao reduzir o tamanho do conjunto de resultados a ser transferido do DBMS para o Cloud Pak for Data. Quando grandes conjuntos de resultados são lidos por meio de um driver ODBC, poderão ocorrer ineficiências de E/S de rede ou do driver. Por esse motivo, as operações que mais se beneficiam da otimização de SQL são seleção e agregação de linha e de coluna (nós Seleção, Amostra e Agregado), que geralmente reduzem o tamanho do conjunto de dados a ser transferido. Os dados também podem ser armazenados em cache em uma tabela temporária no banco de dados em pontos críticos do fluxo (após um nó de mesclagem ou nó de seleção, por exemplo) para melhorar ainda mais o desempenho.
- Ao fazer uso do desempenho e da escalabilidade do banco de dados. A eficiência é maior porque um DBMS geralmente pode aproveitar o processamento paralelo, hardware mais poderoso, gerenciamento de armazenamento em disco mais sofisticado e a presença de índices.
Dadas estas vantagens, Cloud Pak for Data foi desenvolvido para maximizar a quantidade de SQL gerada por cada fluxo SPSS Modeler para que apenas aquelas operações que não podem ser compiladas para SQL sejam executadas pelo Cloud Pak for Data. Devido às limitações no que pode ser expresso em SQL padrão (SQL-92), no entanto, determinadas operações podem não ser suportadas.
Para obter detalhes sobre bancos de dados suportados atualmente, consulte Fontes de dados suportadas para SPSS Modeler.
- Ao executar um fluxo, os nós que retornam ao seu banco de dados são destacados com um pequeno ícone SQL ao lado do nó. Ao começar a fazer edições em um fluxo após executá-lo, os ícones serão removidos até a próxima vez que você executar o fluxo.
Figura 1. Indicador de pushback SQL 
- Se você quiser ver quais nós pressionarão de volta antes de executar um fluxo, clique em SQL preview. Isso permite que você modifique o fluxo antes de executá-lo para melhorar o desempenho, movendo as operações de não pushback o mais a jusante possível, por exemplo.
- Se um nó não puder ser retrocedido, todos os nós subsequentes no fluxo também não serão retrocedidos (o retrocesso para nesse nó). Isso pode afetar como você deseja organizar a ordem dos nós em seu fluxo.
- Por causa de pequenas diferenças na implementação SQL, fluxos que executados em um banco de dados podem retornar resultados ligeiramente diferentes quando executados em Cloud Pak for Data. Essas diferenças podem também variar dependendo do fornecedor de base de dados, por motivos semelhantes. Por exemplo, dependendo da configuração do banco de dados para sensibilidade de caso na comparação de string e collation string, os fluxos SPSS Modeler que correm usando pushback SQL podem produzir resultados diferentes daqueles que são executados sem pushback SQL. Entre em contato com o administrador do banco de dados para obter recomendações sobre como configurar seu banco de dados. Para maximizar a compatibilidade com o Cloud Pak for Data, as comparações de string de banco de dados devem ser maiúsculas e minúsculas.
- Ao usar o Cloud Pak for Data para gerar SQL, é possível que o resultado usando o pushback SQL não seja consistente em algumas plataformas (Linux, por exemplo). Isso ocorre porque o ponto flutuante é tratado de maneira diferente em diferentes plataformas.