PT EN
Voltar ao site

DATTA Notebook — documentação e exemplos

Preview — funcionalidade em desenvolvimento. Comportamento, telas e contratos podem mudar sem aviso entre versões.

Análises sérias costumam começar onde o dashboard termina: você precisa de código, estatística e liberdade para cruzar fontes. O DATTA Notebook é o ambiente iterativo, no estilo Jupyter, onde SQL analítico, grafo, busca textual e PySpark convivem no mesmo caderno — sem instalar ambiente, sem caçar credencial e sem colar string de conexão antes da primeira linha útil. Esta página é o mapa: o que existe, por onde começar e para onde ir em seguida.

O que você tem à disposição

  • Trino 480 (SQL analítico) — agregações massivas sobre Parquet/ORC armazenados em S3/GCS.
  • Neo4j (grafos) — processos, partes e legislação com seus relacionamentos.
  • OpenSearch (texto integral) — índices de documentos.
  • PySpark — transformações e machine learning em escala.

O motor analítico anterior, Impala 4.0.0, foi descontinuado: todo SQL novo é escrito para o Trino, e o guia de uso traz a tabela de equivalências para quem está migrando consultas antigas.

A documentação, e para quem ela serve

MaterialO que trazPara quem
Guia de uso do NotebookComo importar o notebook, as configurações Impala → Trino, bancos e tabelas disponíveis, os 3 padrões de uso (distributivo, semântico e contextual), um exemplo prático de análise de risco multi-fonte e as seções de desempenho, boas práticas e solução de problemasQuem quer rodar consultas ad-hoc e explorar dados
Configuração do TrinoArquitetura da instalação (Trino 480 + Hive Metastore), catálogos disponíveis (hive, iceberg, memory), variáveis de ambiente, migração de SQL do Impala, ajuste fino de desempenho, conectividade, solução de problemas e consultas otimizadasQuem administra ou otimiza o Trino
Notebook de exemplo multi-fonteArquivo importável com 10 células (Markdown, SQL e Python), padrões reais de uso (Trino puro, Trino + Neo4j, OpenSearch) e análises de beneficiários, renda e anomalias — pronto para copiar e adaptarAnalistas que querem um modelo para começar

Primeiros passos

  1. Abra o notebook pelo navegador, em http://<endereco-da-plataforma>/jupyter — o ambiente é servido pela própria plataforma, sem instalação local.
  2. Clique em Importar Notebook, no canto superior direito, e selecione o arquivo notebook-exemplo-multi-fonte.dattanb.
  3. Clique em Iniciar Sessão Spark e aguarde de 30 a 60 segundos — é o tempo de preparar o ambiente de execução.
  4. Comece a rodar as células.

Sua primeira consulta

SQL analítico direto no Trino:

sql
SELECT programa, COUNT(*) AS total
FROM hive.assistencia_social.beneficios
GROUP BY programa;

Ou a mesma ideia em Python, com PySpark:

python
df = spark.sql("""
    SELECT * FROM hive.assistencia_social.cidadaos LIMIT 1000
""").toPandas()
print(df.shape)

Os dados disponíveis

Trino — assistência social

TabelaRegistrosColunasDescrição
cidadaos~2,3M10Cidadãos (CPF, renda, município)
beneficios~5,1M9Programas (tipo, valor, titular)
transacoes~12,4M9Movimentações (tipo, data, valor)
eventos~3,8M6Eventos (tipo, data, resultado)
alertas~450K9Alertas (severidade, tipo, confiança)

Total: ~23M registros em Parquet — volume suficiente para sentir o desempenho de agregações reais.

Neo4j — grafo (13 bases)

  • datta-datacatalogDataset, Column, LineageNode
  • datta-ontologyOntology, EntityType, DigitalTwin
  • datta-graphProcesso, Parte, Empresa, Decisao

OpenSearch — texto integral

  • processos → processos judiciais
  • legislacao → leis e normas
  • documentos → documentos variados

Casos de uso típicos

1. Exploração inicial — conhecer o tamanho de cada tabela com SQL simples:

sql
SELECT 'cidadaos' AS tabela, COUNT(*) FROM hive.assistencia_social.cidadaos
UNION ALL
SELECT 'beneficios', COUNT(*) FROM hive.assistencia_social.beneficios
-- ... e assim por diante

2. Análise de qualidade — carregar uma amostra em pandas e inspecionar nulos e distribuições:

python
df = spark.sql("""
    SELECT * FROM hive.assistencia_social.beneficios LIMIT 50000
""").toPandas()

print(df.isnull().sum())
print(df.describe())

