SlideShare ist ein Scribd-Unternehmen logo
1 von 19
Busca de vínculos na
Administração Pública
CONTROLADORIA GERAL DA UNIÃO
TRIBUNAL DE CONTAS DA UNIÃO
Busca de vínculos
Bases da Administração possuem vínculos expressos (PF-PF; PJ-PF; PJ-PJ):
◦ CPF: nome da mãe
◦ CNPJ e CNE: sócios e responsáveis
◦ RAIS: empregados
◦ ...
• É possível combinar todas essas bases em um único grafo
• Desafio: mais de um bilhão de vínculos
TCU – solução atual: i2
Poucas licenças (versão descontinuada após aquisição pela IBM)
Consultas lentas
SQL
Solução para busca de vínculos em até 6 níveis
Acesso direto à base de dados do i2
Viabiliza consulta a qualquer tipo de entidade modelada no i2 (CPF, CNPJ, telefone, automóvel,
endereço)
Codificado em PL/SQL (Oracle) e T-SQL (SQL-Server)
Redução do problema de explosão combinatória criando grafo de 3 níveis a partir de cada
entidade consultada (origem e destino)
SQL
Próximos passos
•Teste de carga/eficiência em ambiente SQL Server 2014 (queries em memória) e em banco de
dados colunar
•Encapsulamento da solução em interface para o usuário
•Ampliação das fontes de consulta (dissociar do i2)
Apex + R + iGraph + yEd
CNE, CNPJ,
CPF, RAIS
Fila
Requisição arquivo GML
Processamento
Visualização e
formatação
Apex + R + iGraph + yEd
Próximos passos
•Disponibilização em caráter de teste
•Processamento paralelizado
•K-caminhos-mais-curtos
•Adicionar mais bases
CGU – solução atual: i2
Poucas licenças (versão descontinuada após aquisição pela IBM)
Bases não centralizadas em um repositório único
Não engloba as trilhas de auditoria
Neo4J
Utilização de um banco de grafos para realizar consultas de vínculos
Consultas em SQL podem incluir vários níveis de junções no modelo relacional
Podem resolver trilhas de auditoria com mais eficiência
Neo4J
Neo4J
SELECT C01.nome_empresa, P01.nome_pessoa,C02.nome_empresa, P02.nome_pessoa, C03.nome_empresa, P03.nome_pessoa, C04.nome_empresa
FROM PessoasSocios AS PP01
INNER JOIN Empresas AS C01 --Inicio das 12 juncoes.
ON C01.pk_empresa = PP01.fk_empresa
INNER JOIN Pessoas AS P01
ON P01.pk_pessoas = PP01.fk_pessoa_socio
LEFT JOIN PessoasSocios AS PP02
ON PP02.fk_pessoa_socio = P01.pk_pessoa
LEFT JOIN Empresas AS C02
ON C02.pk_empresa = PP02.fk_empresa
LEFT JOIN PessoasSocios AS PP03
ON PP03.fk_empresa = C02.pk_empresa
LEFT JOIN Pessoas AS P02 ...
Neo4J
MATCH
(empresaB { nome:'EMPRESA B' })
-[r:E_SOCIO*1..6]-
(empresaC { nome:'EMPRESA C' })
RETURN empresaB, r, empresaC;
Neo4J
Neo4J
MATCH
p = allShortestPaths(
(o:Empresas{nome:"EMPRESA B"})
-[r:E_SOCIO*..6]-
(d:Empresas{nome:"EMPRESA C"})
) RETURN NODES(p)
Neo4J
Neo4J
MySQL Neo4j
Método de carga Ferramenta ETL Aplicação desenvolvida em JAVA
Tempo de execução 72.608,949s (Aprox. 20h)
14h sem sucesso para consulta por padrões e
369ms com allShortestPaths
Quantidade de vínculos obtidos 1 1
• Fonte: Base CGU
• Número Empresas: 7.754.989
• Número Sócios: 14.190.151
• Número de Sociedades: 20.903.480
• Máquina: 24 cores 64GB de RAM
• Consulta: Alternada de seis níveis
• Origem: Uma empresa com aproximadamente 400 sócios
• Destino: Uma segunda empresa com aproximadamente 400 sócios
• Objetivo: Avaliar a busca por relacionamentos, não necessariamente conluio
Neo4J
Próximos passos
Disponibilizar um conjunto de consultas para os Auditores
Tentar explorar os benefícios do Cypher em conjunto outras bibliotecas/linguagens
Processar grafos maiores para criar trilhas baseadas em grafos
Trabalho Conjunto
Evita redundância de esforços
Trabalho colaborativo mas independente
Próximos passos
Comparar o desempenho das diferentes abordagens
Unir esforços em torno da solução mais vantajosa
Obrigado!
Contatos
Markus Buhatem Koch kochmb@tcu.gov.br
Gustavo Cordeiro Galvão Van Erven gustavo.erven@cgu.gov.br

