# Como usar Machine Learning com Qlik Sense e Big Query

> Descubra o poder da análise de dados com Qlik Sense e Big Query. Explore milhões de registros e crie modelos preditivos!

URL: https://bixtecnologia.com.br/descubra-a-melhor-forma-de-aplicar-machine-learning-com-qlik-sense-e-big-query-ml/
Idioma: pt-BR
Publicado em: 2021-09-27T17:16:16.000Z

## Descubra a melhor forma de aplicar Machine Learning com Qlik Sense e Big Query ML

27 de setembro de 2021

12 min de leitura

O **[Qlik Sense](https://bixtecnologia.com.br/qliksense/)** é uma das melhores ferramentas hoje no mercado para BI, sua engine de processamento consegue lidar com grandes volumes de dados e permite uma análise exploratória super ágil mesmo em milhões de registros, uma maravilha para um cientistas de dados. Como uma ferramenta de BI, seu foco não é geração de complexos modelos de machine learning, porém, nesse post, irei mostrar como **criar, prever e analisar modelos** por dentro da ferramenta, somando forças com o Big Query ML.

Esse é a Parte 1/2 sobre como implementar [machine learning](https://bixtecnologia.com.br/machine-learning/) no Qlik Sense. No próximo post, vamos falar como criar previsões dinâmicas enquanto o usuário usa o aplicativo de BI.

![qlik sense e big query](https://images.bix-tech.com/qlik_sense_e_big_query_a24d1df569.webp)

Você vai ver nesse artigo:

1. Formas de fazer Machine Learning com o Qlik Sense
2. Criando a conexão com o Big Query
3. Criando o modelo preditivo
4. Gerando previsões com o modelo criado
5. Avaliando a qualidade do modelo
6. Como enviar dados do Qlik pro BQ

## 1\. Formas de fazer Machine Learning com o Qlik Sense e Big Query

Atualmente existem 3 formas mais diretas de criar modelos por dentro do Qlik Sense, sendo uma nativa e duas com integrações.

### Forma nativa (Regressão Linear e Clustering KMeans)

No Qlik Sense, você pode utilizar algumas funções para calcular modelos super simples, como uma regressão linear. Por exemplo, você pode utilizar o _LINEST_M_ e _LINEST_B_ para calcular o slope e o y-intercep de uma reta e usando a função _LINEST_R2 para calcular o R²_.

Uma opção recentemente adicionada é o [KMeansND](https://help.qlik.com/pt-BR/sense/May2021/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/RankingFunctions/KMeansND.htm), que permite uma clusterização simples dos dados.

Perceba que essas funções nativas são realmente simples e voltadas apenas para uma análise geral dos dados, não se tem o objetivo de criar modelos avançados para produção. Precisamos de outra solução…

### Usando um Qlik Server-Side Extension (SSE)

É possível criar servidores que interagem com o Qlik Sense e permitem expandir o portfólio de funções disponíveis tanto no script quanto nos gráficos. Basicamente você sobe um server em Python, por exemplo, que recebe os dados do Qlik e retorna eles com algum processamento.

![qlik sense e big query](https://images.bix-tech.com/qlik_sense_e_big_query_2_b2c95cc3cc.webp)

Fonte: https://branch-blog.qlik.com/qlik-extension-and-qlik-server-side-extension-what-are-them-1f5335fa285a

Um SSE famoso em Python é o [qlik-py-tools](https://github.com/nabeel-oz/qlik-py-tools), ele tem diversas funcionalidades que servem para script e gráficos. Com esse SSE é possível implementar modelos supervisionados, não supervisionados, deep learning, regras de associação, entre outras coisas. Sua grande vantagem é utilizar libs famosas em Python, como o [scikit-learn](http://scikit-learn.org/stable/index.html), [Keras](https://keras.io/) e [TensorFlow](https://www.tensorflow.org/).

Qual a desvantagem então? Por que precisamos de outra forma?

O [SSE não funciona no Qlik SaaS](https://help.qlik.com/en-US/sense-developer/May2021/Content/Sense_Helpsites/SSE-open-source.htm), tendo em vista o foco atual da Qlik na cloud, esse é um grande problema. Além disso, não é sempre que queremos mais um serviço para gerenciar, garantir sua performance e correção de bugs.

### Usando Big Query ML

> O BigQuery é um data warehouse totalmente gerenciado e sem servidor que permite análises escalonáveis em petabytes de dados.

Desenvolvido e gerenciado pela Google Cloud Plataform, o BQ hoje é uma das melhores soluções de bancos para Data Warehouse, sendo imensamente utilizado por grandes empresas como fonte analítica para os dados da organização.

E o Big Query ML?

> Usando SQL simples, o [BigQuery ML](https://cloud.google.com/bigquery-ml/docs/) permite que cientistas e analistas de dados criem e operacionalizem modelos de machine learning (ML) em dados estruturados ou semiestruturados em escala global diretamente no BigQuery.

É uma ferramenta de alta performance e escala que permite criar modelos simples ou complexos, de forma manual ou com AutoML. A melhor parte, usando apenas SQL.

Por ser em SQL, abrindo uma conexão com o BQ no Qlik, podemos utilizar todas as suas integrações para criar e analisar modelos preditivos.

Exemplo de um código genérico de criação do modelo:

```
CREATE OR REPLACE MODEL model_name  OPTIONS(model_type=’linear_reg’, input_label_cols=['label_col'])AS SELECT * FROM table
```

## 2\. Criando conexão com o Big Query

Nesse demo, vamos utilizar uma base de cliente que possuem cartões de crédito. Nosso objetivo é tentar prever um possível churn desse cliente, ou seja, com base na movimentação de dinheiro feita, no tipo de cartão, no salário e na idade da pessoa, vamos prever qual a chance dela deixar de usar o cartão. Esse tipo de análise pode mostrar os clientes de maior risco e quais fatores são de maior impacto no churn.

A base de dados está disponível em: [https://www.kaggle.com/sakshigoyal7/credit-card-customers](https://www.kaggle.com/sakshigoyal7/credit-card-customers)

Os dados que iremos utilizar nesse projeto de exemplo já estão criados dentro de uma tabela no BQ.

![qlik sense e big query](https://images.bix-tech.com/qlik_sense_e_big_query_3_c77507bdff.webp)

Tabela bankchurners que será utilizada para criar o modelo preditivo

![qlik sense e big query](https://images.bix-tech.com/qlik_sense_e_big_query_4_1e87f15781.webp)

Nosso primeiro passo é tentar extraí-los no Qlik Sense criando uma nova conexão que aponta para o nosso dataset no BQ.

Criando uma conexão com o BQ

É muito importante nesse momento ativar a flag **_Allow non-SELECT queries._** Vamos rodar alguns SQLs que não são um SELECT e não retornam dados, essa flag vai liberar que isso ocorra.

Com a conexão criada é só selecionar a tabela e gerar o código de extração. Com algumas alterações temos então:

![qlik sense e big query](https://images.bix-tech.com/qlik_sense_e_big_query_6_16a7ca37af.webp)

Pontos importantes nessa extração:

1. O campo Record_Type foi criado para facilitar a separação dos dados que serão de treino e dos dados que serão de teste. O _FARM_FINGERPRINT_ gera uma hash dos dados e permite separar a base de forma aleatória, porém reprodutível;
2. Nossa label de previsão será o campo Attrition_Flag;
3. Foi criado no [Preceding LOAD](https://help.qlik.com/en-US/qlikview/May2021/Subsystems/Client/Content/QV_QlikView/Scripting/preceding-load.htm) o campo _Label_ apenas para facilitar a visualização no Qlik;

Assim já podemos começar nossa análise exploratória. Fiz uma tela básica com os dados para exemplificar:

![qlik sense e big query](https://images.bix-tech.com/qlik_sense_e_big_query_7_2c14939857.webp)

Podemos observar que se trata de uma classe desbalanceada, com 16.1% de presença

## 3\. Criando o modelo preditivo

Para criarmos o nosso primeiro modelo é super simples. Utilizando a mesma conexão criada, vamos rodar o comando em SQL de criação do modelo passando a tabela com as features.

![qlik sense e big query](https://images.bix-tech.com/qlik_sense_e_big_query_8_2b7c053241.webp)

Código no Qlik: Criando um modelo de classificação XGboost

Pontos importantes:

1. Na primeira linha definimos o nome do modelo e onde deve ficar armazenado;
2. Criamos um modelo [XGBoost](https://cloud.google.com/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-create-boosted-tree) para classificação, definindo um auto balanceamento entre as classes devido ao nosso problema de desbalanceamento;
3. O campo Flag_Test foi utilizado para definir como deve ser feito o Split de teste e treino do modelo preditivo. Se não for passado nada, o split será aleatório;
4. O comando !EXECUTE_NON_SELECT_QUERY é do Qlik. Ele é necessário quando o comando SQL não retornará nenhum dado;
5. Nessa base, existem campos categóricos e números, repare como o BQML cuida de todo feature engineering pra gente;

A criação do modelo leva em torno de 8 minutos, porém uma vez feito, o código pode ser comentado.

Após a criação, você pode visualizar o modelo criado no workspace do Big Query, lá o Google já vai lhe mostrar dados de performance tanto para o treinamento quanto para o teste feito.

![qlik sense e big query](https://images.bix-tech.com/qlik_sense_e_big_query_9_c41851d620.webp)

Vale comentar que há inúmeros outros modelos que o BQML tem suporte, tanto para regressão, classificação, forecasting, recomendação e AutoML. Alguns exemplos que podem ser utilizados no _MODEL_TYPE_ são:

```
MODEL_TYPE = { 'LINEAR_REG' | 'LOGISTIC_REG' | 'KMEANS' |                   'TENSORFLOW' | 'MATRIX_FACTORIZATION' |                   'AUTOML_CLASSIFIER' | 'AUTOML_REGRESSOR' |                   'BOOSTED_TREE_CLASSIFIER' | 'BOOSTED_TREE_REGRESSOR' |                   'DNN_CLASSIFIER' | 'DNN_REGRESSOR' }
```

## 4\. Gerando previsões com o modelo criado

Após o modelo ser criado, é possível enviar dados para ele e então gerar previsões. É como fazer um _Select_ em uma tabela, porém agora a tabela é um modelo preditivo.

![qlik sense e big query](https://images.bix-tech.com/qlik_sense_e_big_query_10_acdf1a4224.webp)

Código no Qlik: Gerando previsão utilizando o modelo XGBoost criado

Pontos importantes:

1. O campo CLIENTNU é uma chave única para o cliente, não sendo uma feature, entretanto, precisamos enviar junto para poder utilizar como chave para modelo associativo do Qlik;
2. Nesta etapa, geramos as previsões tanto para os dados de treino quanto para os de teste. Podemos separar isso na visualização com o campo Record_Type previamente carregado.

## 5\. Avaliando a qualidade do modelo

Para avaliarmos a qualidade do modelo podemos simplesmente buscar as métricas já calculadas pelo google ou podemos trazer as previsões e fazer todo tipo de análise que o Qlik nos possibilita.

Duas integrações do BQML são úteis agora:

![qlik sense e big query](https://images.bix-tech.com/qlik_sense_e_big_query_11_796d603738.webp)

Código no Qlik: Obtém os indicadores já calculados pelo modelo utilizando os dados de teste

![qlik sense e big query](https://images.bix-tech.com/qlik_sense_e_big_query_12_347d0bc202.webp)

Código no Qlik: Obtém a importância das features utilizadas no modelo XGBoost

Com todas esses dados dentro da aplicação temos o seguinte modelo de dados:

![qlik sense e big query](https://images.bix-tech.com/qlik_sense_e_big_query_13_803940610c.webp)

Tabelas até esse momento na memória

Utilizando o poder do Qlik, podemos fazer diversas análises complexas de performance do modelo, por exemplo, entendendo como ele se comporta para diferentes grupos de dados e não apenas no macro.

![qlik sense e big query](https://images.bix-tech.com/qlik_sense_e_big_query_14_cc07259565.webp)

Exemplo de tela para análise do modelo

## 6\. Como enviar dados do Qlik pro BQ

Uma das vantagens de utilizar o [qlik-py-tools](https://github.com/nabeel-oz/qlik-py-tools) é que podemos fazer parte da ETL em Qlik Sense e então chamar o SSE via Script para gerar os modelos.

Nesse nosso exemplo enviamos o dado do próprio BQ para criar o modelo. É possível processar o dado no Qlik Sense e só depois enviar para o modelo?

No SaaS isso é possível, você pode salvar um CSV processado no Google Cloud Storage e então criar uma tabela no BQ que aponta para esse arquivo.

![qlik sense e big query](https://images.bix-tech.com/qlik_sense_e_big_query_15_6812288989.webp)

Com a tabela no BQ, basta agora utilizar como fonte das features na hora de criar ou prever com o modelo preditivo.

## 7\. Próximo post, parte 2 — What If Analysis

A ideia do What if analysis é entender o que acontecerá com uma previsão se uma feature for alterada. Esse tipo de análise é incrível para um usuário de negócio que tenta identificar qual será o impacto de uma ação.

Para viabilizá-la é necessário um processo de previsão dinâmica, ou seja, o usuário vai definir uma alteração nas features enquanto usa o app e os objetos precisam ser atualizados com a nova previsão.

É possível fazer isso no Qlik Sense, porém, como exige falar de outros conceitos mais complexos, optamos por deixar na parte 2/2.

## Conclusão sobre a relação entre Qlik Sense e Big Query

Utilizando a integração com o Big Query ML, temos acesso a uma imensa quantidade de funcionalidades na área de machine learning dentro do Qlik Sense e com ótima integração no SaaS. Além disso, o BQML garante uma implementação extremamente madura e gerenciada de forma segura como o Google Cloud Plataform.

Quer saber de qual a melhor plataforma para desenvolver o seu o projeto e trazer resultado para sua empresa? [Entre em contato conosco!](https://www.bixtecnologia.com.br/contato/) Vamos conversar sobre como analisar os dados do seu negóci da melhor maneira e com as melhores ferramentas**!**

_Escrito por Angelo Baruffi_

## Artigos relacionados

![Câmera de segurança integrada com inteligência artificial analisando a qualidade de produtos em uma esteira industrial.](https://bixtecnologia.com.br/img/Camera_industrial_escaneando_linhas_de_montagem_automaticas_651357eefc-960.webp)

Ciência de Dados

### [Além dos textos: o avanço e o impacto da visão computacional nos negócios](https://bixtecnologia.com.br/visao-computacional-negocios/)

16 de março de 2026

6 min de leitura

Cultura Data-Driven

Ciência de Dados

### [Databricks Lakehouse: Principais Funcionalidades e Casos de Uso no Mundo Real (Além de Quando é a Escolha Certa)](https://bixtecnologia.com.br/databricks-lakehouse/)

12 de fevereiro de 2026

8 min de leitura

![Diagrama técnico mostrando diferentes agentes de dados conectados por um barramento de eventos central.](https://bixtecnologia.com.br/img/Como_construir_Agentes_de_Dados_que_se_comunicam_entre_si_arquitetura_e_padroes_4617102515-960.webp)

Análise de Dados

Ciência de Dados

### [Como construir Agentes de Dados que se comunicam entre si: arquitetura e padrões](https://bixtecnologia.com.br/agentes-de-dados-colaborativos/)

27 de janeiro de 2026

5 min de leitura

Sem categoria

Ciência de Dados

### [Extensões e Conectores Customizados: Unificando Qlik, Power BI e SAP em um Único Ecossistema Analítico](https://bixtecnologia.com.br/qlik-power-bi-sap-ecossistema-analitico/)

19 de janeiro de 2026

13 min de leitura

Engenharia de Dados

Ciência de Dados

### [Infraestrutura multi-cloud com Terraform e automação de CI/CD (Sem dores de cabeça)](https://bixtecnologia.com.br/infraestrutura-multi-cloud-terraform-cicd/)

16 de janeiro de 2026

9 min de leitura

Dicas

Sem categoria

### [Supervisão de Agentes LangGraph: Como Controlar, Registrar e Monitorar Agentes de IA em Tempo Real](https://bixtecnologia.com.br/supervisao-de-agentes-langgraph-como-controlar-registrar-e-monitorar-agentes-de-ia-em-tempo-real/)

13 de janeiro de 2026

11 min de leitura

---

BIX Tecnologia · Contato: https://bixtecnologia.com.br/contato/
Índice do site para agentes: https://bixtecnologia.com.br/llms.txt