3. Correlação multi-fonte — beneficiários no Trino, processos relacionados no grafo e legislação no OpenSearch, tudo no mesmo caderno. A seção de enriquecimento do notebook de exemplo mostra o encadeamento completo.

Exemplo completo

python
import pyspark.sql.functions as F
import pandas as pd

# 1. Extrair (Trino)
df_beneficios = spark.sql("""
    SELECT b.*, c.renda, c.municipio
    FROM hive.assistencia_social.beneficios b
    LEFT JOIN hive.assistencia_social.cidadaos c
        ON b.titular_cpf = c.cpf
    LIMIT 10000
""").toPandas()

# 2. Transformar (pandas)
df_beneficios['valor_por_renda'] = \
    df_beneficios['valor'] / df_beneficios['renda'].fillna(1)

# 3. Enriquecer (Neo4j) — ver o notebook de exemplo

# 4. Visualizar
print(df_beneficios.groupby('programa')['valor'].agg(['count', 'sum', 'mean']))

Configuração do ambiente

As conexões com Trino, Neo4j e Spark já chegam prontas no ambiente do notebook: as variáveis correspondentes são preenchidas pela instalação e as credenciais do Neo4j ficam guardadas no cofre de segredos da plataforma — nada disso precisa (nem deve) aparecer no seu código.

Mudar a configuração do Trino ou reiniciar o motor são tarefas de administração da instalação, não do caderno. Para saber quais catálogos e ajustes existem, veja a configuração do Trino; para aplicar uma mudança, fale com quem administra a plataforma.

Quando algo não funciona

SintomaO que fazer
A sessão Spark não iniciaAguarde o tempo de preparo (30 a 60 segundos) e tente de novo; se persistir, peça a quem administra a instalação para conferir o registro de execução do ambiente
"Table not found" ao consultar o hiveConfira o nome com SHOW TABLES IN hive.assistencia_social; — se a lista vier vazia, a base de exemplo ainda não foi carregada (script de carga seed-trino.sql), e isso é um passo de administração
Consulta travada por mais de 5 minutosAcrescente LIMIT e selecione só as colunas necessárias; use EXPLAIN para ver o plano de execução; se o volume for legítimo, peça mais memória para o Trino a quem administra a instalação

Casos detalhados estão na seção de solução de problemas do guia de uso.

Aprendizagem progressiva

Nível 1 — SQL simples

  • Leia o Padrão 1 do guia.
  • Conte registros por tabela.
  • Faça uma agregação simples (SUM, AVG, COUNT).

Nível 2 — joins e transformações

  • Leia o Padrão 2 do guia.
  • Faça um LEFT JOIN entre tabelas.
  • Carregue o resultado em pandas e calcule estatísticas.

Nível 3 — multi-fonte integrada

  • Leia o exemplo prático do guia.
  • Combine Trino, Neo4j e OpenSearch no mesmo fluxo.
  • Construa um detector de anomalias ou de padrões.

Checklist antes de começar

  • [ ] Consegue abrir o notebook em http://<endereco-da-plataforma>/jupyter.
  • [ ] O Trino responde a SHOW CATALOGS;.
  • [ ] As tabelas existem (SHOW TABLES IN hive.assistencia_social;).
  • [ ] A conexão com o Neo4j funciona (as credenciais já vêm resolvidas no ambiente; falha aqui é caso para a administração da instalação).
  • [ ] Leu a configuração do Trino, se o Trino for novidade para você.
  • [ ] Importou o notebook de exemplo.
  • [ ] Rodou a primeira consulta (SELECT COUNT(...)).
  • [ ] Explorou os dados com LIMIT e agregações.
RecursoLink
Documentação do Trinohttps://trino.io/docs/
Manual de Cypher do Neo4jhttps://neo4j.com/docs/cypher-manual/
SQL do OpenSearchhttps://opensearch.org/docs/latest/search-plugins/sql/
PySpark SQLhttps://spark.apache.org/docs/latest/sql-programming-guide.html
Arquitetura de catálogo e ontologia do DATTAArquitetura do Data Catalog + Ontologia -- Plataforma DATTA
Automação e integraçõesreferência de API

Suporte

  • Guia de uso: Guia: DATTA Notebook Multi-Fonte
  • Configuração técnica: Configuração: Trino 480 (Substitui Impala)
  • Exemplo executável: notebook-exemplo-multi-fonte.dattanb
  • Problemas e sugestões: abra uma issue no GitHub com a etiqueta [notebook]
  • Conversa com o time: canal #datta-data-analytics no Slack

Bom proveito — e boas descobertas.