Weitere ähnliche Inhalte

Andere mochten auch

Painel 04 02 - Jedson Passos - Análise Sistêmica de Orçamentos de Obras Púb...
Painel 04   02 - Jedson Passos - Análise Sistêmica de Orçamentos de Obras Púb...Painel 04   02 - Jedson Passos - Análise Sistêmica de Orçamentos de Obras Púb...
Painel 04 02 - Jedson Passos - Análise Sistêmica de Orçamentos de Obras Púb...Tribunal de Contas da União - TCU (Oficial)
 
O Uso de Tecnologia da Informação na Prevenção e no Combate à Corrupção
O Uso de Tecnologia da Informação na Prevenção e no Combate à CorrupçãoO Uso de Tecnologia da Informação na Prevenção e no Combate à Corrupção
O Uso de Tecnologia da Informação na Prevenção e no Combate à CorrupçãoEditora Fórum
 
Entendo Business Intelligence
Entendo Business IntelligenceEntendo Business Intelligence
Entendo Business IntelligenceDouglas Scheibler
 
Aula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de DadosAula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de DadosRafael Albani
 

Andere mochten auch (19)

Painel 03 04 - André Vital - Avaliação de Risco em Contratos de Obras Rodov...
Painel 03   04 - André Vital - Avaliação de Risco em Contratos de Obras Rodov...Painel 03   04 - André Vital - Avaliação de Risco em Contratos de Obras Rodov...
Painel 03 04 - André Vital - Avaliação de Risco em Contratos de Obras Rodov...
 
Painel 04 03 - leon - Construção de modelos preditivos para melhoria na sel...
Painel 04   03 - leon - Construção de modelos preditivos para melhoria na sel...Painel 04   03 - leon - Construção de modelos preditivos para melhoria na sel...
Painel 04 03 - leon - Construção de modelos preditivos para melhoria na sel...
 
Análisis de datos 2016 - la visión del tribunal de cuentas de la unión.
Análisis de datos 2016 -  la visión del tribunal de cuentas de la unión.Análisis de datos 2016 -  la visión del tribunal de cuentas de la unión.
Análisis de datos 2016 - la visión del tribunal de cuentas de la unión.
 
Geotecnologías - 2016 - la visión del ministerio del medio ambiente.
Geotecnologías - 2016 - la visión del ministerio del medio ambiente.Geotecnologías - 2016 - la visión del ministerio del medio ambiente.
Geotecnologías - 2016 - la visión del ministerio del medio ambiente.
 
Painel 04 02 - Jedson Passos - Análise Sistêmica de Orçamentos de Obras Púb...
Painel 04   02 - Jedson Passos - Análise Sistêmica de Orçamentos de Obras Púb...Painel 04   02 - Jedson Passos - Análise Sistêmica de Orçamentos de Obras Púb...
Painel 04 02 - Jedson Passos - Análise Sistêmica de Orçamentos de Obras Púb...
 
Painel 05 02 - Remis Balaniuk - modelo bayesiano de analise de risco de con...
Painel 05   02 - Remis Balaniuk - modelo bayesiano de analise de risco de con...Painel 05   02 - Remis Balaniuk - modelo bayesiano de analise de risco de con...
Painel 05 02 - Remis Balaniuk - modelo bayesiano de analise de risco de con...
 
Innovación como solución para problemas complejos -2016- TCU - 2
Innovación como solución para problemas complejos -2016-   TCU - 2Innovación como solución para problemas complejos -2016-   TCU - 2
Innovación como solución para problemas complejos -2016- TCU - 2
 
