Um pipeline de dados é um conjunto de processos organizados em etapas que capturam, processam, transformam e armazenam dados de forma automatizada e contínua. É como uma “linha de montagem” dos dados — desde a coleta até a entrega final para análise ou uso em sistemas.
Atividade: Faça uma pesquisa e traga exemplos de pipelines de dados em diferentes áreas e setores para compartilhar no nosso encontro. Descreva as etapas, as ferramentas utilizadas e aproveite esse momento para aprender um pouco mais. Esse código python está comentado:
- Primeiro fazermos um algoritmo em python para resolver a solicitação:
import pandas as pdfrom openpyxl import Workbookfrom openpyxl.styles import PatternFill, Border, Sidefrom openpyxl.chart import PieChart, Referencefrom openpyxl.chart.label import DataLabelListimport osfrom datetime import datetimeimport re# Dados do pipelinedados = {“Setor”: [“Financeiro”, “Saúde”, “E-commerce”, “Educação”, “Industrial”, “Marketing”, “Logística”],“Exemplo”: [“Análise de Risco de Crédito”,“Diagnóstico Médico via IA”,“Recomendação de Produtos Personalizada”,“Plataforma de Ensino Adaptativo”,“Manutenção Preditiva em Máquinas”,“Análise de Sentimento em Redes Sociais”,“Roteirização Inteligente de Entregas”],“Objetivo”: [“Avaliar o risco de um cliente inadimplir um empréstimo.”,“Usar IA para detectar doenças com base em exames.”,“Sugerir produtos baseados no histórico do usuário.”,“Personalizar o ensino de acordo com o desempenho do aluno.”,“Detectar falhas antes que ocorram para evitar prejuízos.”,“Entender a percepção da marca e otimizar campanhas.”,“Otimizar rotas para reduzir tempo e custo de transporte.”],“Etapas do Pipeline”: [“Coleta de Dados, Processamento & Transformação, Modelagem & Machine Learning, Armazenamento & Visualização”,“Coleta de Dados, Pré-processamento, Modelagem, Predição & Relatórios”,“Coleta de Dados, Transformação, Modelagem & IA, Entrega em Tempo Real”,“Coleta de Dados, Processamento, Personalização, Feedback & Insights”,“Coleta de Dados, Processamento, Modelo Preditivo, Alertas & Ações”,“Coleta de Dados, NLP, Classificação de Sentimento, Dashboard Interativo”,“Coleta de Dados, Geolocalização, Algoritmos de Otimização, Visualização em Mapas”],“Ferramentas Utilizadas”: [“APIs bancárias, Open Banking, Apache Spark, Pandas, Scikit-learn, TensorFlow, PostgreSQL, AWS S3, Power BI, Tableau”,“Bancos de dados hospitalares, IoT, OpenCV, NumPy, TensorFlow, PyTorch, Google Cloud Storage, MongoDB, Streamlit, Grafana”,“Google Analytics, BigQuery, Apache Kafka, PySpark, MLlib, Amazon SageMaker, AWS Redshift, Cassandra, Looker, Metabase”,“APIs de LMS, Pandas, Apache Airflow, SciPy, XGBoost, Firebase, SQL Server, Power BI, Google Data Studio”,“Sensores IoT, OPC-UA, MQTT, Apache Flink, Hadoop, Keras, PyCaret, Azure Data Lake, AWS DynamoDB, Power BI, Grafana”,“Twitter API, Facebook Graph API, NLTK, SpaCy, TextBlob, Power BI, Google Data Studio”,“Google Maps API, OR-Tools, Pandas, Folium, QGIS, Power BI, PostgreSQL/PostGIS”],“Sites Relevantes”: [“www.bcb.gov.br, www.cvm.gov.br, www.tesouro.fazenda.gov.br”,“www.anvisa.gov.br, www.datasus.gov.br, www.saude.gov.br”,“www.ecommercebrasil.com.br, www.abcomm.org, www.sebrae.com.br”,“www.mec.gov.br, www.capes.gov.br, www.educacao.gov.br”,“www.abimaq.org.br, www.cni.org.br, www.industria.gov.br”,“www.abradi.com.br, www.abemd.org.br, www.midiadigital.com”,“www.abetra.org.br, www.abece.com.br, www.logisticabrasil.com.br”]}# Criar DataFramedf = pd.DataFrame(dados)# Nome do arquivohoje = datetime.now().strftime(“%Y%m%d”)base_name = f”{hoje}_tabelapipeline”ext = “.xlsx”arquivo_excel = base_name + extcontador = 2while os.path.exists(arquivo_excel):arquivo_excel = f”{base_name}_{contador}{ext}”contador += 1# Criar workbookwb = Workbook()ws = wb.activews.title = “Pipelines”# Estilo de célulaborda_espessa = Border(left=Side(border_style=”thick”, color=”000000″),right=Side(border_style=”thick”, color=”000000″),top=Side(border_style=”thick”, color=”000000″),bottom=Side(border_style=”thick”, color=”000000″))fill_cinza = PatternFill(start_color=”D3D3D3″, end_color=”D3D3D3″, fill_type=”solid”)# Escrever cabeçalhosfor col_idx, col_name in enumerate(df.columns, start=1):cell = ws.cell(row=1, column=col_idx, value=col_name)cell.fill = fill_cinzacell.border = borda_espessa# Escrever dadosfor row_idx, row in enumerate(df.itertuples(index=False), start=2):for col_idx, value in enumerate(row, start=1):cell = ws.cell(row=row_idx, column=col_idx, value=value)if row_idx % 2 == 1:cell.fill = fill_cinzacell.border = borda_espessa# — Criar planilha com gráfico —ws_grafico = wb.create_sheet(“Gráfico”)# Preparar dados para o gráfico: contar etapas por setoretapas_count = df[“Etapas do Pipeline”].apply(lambda x: len(re.split(r”,|\s*&\s*”, x)))df_etapas = pd.DataFrame({“Setor”: df[“Setor”],“Nº de Etapas”: etapas_count})# Escrever na nova planilhaws_grafico.append([“Setor”, “Nº de Etapas”])for i in range(len(df_etapas)):ws_grafico.append([df_etapas[“Setor”][i], df_etapas[“Nº de Etapas”][i]])# Criar gráfico de pizzachart = PieChart()chart.title = “Distribuição das Etapas de Pipeline por Setor”data = Reference(ws_grafico, min_col=2, min_row=2, max_row=8)cats = Reference(ws_grafico, min_col=1, min_row=2, max_row=8)chart.add_data(data, titles_from_data=False)chart.set_categories(cats)chart.height = 10chart.width = 10# Adicionar porcentagem nos rótulosdata_labels = DataLabelList()data_labels.showPercent = Truechart.dataLabels = data_labels# Dar mais destaque ao setor com mais etapas (explode apenas o primeiro setor da série)chart.series[0].explosion = 10# Adicionar gráfico à planilhaws_grafico.add_chart(chart, “E2”)# Salvarwb.save(arquivo_excel)print(f”Arquivo {arquivo_excel} criado com gráfico de pizza!”)
- Sua saída terá duas tabelas inclusive o gráfico a seguir: