Gaio Documentation
Portuguese
Portuguese
  • Bem vindo à documentação da Plataforma Gaio!
  • Documentação
    • Informações Gerais
      • Estrutura de Funcionamento
      • Login
      • Página Inicial
    • Aplicações
    • Studio
      • Processos
      • Fontes de Dados
      • Tarefas
        • ETL
          • Consulta
          • SQL
          • SQL Externo
          • Inserção Tabela
          • Inserção Linha
          • Atualização
          • Exclusão
          • Cria Tabela
          • Quick Table
          • Pivot Table
          • Unpivot Table
          • Executar Processo
          • Rest
          • Parâmetros para Tabela
          • Tabela para Parâmetros
          • Usuários
          • CSV Web
          • Google Planilhas
        • Analytics
          • Amostragem
          • AutoML
          • Scoring
          • Cluster
          • Componentes Principais
          • Regras de Associação
          • Séries Temporais
          • Python
        • Delivery
          • Relatório
          • Power Search
          • Conteúdo
          • Formulário
          • Exportar Output
          • Banner
          • Exportar CSV
          • Mapa
          • Insights
          • API
          • SMS
          • WhatsApp
          • Email
          • Network
      • Parâmetros
      • Formulários
      • Arquivos
      • Botões de Ação
      • Menu Superior
        • SQL
        • Editar Tabelas do Bucket
        • Execuções em Andamento
        • Editor de Mapas
        • Agendamento
        • Modelos
        • Cognitivo
        • Log de erros
        • Editar Dashboard
        • Chat - GPS
        • Menu Geral
    • Administração
      • Permissões
      • Usuários
      • Fontes de Dados
      • Repositórios
        • Criação
        • Gestão de Dados
      • Compartilhamento
      • Agendamento
      • Log
    • Atalhos do Teclado
  • Integrações
    • LDAP
  • HUB
    • Exemplos
      • Tarefa Conteúdo
        • Formulário Manual
  • FAQ
  • Gestão de Servidor
    • Inicialização do Gaio
  • What's New!
    • Release Notes
      • 2022
Powered by GitBook
On this page
  • Exemplos
  • Exemplo Prático
  1. Documentação
  2. Studio
  3. Tarefas
  4. Analytics

Python

Essa tarefa te permite rodar scripts em linguagem python, a versão utilizada pode ser escolhida de acordo com as versões disponibilizadas pelo seu administrador Gaio.

PreviousSéries TemporaisNextDelivery

Last updated 1 year ago

Essa tarefa te permite rodar scripts em linguagem python, a versão utilizada pode ser escolhida de acordo com as versões disponibilizadas pelo seu administrador Gaio. As bibliotecas podem ser instaladas e administradas por desenvolvedores Gaio. Além disso fornecemos uma classe chamada bucket que te permite extrair e exportar dados que estão no banco de dados clickhouse que sua aplicação possui permissão.

Limite de Memória A tarefa de Python no Gaio está limitada por padrão com no máximo 80% da memória da máquina, caso exceda esse limite te retornará um erro de limite de memória.

Faremos uma simples navegação pela interface da tarefa, e após isso desenvolveremos um script simples para servir como exemplo.

A primeira página é a principal da tarefa. Nela, à esquerda, temos o espaço em tema azul para escrever o script, enquanto à direita, em tema escuro, está localizado o console, onde podemos visualizar o output do script. Para executar o seu script, basta clicar no botão "executar" e o resultado será exibido no console.

A segunda página é o seu diretório padrão para salvar os arquivos gerados no script, como por exemplo arquivos jpeg, png, mp4, pkl, entre outros. O nome dessa pasta é assets.

Existem outras três pastas que você pode utilizar através da tarefa python, que são as pastas conteúdo, inputs e output da sua aplicação. O caminho está guardado nas seguintes variaveis: app_inputs, app_outputs e app_assets.