Control social 2016 - la visión del Tribunal de Cuentas de la Unión.
Control social 2016 -  la visión del Tribunal de Cuentas de la Unión.Control social 2016 -  la visión del Tribunal de Cuentas de la Unión.
Control social 2016 - la visión del Tribunal de Cuentas de la Unión.
 
La visión del ministerio de planificación- TCU
La visión del ministerio de planificación- TCULa visión del ministerio de planificación- TCU
La visión del ministerio de planificación- TCU
 
Presentación del instituto serzedello corrêa - TCU
Presentación del instituto serzedello corrêa  - TCUPresentación del instituto serzedello corrêa  - TCU
Presentación del instituto serzedello corrêa - TCU
 
O Uso de Tecnologia da Informação na Prevenção e no Combate à Corrupção
O Uso de Tecnologia da Informação na Prevenção e no Combate à CorrupçãoO Uso de Tecnologia da Informação na Prevenção e no Combate à Corrupção
O Uso de Tecnologia da Informação na Prevenção e no Combate à Corrupção
 
Painel 03 03 - lucas freire - Filtros econômicos e combate a cartéis em lic...
Painel 03   03 - lucas freire - Filtros econômicos e combate a cartéis em lic...Painel 03   03 - lucas freire - Filtros econômicos e combate a cartéis em lic...
Painel 03 03 - lucas freire - Filtros econômicos e combate a cartéis em lic...
 
Dawarehouse e OLAP
Dawarehouse e OLAPDawarehouse e OLAP
Dawarehouse e OLAP
 
Ministro Benjamin Zymler (TCU) - Apresentação "Colóquio: As Novas Vertentes d...
Ministro Benjamin Zymler (TCU) - Apresentação "Colóquio: As Novas Vertentes d...Ministro Benjamin Zymler (TCU) - Apresentação "Colóquio: As Novas Vertentes d...
Ministro Benjamin Zymler (TCU) - Apresentação "Colóquio: As Novas Vertentes d...
 
Control social 2016 - la visión de la cámara de diputados.
Control social 2016 -  la visión de la cámara de diputados.Control social 2016 -  la visión de la cámara de diputados.
Control social 2016 - la visión de la cámara de diputados.
 
Design thinking 2016 - Herramientas
Design thinking 2016 -  HerramientasDesign thinking 2016 -  Herramientas
Design thinking 2016 - Herramientas
 
Entendo Business Intelligence
Entendo Business IntelligenceEntendo Business Intelligence
Entendo Business Intelligence
 
Aula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de DadosAula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de Dados
 
Introdução a Bancos de Dados
Introdução a Bancos de DadosIntrodução a Bancos de Dados
Introdução a Bancos de Dados
 

Ähnlich wie Painel 05 03 - Gustavo - Markus - Busca de vínculos na Administração Pública

Planejamento
PlanejamentoPlanejamento
Planejamentokarystha
 
Banco de Dados II: Dinâmica de Perguntas e Respostas (aula 4)
Banco de Dados II: Dinâmica de Perguntas e Respostas (aula 4)Banco de Dados II: Dinâmica de Perguntas e Respostas (aula 4)
Banco de Dados II: Dinâmica de Perguntas e Respostas (aula 4)Gustavo Zimmermann
 
Api first desenhando e testando sua api like a boss
Api first   desenhando e testando sua api like a bossApi first   desenhando e testando sua api like a boss
Api first desenhando e testando sua api like a bossRenan Petronilho Sant Anna
 
Trabalho de Graduação Faculdade de Tecnologia de Ourinhos (FATEC Ourinhos)
Trabalho de Graduação Faculdade de Tecnologia de Ourinhos (FATEC Ourinhos)Trabalho de Graduação Faculdade de Tecnologia de Ourinhos (FATEC Ourinhos)
Trabalho de Graduação Faculdade de Tecnologia de Ourinhos (FATEC Ourinhos)Bruno Ferrari
 
Yii framework 2 exemplo de uma aplicação-parte2
Yii framework 2 exemplo de uma aplicação-parte2Yii framework 2 exemplo de uma aplicação-parte2
Yii framework 2 exemplo de uma aplicação-parte2Marcelo Menezes
 
