Apresentando o projeto de engenharia de dados
Olá! Boas-vindas a mais uma aula.
Agora teremos o primeiro contato com nosso projeto de engenharia de dados. Vamos entender qual é o problema de negócio que queremos resolver, com uma abordagem prática, orientada à execução e próxima do contexto corporativo.
Neste cenário, trabalhamos na Alumax, especificamente na equipe de atendimento. Nossa equipe é responsável por receber todas as interações de clientes, que podem ocorrer por e-mail, ligação, WhatsApp e chat (bate-papo). Nosso trabalho será realizar a ingestão de todos esses dados e unificá-los no ambiente do Databricks. Por exemplo, prestamos suporte aos clientes e realizamos as respectivas tratativas; esse é o valor gerado e, com base nessas informações, responderemos algumas perguntas adiante. Por isso, é extremamente importante termos todo esse pipeline (fluxo) unificado e realizarmos a ingestão de dados no ambiente.
Estruturando o pipeline de ingestão e a arquitetura medalhão
Como funcionará esse pipeline (fluxo) de ingestão? Ao simularmos um ambiente corporativo, os arquivos podem chegar por diversos conectores, a partir de diferentes plataformas, pois, em alguns casos, a plataforma que gerencia ligações não é a mesma que gerencia o WhatsApp. Como simularemos isso? Faremos os arquivos chegarem nos Volumes do ambiente do Databricks. Poderia ser em outro local, por um conector com Salesforce ou por um conector em um bucket (repositório de objetos) do S3; aqui, porém, trabalharemos com os Volumes. A partir desses arquivos, construiremos todas as camadas de ingestão.
Usaremos a arquitetura medalhão para construir as camadas bronze, silver (prata) e gold (ouro), de modo que a equipe de negócios consiga extrair insights (percepções) a partir dos indicadores de atendimento.
Trabalharemos com todo o ecossistema do Databricks; utilizaremos Python, PySpark e SQL em nossos notebooks (cadernos de código) para realizar consultas e construções. Construiremos jobs (tarefas), o que será fundamental, pois, a partir deles, utilizaremos as ferramentas do Databricks, como o Unity Catalog, para implementar a governança de dados. Por exemplo, ao criarmos a camada silver (prata) e a camada bronze, elas devem residir em ambientes distintos, em bancos de dados distintos, pois precisamos garantir a governança de dados e, em alguns casos, um controle de acesso mais rígido.
Orquestrando o código e alinhando perguntas de negócio
Utilizaremos Git e GitHub para hospedar e versionar todo o código, manter a documentação, realizar o orquestramento dos jobs (tarefas) e configurar agendamentos. Essas ferramentas terão papel fundamental em nosso projeto de ingestão de dados.
Há perguntas de negócio que poderemos responder ao longo do projeto. Como lidamos com dados de atendimento e os clientes podem interagir por diferentes plataformas, qual é o melhor canal de atendimento? Qual canal recebe as melhores avaliações dos clientes? Essa é uma pergunta interessante que tentaremos responder em nosso projeto.
Quais são os canais mais utilizados? Há alguma preferência? Algum grupo de clientes utiliza mais um canal do que outro? Qual canal apresenta o menor tempo de atendimento? Essas são algumas perguntas que nortearão nosso projeto e que buscaremos responder ao longo do tempo.
Aproveitando a plataforma databricks e a arquitetura lakehouse
Utilizaremos todo o ecossistema que a plataforma Databricks oferece. A arquitetura de Lakehouse (arquitetura que integra recursos de data lake e data warehouse) é fundamental, pois podemos trabalhar em um sistema que recebe informações de múltiplas fontes. Essa arquitetura proporciona flexibilidade para realizar a ingestão e o consumo de dados operacionais.
Já teremos a parte de BI (Business Intelligence - inteligência de negócios) integrada, o que permitirá construir dashboards (painéis) e indicadores. A plataforma Databricks é colaborativa: conseguimos que várias pessoas utilizem o mesmo notebook (caderno de notas), o que agiliza o desenvolvimento de novos produtos de dados. Além disso, há recursos de IA, agentes e modelos de Machine Learning (aprendizado de máquina), com unificação e integração facilitadas. Usaremos amplamente a IA disponibilizada pela plataforma para nos auxiliar na construção do nosso pipeline (fluxo de dados).
No projeto, construiremos toda a arquitetura medalhão, iniciando pela camada bronze, que conterá os dados brutos. Isso é crucial porque, ao trabalharmos com sistemas diferentes, queremos garantir que a ingestão esteja o mais próxima possível do sistema de origem. Para trazer governança de dados, utilizaremos o Unity Catalog. Criaremos o banco de dados na camada bronze, que será nossa fonte de verdade, com os dados originais.
A partir disso, utilizaremos o Unity Catalog para criar os novos bancos de dados nas camadas subsequentes. Teremos a camada Silver (prata), na qual faremos agregações, possivelmente criaremos novas colunas e ajustaremos tipos de dados, quando necessário.
Implementando a camada gold, governança e delta lake
Por fim, teremos a camada Gold (ouro), onde aplicaremos as regras de negócio, realizaremos agregações finais e cruzaremos informações com outras tabelas. As tabelas dessa camada serão consumidas pelo time de negócios e pelos modelos de Machine Learning (aprendizado de máquina). Os dashboards (painéis) serão construídos com base nessas tabelas da camada Gold (ouro).
É fundamental termos em mente que nosso projeto utilizará a arquitetura da plataforma Databricks e o Unity Catalog para prover controle de metadados e governança dos dados. Isso nos permitirá dividir a arquitetura medalhão de forma alinhada à realidade: manter dados em ambientes diferentes, com níveis de acesso distintos. Assim, poderemos auditar para garantir que o dado na camada Gold (ouro) corresponda ao dado de origem ingerido na camada bronze. Na prática, a camada Gold (ouro) costuma ter acesso mais amplo, enquanto as camadas bronze e Silver (prata) possuem acessos mais restritos, geralmente disponíveis apenas ao time de tecnologia.
Utilizaremos o formato Delta Lake, que traz confiabilidade aos dados e recursos como Time Travel (viagem no tempo) e versionamento. Por isso, adotaremos toda essa arquitetura da plataforma Databricks.
Eu espero que vocês tenham gostado desta aula. Até a próxima!