Segue um exemplo de como construir seu caminho para a pasta de outputs para você pode realizar o download da imagem gerada.

path = app_outputs + "/imagem_name.png"

Na caixa de texto, você deve escrever em cada linha o nome correto da biblioteca que deseja instalar (apenas o nome, sem mais nenhum caractere, conforme mostrado na imagem abaixo). Após escolher a versão do Python e as bibliotecas, basta clicar no botão "Instalar" para que suas configurações sejam executadas.

Como dito anteriormente possuímos uma classe chamada bucket, que realiza a conexão com o clickhouse de forma encapsulada e possuem os metodos query_df, command, insert_df e create_df.

Exemplos

Função que transforma um select no clickhouse em um dataframe pandas no python.

df = bucket.query_df('select colunaA, colunaB from tabela where colunaB = 'ativo')

Função que faz uma copia de uma tabela clickhouse indicada para um dataframe pandas.

df = bucket.select_df('nova_tabela')

Na primeira linha temos a função que cria uma tabela no clickhouse que seja similar ao seu dataframe pandas, na segunda linha inserimos os dados do seu dataframe pandas na tabela clickhouse.

bucket.create_df('nova_tabela', df)
bucket.insert_df('nova_tabela', df)

Note que para realizar a função insert_df precisamos que seu dataframe pandas seja similar a sua tabela clickhouse.

Exemplo Prático

Nesse exemplo prático vamos passar pela parte de trazer os dados para o python, realizar um agrupamento, salvar uma imagem em formato png, salvar o arquivo do modelo, e criar e salvar a tabela final no clickhouse.

Primeiramente vamos importar as bibliotecas que serão utilizadas

import pandas as pd
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
import joblib

Para esse exemplo utilizaremos a famosa tabela iris disponibilizado por varias bibliotecas como a scikit-learn. Essa tabela está no banco de dados clickhouse dentro do Gaio.

Vamos utilizar a função select_df para trazer para o python, e após isso aplicar o algoritmo kmeans disponibilizado pela biblioteca scikit-learn.

# Trazer dados para o python
data = bucket.select_df('tabela_iris')

# Aplicar o algoritmo de K-Means com 3 clusters (número escolhido arbitrariamente)
kmeans = KMeans(n_clusters=3)
data['cluster'] = kmeans.fit_predict(data)

# Avaliar o resultado - por exemplo, visualizando as médias de cada cluster
cluster_means = data.groupby('cluster').mean()

Nesse próximo passo vamos fazer uma visualização dos grupos encontrados pelo modelo e salvar a figura na pasta assets.

# Plotar os clusters em um gráfico (considerando apenas as duas primeiras colunas)
plt.scatter(data['sepal_length_cm_'], data['sepal_width_cm_'], c=data['cluster'], cmap='viridis')
plt.xlabel('sepal_length_cm_')
plt.ylabel('sepal_width_cm_')

# Salvar o gráfico em formato png
plt.savefig('assets/cluster_iris.png')

Agora vamos salvar esse modelo para poder ser reaproveitado em outros momentos, para isso vamos utilizar a biblioteca joblib.

# Salvar o modelo
joblib.dump(kmeans, 'assets/modelo_kmeans_iris.joblib')

Agora nos resta enviar o dataframe com a nova coluna gerada pelo modelo para o clickhouse para poder ser utilizadas por outras tarefas Gaio. Para isso vamos utilizar create_df e insert_df.

# Criar uma tabela no clickhouse similar ao seu dataframe
bucket.create_df('tmp_iris_clusterizada', data)

# Inserir os dados do seu dataframe em uma tabela clickhouse
bucket.insert_df('tmp_iris_clusterizada', data)

Para utilizar o Python no Gaio, basta acessar o menu e escolher Python.

Tarefas
Python
Página de Code da Tarefa Python
Página de Arquivos da Tarefa Python
Página de Environment da Tarefa Python