Introducao oracle-sqlplsql-vol2-pt
Introducao oracle-sqlplsql-vol2-ptIntroducao oracle-sqlplsql-vol2-pt
Introducao oracle-sqlplsql-vol2-ptValdinho Pereira
 
Planejamento
PlanejamentoPlanejamento
Planejamentokarystha
 
14100015 introducao-oracle-sqlplsql-vol2-pt
14100015 introducao-oracle-sqlplsql-vol2-pt14100015 introducao-oracle-sqlplsql-vol2-pt
14100015 introducao-oracle-sqlplsql-vol2-ptguest519a5b6
 
14100015 introducao-oracle-sqlplsql-vol2-pt
14100015 introducao-oracle-sqlplsql-vol2-pt14100015 introducao-oracle-sqlplsql-vol2-pt
14100015 introducao-oracle-sqlplsql-vol2-ptguest519a5b6
 
Representanção gráfica processo de trabalho (1)
Representanção gráfica processo de trabalho (1)Representanção gráfica processo de trabalho (1)
Representanção gráfica processo de trabalho (1)Alexandre Pereira
 

Ähnlich wie Painel 05 03 - Gustavo - Markus - Busca de vínculos na Administração Pública (11)

Planejamento
PlanejamentoPlanejamento
Planejamento
 
Banco de Dados II: Dinâmica de Perguntas e Respostas (aula 4)
Banco de Dados II: Dinâmica de Perguntas e Respostas (aula 4)Banco de Dados II: Dinâmica de Perguntas e Respostas (aula 4)
Banco de Dados II: Dinâmica de Perguntas e Respostas (aula 4)
 
CVitae- Sergio Della Nina
CVitae- Sergio Della Nina CVitae- Sergio Della Nina
CVitae- Sergio Della Nina
 
Api first desenhando e testando sua api like a boss
Api first   desenhando e testando sua api like a bossApi first   desenhando e testando sua api like a boss
Api first desenhando e testando sua api like a boss
 
Trabalho de Graduação Faculdade de Tecnologia de Ourinhos (FATEC Ourinhos)
Trabalho de Graduação Faculdade de Tecnologia de Ourinhos (FATEC Ourinhos)Trabalho de Graduação Faculdade de Tecnologia de Ourinhos (FATEC Ourinhos)
Trabalho de Graduação Faculdade de Tecnologia de Ourinhos (FATEC Ourinhos)
 
Yii framework 2 exemplo de uma aplicação-parte2
Yii framework 2 exemplo de uma aplicação-parte2Yii framework 2 exemplo de uma aplicação-parte2
Yii framework 2 exemplo de uma aplicação-parte2
 
Introducao oracle-sqlplsql-vol2-pt
Introducao oracle-sqlplsql-vol2-ptIntroducao oracle-sqlplsql-vol2-pt
Introducao oracle-sqlplsql-vol2-pt
 
Planejamento
PlanejamentoPlanejamento
Planejamento
 
14100015 introducao-oracle-sqlplsql-vol2-pt
14100015 introducao-oracle-sqlplsql-vol2-pt14100015 introducao-oracle-sqlplsql-vol2-pt
14100015 introducao-oracle-sqlplsql-vol2-pt
 
14100015 introducao-oracle-sqlplsql-vol2-pt
14100015 introducao-oracle-sqlplsql-vol2-pt14100015 introducao-oracle-sqlplsql-vol2-pt
14100015 introducao-oracle-sqlplsql-vol2-pt
 
Representanção gráfica processo de trabalho (1)
Representanção gráfica processo de trabalho (1)Representanção gráfica processo de trabalho (1)
Representanção gráfica processo de trabalho (1)
 

Mehr von Tribunal de Contas da União - TCU (Oficial)

Painel 03 02 - joão batista - classificação de risco de transferências volu...
Painel 03   02 - joão batista - classificação de risco de transferências volu...Painel 03   02 - joão batista - classificação de risco de transferências volu...
Painel 03 02 - joão batista - classificação de risco de transferências volu...Tribunal de Contas da União - TCU (Oficial)
 

Mehr von Tribunal de Contas da União - TCU (Oficial) (10)

Painel 03 02 - joão batista - classificação de risco de transferências volu...
Painel 03   02 - joão batista - classificação de risco de transferências volu...Painel 03   02 - joão batista - classificação de risco de transferências volu...
Painel 03 02 - joão batista - classificação de risco de transferências volu...
 
Painel 03 01 - Rommel Carvalho - detecção preventiva de fracionamento de co...
Painel 03   01 - Rommel Carvalho - detecção preventiva de fracionamento de co...Painel 03   01 - Rommel Carvalho - detecção preventiva de fracionamento de co...
Painel 03 01 - Rommel Carvalho - detecção preventiva de fracionamento de co...
 
Painel 02 03 - Rommel Carvalho - identificação automática de tipos de pedid...
Painel 02   03 - Rommel Carvalho - identificação automática de tipos de pedid...Painel 02   03 - Rommel Carvalho - identificação automática de tipos de pedid...
Painel 02 03 - Rommel Carvalho - identificação automática de tipos de pedid...
 
Painel 02 02 - Thiago Marzagão - classificação automatizada de produtos em...
Painel 02   02 - Thiago Marzagão -  classificação automatizada de produtos em...Painel 02   02 - Thiago Marzagão -  classificação automatizada de produtos em...
Painel 02 02 - Thiago Marzagão - classificação automatizada de produtos em...
 
Painel 02 01 patrícia maia - Uso de Técnicas de Mineração de Textos Aplica...
Painel 02   01 patrícia maia - Uso de Técnicas de Mineração de Textos  Aplica...Painel 02   01 patrícia maia - Uso de Técnicas de Mineração de Textos  Aplica...
Painel 02 01 patrícia maia - Uso de Técnicas de Mineração de Textos Aplica...
 
Painel 01 02 - felipe fonseca - Classificação de clientes bancários com bai...
Painel 01   02 - felipe fonseca - Classificação de clientes bancários com bai...Painel 01   02 - felipe fonseca - Classificação de clientes bancários com bai...
Painel 01 02 - felipe fonseca - Classificação de clientes bancários com bai...
 
Painel 01 01 - tiago hillermam - Análise de Cobranças Suspeitas de Consult...
Painel 01   01 - tiago hillermam - Análise de Cobranças Suspeitas  de Consult...Painel 01   01 - tiago hillermam - Análise de Cobranças Suspeitas  de Consult...
Painel 01 01 - tiago hillermam - Análise de Cobranças Suspeitas de Consult...
 
Painel 00 02 - Gilson Libório - a visão da controladoria-geral da união
Painel 00   02 - Gilson Libório - a visão da controladoria-geral da uniãoPainel 00   02 - Gilson Libório - a visão da controladoria-geral da união
Painel 00 02 - Gilson Libório - a visão da controladoria-geral da união
 
Painel 00 01 - wesley - Análise de dados como ferramenta estratégica para o...
Painel 00   01 - wesley - Análise de dados como ferramenta estratégica para o...Painel 00   01 - wesley - Análise de dados como ferramenta estratégica para o...
Painel 00 01 - wesley - Análise de dados como ferramenta estratégica para o...
 
Painel 01 03 - leonardo teles - Projeto CNAE: Algoritmo para classificação ...
Painel 01   03 - leonardo teles - Projeto CNAE: Algoritmo para classificação ...Painel 01   03 - leonardo teles - Projeto CNAE: Algoritmo para classificação ...
Painel 01 03 - leonardo teles - Projeto CNAE: Algoritmo para classificação ...
 

Kürzlich hochgeladen

ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuisKitota
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfSamaraLunas
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 

Kürzlich hochgeladen (8)

ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 

Painel 05 03 - Gustavo - Markus - Busca de vínculos na Administração Pública

  • 1. Busca de vínculos na Administração Pública CONTROLADORIA GERAL DA UNIÃO TRIBUNAL DE CONTAS DA UNIÃO
  • 2. Busca de vínculos Bases da Administração possuem vínculos expressos (PF-PF; PJ-PF; PJ-PJ): ◦ CPF: nome da mãe ◦ CNPJ e CNE: sócios e responsáveis ◦ RAIS: empregados ◦ ... • É possível combinar todas essas bases em um único grafo • Desafio: mais de um bilhão de vínculos
  • 3. TCU – solução atual: i2 Poucas licenças (versão descontinuada após aquisição pela IBM) Consultas lentas
  • 4. SQL Solução para busca de vínculos em até 6 níveis Acesso direto à base de dados do i2 Viabiliza consulta a qualquer tipo de entidade modelada no i2 (CPF, CNPJ, telefone, automóvel, endereço) Codificado em PL/SQL (Oracle) e T-SQL (SQL-Server) Redução do problema de explosão combinatória criando grafo de 3 níveis a partir de cada entidade consultada (origem e destino)
  • 5. SQL Próximos passos •Teste de carga/eficiência em ambiente SQL Server 2014 (queries em memória) e em banco de dados colunar •Encapsulamento da solução em interface para o usuário •Ampliação das fontes de consulta (dissociar do i2)
  • 6. Apex + R + iGraph + yEd CNE, CNPJ, CPF, RAIS Fila Requisição arquivo GML Processamento Visualização e formatação
  • 7. Apex + R + iGraph + yEd Próximos passos •Disponibilização em caráter de teste •Processamento paralelizado •K-caminhos-mais-curtos •Adicionar mais bases
  • 8. CGU – solução atual: i2 Poucas licenças (versão descontinuada após aquisição pela IBM) Bases não centralizadas em um repositório único Não engloba as trilhas de auditoria
  • 9. Neo4J Utilização de um banco de grafos para realizar consultas de vínculos Consultas em SQL podem incluir vários níveis de junções no modelo relacional Podem resolver trilhas de auditoria com mais eficiência
  • 10. Neo4J
  • 11. Neo4J SELECT C01.nome_empresa, P01.nome_pessoa,C02.nome_empresa, P02.nome_pessoa, C03.nome_empresa, P03.nome_pessoa, C04.nome_empresa FROM PessoasSocios AS PP01 INNER JOIN Empresas AS C01 --Inicio das 12 juncoes. ON C01.pk_empresa = PP01.fk_empresa INNER JOIN Pessoas AS P01 ON P01.pk_pessoas = PP01.fk_pessoa_socio LEFT JOIN PessoasSocios AS PP02 ON PP02.fk_pessoa_socio = P01.pk_pessoa LEFT JOIN Empresas AS C02 ON C02.pk_empresa = PP02.fk_empresa LEFT JOIN PessoasSocios AS PP03 ON PP03.fk_empresa = C02.pk_empresa LEFT JOIN Pessoas AS P02 ...
  • 12. Neo4J MATCH (empresaB { nome:'EMPRESA B' }) -[r:E_SOCIO*1..6]- (empresaC { nome:'EMPRESA C' }) RETURN empresaB, r, empresaC;
  • 13. Neo4J
  • 14. Neo4J MATCH p = allShortestPaths( (o:Empresas{nome:"EMPRESA B"}) -[r:E_SOCIO*..6]- (d:Empresas{nome:"EMPRESA C"}) ) RETURN NODES(p)
  • 15. Neo4J
  • 16. Neo4J MySQL Neo4j Método de carga Ferramenta ETL Aplicação desenvolvida em JAVA Tempo de execução 72.608,949s (Aprox. 20h) 14h sem sucesso para consulta por padrões e 369ms com allShortestPaths Quantidade de vínculos obtidos 1 1 • Fonte: Base CGU • Número Empresas: 7.754.989 • Número Sócios: 14.190.151 • Número de Sociedades: 20.903.480 • Máquina: 24 cores 64GB de RAM • Consulta: Alternada de seis níveis • Origem: Uma empresa com aproximadamente 400 sócios • Destino: Uma segunda empresa com aproximadamente 400 sócios • Objetivo: Avaliar a busca por relacionamentos, não necessariamente conluio
  • 17. Neo4J Próximos passos Disponibilizar um conjunto de consultas para os Auditores Tentar explorar os benefícios do Cypher em conjunto outras bibliotecas/linguagens Processar grafos maiores para criar trilhas baseadas em grafos
  • 18. Trabalho Conjunto Evita redundância de esforços Trabalho colaborativo mas independente Próximos passos Comparar o desempenho das diferentes abordagens Unir esforços em torno da solução mais vantajosa
  • 19. Obrigado! Contatos Markus Buhatem Koch kochmb@tcu.gov.br Gustavo Cordeiro Galvão Van Erven gustavo.erven@cgu.gov.br