• Home
  • Chat IA
  • Guru IA
  • Tutores
  • Central de ajuda
Home
Chat IA
Guru IA
Tutores

·

Ciência da Computação ·

Introdução à Lógica e Programação

Envie sua pergunta para a IA e receba a resposta na hora

Recomendado para você

Estruturas, Uniões e Enumerações em Linguagem C - Introdução à Programação

23

Estruturas, Uniões e Enumerações em Linguagem C - Introdução à Programação

Introdução à Lógica e Programação

UFPB

AV3-Introducao-Programacao-20221-Sistema-RH-em-C

4

AV3-Introducao-Programacao-20221-Sistema-RH-em-C

Introdução à Lógica e Programação

UFPB

Um Estudo Comparativo sobre Uso de Modelos de Dados para Notas Fiscais Eletrônicas

69

Um Estudo Comparativo sobre Uso de Modelos de Dados para Notas Fiscais Eletrônicas

Introdução à Lógica e Programação

UFPB

Introdução aos Ponteiros em Linguagem C

24

Introdução aos Ponteiros em Linguagem C

Introdução à Lógica e Programação

UFPB

Introdução aos Arquivos em Linguagem C

27

Introdução aos Arquivos em Linguagem C

Introdução à Lógica e Programação

UFPB

Citus Distributed PostgreSQL for Data-Intensive Applications

13

Citus Distributed PostgreSQL for Data-Intensive Applications

Introdução à Lógica e Programação

UFPB

Introdução à Programação em C: Strings e Vetores de Caracteres

19

Introdução à Programação em C: Strings e Vetores de Caracteres

Introdução à Lógica e Programação

UFPB

Programa Caixa Registradora - Promoção de Carnes Hipermercado Tabajara com Desconto

1

Programa Caixa Registradora - Promoção de Carnes Hipermercado Tabajara com Desconto

Introdução à Lógica e Programação

UFPB

Definição e Manipulação de Strings em C++

10

Definição e Manipulação de Strings em C++

Introdução à Lógica e Programação

UFAL

Estruturas de Dados: Pilhas, Filas e Listas em C

7

Estruturas de Dados: Pilhas, Filas e Listas em C

Introdução à Lógica e Programação

UFAL

Texto de pré-visualização

É para fazer o meu TCC do curso de Ciência da Computação O contexto do TCC é o seguinte existe um sistema que gerencia as notas fiscais da SEFAZPB Secretaria da Fazenda Paraíba O atual sistema está com alguns gargalos pois a solução não foi pensada para lidar com o volume de notas fiscais que atualmente passa por ele Basicamente eles têm uma super máquina com um SGDB Postgres versão opensource rodando lá servindo como datalake Existe um ETL em Go que realiza o carregamento de dados nesse datalake através de lotes A idéia do TCC é a seguinte considerando que essa solução está bem ruim e insuficiente é preciso propor algo Eu já iniciei uma análise inicial de algumas soluções que pudessem resolver esse problema juntamente com os meus professores orientadores Após algumas iterações foi feita uma tábela de comparação segue abaixo entre as seguintes ferramentas Greenplum PrestoDB Citus e o próprio Postgres Após algumas discussões foi decidido que irei começar utilizando a Citus que é a melhor entre as opções para ser implementada nesse contexto até mesmo por ser a mais simples Agora preciso implementar ela e testar em uma amostra do banco para ver como ela se sai estou confiante de que vai dar certo Posteriormente teria que preparar um experimento de benchmarking com ênfase na funcionalidade de sharding fragmentação dos dados Tabela Comparação Tecnologias Características Postgres Greenplum Citus Presto Escalabilidade horizontal F V V V Controle de acesso V V V F Gerenciamento de usuário V V V V Fragmentação sharding V V V F Motor de SQL distribuído F V V V Transações distribuídas F V V F Armazenamento colunar F V V V Consultas a partir de qualquer nó F F V F Tabelas de referência locais F V V F Tabelas distribuídas F V V F Execução do pipeline na memória V F V V Aceita várias fontes de dados como entrada F F F V Deploy simplificado V F V V Flexibilidade com relação a configurações V V F V API para métodos MapReduce definidos por usuários V F Um estudo de caso sobre uso de processamento de dados distribuıdos por meio da ferramenta citus Vinıcius Medeiros Wanderley CENTRO DE INFORMATICA UNIVERSIDADE FEDERAL DA PARAIBA Joao Pessoa 2022 Vinıcius Medeiros Wanderley Um estudo de caso sobre uso de processamento de dados distribuıdos por meio da ferramenta citus Monografia apresentada ao curso Ciˆencia da Computacao do Centro de Informatica da Universidade Federal da Paraıba como requisito para a obtencao do grau de Bacharel em Ciˆencia da Computacao Orientador Prof Dr Raoni Kulesza Coorientador Prof Dr Marcelo Iury de Sousa Oliveira Dezembro de 2022 Ficha catalografica elaborada pela biblioteca do CI Sera impressa no verso da folha de rosto e nao devera ser contada Se nao houver biblioteca deixar em branco CENTRO DE INFORMATICA UNIVERSIDADE FEDERAL DA PARAIBA Trabalho de Conclusao de Curso de Ciˆencia da Computacao intitulado Um es tudo de caso sobre uso de processamento de dados distribuıdos por meio da ferramenta citus de autoria de Vinıcius Medeiros Wanderley aprovada pela banca examinadora constituıda pelos seguintes professores Prof Dr Nome do Professor A Instituicao do Professor A Prof Dr Nome do Professor B Instituicao do Professor B Prof Dr Nome do Professor C Instituicao do Professor C Coordenadora do Departamento Computacao Cientıfica Leandro Carlos de Souza CIUFPB Joao Pessoa 9 de dezembro de 2022 Centro de Informatica Universidade Federal da Paraıba Rua dos Escoteiros Mangabeira VII Joao Pessoa Paraıba Brasil CEP 58058600 Fone 55 83 3216 7093 Fax 55 83 3216 7117 A epígrafe é opcional DEDICATORIA A dedicatoria e opcional AGRADECIMENTOS O agradecimento e opcional RESUMO A partir do ano de 2007 foi implementado no Brasil o Sistema Publico de Escri turacao Digital em empresas do setor privado e tambem em instituicoes publicas do governo responsaveis pela fiscalizacao e controle dessas atividades como os fiscos mu nicipais e estaduais e a propria Receita Federal Nesta conjuntura apesar da agilidade no monitoramento dos fiscos e economicidade o grande volume de dados armazenados a partir da notas fiscais eletrˆonicas impulsionou a necessidade do desenvolvimento de novas tecnologias para analise e monitoramento de modo eficiente Desta forma neste trabalho foi conduzido um estudo para avaliar o desempenho do tempo execucao da ferramente citus em comparacao com a PostgreSQL ambas executada por um benchmark de consultas Palavraschave Desempenho Notas fiscais eletrˆonicas benchmark ABSTRACT From 2007 the System was implemented in Brazil Public of Digital Bookkeeping in companies of the private sector and in public institutions of the government responsible for the inspection and control of these activities as the municipal and state tax authorities and the Federal Revenue Service itself At this juncture despite the agility in monitoring tax authorities and cost effectiveness the large volume of data stored from electronic invoices boosted the need to develop new technologies for analysis and monitoring efficiently Thus in this work a study evaluated the execution time performance of the citus tool compared with PostgreSQL both executed by a query benchmark Keywords Performance electronic invoices benchmark LISTA DE FIGURAS 1 Fluxograma operacional da NFe 20 2 Fluxograma dos cenarios de 1 3 e 6 nos 38 LISTA DE TABELAS 1 Informacoes Bases de Dados 37 2 Resultados para o tempo de execucao para uma pequena amostra 40 3 Estatistica descritiva do tempo de execucao para uma pequena amostra 43 4 Comparacao de tecnologias 43 LISTA DE ABREVIATURAS SPED Sistema Publico de Escrituracao Digital ECD Escrituracao Contabil Digital FCONT Controle Fiscal Contabil de Transicao NFe Nota Fiscal Eletrˆonica CTe Conhecimento de Transporte eletrˆonico NFSe Nota Fiscal de Servicos Eletrˆonica Sumario 1 INTRODUC AO 15 11 Problema 15 12 Objetivos 16 121 Objetivos especıficos 16 2 FUNDAMENTAC AO TEORICA 17 21 Escrituracao Contabil Digital ECD 17 211 Escrituracao contabil digital ECD 18 212 Escrituracao contabil fiscal ECF 18 213 Nota fiscal eletrˆonica NFe 18 214 Nota Fiscal de Servicos Eletrˆonicos NFSe 20 215 eSocial 20 22 Gerenciamento de banco de dados 21 23 Citus 23 24 Processamento de dados distribuıdos 24 241 Armazenamento de dados em sistemas distribuıdos 25 242 Benchmarking 25 3 MATERIAIS E METODOS 27 31 Ambiente dos Experimentos 27 32 Modelo de banco de dados 27 33 Deploy banco de dados 32 331 Postgres SingleNode 33 332 Postgres Citus 33 34 Base de Dados 37 35 Descricao dos Cenarios 37 36 Metrica de Avaliacao 38 361 Benchmark de Consulta 39 13 4 RESULTADOS E DISCUSSAO 40 5 CONSIDERAC OES FINAIS 44 APˆENDICES 1 Recorte do codigo para Benchmark de Consulta 47 14 1 INTRODUC AO Com a avanco das tecnologias e com a quantidade de informacoes que sao geradas diariamente os bancos de dados e os sistemas de bancos de dados tornaramse componentes essenciais no cotidiano da sociedade moderna Com isso a necessidade de analise de um grande volume de dados tem feito com que o termo Big Data se popularize necessitando portanto de estudos direcionados para tal Neste contexto um conjunto massivo de dados que nos ultimos anos tem chamado atencao da comunidade cientıfica e o chamado Sistema Publico de Escrituracao Digital SPED Este e um sistema composto por uma serie de subprojetos SPED Contabil ECD Escrituracao Contabil Digital FCONT Controle Fiscal Contabil de Transicao SPED Fiscal Escrituracao Fiscal Digital das Contribuicoes incidentes sobre a Receita EFD Contribuicoes Nota Fiscal Eletrˆonica NFe Conhecimento de Transporte eletrˆonico CTe e Nota Fiscal de Servicos Eletrˆonica NFSe Estas bases de dados geram um grande volume de dados que cresce de forma muito rapida ocasionando o acumulo de informacoes nos mais variados bancos de dados Diante disso surge a necessidade do desenvolvimento de modelos de tecnologias capazes de realizar o processamento de forma agil e eficiente Nesta conjuntura de acordo com os achados de Santos et al 2021 um modelo de dados trata de uma colecao de conceitos que podem ser utilizados para descrever um conjunto de dados e operacoes para manipulalos podendo ser classificados em funcao da etapa de desenvolvimento do projeto em banco de dados em que o modelo e utilizado e quanto a sua flexibilidade e poder de expressao Diante disso a proposta deste trabalho e utilizar a base de dados das NFe para avaliar o desempenho e a performance da ferramenta citus para o processamento da base de dados com relacao ao PostgreSQL A vista disso ficou estabelecida o seguinte problema de pesquisa 11 Problema O processamento de dados distribuıdos utilizando a ferramenta citus e mais eficiente para o gerenciamento de notas fiscais do que um postgres standalone Portanto buscaremos responder nosso problema de pesquisas estabelecendo como objetivos 15 12 Objetivos O objetivo deste trabalho e propor melhorias ao sistema de gerenciamento de notas fiscais da SEFAZPB Secretaria da Fazenda Paraıba atraves da utilizacao da ferramenta citus 121 Objetivos especıficos Para alcancarmos o objetivo geral sao propostos os seguintes objetivos especıficos 1 Propor um modelo de banco de dados adequado 2 Implementacao do banco de dados utilizando o mecanismo distribuıdo de codigo aberto para PostgreSQL Citus 3 Definir um conjunto de consultas que sera utilizado no estudo 4 Conduzir um experimento de benchmarking com ˆenfase na funcionalidade de sharding fragmentacao dos dados Dito isto o trabalho esta organizado em cinco capıtulos incluindo este de introducao O capitulo 2 foi destinado para apresentar a fundamentacao teorica destacando alguns dos principais conceitos suas caracterısticas e as NFe que nortearao o desenvolvimento do trabalho No capıtulo 3 e apresento os aspectos metodologicos utilizados na construcao da proposta No capıtulo 4 sao apresentados os resultados e discussoes e o capıtulo e destinado para consideracoes finais Ainda e organizado um Apˆendice para disponibilizar um recorte do codigo utilizado para o Benchmark de Consulta 16 2 FUNDAMENTAC AO TEORICA Nesta secao abrimos espaco para apresentar o suporte teorico que sustentarao o desenvolvimento deste trabalho 21 Escrituracao Contabil Digital ECD Nos ultimos anos devido ao avanco tecnologico e a necessidade de melhorias nas administracoes tributarias foram implementadas uma serie de mudancas Dentre estas mudancas destacamos a implantacao do Sistemas Publico de Escrituracao Digital SPED instituıdo pelo Decreto nº 6022 de 22 de janeiro de 2007 disponıvel em Brasil 2007 O SPED tem como principal objetivo integrar os fiscos por uma padronizacao e compartilhamento de informacoes contabeis e fiscais Desta forma Brasil 2007 define o SPED como instrumento que unifica as atividades de recepcao validacao armazenamento e autenticacao de livros e documentos que integram a escrituracao comercial e fiscal dos empresarios e das sociedades empresarias mediante fluxo unico computadorizado de informacoes Ademais de acordo com Santos et al 2021 ao pesquisar no portal da Receita Federal do Brasil RFB o SPED apresenta como objetivos especıficos uniformizar as obrigacoes acessorias para os contribuintes com o estabelecimento de transmissao unica de distintas obrigacoes acessorias de diferentes orgaos fiscalizadores tornar mais celere a identificacao de ilıcitos tributarios com a melhoria do controle dos processos a rapidez no acesso as informacoes e a fiscalizacao mais efetiva das operacoes com o cruzamento de dados e auditoria eletrˆonica Diante disso de acordo com Manoel et al 2011 dentre os diversos benefıcios do SPED para os contribuintes de fato consiste na uniformizacao de informacoes prestadas aos diversos entes governamentais na reducao do envolvimento involuntario em praticas fraudulentas e na diminuicao da burocracia improdutiva Ainda segundo o autor vale destacar que com a implantacao do SPED temse a economia com papel e preservacao do meio ambiente a diminuicao de tempo despendido para o registro aceleracao no processo de fiscalizacao e fortalecimento do controle melhoria na qualidade da informacao e disponibilidade de copias autˆenticas para usos distintos e concomitantes Posto isto o SPED conta com diversos subprojetos de universo de atuacao para auxiliar o fisco Entre os principais estao a Escrituracao contabil digital ECD a Escrituracao contabil fiscal ECF a Nota fiscal eletrˆonica NFe a Nota fiscal de servico eletrˆonica NFSe e o eSocial que e a unificacao de prestacao de informacoes referente a escrituracao das obrigacoes fiscais previdenciarias e trabalhistas 17 211 Escrituracao contabil digital ECD A escrituracao contabil foi definida como sendo todos os registros contabeis de uma empresa em um determinado perıodo assim as informacoes sejam uteis ao fisco aos diretores e para uma melhor tomada de decisoes Desta forma de acordo com Assuncao e Carvalho 2018 a ECD tem por objetivo a substituicao da escrituracao manuscrita pela escrituracao transmitida via arquivo ou seja corresponde a obrigacao de transferir em versao digital os livros contabeis Neste contexto Manoel et al 2011 argumente que a ECD propoe a exemplificar e agilizar o acesso as informacoes das empresas em uma eventual fiscalizacao sendo composta segundo o autor pelo Termo de abertura e encerramento o Livro diario o Livro razao o Balanco patrimonial a Demonstracao do resultado do exercıcio e as Demais demonstracoes auxiliares obrigatorias as empresas Diante disso tal qual destaca Santos et al 2021 com implementacao da ECD a empresa nao necessita realizar a impressao de diarios balancos e outros demonstrativos visto que este gera um arquivo digital padronizado que e assinado atraves do certificado digital do contador e dos representantes legais da empresa perante a Junta Comercial 212 Escrituracao contabil fiscal ECF De acordo com Tsukamoto et al 2019 a Escrituracao Contabil Fiscal ECF teve o seu inıcio no exercıcio de 2015 instituıda pela Instrucao Normativa nº 1422 de 2013 tendo como principal objetivo interligar os dados contabeis e fiscais entao relacionados a apuracao do Imposto de Renda e da Contribuicao Social consistindo basicamente no transporte de todos os valores apurados nestes dois tipos de tributos especıficos Ademais segundo Santos et al 2021 a ECF necessita ser validada atraves de assinatura digital do representante legal da empresa O autor ainda destaca que os seguintes livros sao contemplados nesta escrituracao o Registro de Entradas o Registro de Saıdas o Registro de Inventario o Registro de Apuracao do Imposto sobre Produtos Industrializados IPI e o Registro de Apuracao do ICMS 213 Nota fiscal eletrˆonica NFe A Nota fiscal eletrˆonica tal qual sua conceituacao disponıvel no Portal Publico de Escrituracao Digital Portal 2022 e um projeto que foi desenvolvido de forma integrada pelas Secretarias de Fazenda dos Estados e Receita Federal do Brasil a partir da assinatura do Protocolo ENAT 032005 de 27082005 que atribuiu ao Encontro Nacional de Coordenadores e Administradores Tributarios Estaduais ENCAT a coordenacao e a responsabilidade pelo desenvolvimento e implantacao do Projeto NFe Desta forma para 18 Portal 2022 o projeto das NFes agrega os seguintes benefıcios e vantagens as partes envolvidas 1 Aumento na confiabilidade da Nota Fiscal 2 Melhoria no processo de controle fiscal possibilitando um melhor intercˆambio e compartilhamento de informacoes entre os fiscos 3 Reducao de custos no processo de controle das notas fiscais capturadas pela fisca lizacao de mercadorias em trˆansito 4 Diminuicao da sonegacao e aumento da arrecadacao Suporte aos projetos de es crituracao eletrˆonica contabil e fiscal da Receita Federal e demais Secretarias de Fazendas Estaduais 5 Fortalecimento da integracao entre os fiscos facilitando a fiscalizacao realizada pelas Administracoes Tributarias devido ao compartilhamento das informacoes das NFe 6 Rapidez no acesso as informacoes 7 Eliminacao do papel 8 Aumento da produtividade da auditoria atraves da eliminacao dos passos para coleta dos arquivos 9 Possibilidade do cruzamento eletrˆonico de informacoes De acordo com Santos et al 2021 o conceito de nota fiscal passou por constantes evolucao desde a decada de 70 Segundo o autor anteriormente as notas fiscais eram emitidas de forma manual ou atraves da maquina mecanografica de escrever evoluindo pra os dias atuais no qual sua emissao realizada de forma eletrˆonica por meio de impressora gracas aos avancos tecnologicos Portanto a NFe e um documento gerado e emitido de modo eletrˆonico cujo objetivo e documentar as operacoes e prestacoes cujas validade jurıdica e garantida pela assinatura digital do emitente juntamente com a autorizacao de uso pela administracao tributaria da unidade federada Desta feita no trabalho Santos et al 2021 e apresentado um fluxograma operacio nal quando da emissao da NFe ver Figura 1 A Figura 1 detalhado o caminho seguido apos a emissao da NFe quais sao a geracao de dados o armazenamento a determinacao dos agentes e responsabilidades envolvidas assim como dos aspectos relacionados a integridade e a contingˆencia do processo Maiores detalhes consultar Santos et al 2021 p17 19 Figura 1 Fluxograma operacional da NFe Fonte Adaptada de Santos et al 2021 214 Nota Fiscal de Servicos Eletrˆonicos NFSe A Nota Fiscal de Servicos Eletrˆonica NFSe segundo Portal 2022 e um documento de existˆencia digital gerado e armazenado eletronicamente em Ambiente Nacional pela RFB pela prefeitura ou por outra entidade conveniada para documentar as operacoes de prestacao de servicos Desta forma de acordo com o Sistema Publico de Escrituracao Digital o projeto da NFSe tem como objetivo beneficiar as administracoes tributarias padronizando e melhorando a qualidade das informacoes racionalizando os custos e gerando maior eficacia bem como o aumento da competitividade das empresas brasileiras pela racionalizacao das obrigacoes acessorias reducao do custoBrasil em especial a dispensa da emissao e guarda de documentos em papel O leitor interessado em maiores detalhes podera consultar o portal do Sistema Publico de Escrituracao Digita disponıvel em Portal 2022 215 eSocial O Sistema de Escrituracao Digital das Obrigacoes Fiscais Previdenciarias e Tra balhistas eSocial foi instituıdo pelo Decreto n0 83732014 O objetivo do sistema e permitir a comunicacao direta dos empregadores com o Governo de forma unificada as informacoes relativas aos trabalhadores como vınculos contribuicoes previdenciarias folha de pagamento comunicacoes de acidente de trabalho aviso previo escrituracoes fiscais e informacoes sobre o FGTS De acordo com Portal 2022 a implantacao do eSocial viabilizara garantia aos diretos previdenciarios e trabalhistas racionalizara e simplificara o cumprimento de 20 obrigacoes eliminara a redundˆancia nas informacoes prestadas pelas pessoas fısicas e jurıdicas e aprimorara a qualidade das informacoes das relacoes de trabalho previdenciarias e tributarias A legislacao prevˆe ainda tratamento diferenciado as micro e pequenas empresas 22 Gerenciamento de banco de dados Os bancos de dados e os sistemas de bancos de dados se tornaram componentes essenciais no cotidiano da sociedade moderna Assim de acordo com Ramakrishnan e Gehrke 2008 os Sistemas de Gerenciamento de Banco de Dados SGBD sao uma ferramenta indispensavel para gerenciar informacoes No tocando ao conceito de banco de dados segundo o autor hora citado e uma colecao de dados que tipicamente descreve as atividades de uma ou mais organizacoes relacionadas Por outro lado um sistema de gerenciamento de banco de dados ou SGBD para Ramakrishnan e Gehrke 2008 e um software projetado para auxiliar a manutencao e utilizacao de vastos conjuntos de dados O autor destaca que a necessidade de tais sistemas assim como seu uso tem crescido rapidamente Assim uma alternativa para nao se usar um SGBD e armazenar os dados em arquivos e escrever codigo especıfico do aplicativo para gerencialos Similarmente Santos et al 2021 define o SGBD como uma colecao de programas que tem como funcao o gerenciamento da estrutura de um banco de dados e controle ao acesso dos dados armazenados Para o autor o SGBD serve como intermediario entre o usuario e o banco de dados Ainda o autor destaca que sua estrutura e armazenada como um conjunto de arquivos e a unica forma de se ter acesso a esses arquivos e por intermedio do SGBD Com isso em uma perspectiva historica Ramakrishnan e Gehrke 2008 traz O primeiro SGBD de proposito geral projetado por Charles Bachman na General Electric no inıcio da decada de 1960 foi chamado Deposito de Dados Integrados Integrated Data Store Ele constituiu a base do modelo de dados de rede que foi padronizado pela Conference on Data Systems Languages CODASYL e influenciou bastante os sistemas de banco de dados na decada de 1960 Bachman foi o primeiro a ser contemplado pelo Prˆemio Turing da ACM o equivalente ao Prˆemio Nobel na Ciˆencia da Computacao pelo trabalho na area de banco de dados ele recebeu o prˆemio em 1973 No final da decada de 1960 a IBM desenvolveu o SGBD Sistema de Gerencia mento de Informacao IMS Information Management System ainda usado atualmente em diversas instalacoes O IMS constituiu a base da estrutura de representacao alternativa de dados chamada modelo de dados hierarquico O sistema SABRE para reservas de passagens aereas foi desenvolvido em conjunto pela American Airlines e pela IBM nessa mesma epoca e permitiu que diversas pessoas acessassem os mesmos dados atraves de uma rede de computadores Interessante observar que atualmente o mesmo sistema SABRE e utilizado para fornecer servicos populares de viagens baseados na Web tais como o Travelocity RAMAKRISHNAN GEHRKE 2008 21 Assim notadamente nao e recente o emprego dos SGBDs portanto estudos indicam que sua utilizacao trazem inumeras para gerenciamento de dados dentre as quais Ramakrishnan e Gehrke 2008 destaca 1 Independˆencia de Dados Os programas aplicativos nao devem idealmente ser expostos aos detalhes de representacao e armazenamento de dados O SGBD provˆe uma visao abstrata dos dados que oculta tais detalhes 2 Acesso Eficiente aos Dados Um SGBD utiliza uma variedade de tecnicas sofisti cadas para armazenar e recuperar dados eficientemente Este recurso e especialmente importante se os dados sao armazenados em dispositivos de armazenamento externos 3 Integridade e Seguranca dos Dados Se os dados sao sempre acessados atraves do SGBD ele pode forcar restricoes de integridade Por exemplo antes de inserir informacoes sobre o salario de um funcionario o SGBD pode verificar se o orcamento do departamento nao esta se excedendo Alem disso ele pode forcar controles de acesso que governam quais dados estao visıveis a diferentes classes de usuarios 4 Administracao de Dados Quando diversos usuarios compartilham dados centra lizar a administracao dos dados pode oferecer melhorias significativas Profissionais experientes que compreendem a natureza dos dados sendo gerenciados e como os diferentes grupos de usuarios os utilizam podem ser responsaveis por organizar a representacao dos dados para minimizar a redundˆancia e para realizar as sintonizacoes finas do armazenamento dos dados para garantir uma eficiente recuperacao 5 Acesso Concorrente e Recuperacao de Falha Um SGBD planeja o acesso concorrente aos dados de maneira tal que os usuarios podem achar que os dados estao sendo acessados por apenas um unico usuario de cada vez Alem disso o SGBD protege os usuarios dos efeitos de falhas de sistema 6 Tempo Reduzido de Desenvolvimento de Aplicativo O SGBD suporta funcoes importantes que sao comuns a varios aplicativos que acessam os dados no SGBD Isso em conjunto com uma interface de alto nıvel aos dados facilita o desenvolvimento rapido de aplicativos Os aplicativos de SGBD tendem a ser mais robustos do que os aplicativos similares independentes porque muitas tarefas importantes sao tratadas pelo SGBD e nao precisam ser depuradas e testadas no aplicativo Portanto segundo SANTOS et al 2021 a importˆancia de um SGBD entre as aplicacoes do usuario final e o banco de dados pode ser notada quando se analisa as melhorias que um SGBD oferece como o fato dele permitir que os dados no banco sejam compartilhados por diversas aplicacoes e usuarios Para o autor outro benefıcio desse 22 sistema se da pelo fato dele ter a capacidade de integrar visualizacoes muito diferentes dos usuarios sobre os dados em um unico repositorio que engloba tudo O autor ainda destaca que os dados constituem a materiaprima a partir da qual as informacoes sao obtidas e necessario um bom metodo para gerencialo 23 Citus De acordo com sua documentacao Data 2022 e uma extensao do Postgres dis tribuıda para dados e consultas em um cluster de varias maquinas Com isso segundo seu documento o Citus disponibiliza novos recursos aos usuarios de modo que sejam mantida as ferramentas do PostgreSQL e respaldando que O Citus escala o PostgreSQL horizontalmente em varias maquinas usando fragmentacao e replicacao Seu mecanismo de consulta paraleliza as consultas SQL recebidas nesses servidores para permitir respostas humanas em tempo real menos de um segundo em grandes conjuntos de dados DATA 2022 O PostgreSQL segundo a literatura e um dos sistemas de gerenciamento de banco de dados de codigo aberto mais populares Desta forma de acordo com CUBUKCU et al 2021 o PostgreSQL e um sistema versatil e usado em diferentes diversas areas como na industria na fısica de partıculas e bancos de dados geoespaciais O autor ainda destaca que dada sua sua extensibilidade permite aos desenvolvedores adicionar novas funcionalidades de banco de dados sem se separar do projeto original Como isso para o autor muitas empresas aproveitaram a rica funcionalidade e o ecossistema do PostgreSQL para criar aplicativos avancados e bemsucedidos concluindo que foi criado uma demanda significativa para o PostgreSQL escalar alem de um unico servidor Dito isto imperioso destacar que O Citus e o primeiro banco de dados distribuıdo que oferece sua funcionalidade por meio das APIs de extensao do PostgreSQL As APIs de extensao fornecem controle suficiente sobre o comportamento do PostgreSQL para integrar uma camada de fragmentacao um planejador e executor de consulta distribuıdo e transacoes distribuıdas de forma transparente para o aplicativo Ser uma extensao permite que o Citus mantenha a compatibilidade com os recursos e fer ramentas mais recentes do PostgreSQL a um custo de engenharia insignificante Alem disso o Citus distribui dados em redes regulares servidores PostgreSQL e envia consultas sobre o PostgreSQL regular protocolo Isso significa que o Citus pode utilizar todo o acesso a dados e recursos de armazenamento oferecidos pelos servidores PostgreSQL subjacentes incluindo recursos avancados como JSONB juncoes laterais GiST ındices tipos de array e outras extensoesCUBUKCU et al 2021 Ademais tal qual e destaque no trabalho de Gkamas et al 2022 o Citus distribui dados e consultas em varios nos em um cluster transformando o PostgreSQL em um 23 DBMS distribuıdo aprimorado com recursos como sharding replicacao um mecanismo SQL distribuıdo e tabelas de referˆencia e distribuıdas Contudo para o autor embora o Citus estenda o PostgreSQL com funcionalidade distribuıda nao e uma substituicao que escale todas as cargas de trabalho Assim um cluster Citus de alto desempenho envolve considerar o modelo de dados as ferramentas e a escolha dos recursos SQL a serem usados Alem disso o Citus nao e suportado nativamente pelo PostgreSQL e requer a instalacao de bibliotecas adicionais Destarte outras extensoes uteis sao PostgreSQL pgstatstatements que rastreia estatısticas sobre as consultas executadas por um banco de dados PostgreSQL e PostGIS que estende o PostgreSQL para lidar com dados espaciais e tipos de dados tambem suportando objetos separados geograficamente 24 Processamento de dados distribuıdos E facil encontrar na literatura argumentos que definem um sistema de banco de dados distribuıdo BDD como uma relacao de nos cada qual podendo participar na execucao de transacoes que acessam dados em um ou mais nos Desta forma para Ramakrishnan e Gehrke 2008 em um sistema de banco de dados distribuıdo os dados sao armazenados em varios sites e normalmente cada site e gerenciado por um Sistema de Gerenciamento de Banco de Dados SGBD executado independentemente dos outros sites Para o autor visao classica de um sistema de banco de dados distribuıdo e que o sistema deve tornar o impacto da distribuicao dos dados transparente Com isso segundo o autor por hora citado se os dados sao distribuıdos mas todos os servidores executam o mesmo software de SGBD temos um sistema de banco de dados distribuıdo homogˆeneo Se diferentes sites sao executados sob o controle de diferentes SGBDs de forma basicamente autˆonoma e sao conectados que de algum modo permita o acesso aos dados a partir de varios sites temos um sistema de banco de dados distribuıdo heterogˆeneo tambem referido como sistema de multiplos bancos de dados multidatabase Desta feita o autor Ramakrishnan e Gehrke 2008 define trˆes estrategias como alternativas para separar funcionalidade entre diferentes processos relacionados ao SGBD quais sao clienteservidor servidor colaborador e middleware Tais funcionalidade sao definidas pelo autor como segue 1 Clienteservidor O sistema clienteservidor tem um ou mais processos clientes e um ou mais processos servidores e um processo cliente pode enviar uma consulta para qualquer processo servidor Os clientes sao responsaveis por questoes da interface com o usuario e os servidores gerenciam dados e executam transacoes Assim um processo cliente poderia ser executado em um computador pessoal e enviar consultas para um servidor sendo executado em um computador de grande porte 24 2 Servidor colaborador A arquitetura clienteservidor nao permite que uma unica consulta abranja varios servidores pois o processo cliente teria de ser capaz de subdividir tal consulta nas subconsultas apropriadas para serem executadas em diferentes sites e depois reunir as respostas das subconsultas Portanto o processo cliente seria muito complexo e seus recursos comecariam a se sobrepor ao servidor tornase mais difıcil distinguir entre clientes e servidores A eliminacao dessa distincao nos leva a uma alternativa para a arquitetura clienteservidor um sistema de servidor colaborador 3 Middleware A arquitetura middleware e projetada para permitir que uma unica consulta abranja varios servidores sem exigir que todos os servidores de banco de dados sejam capazes de gerenciar tais estrategias de execucao em varios sites Ela e particularmente atraente ao se tentar integrar varios sistemas legados cujos recursos basicos nao podem ser estendidos 241 Armazenamento de dados em sistemas distribuıdos E sabido que em um SGBD distribuıdo as relacoes sao armazenadas em varios sites Assim de acordo com Ramakrishnan e Gehrke 2008 o acesso a uma relacao armazenada em um site remoto acarreta custos de passagem de mensagem e para reduzir essa sobrecarga uma unica relacao pode ser particionada ou fragmentada entre varios sites com os fragmentos armazenados nos sites onde sao mais frequentemente acessados ou replicados em cada site onde a relacao tem alta demanda Para o autor a fragmentacao consiste em subdividir uma relacao em relacoes menores ou fragmentos e armazenar os fragmentos em vez da relacao em si possivelmente em diferentes sites Ademais os fragmentos podem ser horizontais ou verticais Na fragmentacao horizontal segundo o autor por hora citado cada fragmento consiste em um subconjunto de linhas da relacao original enquanto que na fragmentacao vertical cada fragmento consiste em um subconjunto de colunas da relacao original Diante disso e possıvel realizar uma replicacao que significa armazenar varias copias de uma relacao ou fragmento de relacao sendo que uma relacao inteira pode ser replicada em um ou mais sites Analogamente um ou mais fragmentos de uma relacao podem ser replicados em outros sites 242 Benchmarking A ideia central do Benchmarking e comparar o desempenho de uma processo Desta forma sao varios os trabalhos disponıveis na literatura que abordam tal metodologia No trabalho de Santos et al 2021 os autores utilizaram um benchmark de consulta com a 25 finalidade de mensurar o desempenho dos SGBDs adotando como metrica de avaliacao o tempo de resposta das consultas No trabalho de Tardıo et al 2020 foi abordado foi apresentado um modelo de benchmark para o ecossistema de Big Data com solucoes para a construcao do cubo OLAP tirando proveito de tecnicas de preagregacao de dados para projetar modelos analıticos para Big Data OLAP Em Funke et al 2011 e apresentado um um modelo hıbrido de benchmark para o processamento em tempo real em ambientes de BI Business Intelligence Por outro lado Azzini et al 2019 implementou um modelo relacional usando o MySQL e um modelo grafico foi efetivado por meio do Neo4j com o objetivo de comparar consultas OLAP em banco de dados relacionais e graficos contendo a mesma amostra de dados 26 3 MATERIAIS E METODOS Este Capıtulo e destinado a apresentar os aspectos metodologicos que nortearam a construcao deste trabalho Assim a proposta foi conduzida realizando um benchmarking entre um cluster citus com 3n nos particularmente consideramos n 1 e 2 e uma maquina rodando o postgres standalone Para tanto fazse necessario inicialmente preparar um ambiente de experimentos e definir um modelo de banco de dados adequado para tal Por fim sera feito o deploy do banco de dados considerando uma standalone 1 no versus cluster citus 3n nos 31 Ambiente dos Experimentos Para realizacao dos experimentos dado o ambiente de execucao foi definida a base do banco de dados bem como os prerequisitos da maquina de hospedagem Com isso escolhese como base de dados a NFe pertencente ao orgao da Secretaria de Estado da Fazenda da Paraıba SEFAZPB Sua escolha justificase pela confiabilidade dos documentos apresentados Dada as definicoes iniciais entao para alocacao da base de dados em ambos bancos de dados foram utilizadas 7 maquinas virtuais idˆenticas cada uma com um disco rıgido de 500GB configuradas no Sistema Operacional Linux Debian 11 com 2GB de memoria RAM e processador DualCore Todos os testes de consultas foram realizados da mesma forma 32 Modelo de banco de dados Considerando que o tipo comumente utilizado como documento fiscal na base de dados da SEFAZPB foram criadas duas tabelas de armazenamento de dados o fatonfe e fatoitemnfe para armazenar os fator gerador da NFe e seus itens respectivamente Um recorte das propriedades para fatonfe e fatoitemnfe sao apresentados na listas de codigos que segue 1 CREATE TABLE fatonfe 2 idfatonfe BIGSERIAL NOT NULL 3 infProtchNFe char44 PRIMARY KEY 4 infNFesqn bigint NOT NULL 5 informixstnfeletronica char1 NOT NULL DEFAULT A 6 informixdhconexao varchar NULL 7 informixnriptransmissor varchar NULL 8 informixnrportacon int4 NULL 9 infNFeide character varying 27 10 infNFeidecUF integer 11 infNFeidecNF character varying 12 infNFeidenatOp character varying 13 infNFeidemod integer infNFeideserie character varying 14 infNFeidenNF character varying 15 infNFeidedhEmi timestamp with time zone 16 infNFeidedhSaiEnt timestamp with time zone 17 infNFeidetpNF integer 18 infNFeideidDest integer 19 infNFeidecMunFG character varying 20 infNFeidetpImp integer 21 infNFeidetpEmis integer 22 infNFeidecDV integer 23 infNFeidetpAmb integer 24 infNFeidefinNFe integer 25 infNFeideindFinal integer 26 infNFeideindPres integer 27 infNFeideprocEmi integer 28 infNFeideverProc character varying 29 infNFeemitCNPJ char14 30 infNFeemitCPF char11 31 infNFeemitxNome character varying 32 infNFeemitxFant character varying 33 infNFeemitenderEmitxLgr character varying 34 infNFeemitenderEmitnro character varying 35 infNFeemitenderEmitxCpl character varying 36 infNFeemitenderEmitxBairro character varying 37 infNFeemitenderEmitcMun character varying 38 infNFeemitenderEmitxMun character varying 39 infNFeemitenderEmitUF character varying 40 infNFeemitenderEmitCEP character varying 41 infNFeemitenderEmitcPais character varying 42 infNFeemitenderEmitxPais character varying 43 infNFeemitenderEmitfone character varying 44 infNFeemitIE character varying 45 infNFeemitIEST character varying 46 infNFeemitIM character varying 47 infNFeemitCNAE character varying 48 infNFeemitCRT character varying 49 infNFedestCNPJ char14 50 infNFedestCPF char11 51 infNFedestidEstrangeiro character varying 52 infNFedestxNome character varying 53 infNFedestenderDestxLgr character varying 54 infNFedestenderDestnro character varying 55 infNFedestenderDestxCpl character varying 56 infNFedestenderDestxBairro character varying 57 infNFedestenderDestcMun character varying 28 58 infNFedestenderDestxMun character varying 59 infNFedestenderDestUF character varying 60 infNFedestenderDestCEP character varying 61 infNFedestenderDestcPais character varying 62 infNFedestenderDestxPais character varying 63 infNFedestenderDestfone character varying 64 infNFedestindIEDest character varying 65 infNFedestIE character varying 66 infNFedestISUF character varying 67 infNFedestIM character varying 68 infNFedestemail character varying 69 infNFetotalICMSTotvBC numeric162 70 infNFetotalICMSTotvICMS numeric162 71 infNFetotalICMSTotvICMSDeson numeric162 72 infNFetotalICMSTotvFCPUFDest numeric162 73 infNFetotalICMSTotvICMSUFDest numeric162 74 infNFetotalICMSTotvICMSUFRemet numeric162 75 infNFetotalICMSTotvFCP numeric162 76 infNFetotalICMSTotvBCST numeric162 77 infNFetotalICMSTotvST numeric162 78 infNFetotalICMSTotvFCPST numeric162 79 infNFetotalICMSTotvFCPSTRet numeric162 80 infNFetotalICMSTotvProd numeric162 81 infNFetotalICMSTotvFrete numeric162 82 infNFetotalICMSTotvSeg numeric162 83 infNFetotalICMSTotvDesc numeric162 84 infNFetotalICMSTotvII numeric162 85 infNFetotalICMSTotvIPI numeric162 86 infNFetotalICMSTotvPIS numeric162 87 infNFetotalICMSTotvCOFINS numeric162 88 infNFetotalICMSTotvOutro numeric162 89 infNFetotalICMSTotvNF numeric162 90 infNFetotalICMSTotvTotTrib numeric162 91 infNFetranspmodfrete character varying1 92 infNFetranspvagao character varying20 93 infNFetranspbalsa character varying20 94 infNFetransptransportacnpj char14 95 infNFetransptransportacpf char11 96 infNFetransptransportaxnome character varying100 97 infNFetransptransportaie character varying 98 infNFetransptransportaxender character varying100 99 infNFetransptransportaxmun character varying100 100 infNFetransptransportauf character varying2 101 infNFetransprettranspvserv numeric162 102 infNFetransprettranspvbcret numeric162 103 infNFetransprettransppicmsret numeric162 104 infNFetransprettranspvicmsret numeric162 105 infNFetransprettranspcfop character varying 29 106 infNFetransprettranspcmunfg character varying 107 infNFetranspveictranspplaca character varying8 108 infNFetranspveictranspuf character varying2 109 infNFetranspreboque1placa character varying8 110 infNFetranspreboque1uf character varying2 111 infNFetranspreboque2placa character varying8 112 infNFetranspreboque2uf character varying2 113 infNFetranspreboque3placa character varying8 114 infNFetranspreboque3uf character varying2 115 infNFetranspreboque4placa character varying8 116 infNFetranspreboque4uf character varying2 117 infNFetranspreboque5placa character varying8 118 infNFetranspreboque5uf character varying2 119 infNFetranspvol1nVol character varying60 120 infNFetranspvol1qVol numeric162 121 infNFetranspvol1esp character varying60 122 infNFetranspvol1marca character varying60 123 infNFetranspvol1pesoL numeric162 124 infNFetranspvol1pesoB numeric162 125 infNFetranspvol1lacresnLacre character varying60 126 infNFecobrfatnFat character varying60 127 infNFecobrfatvOrig numeric162 128 infNFecobrfatvDesc numeric162 129 infNFecobrfatvLiq numeric162 130 infNFepagvTroco numeric162 131 infNFeinfAdicinfAdFisco character varying 132 infNFeinfAdicinfCpl character varying 133 infNFeinfAdicobsContxCampo character varying 134 infNFeinfAdicobsContxTexto character varying 135 1 CREATE TABLE fatoitemnfe 2 idfatoitemnfe BIGSERIAL NOT NULL 3 infProtchNFe char44 NOT NULL 4 infNFedetnItem character varying NOT NULL 5 infNFedetprodcProd character varying 6 infNFedetprodcEAN character varying 7 infNFedetprodxProd character varying 8 infNFedetprodNCM character varying 9 infNFedetprodCFOP character varying 10 infNFedetproduCom character varying 11 infNFedetprodqCom numeric162 12 infNFedetprodvUnCom numeric162 13 infNFedetprodvProd numeric162 14 infNFedetprodcEANTrib character varying 15 infNFedetproduTrib character varying 30 16 infNFedetprodqTrib numeric162 17 infNFedetprodvUnTrib numeric162 18 infnfedetprodvFrete numeric162 19 infnfedetprodvSeg numeric162 20 infNFedetprodvDesc numeric162 21 infnfedetprodvOutro numeric162 22 infNFedetprodindTot character varying 23 infnfedetprodcombcprodanp character varying 24 infnfedetprodcombdescanp character varying 25 infnfedetprodcombpglp numeric74 26 infnfedetprodcombpgnn numeric74 27 infnfedetprodcombpgni numeric74 28 infnfedetprodcombvpart character varying 29 infnfedetprodcombcodif numeric 30 infnfedetprodcombqtemp numeric 31 infnfedetprodcombufcons character varying2 32 infnfedetprodcombcideqbcprod numeric162 33 infnfedetprodcombcidevaliqprod numeric162 34 infnfedetprodcombcidevcide numeric162 35 infnfedetprodcombencerrantenbico character varying 36 infnfedetprodcombencerrantenbomba character varying 37 infnfedetprodcombencerrantentanque character varying 38 infnfedetprodcombencerrantevencini numeric162 39 infnfedetprodcombencerrantevencfin numeric162 40 infNFedetimpostovTotTrib numeric162 41 infNFedetimpostoICMSorig character varying1 42 infNFedetimpostoICMSCST character varying3 43 infNFedetimpostoICMSCSOSN character varying 44 infNFedetimpostoICMSvBCSTRet numeric162 45 infNFedetimpostoICMSpST numeric162 46 infNFedetimpostoICMSvICMSSubstituto numeric162 47 infNFedetimpostoICMSvICMSSTRet numeric162 48 infNFedetimpostoICMSvBCFCPSTRet numeric162 49 infNFedetimpostoICMSpFCPSTRet numeric162 50 infNFedetimpostoICMSvFCPSTRet numeric162 51 infNFedetimpostoICMSvBCSTDest numeric162 52 infNFedetimpostoICMSvICMSSTDest numeric162 53 infNFedetimpostoICMSpRedBCEfet numeric162 54 infNFedetimpostoICMSvBCEfet numeric162 55 infNFedetimpostoICMSpICMSEfet numeric162 56 infNFedetimpostoICMSvICMSEfet numeric162 57 infNFedetimpostoICMSmodBC character varying1 58 infNFedetimpostoICMSpRedBC numeric162 59 infNFedetimpostoICMSvBC numeric162 60 infNFedetimpostoICMSpICMS numeric162 61 infNFedetimpostoICMSvICMSOp numeric162 62 infNFedetimpostoICMSpDif numeric162 63 infNFedetimpostoICMSvICMSDif numeric162 31 64 infNFedetimpostoICMSvICMS numeric162 65 infNFedetimpostoICMSvBCFCP numeric162 66 infNFedetimpostoICMSpFCP numeric162 67 infNFedetimpostoICMSvFCP numeric162 68 infNFedetimpostoICMSpFCPDif numeric162 69 infNFedetimpostoICMSvFCPDif numeric162 70 infNFedetimpostoICMSvFCPEfet numeric162 71 infNFedetimpostoICMSmodBCST character varying1 72 infNFedetimpostoICMSpMVAST numeric162 73 infNFedetimpostoICMSpRedBCST numeric162 74 infNFedetimpostoICMSvBCST numeric162 75 infNFedetimpostoICMSpICMSST numeric162 76 infNFedetimpostoICMSvICMSST numeric162 77 infNFedetimpostoICMSvBCFCPST numeric162 78 infNFedetimpostoICMSpFCPST numeric162 79 infNFedetimpostoICMSvFCPST numeric162 80 infNFedetimpostoICMSvICMSDeson numeric162 81 infNFedetimpostoICMSmotDesICMS character varying3 82 infNFedetimpostoICMSvICMSSTDeson numeric162 83 infNFedetimpostoICMSmotDesICMSST character varying3 84 infNFedetimpostoICMSpBCOp numeric162 85 infNFedetimpostoICMSUFST character varying2 86 infNFedetimpostoICMSpCredSN numeric162 87 infNFedetimpostoIIvBC numeric162 88 infNFedetimpostoIIvDespAdu numeric162 89 infNFedetimpostoIIvII numeric162 90 infNFedetimpostoIIvIOF numeric162 91 infNFedetimpostoICMSUFDestvBCUFDest numeric162 92 infNFedetimpostoICMSUFDestvBCFCPUFDest numeric162 93 infNFedetimpostoICMSUFDestpFCPUFDest numeric162 94 infNFedetimpostoICMSUFDestpICMSUFDest numeric162 95 infNFedetimpostoICMSUFDestpICMSInter character varying 96 infNFedetimpostoICMSUFDestpICMSInterPart numeric162 97 infNFedetimpostoICMSUFDestvFCPUFDest numeric162 98 infNFedetimpostoICMSUFDestvICMSUFDest numeric162 99 infNFedetimpostoICMSUFDestvICMSUFRemet numeric162 100 PRIMARY KEY infProtchNFe infNFedetnItem 101 33 Deploy banco de dados Para realizar o deploy foi utilizado o gerenciador de container docker swarm e arquivos dockercompose Ademais foram utilizados o deploy de 2 bancos de dados distintos para o Postgres SingleNode e Postgres Citus 32 331 Postgres SingleNode Considerando a exemplificacao na documentacao do dockerhub do proprio Postgres disponnıvel em hub 2022 foi utilizado para o deploy do Postgres SingleNode nas maquinas virtuais da SEFAZPB o arquivo dockercompose que segue 1 version 37 2 services 3 manager 4 image postgres 5 restart always 6 ports 7 54305432 8 volumes 9 homedebiancontrolepgdatavarlibpostgresqldata 10 homedebianamostraamostra 11 environment 12 POSTGRESPASSWORD Aiveid7n 13 TZ AmericaRecife 14 deploy 15 placement 16 constraints 17 nodehostname sefazshard0 18 Neste arquivo esta disponıvel o manual para realizacao do deploy de 1 no contendo apenas o gerente manager Sua execucao e feita pelo comando docker stack deploy c Path to a Compose file Para alem disso tambem no Postgres SingleNode sao criadas as tabelas fatonfe e fatoitemnfe Com isso o Postgres SingleNode esta configurado e os testes podem ser realizados 332 Postgres Citus Para este caso o deploy do Postgres Citus nas maquinas virtuais da SEFAZPB foi feita uma adaptacao disponıvel na documentacao acerca do Docker do proprio Citus disponıvel em data 2022 O arquivo segue abaixo 1 version 37 2 3 networks 33 4 postgisdist 5 driver overlay 6 7 volumes 8 healthcheckvolume 9 10 services 11 master 12 containername COMPOSEPROJECTNAMEcitusmaster 13 image citusdatacitus1112 14 ports COORDINATOREXTERNALPORT54325432 15 labels comcitusdataroleMaster comdockercomposeprojectcitus 16 shmsize 1gb 17 environment AUTH 18 POSTGRESUSER datalakeuser 19 POSTGRESPASSWORD EQuohG2i 20 PGUSER datalakeuser 21 PGPASSWORD EQuohG2i 22 deploy 23 placement 24 constraints 25 nodehostname sefazshard0 26 networks 27 postgisdist 28 29 manager 30 containername COMPOSEPROJECTNAMEcitusmanager 31 image citusdatamembershipmanager030 32 labels comcitusdataroleManager comdockercomposeprojectcitus 33 volumes 34 DOCKERSOCKvarrundockersockvarrundockersock 35 healthcheckvolumehealthcheck 36 dependson master 37 environment AUTH 38 deploy 39 placement 40 constraints 41 nodehostname sefazshard0 42 networks 43 postgisdist 44 45 worker1 46 containername COMPOSEPROJECTNAMEcitusworker1 47 image citusdatacitus1112 48 labels comcitusdataroleWorker comdockercomposeprojectcitus 49 shmsize 1gb 50 dependson manager 51 environment AUTH 34 52 ports 53 54815432 54 volumes 55 healthcheckvolumehealthcheck 56 homedebiancitusvarlibpostgresqldata 57 deploy 58 placement 59 constraints 60 nodehostname sefazshard1 61 networks 62 postgisdist 63 64 worker2 65 containername COMPOSEPROJECTNAMEcitusworker2 66 image citusdatacitus1112 67 labels comcitusdataroleWorker comdockercomposeprojectcitus 68 shmsize 1gb 69 dependson manager 70 environment AUTH 71 ports 72 54825432 73 volumes 74 healthcheckvolumehealthcheck 75 homedebiancitusvarlibpostgresqldata 76 deploy 77 placement 78 constraints 79 nodehostname sefazshard2 80 networks 81 postgisdist 82 83 worker3 84 containername COMPOSEPROJECTNAMEcitusworker3 85 image citusdatacitus1112 86 labels comcitusdataroleWorker comdockercomposeprojectcitus 87 shmsize 1gb 88 dependson manager 89 environment AUTH 90 ports 91 54835432 92 volumes 93 healthcheckvolumehealthcheck 94 homedebiancitusvarlibpostgresqldata 95 deploy 96 placement 97 constraints 98 nodehostname sefazshard3 99 networks 35 100 postgisdist Neste aqruivo e disponibilizado o manual para execucao do deploy de 3 nos trabalha dores worker1 worker2 e worker3 e 1 no contendo simultaneamente o gerente manager e o mestre master No caso do deploy de 6 nos trabalhadores e adicionado mais 3 novos trabalhadores seguindo o mesmo padrao ou seja e necessario alterar o service name container name e deployplacementconstraints Com isso a execucao do deploy e realizada pelo comando docker stack deploy c Path to a Compose file Por conseguinte apos o deploy do Cluster Citus ter sido bem sucedido e realizada a sincronizacao do no master com os nos workers A indicacao do no master no cluster e feita conectando o banco Postgres Citus que esta sendo executado no no master utilizando o psql e executar a consulta SQL com o comando SELECT citussetcoordinatorhostcoordexamplecom 5432 Posteriormente e conectado cada um dos nos workers ao no master Para tanto executadas ss consultas SQL 1 SELECT FROM citusaddnodeworker1 5432 2 SELECT FROM citusaddnodeworker2 5432 3 SELECT FROM citusaddnodeworker3 5432 Desta feita fazse necessario verificar se os nos estao se encontrando dentro do cluster entao portanto executase a consulta SQL SELECT FROM mastergetactiveworkernodes Abaixo destacamos um recorte quando utilizado 3 nos workers da saıda da consulta 1 nodename nodeport 2 3 worker2 5432 4 worker1 5432 5 worker3 5432 6 3 rows 36 De mais a mais e criada as tabelas fatonfe e fatoitemnfe entao a tabela fatonfe e distribuıda entre os nos workers aplicando por padrao hash na coluna infprot chnfe Sua execucao e feita pela consulta SQL SELECT createdistributedtablefatonfe infprotchnfe Ainda a partir da consulta precedente sao criados os fragmentos shards nos nos workers utilizando os valores de configuracao padrao do citus citusshardcount32 e citusshardreplicationfactor1 os quais representam a quantidade de fragmentos que devem ser criados em cada no worker e quantas replicas de cada fragmento deve ter existir respectivamente Feito isso o cluster citus esta configurado e os testes poderao ser realizados 34 Base de Dados As duas bases de dados da NFe pertencente ao orgao da Secretaria de Estado da Fazenda da Paraıba SEFAZPB utilizados neste trabalho contem na primeira base de dados aproximadamente 849 mil registros da tabela fatonfe e 42 milhoes de registros da tabela fatoitemnfe Na segunda base de dados sao aproximadamente 10 milhoes de registros da tabela fatonfe e Y milhoes de registros da tabela fatoitemnfe O tamanho das bases sao respectivamente 21GB e 11 X GB Para uma melhor visualizacao estas informacoes foram organizada na Tabela 1 Tabela 1 Informacoes Bases de Dados Base de Dados Tabela Tamanho Registros Pequena Fatonfe 08 GB 849601 Pequena Fatoitemnfe 13 GB 4230063 Grande Fatonfe 11 GB 9994158 Grande Fatoitemnfe X Y Fonte Elaborada pelo autor 2022 35 Descricao dos Cenarios Como cenarios de execucao foram utilizados Cenario 1 1 no Cenario 2 3 nos e Cenario 3 6 nos Em cada cenario existem 3 subdivisoes com base no ındice utilizado quais sao sem ındice ındice btree e ındice hash Para estas escolhas foi levado em consideracao que o btree e o padrao de ındice utilizado pelo Postgres e o hash e padrao utilizado pelo Citus para distribuir as tabela pelo cluster Desta forma a Figura 2 representa o fluxograma para cada cenario 37 Figura 2 Fluxograma dos cenarios de 1 3 e 6 nos Fonte Elaborada pelo Autor 2022 36 Metrica de Avaliacao Como metricas de metricas de avaliacao foram utilizadas a alocacao de shards por no media de consumo de memoria em cada no e media do tempo de execucao de cada 38 consulta Metricas relacionadas foram utilizadas nos trabalhos de Tardıo et al 2020 que utilizaram como metricas o tempo de construcao sucesso de construcao tamanho do Cubo latˆencia de consulta e cobertura de modelo e FILHO 2014 em que foi empregada como metrica o tempo de resposta taxas de execucao e confiabilidade 361 Benchmark de Consulta O benchmark de consulta foi empregado com o objetivo de avaliar o desempenho dos SGBDs Dessa maneira utilizamos como estrategias de implementacao o registro completo e selecao de colunas aos quais sao definidos a seguir a Registro Completo Retorna todos os campos e atributos que pertencem a consulta b Selecao de Colunas Engloba apenas um subconjunto dos campos e atributos que pertencem a consulta Sendo assim para cada uma das estrategias temse os filtros quantidade de datas e quantidade de CNPJ Estes filtros foram definidos levando em consideracao as atividades habituais dos clientes que utilizam a base de dados da SEFAZPB Ainda para cada um dos filtros existem determinados valores possıveis conforme descrito na lista abaixo Quantidade de Data 0 nenhuma data 1 apenas uma data intervalo intervalo de datas Quantidade de CNPJ 0 nenhum CNPJ 1 apenas um CNPJ LIKE padrao de CNPJ IN lista de CNPJs Outrossim destacamos que foram introduzidos mais de um intervalo de data O recorte do codigo para consulta de acordo com o apresentado na lista precedente esta disponıvel do Apˆendice 1 39 4 RESULTADOS E DISCUSSAO Finaliza a etapa da aplicacao do benchmark entao utilizando comandos especıficos do Postgres e do Docker foram extraıdos os resultados de interesse Imperioso destacar que nao foi identificado problemas ao executar os comandos do Postgres no cluster Citus isso devido ao fato do mesmo ser construıdo utilizando o Postgres como base Ademais o leitor interessado em mais detalhes sobre os comandos utilizados podera consultar a documentacao do docker stats disponıvel em stats 2022 Com relacao ao Postgres foram coletadas informacoes sobre tempo de execucao das queries ativando a flag timing e quantidade de shards em cada um dos nos No caso do lado do Docker utilizando o comando docker stats foi possıvel obter a informacoes em cada dos nos da porcentagem do uso de CPU e memoria RAM quantidade total de memoria RAM em uso e permitida quantidade de dados enviados e recebidos atraves da interface de rede quantidade de dados que foram lidos e escritos nos dispositivos de armazenamento Desta forma na Tabela 2 apresentamos um recorte dos resultados para o tempo de execucao das queries utilizando o Citus Tabela 2 Resultados para o tempo de execucao para uma pequena amostra number of connections number of workers execution time 1 execution time 2 execution time 3 1 6 1395811422 717923563 697791345 1 6 365918 297772 302315 1 6 453295 437798 453786 1 6 453241 435263 447227 1 6 272015 235115 290749 1 6 234344 280841 307159 1 6 307804 254585 255108 1 6 308778 310837 270143 1 6 1080915 1114728 111343 1 6 252683 310112 236565 1 6 257488 275521 251631 1 6 239887 270461 283869 1 6 29112293 28518704 28844431 1 6 273735 26941 269551 1 6 304879 27035 298035 1 6 270308 230989 249226 1 6 216936 254998 269651 1 6 273716 271419 309409 1 6 271952 272284 222356 1 6 260023 240843 266217 1 6 358318 305044 325275 1 6 232638 269299 243977 1 6 269499 253991 284334 1 6 24834 262046 251038 1 6 359567 223392 237865 40 number of connections number of workers execution time 1 execution time 2 execution time 3 1 6 222999 268485 221121 1 6 276565 26963 270111 1 6 226873 262967 238101 1 6 236998 269499 227982 1 6 269528 254949 270007 1 6 250001 248122 270044 1 6 23054 248965 270438 1 6 226632 276886 2408 1 6 269386 251958 257119 1 6 270362 254168 311758 1 6 251088 245987 307105 1 6 28069 223528 220471 1 6 307683 219665 267037 1 6 30768 250836 251082 1 6 307944 269528 257128 1 6 26921 260007 269784 1 6 227357 231696 269447 1 6 283715 269422 237897 1 6 277224 269055 269273 1 6 26905 255071 267049 1 6 225901 253394 269465 1 6 269673 26911 239003 1 6 274197 243976 282239 1 6 235309 250959 222895 1 6 267321 269743 228789 1 6 269626 27201 26962 1 6 269434 269554 269444 1 6 241109 233095 210226 1 6 273417 305392 314719 1 6 253063 279411 273631 1 6 253169 269391 226978 1 6 246259 237033 22593 1 6 26808 231998 239053 1 6 265881 250093 22974 1 6 272006 269495 30404 1 6 282644626 276346774 276160792 1 6 179010415 17257509 176491358 1 6 225038594 23953764 232471921 1 6 237843709 232329075 230670486 1 6 14645243 13745036 141695953 1 6 145500947 138738194 134643112 1 6 136443254 136981539 132003724 1 6 139621104 134498543 13422832 1 6 214656958 228958644 225669037 1 6 144216159 133197835 13158319 1 6 132244943 136834237 133031575 1 6 13233663 130709535 134516651 1 6 88854124 876978635 816167711 41 number of connections number of workers execution time 1 execution time 2 execution time 3 1 6 314918 217552 209508 1 6 486112 454249 490744 1 6 954797 405655 394442 1 6 19709 187489 180541 1 6 203742 235589 178485 1 6 217393 177418 218561 1 6 21905 19855 206458 1 6 1211759 1154249 1179924 1 6 223456 230995 231281 1 6 216621 188112 1948 1 6 206373 225085 196182 1 6 29983518 28900063 29021033 1 6 179588 191667 176228 1 6 272076 270052 248964 1 6 197026 225341 179955 1 6 179617 180023 17961 1 6 176836 178946 191011 1 6 182036 165833 218106 1 6 169874 20204 179564 1 6 307116 248656 245638 1 6 179785 179514 185954 1 6 219524 186882 180846 1 6 179357 190762 193081 1 6 269228 176751 180848 1 6 18229 157836 167871 1 6 307082 306564 306669 1 6 180719 198267 188222 1 6 179227 207434 192493 1 6 223365 178082 191329 1 6 218429 195008 175871 1 6 170548 191305 183578 1 6 176253 181291 18985 1 6 181441 181562 164896 1 6 177753 17138 176757 1 6 183146 179904 22041 1 6 223453 185272 187767 1 6 170916 175935 213602 1 6 271759 241322 264126 1 6 218533 177203 216273 1 6 197456 264174 179564 1 6 177067 183356 185467 1 6 177562 22051 217749 1 6 178762 173154 180109 1 6 171751 181803 180656 1 6 172716 205217 183455 1 6 190715 19253 177631 1 6 195565 182559 199149 1 6 2232 175973 180035 1 6 182721 170247 179632 1 6 269319 304302 249896 1 6 179462 161886 203214 1 6 193905 190994 183838 1 6 193786 216259 180962 1 6 172761 179236 218199 1 6 169954 225361 190848 1 6 191876 167761 216217 1 6 191533 214282 2182 1 6 197369 179492 205026 1 6 202705 180088 181752 42 number of connections number of workers execution time 1 execution time 2 execution time 3 1 6 282822749 275205097 281389468 1 6 182341225 172662873 180714217 1 6 231058631 242463773 255157691 1 6 236164523 236048032 234064049 1 6 150229008 141301172 133331323 1 6 133492991 135071088 133201411 1 6 13250689 135545258 136801216 1 6 13666081 134889479 131615767 1 6 21523691 233171967 223801252 1 6 155899046 138918491 137304306 1 6 137666622 132032068 136936886 1 6 132079968 137127696 136281044 A partir dos resultados do tempo de execucao da Tabela 2 calculamos as trˆes principais estatısticas descritivas Desta forma podemos observar que com relacao ao tempo mınimo de execucao nos trˆes casos os resultados foram similares Por outro lado quando comparado os valores maximos o primeiro tempo de execucao apresentou uma discrepˆancia consideravel com relacao aos demais Tabela 3 Estatistica descritiva do tempo de execucao para uma pequena amostra execution time 1 execution time 2 execution time 3 Mınimo 1699 1578 1649 Maximo 13958114 8769786 8161677 Mean 459458 409322 403126 Fonte Elaborada pelo autor 2022 Destarte frente aos resultados destacamos ainda as caracterısticas comparativas na Tabela 4 entre a citus e as tecnologias Postgres Greenplum e Presto disponıveis na literatura Tabela 4 Comparacao de tecnologias Caracterısticas Postgres Greenplum Citus Presto Escalabilidade horizontal F V V V Controle de acesso V V V F Gerenciamento de usuario V V V V Fragmentacao sharding V V V F Motor de SQL distribuıdo F V V V Transacoes distribuıdas F V V F Armazenamento colunar F V V V Consultas a partir de qualquer no F F V F Tabelas de referˆencia locais F V V F Tabelas distribuıdas F V V F Execucao do pipeline na memoria V F V V Aceita varias fontes de dados como entrada F F F V Deploy simplificado V F V V Flexibilidade com relacao a configuracoes V V F V API para metodos MapReduce definidos por usuarios V F 43 5 CONSIDERAC OES FINAIS E fato que com a a popularizacao de aplicacoes utilizando arquitetura distribuıda tem sido necessario pensar no tempo execucao para processar os resultados esperados pelo usuario Igualmente e importante estudos para escolhas de tecnologias de armazenamento de dados com aplicacoes imediatas Neste contexto este trabalho analisou dois conjuntos de com itens da NFe disponıvel na base de dados da Secretaria da fazenda do Estado da Paraıba SEFAZPB com o objetivo de avaliar o tempo de execucao do processamento utilizando a ferramenta citus Sendo assim para lograrmos dos resultados esperados foi utilizada a mesma estrutura de modelagem para implementacao e analise de dois conjuntos de dados contendo aproximadamente 849 mil e 42 milhoes de registros Com isso foi considerado trˆes c cenarios de execucao quais foram Cenario 1 1 no Cenario 2 3 nos e Cenario 3 6 nos Desta forma foram criados os ambientes experimentais e realizados os teste de execucao entao os resultados mostraram que para conjuntos de dados pequenos pequenos a ferramenta citus apresentou desempenho eficiente com relacao aos tempos de execucao e resposta Outrossim quando utilizado em grandes conjuntos de dados a ferramenta citus apresentou resultados levemente inferior em comparacao com PostgreSQL Contudo apesar disso imperioso destacar que esta pesquisa trouxe contribuicoes significativas para comunidade cientıfica tendo uma em a disponibilidade de uma nova ferramenta de analise de uma base de dados da NFes no ˆambito da Big Data alem da ja disponıvel PostgreSQL 44 REFERˆENCIAS ASSUNC AO T M CARVALHO M d L M Escrituracao contabil a importˆancia da escrituracao contabil para as microempresas e empresas de pequeno porte 2018 AZZINI A CERAVOLO P COLELLA M Performances of olap operations in graph and relational databases In SPRINGER International Conference on Knowledge Management in Organizations Sl 2019 p 282293 BRASIL Decreto nº 6022 de 22 de janeiro de 2007 Diario Oficial da Republica Federativa do Brasil Brasılia DF 2007 Disponıvel em httpwwwplanaltogovbr ccivil 03 ato200720102007decretod6022htm CUBUKCU U ERDOGAN O PATHAK S SANNAKKAYALA S SLOT M Citus Distributed postgresql for dataintensive applications In Proceedings of the 2021 International Conference on Management of Data Sl sn 2021 p 24902502 DATA C Citus documentation 2022 DATA citus dockercompose v 3 p httpsgithubcomcitusdatadockerblob masterdockercomposeyml 2022 FILHO B E M d A OBAS Um Benchmark OLAP Para Servicos de Analises Dissertacao Mestrado Universidade Federal de Pernambuco 2014 FUNKE F KEMPER A NEUMANN T Benchmarking hybrid oltpolap database sys tems Datenbanksysteme fur Business Technologie und Web BTW Gesellschaft fur Informatik eV 2011 GKAMAS T KARAISKOS V KONTOGIANNIS S Performance evaluation of distri buted database strategies using docker as a service for industrial iot data Application to industry 40 Information MDPI v 13 n 4 p 190 2022 HUB D The postgresql objectrelational database system provides reliability and data integrity p httpshubdockercompostgres 2022 MANOEL V OLIVEIRA C G PEREIRA A L MATA A R Escrituracao contabil digital consequˆencias benefıcios e a evolucao da profissao contabil Instituto de Ensino Superior de LondrinaINESUL Londrina 2011 PORTAL D S P D E D httpspedrfbgovbrpaginashow1328 Acessada em 03 de novembro de 2022 2022 RAMAKRISHNAN R GEHRKE J Sistemas de gerenciamento de banco de dados3 Sl AMGH Editora 2008 SANTOS D F P et al Um estudo comparativo sobre uso de modelos de dados para notas fiscais eletrˆonicas Universidade Federal da Paraıba 2021 STATS D Display a live stream of containers resource usage statistics p httpsdocsdockercomenginereferencecommandlinestats 2022 45 TARDIO R MATE A TRUJILLO J A new big data benchmark for olap cube design using data preaggregation techniques Applied Sciences MDPI v 10 n 23 p 8674 2020 TSUKAMOTO V H S et al Sistema publico de escrituracao digital spedecf escrituracao contabil fiscal lucro real lucro presumido e imunes ou isentas Universidade Federal de Mato Grosso 2019 46 APÊNDICES 1 Recorte do código para Benchmark de Consulta SELECT FROM fatonfe SELECT FROM fatonfe WHERE infNFeemitCNPJ 04116842000164 SELECT FROM fatonfe WHERE infNFeemitCNPJ LIKE 0411 SELECT FROM fatonfe WHERE infNFeemitCNPJ IN 04111338000171 04111497000176 04112204000175 04114549000168 04114868000173 04115363000123 04115428000300 04116210000109 04116842000164 04117715000180 SELECT FROM fatonfe WHERE infNFeidedhEmi 20220203 08492603 SELECT FROM fatonfe WHERE infNFeidedhEmi 20220203 08492603 AND infNFeemitCNPJ 04116842000164 SELECT FROM fatonfe WHERE infNFeidedhEmi 20220203 08492603 AND infNFeemitCNPJ LIKE 0411 SELECT FROM fatonfe WHERE infNFeidedhEmi 20220203 08492603 AND infNFeemitCNPJ IN 04111338000171 04111497000176 04112204000175 04114549000168 04114868000173 04115363000123 04115428000300 04116210000109 04116842000164 04117715000180 SELECT FROM fatonfe WHERE infNFeidedhEmi BETWEEN 20220101 AND 20220601 SELECT FROM fatonfe WHERE infNFeemitCNPJ 04116842000164 AND infNFeidedhEmi BETWEEN 20220101 AND 20220601 SELECT FROM fatonfe WHERE infNFeemitCNPJ LIKE 0411 AND infNFeidedhEmi BETWEEN 20220101 AND 20220601 SELECT FROM fatonfe WHERE infNFeemitCNPJ IN 04111338000171 04111497000176 04112204000175 04114549000168 04114868000173 04115363000123 04115428000300 04116210000109 04116842000164 04117715000180 AND infNFeidedhEmi BETWEEN 20220101 AND 20220601 SELECT idfatonfe FROM fatonfe SELECT idfatonfe FROM fatonfe WHERE infNFeemitCNPJ 04116842000164 SELECT idfatonfe FROM fatonfe WHERE infNFeemitCNPJ LIKE 0411 SELECT idfatonfe FROM fatonfe WHERE infNFeemitCNPJ IN 04111338000171 04111497000176 04112204000175 04114549000168 04114868000173 04115363000123 04115428000300 04116210000109 04116842000164 04117715000180 SELECT idfatonfe FROM fatonfe WHERE infNFeidedhEmi 20220203 08492603 SELECT idfatonfe FROM fatonfe WHERE infNFeidedhEmi 20220203 08492603 AND infNFeemitCNPJ 04116842000164 SELECT idfatonfe FROM fatonfe WHERE infNFeidedhEmi 20220203 08492603 AND infNFeemitCNPJ LIKE 0411 SELECT idfatonfe FROM fatonfe WHERE infNFeidedhEmi 20220203 08492603 AND infNFeemitCNPJ IN 04111338000171 04111497000176 04112204000175 04114549000168 04114868000173 04115363000123 04115428000300 04116210000109 04116842000164 04117715000180 SELECT idfatonfe FROM fatonfe WHERE infNFeidedhEmi BETWEEN 20220101 AND 20220601 SELECT idfatonfe FROM fatonfe WHERE infNFeemitCNPJ 04116842000164 AND infNFeidedhEmi BETWEEN 20220101 AND 20220601 SELECT idfatonfe FROM fatonfe WHERE infNFeemitCNPJ LIKE 0411 AND infNFeidedhEmi BETWEEN 20220101 AND 20220601 48 SELECT idfatonfe FROM fatonfe WHERE infNFeemitCNPJ IN 04111338000171 04111497000176 04112204000175 04114549000168 04114868000173 04115363000123 04115428000300 04116210000109 04116842000164 04117715000180 AND infNFeidedhEmi BETWEEN 20220101 AND 20220601 SELECT sumidfatonfe FROM fatonfe SELECT sumidfatonfe FROM fatonfe WHERE infNFeemitCNPJ 04116842000164 SELECT sumidfatonfe FROM fatonfe WHERE infNFeemitCNPJ LIKE 0411 SELECT sumidfatonfe FROM fatonfe WHERE infNFeemitCNPJ IN 04111338000171 04111497000176 04112204000175 04114549000168 04114868000173 04115363000123 04115428000300 04116210000109 04116842000164 04117715000180 SELECT sumidfatonfe FROM fatonfe WHERE infNFeidedhEmi 20220203 08492603 SELECT sumidfatonfe FROM fatonfe WHERE infNFeidedhEmi 20220203 08492603 AND infNFeemitCNPJ 04116842000164 SELECT sumidfatonfe FROM fatonfe WHERE infNFeidedhEmi 20220203 08492603 AND infNFeemitCNPJ LIKE 0411 SELECT sumidfatonfe FROM fatonfe WHERE infNFeidedhEmi 20220203 08492603 AND infNFeemitCNPJ IN 04111338000171 04111497000176 04112204000175 04114549000168 04114868000173 04115363000123 04115428000300 04116210000109 04116842000164 04117715000180 SELECT sumidfatonfe FROM fatonfe WHERE infNFeidedhEmi BETWEEN 20220101 AND 20220601 SELECT sumidfatonfe FROM fatonfe WHERE infNFeemitCNPJ 04116842000164 AND infNFeidedhEmi BETWEEN 20220101 AND 20220601 SELECT sumidfatonfe FROM fatonfe WHERE infNFeemitCNPJ LIKE 0411 AND infNFeidedhEmi BETWEEN 20220101 AND 20220601 SELECT sumidfatonfe FROM fatonfe WHERE infNFeemitCNPJ IN 04111338000171 04111497000176 04112204000175 04114549000168 04114868000173 04115363000123 04115428000300 04116210000109 04116842000164 04117715000180 AND infNFeidedhEmi BETWEEN 20220101 AND 20220601 SELECT avgidfatonfe FROM fatonfe SELECT avgidfatonfe FROM fatonfe WHERE infNFeemitCNPJ 04116842000164 SELECT avgidfatonfe FROM fatonfe WHERE infNFeemitCNPJ LIKE 0411 SELECT avgidfatonfe FROM fatonfe WHERE infNFeemitCNPJ IN 04111338000171 04111497000176 04112204000175 04114549000168 04114868000173 04115363000123 04115428000300 04116210000109 04116842000164 04117715000180 SELECT avgidfatonfe FROM fatonfe WHERE infNFeidedhEmi 20220203 08492603 SELECT avgidfatonfe FROM fatonfe WHERE infNFeidedhEmi 20220203 08492603 AND infNFeemitCNPJ 04116842000164 SELECT avgidfatonfe FROM fatonfe WHERE infNFeidedhEmi 20220203 08492603 AND infNFeemitCNPJ LIKE 0411 SELECT avgidfatonfe FROM fatonfe WHERE infNFeidedhEmi 20220203 08492603 AND infNFeemitCNPJ IN 04111338000171 04111497000176 04112204000175 04114549000168 04114868000173 04115363000123 04115428000300 04116210000109 04116842000164 04117715000180 SELECT avgidfatonfe FROM fatonfe WHERE infNFeidedhEmi BETWEEN 20220101 AND 20220601 SELECT avgidfatonfe FROM fatonfe WHERE infNFeemitCNPJ 04116842000164 AND infNFeidedhEmi BETWEEN 20220101 AND 20220601 SELECT avgidfatonfe FROM fatonfe WHERE infNFeemitCNPJ LIKE 0411 AND infNFeidedhEmi BETWEEN 20220101 AND 20220601 SELECT avgidfatonfe FROM fatonfe WHERE infNFeemitCNPJ IN 04111338000171 04111497000176 04112204000175 04114549000168 04114868000173 04115363000123 04115428000300 04116210000109 04116842000164 04117715000180 AND infNFeidedhEmi BETWEEN 20220101 AND 20220601 SELECT countidfatonfe FROM fatonfe SELECT countidfatonfe FROM fatonfe WHERE infNFeemitCNPJ 04116842000164 SELECT countidfatonfe FROM fatonfe WHERE infNFeemitCNPJ LIKE 0411 SELECT countidfatonfe FROM fatonfe WHERE infNFeemitCNPJ IN 04111338000171 04111497000176 04112204000175 04114549000168 04114868000173 04115363000123 04115428000300 04116210000109 04116842000164 04117715000180 SELECT countidfatonfe FROM fatonfe WHERE infNFeidedhEmi 20220203 08492603 SELECT countidfatonfe FROM fatonfe WHERE infNFeidedhEmi 20220203 08492603 AND infNFeemitCNPJ 04116842000164 SELECT countidfatonfe FROM fatonfe WHERE infNFeidedhEmi 20220203 08492603 AND infNFeemitCNPJ LIKE 0411 SELECT countidfatonfe FROM fatonfe WHERE infNFeidedhEmi 20220203 08492603 AND infNFeemitCNPJ IN 04111338000171 04111497000176 04112204000175 04114549000168 04114868000173 04115363000123 04115428000300 04116210000109 04116842000164 04117715000180 SELECT countidfatonfe FROM fatonfe WHERE infNFeidedhEmi BETWEEN 20220101 AND 20220601 SELECT countidfatonfe FROM fatonfe WHERE infNFeemitCNPJ 04116842000164 AND infNFeidedhEmi BETWEEN 20220101 AND 20220601 SELECT countidfatonfe FROM fatonfe WHERE infNFeemitCNPJ LIKE 0411 AND infNFeidedhEmi BETWEEN 20220101 AND 20220601 SELECT countidfatonfe FROM fatonfe WHERE infNFeemitCNPJ IN 04111338000171 04111497000176 04112204000175 04114549000168 04114868000173 04115363000123 04115428000300 04116210000109 04116842000164 04117715000180 AND infNFeidedhEmi BETWEEN 20220101 AND 20220601 SELECT fatoitemnfeidfatoitemnfe FROM fatoitemnfe inner join fatonfe on fatoitemnfeinfprotchnfefatonfeinfprotchnfe SELECT fatoitemnfeidfatoitemnfe FROM fatoitemnfe inner join fatonfe on fatoitemnfeinfprotchnfefatonfeinfprotchnfe WHERE fatonfeinfNFeemitCNPJ 04116842000164 SELECT fatoitemnfeidfatoitemnfe FROM fatoitemnfe inner join fatonfe on fatoitemnfeinfprotchnfefatonfeinfprotchnfe WHERE fatonfeinfNFeemitCNPJ LIKE 0411 SELECT fatoitemnfeidfatoitemnfe FROM fatoitemnfe inner join fatonfe on fatoitemnfeinfprotchnfefatonfeinfprotchnfe WHERE fatonfeinfNFeemitCNPJ IN 04111338000171 04111497000176 04112204000175 04114549000168 04114868000173 04115363000123 04115428000300 04116210000109 04116842000164 04117715000180 SELECT fatoitemnfeidfatoitemnfe FROM fatoitemnfe FROM fatoitemnfe inner join fatonfe on fatoitemnfeinfprotchnfefatonfeinfprotchnfe WHERE fatonfeinfNFeidedhEmi 20220203 08492603 SELECT fatoitemnfeidfatoitemnfe FROM fatoitemnfe FROM fatoitemnfe inner join fatonfe on fatoitemnfeinfprotchnfefatonfeinfprotchnfe WHERE fatonfeinfNFeidedhEmi 20220203 08492603 AND fatonfeinfNFeemitCNPJ 04116842000164 SELECT fatoitemnfeidfatoitemnfe FROM fatoitemnfe inner join fatonfe on fatoitemnfeinfprotchnfefatonfeinfprotchnfe WHERE fatonfeinfNFeidedhEmi 20220203 08492603 AND fatonfeinfNFeemitCNPJ LIKE 0411 SELECT fatoitemnfeidfatoitemnfe FROM fatoitemnfe FROM fatoitemnfe inner join fatonfe on fatoitemnfeinfprotchnfefatonfeinfprotchnfe WHERE fatonfeinfNFeidedhEmi 20220203 08492603 AND fatonfeinfNFeemitCNPJ IN 04111338000171 04111497000176 04112204000175 04114549000168 04114868000173 04115363000123 04115428000300 04116210000109 04116842000164 04117715000180 SELECT fatoitemnfeidfatoitemnfe FROM fatoitemnfe FROM fatoitemnfe inner join fatonfe on fatoitemnfeinfprotchnfefatonfeinfprotchnfe WHERE fatonfeinfNFeidedhEmi BETWEEN 20220101 AND 20220601 SELECT fatoitemnfeidfatoitemnfe FROM fatoitemnfe FROM fatoitemnfe inner join fatonfe on fatoitemnfeinfprotchnfefatonfeinfprotchnfe WHERE fatonfeinfNFeemitCNPJ 04116842000164 AND fatonfeinfNFeidedhEmi BETWEEN 20220101 AND 20220601 SELECT fatoitemnfeidfatoitemnfe FROM fatoitemnfe FROM fatoitemnfe inner join fatonfe on fatoitemnfeinfprotchnfefatonfeinfprotchnfe WHERE fatonfeinfNFeemitCNPJ LIKE 0411 AND fatonfeinfNFeidedhEmi BETWEEN 20220101 AND 20220601 SELECT fatoitemnfeidfatoitemnfe FROM fatoitemnfe FROM fatoitemnfe inner join fatonfe on fatoitemnfeinfprotchnfefatonfeinfprotchnfe WHERE fatonfeinfNFeemitCNPJ IN 04111338000171 04111497000176 04112204000175 04114549000168 04114868000173 04115363000123 04115428000300 04116210000109 04116842000164 04117715000180 AND fatonfeinfNFeidedhEmi BETWEEN 20220101 AND 20220601

Envie sua pergunta para a IA e receba a resposta na hora

Recomendado para você

Estruturas, Uniões e Enumerações em Linguagem C - Introdução à Programação

23

Estruturas, Uniões e Enumerações em Linguagem C - Introdução à Programação

Introdução à Lógica e Programação

UFPB

AV3-Introducao-Programacao-20221-Sistema-RH-em-C

4

AV3-Introducao-Programacao-20221-Sistema-RH-em-C

Introdução à Lógica e Programação

UFPB

Um Estudo Comparativo sobre Uso de Modelos de Dados para Notas Fiscais Eletrônicas

69

Um Estudo Comparativo sobre Uso de Modelos de Dados para Notas Fiscais Eletrônicas

Introdução à Lógica e Programação

UFPB

Introdução aos Ponteiros em Linguagem C

24

Introdução aos Ponteiros em Linguagem C

Introdução à Lógica e Programação

UFPB

Introdução aos Arquivos em Linguagem C

27

Introdução aos Arquivos em Linguagem C

Introdução à Lógica e Programação

UFPB

Citus Distributed PostgreSQL for Data-Intensive Applications

13

Citus Distributed PostgreSQL for Data-Intensive Applications

Introdução à Lógica e Programação

UFPB

Introdução à Programação em C: Strings e Vetores de Caracteres

19

Introdução à Programação em C: Strings e Vetores de Caracteres

Introdução à Lógica e Programação

UFPB

Programa Caixa Registradora - Promoção de Carnes Hipermercado Tabajara com Desconto

1

Programa Caixa Registradora - Promoção de Carnes Hipermercado Tabajara com Desconto

Introdução à Lógica e Programação

UFPB

Definição e Manipulação de Strings em C++

10

Definição e Manipulação de Strings em C++

Introdução à Lógica e Programação

UFAL

Estruturas de Dados: Pilhas, Filas e Listas em C

7

Estruturas de Dados: Pilhas, Filas e Listas em C

Introdução à Lógica e Programação

UFAL

Texto de pré-visualização

É para fazer o meu TCC do curso de Ciência da Computação O contexto do TCC é o seguinte existe um sistema que gerencia as notas fiscais da SEFAZPB Secretaria da Fazenda Paraíba O atual sistema está com alguns gargalos pois a solução não foi pensada para lidar com o volume de notas fiscais que atualmente passa por ele Basicamente eles têm uma super máquina com um SGDB Postgres versão opensource rodando lá servindo como datalake Existe um ETL em Go que realiza o carregamento de dados nesse datalake através de lotes A idéia do TCC é a seguinte considerando que essa solução está bem ruim e insuficiente é preciso propor algo Eu já iniciei uma análise inicial de algumas soluções que pudessem resolver esse problema juntamente com os meus professores orientadores Após algumas iterações foi feita uma tábela de comparação segue abaixo entre as seguintes ferramentas Greenplum PrestoDB Citus e o próprio Postgres Após algumas discussões foi decidido que irei começar utilizando a Citus que é a melhor entre as opções para ser implementada nesse contexto até mesmo por ser a mais simples Agora preciso implementar ela e testar em uma amostra do banco para ver como ela se sai estou confiante de que vai dar certo Posteriormente teria que preparar um experimento de benchmarking com ênfase na funcionalidade de sharding fragmentação dos dados Tabela Comparação Tecnologias Características Postgres Greenplum Citus Presto Escalabilidade horizontal F V V V Controle de acesso V V V F Gerenciamento de usuário V V V V Fragmentação sharding V V V F Motor de SQL distribuído F V V V Transações distribuídas F V V F Armazenamento colunar F V V V Consultas a partir de qualquer nó F F V F Tabelas de referência locais F V V F Tabelas distribuídas F V V F Execução do pipeline na memória V F V V Aceita várias fontes de dados como entrada F F F V Deploy simplificado V F V V Flexibilidade com relação a configurações V V F V API para métodos MapReduce definidos por usuários V F Um estudo de caso sobre uso de processamento de dados distribuıdos por meio da ferramenta citus Vinıcius Medeiros Wanderley CENTRO DE INFORMATICA UNIVERSIDADE FEDERAL DA PARAIBA Joao Pessoa 2022 Vinıcius Medeiros Wanderley Um estudo de caso sobre uso de processamento de dados distribuıdos por meio da ferramenta citus Monografia apresentada ao curso Ciˆencia da Computacao do Centro de Informatica da Universidade Federal da Paraıba como requisito para a obtencao do grau de Bacharel em Ciˆencia da Computacao Orientador Prof Dr Raoni Kulesza Coorientador Prof Dr Marcelo Iury de Sousa Oliveira Dezembro de 2022 Ficha catalografica elaborada pela biblioteca do CI Sera impressa no verso da folha de rosto e nao devera ser contada Se nao houver biblioteca deixar em branco CENTRO DE INFORMATICA UNIVERSIDADE FEDERAL DA PARAIBA Trabalho de Conclusao de Curso de Ciˆencia da Computacao intitulado Um es tudo de caso sobre uso de processamento de dados distribuıdos por meio da ferramenta citus de autoria de Vinıcius Medeiros Wanderley aprovada pela banca examinadora constituıda pelos seguintes professores Prof Dr Nome do Professor A Instituicao do Professor A Prof Dr Nome do Professor B Instituicao do Professor B Prof Dr Nome do Professor C Instituicao do Professor C Coordenadora do Departamento Computacao Cientıfica Leandro Carlos de Souza CIUFPB Joao Pessoa 9 de dezembro de 2022 Centro de Informatica Universidade Federal da Paraıba Rua dos Escoteiros Mangabeira VII Joao Pessoa Paraıba Brasil CEP 58058600 Fone 55 83 3216 7093 Fax 55 83 3216 7117 A epígrafe é opcional DEDICATORIA A dedicatoria e opcional AGRADECIMENTOS O agradecimento e opcional RESUMO A partir do ano de 2007 foi implementado no Brasil o Sistema Publico de Escri turacao Digital em empresas do setor privado e tambem em instituicoes publicas do governo responsaveis pela fiscalizacao e controle dessas atividades como os fiscos mu nicipais e estaduais e a propria Receita Federal Nesta conjuntura apesar da agilidade no monitoramento dos fiscos e economicidade o grande volume de dados armazenados a partir da notas fiscais eletrˆonicas impulsionou a necessidade do desenvolvimento de novas tecnologias para analise e monitoramento de modo eficiente Desta forma neste trabalho foi conduzido um estudo para avaliar o desempenho do tempo execucao da ferramente citus em comparacao com a PostgreSQL ambas executada por um benchmark de consultas Palavraschave Desempenho Notas fiscais eletrˆonicas benchmark ABSTRACT From 2007 the System was implemented in Brazil Public of Digital Bookkeeping in companies of the private sector and in public institutions of the government responsible for the inspection and control of these activities as the municipal and state tax authorities and the Federal Revenue Service itself At this juncture despite the agility in monitoring tax authorities and cost effectiveness the large volume of data stored from electronic invoices boosted the need to develop new technologies for analysis and monitoring efficiently Thus in this work a study evaluated the execution time performance of the citus tool compared with PostgreSQL both executed by a query benchmark Keywords Performance electronic invoices benchmark LISTA DE FIGURAS 1 Fluxograma operacional da NFe 20 2 Fluxograma dos cenarios de 1 3 e 6 nos 38 LISTA DE TABELAS 1 Informacoes Bases de Dados 37 2 Resultados para o tempo de execucao para uma pequena amostra 40 3 Estatistica descritiva do tempo de execucao para uma pequena amostra 43 4 Comparacao de tecnologias 43 LISTA DE ABREVIATURAS SPED Sistema Publico de Escrituracao Digital ECD Escrituracao Contabil Digital FCONT Controle Fiscal Contabil de Transicao NFe Nota Fiscal Eletrˆonica CTe Conhecimento de Transporte eletrˆonico NFSe Nota Fiscal de Servicos Eletrˆonica Sumario 1 INTRODUC AO 15 11 Problema 15 12 Objetivos 16 121 Objetivos especıficos 16 2 FUNDAMENTAC AO TEORICA 17 21 Escrituracao Contabil Digital ECD 17 211 Escrituracao contabil digital ECD 18 212 Escrituracao contabil fiscal ECF 18 213 Nota fiscal eletrˆonica NFe 18 214 Nota Fiscal de Servicos Eletrˆonicos NFSe 20 215 eSocial 20 22 Gerenciamento de banco de dados 21 23 Citus 23 24 Processamento de dados distribuıdos 24 241 Armazenamento de dados em sistemas distribuıdos 25 242 Benchmarking 25 3 MATERIAIS E METODOS 27 31 Ambiente dos Experimentos 27 32 Modelo de banco de dados 27 33 Deploy banco de dados 32 331 Postgres SingleNode 33 332 Postgres Citus 33 34 Base de Dados 37 35 Descricao dos Cenarios 37 36 Metrica de Avaliacao 38 361 Benchmark de Consulta 39 13 4 RESULTADOS E DISCUSSAO 40 5 CONSIDERAC OES FINAIS 44 APˆENDICES 1 Recorte do codigo para Benchmark de Consulta 47 14 1 INTRODUC AO Com a avanco das tecnologias e com a quantidade de informacoes que sao geradas diariamente os bancos de dados e os sistemas de bancos de dados tornaramse componentes essenciais no cotidiano da sociedade moderna Com isso a necessidade de analise de um grande volume de dados tem feito com que o termo Big Data se popularize necessitando portanto de estudos direcionados para tal Neste contexto um conjunto massivo de dados que nos ultimos anos tem chamado atencao da comunidade cientıfica e o chamado Sistema Publico de Escrituracao Digital SPED Este e um sistema composto por uma serie de subprojetos SPED Contabil ECD Escrituracao Contabil Digital FCONT Controle Fiscal Contabil de Transicao SPED Fiscal Escrituracao Fiscal Digital das Contribuicoes incidentes sobre a Receita EFD Contribuicoes Nota Fiscal Eletrˆonica NFe Conhecimento de Transporte eletrˆonico CTe e Nota Fiscal de Servicos Eletrˆonica NFSe Estas bases de dados geram um grande volume de dados que cresce de forma muito rapida ocasionando o acumulo de informacoes nos mais variados bancos de dados Diante disso surge a necessidade do desenvolvimento de modelos de tecnologias capazes de realizar o processamento de forma agil e eficiente Nesta conjuntura de acordo com os achados de Santos et al 2021 um modelo de dados trata de uma colecao de conceitos que podem ser utilizados para descrever um conjunto de dados e operacoes para manipulalos podendo ser classificados em funcao da etapa de desenvolvimento do projeto em banco de dados em que o modelo e utilizado e quanto a sua flexibilidade e poder de expressao Diante disso a proposta deste trabalho e utilizar a base de dados das NFe para avaliar o desempenho e a performance da ferramenta citus para o processamento da base de dados com relacao ao PostgreSQL A vista disso ficou estabelecida o seguinte problema de pesquisa 11 Problema O processamento de dados distribuıdos utilizando a ferramenta citus e mais eficiente para o gerenciamento de notas fiscais do que um postgres standalone Portanto buscaremos responder nosso problema de pesquisas estabelecendo como objetivos 15 12 Objetivos O objetivo deste trabalho e propor melhorias ao sistema de gerenciamento de notas fiscais da SEFAZPB Secretaria da Fazenda Paraıba atraves da utilizacao da ferramenta citus 121 Objetivos especıficos Para alcancarmos o objetivo geral sao propostos os seguintes objetivos especıficos 1 Propor um modelo de banco de dados adequado 2 Implementacao do banco de dados utilizando o mecanismo distribuıdo de codigo aberto para PostgreSQL Citus 3 Definir um conjunto de consultas que sera utilizado no estudo 4 Conduzir um experimento de benchmarking com ˆenfase na funcionalidade de sharding fragmentacao dos dados Dito isto o trabalho esta organizado em cinco capıtulos incluindo este de introducao O capitulo 2 foi destinado para apresentar a fundamentacao teorica destacando alguns dos principais conceitos suas caracterısticas e as NFe que nortearao o desenvolvimento do trabalho No capıtulo 3 e apresento os aspectos metodologicos utilizados na construcao da proposta No capıtulo 4 sao apresentados os resultados e discussoes e o capıtulo e destinado para consideracoes finais Ainda e organizado um Apˆendice para disponibilizar um recorte do codigo utilizado para o Benchmark de Consulta 16 2 FUNDAMENTAC AO TEORICA Nesta secao abrimos espaco para apresentar o suporte teorico que sustentarao o desenvolvimento deste trabalho 21 Escrituracao Contabil Digital ECD Nos ultimos anos devido ao avanco tecnologico e a necessidade de melhorias nas administracoes tributarias foram implementadas uma serie de mudancas Dentre estas mudancas destacamos a implantacao do Sistemas Publico de Escrituracao Digital SPED instituıdo pelo Decreto nº 6022 de 22 de janeiro de 2007 disponıvel em Brasil 2007 O SPED tem como principal objetivo integrar os fiscos por uma padronizacao e compartilhamento de informacoes contabeis e fiscais Desta forma Brasil 2007 define o SPED como instrumento que unifica as atividades de recepcao validacao armazenamento e autenticacao de livros e documentos que integram a escrituracao comercial e fiscal dos empresarios e das sociedades empresarias mediante fluxo unico computadorizado de informacoes Ademais de acordo com Santos et al 2021 ao pesquisar no portal da Receita Federal do Brasil RFB o SPED apresenta como objetivos especıficos uniformizar as obrigacoes acessorias para os contribuintes com o estabelecimento de transmissao unica de distintas obrigacoes acessorias de diferentes orgaos fiscalizadores tornar mais celere a identificacao de ilıcitos tributarios com a melhoria do controle dos processos a rapidez no acesso as informacoes e a fiscalizacao mais efetiva das operacoes com o cruzamento de dados e auditoria eletrˆonica Diante disso de acordo com Manoel et al 2011 dentre os diversos benefıcios do SPED para os contribuintes de fato consiste na uniformizacao de informacoes prestadas aos diversos entes governamentais na reducao do envolvimento involuntario em praticas fraudulentas e na diminuicao da burocracia improdutiva Ainda segundo o autor vale destacar que com a implantacao do SPED temse a economia com papel e preservacao do meio ambiente a diminuicao de tempo despendido para o registro aceleracao no processo de fiscalizacao e fortalecimento do controle melhoria na qualidade da informacao e disponibilidade de copias autˆenticas para usos distintos e concomitantes Posto isto o SPED conta com diversos subprojetos de universo de atuacao para auxiliar o fisco Entre os principais estao a Escrituracao contabil digital ECD a Escrituracao contabil fiscal ECF a Nota fiscal eletrˆonica NFe a Nota fiscal de servico eletrˆonica NFSe e o eSocial que e a unificacao de prestacao de informacoes referente a escrituracao das obrigacoes fiscais previdenciarias e trabalhistas 17 211 Escrituracao contabil digital ECD A escrituracao contabil foi definida como sendo todos os registros contabeis de uma empresa em um determinado perıodo assim as informacoes sejam uteis ao fisco aos diretores e para uma melhor tomada de decisoes Desta forma de acordo com Assuncao e Carvalho 2018 a ECD tem por objetivo a substituicao da escrituracao manuscrita pela escrituracao transmitida via arquivo ou seja corresponde a obrigacao de transferir em versao digital os livros contabeis Neste contexto Manoel et al 2011 argumente que a ECD propoe a exemplificar e agilizar o acesso as informacoes das empresas em uma eventual fiscalizacao sendo composta segundo o autor pelo Termo de abertura e encerramento o Livro diario o Livro razao o Balanco patrimonial a Demonstracao do resultado do exercıcio e as Demais demonstracoes auxiliares obrigatorias as empresas Diante disso tal qual destaca Santos et al 2021 com implementacao da ECD a empresa nao necessita realizar a impressao de diarios balancos e outros demonstrativos visto que este gera um arquivo digital padronizado que e assinado atraves do certificado digital do contador e dos representantes legais da empresa perante a Junta Comercial 212 Escrituracao contabil fiscal ECF De acordo com Tsukamoto et al 2019 a Escrituracao Contabil Fiscal ECF teve o seu inıcio no exercıcio de 2015 instituıda pela Instrucao Normativa nº 1422 de 2013 tendo como principal objetivo interligar os dados contabeis e fiscais entao relacionados a apuracao do Imposto de Renda e da Contribuicao Social consistindo basicamente no transporte de todos os valores apurados nestes dois tipos de tributos especıficos Ademais segundo Santos et al 2021 a ECF necessita ser validada atraves de assinatura digital do representante legal da empresa O autor ainda destaca que os seguintes livros sao contemplados nesta escrituracao o Registro de Entradas o Registro de Saıdas o Registro de Inventario o Registro de Apuracao do Imposto sobre Produtos Industrializados IPI e o Registro de Apuracao do ICMS 213 Nota fiscal eletrˆonica NFe A Nota fiscal eletrˆonica tal qual sua conceituacao disponıvel no Portal Publico de Escrituracao Digital Portal 2022 e um projeto que foi desenvolvido de forma integrada pelas Secretarias de Fazenda dos Estados e Receita Federal do Brasil a partir da assinatura do Protocolo ENAT 032005 de 27082005 que atribuiu ao Encontro Nacional de Coordenadores e Administradores Tributarios Estaduais ENCAT a coordenacao e a responsabilidade pelo desenvolvimento e implantacao do Projeto NFe Desta forma para 18 Portal 2022 o projeto das NFes agrega os seguintes benefıcios e vantagens as partes envolvidas 1 Aumento na confiabilidade da Nota Fiscal 2 Melhoria no processo de controle fiscal possibilitando um melhor intercˆambio e compartilhamento de informacoes entre os fiscos 3 Reducao de custos no processo de controle das notas fiscais capturadas pela fisca lizacao de mercadorias em trˆansito 4 Diminuicao da sonegacao e aumento da arrecadacao Suporte aos projetos de es crituracao eletrˆonica contabil e fiscal da Receita Federal e demais Secretarias de Fazendas Estaduais 5 Fortalecimento da integracao entre os fiscos facilitando a fiscalizacao realizada pelas Administracoes Tributarias devido ao compartilhamento das informacoes das NFe 6 Rapidez no acesso as informacoes 7 Eliminacao do papel 8 Aumento da produtividade da auditoria atraves da eliminacao dos passos para coleta dos arquivos 9 Possibilidade do cruzamento eletrˆonico de informacoes De acordo com Santos et al 2021 o conceito de nota fiscal passou por constantes evolucao desde a decada de 70 Segundo o autor anteriormente as notas fiscais eram emitidas de forma manual ou atraves da maquina mecanografica de escrever evoluindo pra os dias atuais no qual sua emissao realizada de forma eletrˆonica por meio de impressora gracas aos avancos tecnologicos Portanto a NFe e um documento gerado e emitido de modo eletrˆonico cujo objetivo e documentar as operacoes e prestacoes cujas validade jurıdica e garantida pela assinatura digital do emitente juntamente com a autorizacao de uso pela administracao tributaria da unidade federada Desta feita no trabalho Santos et al 2021 e apresentado um fluxograma operacio nal quando da emissao da NFe ver Figura 1 A Figura 1 detalhado o caminho seguido apos a emissao da NFe quais sao a geracao de dados o armazenamento a determinacao dos agentes e responsabilidades envolvidas assim como dos aspectos relacionados a integridade e a contingˆencia do processo Maiores detalhes consultar Santos et al 2021 p17 19 Figura 1 Fluxograma operacional da NFe Fonte Adaptada de Santos et al 2021 214 Nota Fiscal de Servicos Eletrˆonicos NFSe A Nota Fiscal de Servicos Eletrˆonica NFSe segundo Portal 2022 e um documento de existˆencia digital gerado e armazenado eletronicamente em Ambiente Nacional pela RFB pela prefeitura ou por outra entidade conveniada para documentar as operacoes de prestacao de servicos Desta forma de acordo com o Sistema Publico de Escrituracao Digital o projeto da NFSe tem como objetivo beneficiar as administracoes tributarias padronizando e melhorando a qualidade das informacoes racionalizando os custos e gerando maior eficacia bem como o aumento da competitividade das empresas brasileiras pela racionalizacao das obrigacoes acessorias reducao do custoBrasil em especial a dispensa da emissao e guarda de documentos em papel O leitor interessado em maiores detalhes podera consultar o portal do Sistema Publico de Escrituracao Digita disponıvel em Portal 2022 215 eSocial O Sistema de Escrituracao Digital das Obrigacoes Fiscais Previdenciarias e Tra balhistas eSocial foi instituıdo pelo Decreto n0 83732014 O objetivo do sistema e permitir a comunicacao direta dos empregadores com o Governo de forma unificada as informacoes relativas aos trabalhadores como vınculos contribuicoes previdenciarias folha de pagamento comunicacoes de acidente de trabalho aviso previo escrituracoes fiscais e informacoes sobre o FGTS De acordo com Portal 2022 a implantacao do eSocial viabilizara garantia aos diretos previdenciarios e trabalhistas racionalizara e simplificara o cumprimento de 20 obrigacoes eliminara a redundˆancia nas informacoes prestadas pelas pessoas fısicas e jurıdicas e aprimorara a qualidade das informacoes das relacoes de trabalho previdenciarias e tributarias A legislacao prevˆe ainda tratamento diferenciado as micro e pequenas empresas 22 Gerenciamento de banco de dados Os bancos de dados e os sistemas de bancos de dados se tornaram componentes essenciais no cotidiano da sociedade moderna Assim de acordo com Ramakrishnan e Gehrke 2008 os Sistemas de Gerenciamento de Banco de Dados SGBD sao uma ferramenta indispensavel para gerenciar informacoes No tocando ao conceito de banco de dados segundo o autor hora citado e uma colecao de dados que tipicamente descreve as atividades de uma ou mais organizacoes relacionadas Por outro lado um sistema de gerenciamento de banco de dados ou SGBD para Ramakrishnan e Gehrke 2008 e um software projetado para auxiliar a manutencao e utilizacao de vastos conjuntos de dados O autor destaca que a necessidade de tais sistemas assim como seu uso tem crescido rapidamente Assim uma alternativa para nao se usar um SGBD e armazenar os dados em arquivos e escrever codigo especıfico do aplicativo para gerencialos Similarmente Santos et al 2021 define o SGBD como uma colecao de programas que tem como funcao o gerenciamento da estrutura de um banco de dados e controle ao acesso dos dados armazenados Para o autor o SGBD serve como intermediario entre o usuario e o banco de dados Ainda o autor destaca que sua estrutura e armazenada como um conjunto de arquivos e a unica forma de se ter acesso a esses arquivos e por intermedio do SGBD Com isso em uma perspectiva historica Ramakrishnan e Gehrke 2008 traz O primeiro SGBD de proposito geral projetado por Charles Bachman na General Electric no inıcio da decada de 1960 foi chamado Deposito de Dados Integrados Integrated Data Store Ele constituiu a base do modelo de dados de rede que foi padronizado pela Conference on Data Systems Languages CODASYL e influenciou bastante os sistemas de banco de dados na decada de 1960 Bachman foi o primeiro a ser contemplado pelo Prˆemio Turing da ACM o equivalente ao Prˆemio Nobel na Ciˆencia da Computacao pelo trabalho na area de banco de dados ele recebeu o prˆemio em 1973 No final da decada de 1960 a IBM desenvolveu o SGBD Sistema de Gerencia mento de Informacao IMS Information Management System ainda usado atualmente em diversas instalacoes O IMS constituiu a base da estrutura de representacao alternativa de dados chamada modelo de dados hierarquico O sistema SABRE para reservas de passagens aereas foi desenvolvido em conjunto pela American Airlines e pela IBM nessa mesma epoca e permitiu que diversas pessoas acessassem os mesmos dados atraves de uma rede de computadores Interessante observar que atualmente o mesmo sistema SABRE e utilizado para fornecer servicos populares de viagens baseados na Web tais como o Travelocity RAMAKRISHNAN GEHRKE 2008 21 Assim notadamente nao e recente o emprego dos SGBDs portanto estudos indicam que sua utilizacao trazem inumeras para gerenciamento de dados dentre as quais Ramakrishnan e Gehrke 2008 destaca 1 Independˆencia de Dados Os programas aplicativos nao devem idealmente ser expostos aos detalhes de representacao e armazenamento de dados O SGBD provˆe uma visao abstrata dos dados que oculta tais detalhes 2 Acesso Eficiente aos Dados Um SGBD utiliza uma variedade de tecnicas sofisti cadas para armazenar e recuperar dados eficientemente Este recurso e especialmente importante se os dados sao armazenados em dispositivos de armazenamento externos 3 Integridade e Seguranca dos Dados Se os dados sao sempre acessados atraves do SGBD ele pode forcar restricoes de integridade Por exemplo antes de inserir informacoes sobre o salario de um funcionario o SGBD pode verificar se o orcamento do departamento nao esta se excedendo Alem disso ele pode forcar controles de acesso que governam quais dados estao visıveis a diferentes classes de usuarios 4 Administracao de Dados Quando diversos usuarios compartilham dados centra lizar a administracao dos dados pode oferecer melhorias significativas Profissionais experientes que compreendem a natureza dos dados sendo gerenciados e como os diferentes grupos de usuarios os utilizam podem ser responsaveis por organizar a representacao dos dados para minimizar a redundˆancia e para realizar as sintonizacoes finas do armazenamento dos dados para garantir uma eficiente recuperacao 5 Acesso Concorrente e Recuperacao de Falha Um SGBD planeja o acesso concorrente aos dados de maneira tal que os usuarios podem achar que os dados estao sendo acessados por apenas um unico usuario de cada vez Alem disso o SGBD protege os usuarios dos efeitos de falhas de sistema 6 Tempo Reduzido de Desenvolvimento de Aplicativo O SGBD suporta funcoes importantes que sao comuns a varios aplicativos que acessam os dados no SGBD Isso em conjunto com uma interface de alto nıvel aos dados facilita o desenvolvimento rapido de aplicativos Os aplicativos de SGBD tendem a ser mais robustos do que os aplicativos similares independentes porque muitas tarefas importantes sao tratadas pelo SGBD e nao precisam ser depuradas e testadas no aplicativo Portanto segundo SANTOS et al 2021 a importˆancia de um SGBD entre as aplicacoes do usuario final e o banco de dados pode ser notada quando se analisa as melhorias que um SGBD oferece como o fato dele permitir que os dados no banco sejam compartilhados por diversas aplicacoes e usuarios Para o autor outro benefıcio desse 22 sistema se da pelo fato dele ter a capacidade de integrar visualizacoes muito diferentes dos usuarios sobre os dados em um unico repositorio que engloba tudo O autor ainda destaca que os dados constituem a materiaprima a partir da qual as informacoes sao obtidas e necessario um bom metodo para gerencialo 23 Citus De acordo com sua documentacao Data 2022 e uma extensao do Postgres dis tribuıda para dados e consultas em um cluster de varias maquinas Com isso segundo seu documento o Citus disponibiliza novos recursos aos usuarios de modo que sejam mantida as ferramentas do PostgreSQL e respaldando que O Citus escala o PostgreSQL horizontalmente em varias maquinas usando fragmentacao e replicacao Seu mecanismo de consulta paraleliza as consultas SQL recebidas nesses servidores para permitir respostas humanas em tempo real menos de um segundo em grandes conjuntos de dados DATA 2022 O PostgreSQL segundo a literatura e um dos sistemas de gerenciamento de banco de dados de codigo aberto mais populares Desta forma de acordo com CUBUKCU et al 2021 o PostgreSQL e um sistema versatil e usado em diferentes diversas areas como na industria na fısica de partıculas e bancos de dados geoespaciais O autor ainda destaca que dada sua sua extensibilidade permite aos desenvolvedores adicionar novas funcionalidades de banco de dados sem se separar do projeto original Como isso para o autor muitas empresas aproveitaram a rica funcionalidade e o ecossistema do PostgreSQL para criar aplicativos avancados e bemsucedidos concluindo que foi criado uma demanda significativa para o PostgreSQL escalar alem de um unico servidor Dito isto imperioso destacar que O Citus e o primeiro banco de dados distribuıdo que oferece sua funcionalidade por meio das APIs de extensao do PostgreSQL As APIs de extensao fornecem controle suficiente sobre o comportamento do PostgreSQL para integrar uma camada de fragmentacao um planejador e executor de consulta distribuıdo e transacoes distribuıdas de forma transparente para o aplicativo Ser uma extensao permite que o Citus mantenha a compatibilidade com os recursos e fer ramentas mais recentes do PostgreSQL a um custo de engenharia insignificante Alem disso o Citus distribui dados em redes regulares servidores PostgreSQL e envia consultas sobre o PostgreSQL regular protocolo Isso significa que o Citus pode utilizar todo o acesso a dados e recursos de armazenamento oferecidos pelos servidores PostgreSQL subjacentes incluindo recursos avancados como JSONB juncoes laterais GiST ındices tipos de array e outras extensoesCUBUKCU et al 2021 Ademais tal qual e destaque no trabalho de Gkamas et al 2022 o Citus distribui dados e consultas em varios nos em um cluster transformando o PostgreSQL em um 23 DBMS distribuıdo aprimorado com recursos como sharding replicacao um mecanismo SQL distribuıdo e tabelas de referˆencia e distribuıdas Contudo para o autor embora o Citus estenda o PostgreSQL com funcionalidade distribuıda nao e uma substituicao que escale todas as cargas de trabalho Assim um cluster Citus de alto desempenho envolve considerar o modelo de dados as ferramentas e a escolha dos recursos SQL a serem usados Alem disso o Citus nao e suportado nativamente pelo PostgreSQL e requer a instalacao de bibliotecas adicionais Destarte outras extensoes uteis sao PostgreSQL pgstatstatements que rastreia estatısticas sobre as consultas executadas por um banco de dados PostgreSQL e PostGIS que estende o PostgreSQL para lidar com dados espaciais e tipos de dados tambem suportando objetos separados geograficamente 24 Processamento de dados distribuıdos E facil encontrar na literatura argumentos que definem um sistema de banco de dados distribuıdo BDD como uma relacao de nos cada qual podendo participar na execucao de transacoes que acessam dados em um ou mais nos Desta forma para Ramakrishnan e Gehrke 2008 em um sistema de banco de dados distribuıdo os dados sao armazenados em varios sites e normalmente cada site e gerenciado por um Sistema de Gerenciamento de Banco de Dados SGBD executado independentemente dos outros sites Para o autor visao classica de um sistema de banco de dados distribuıdo e que o sistema deve tornar o impacto da distribuicao dos dados transparente Com isso segundo o autor por hora citado se os dados sao distribuıdos mas todos os servidores executam o mesmo software de SGBD temos um sistema de banco de dados distribuıdo homogˆeneo Se diferentes sites sao executados sob o controle de diferentes SGBDs de forma basicamente autˆonoma e sao conectados que de algum modo permita o acesso aos dados a partir de varios sites temos um sistema de banco de dados distribuıdo heterogˆeneo tambem referido como sistema de multiplos bancos de dados multidatabase Desta feita o autor Ramakrishnan e Gehrke 2008 define trˆes estrategias como alternativas para separar funcionalidade entre diferentes processos relacionados ao SGBD quais sao clienteservidor servidor colaborador e middleware Tais funcionalidade sao definidas pelo autor como segue 1 Clienteservidor O sistema clienteservidor tem um ou mais processos clientes e um ou mais processos servidores e um processo cliente pode enviar uma consulta para qualquer processo servidor Os clientes sao responsaveis por questoes da interface com o usuario e os servidores gerenciam dados e executam transacoes Assim um processo cliente poderia ser executado em um computador pessoal e enviar consultas para um servidor sendo executado em um computador de grande porte 24 2 Servidor colaborador A arquitetura clienteservidor nao permite que uma unica consulta abranja varios servidores pois o processo cliente teria de ser capaz de subdividir tal consulta nas subconsultas apropriadas para serem executadas em diferentes sites e depois reunir as respostas das subconsultas Portanto o processo cliente seria muito complexo e seus recursos comecariam a se sobrepor ao servidor tornase mais difıcil distinguir entre clientes e servidores A eliminacao dessa distincao nos leva a uma alternativa para a arquitetura clienteservidor um sistema de servidor colaborador 3 Middleware A arquitetura middleware e projetada para permitir que uma unica consulta abranja varios servidores sem exigir que todos os servidores de banco de dados sejam capazes de gerenciar tais estrategias de execucao em varios sites Ela e particularmente atraente ao se tentar integrar varios sistemas legados cujos recursos basicos nao podem ser estendidos 241 Armazenamento de dados em sistemas distribuıdos E sabido que em um SGBD distribuıdo as relacoes sao armazenadas em varios sites Assim de acordo com Ramakrishnan e Gehrke 2008 o acesso a uma relacao armazenada em um site remoto acarreta custos de passagem de mensagem e para reduzir essa sobrecarga uma unica relacao pode ser particionada ou fragmentada entre varios sites com os fragmentos armazenados nos sites onde sao mais frequentemente acessados ou replicados em cada site onde a relacao tem alta demanda Para o autor a fragmentacao consiste em subdividir uma relacao em relacoes menores ou fragmentos e armazenar os fragmentos em vez da relacao em si possivelmente em diferentes sites Ademais os fragmentos podem ser horizontais ou verticais Na fragmentacao horizontal segundo o autor por hora citado cada fragmento consiste em um subconjunto de linhas da relacao original enquanto que na fragmentacao vertical cada fragmento consiste em um subconjunto de colunas da relacao original Diante disso e possıvel realizar uma replicacao que significa armazenar varias copias de uma relacao ou fragmento de relacao sendo que uma relacao inteira pode ser replicada em um ou mais sites Analogamente um ou mais fragmentos de uma relacao podem ser replicados em outros sites 242 Benchmarking A ideia central do Benchmarking e comparar o desempenho de uma processo Desta forma sao varios os trabalhos disponıveis na literatura que abordam tal metodologia No trabalho de Santos et al 2021 os autores utilizaram um benchmark de consulta com a 25 finalidade de mensurar o desempenho dos SGBDs adotando como metrica de avaliacao o tempo de resposta das consultas No trabalho de Tardıo et al 2020 foi abordado foi apresentado um modelo de benchmark para o ecossistema de Big Data com solucoes para a construcao do cubo OLAP tirando proveito de tecnicas de preagregacao de dados para projetar modelos analıticos para Big Data OLAP Em Funke et al 2011 e apresentado um um modelo hıbrido de benchmark para o processamento em tempo real em ambientes de BI Business Intelligence Por outro lado Azzini et al 2019 implementou um modelo relacional usando o MySQL e um modelo grafico foi efetivado por meio do Neo4j com o objetivo de comparar consultas OLAP em banco de dados relacionais e graficos contendo a mesma amostra de dados 26 3 MATERIAIS E METODOS Este Capıtulo e destinado a apresentar os aspectos metodologicos que nortearam a construcao deste trabalho Assim a proposta foi conduzida realizando um benchmarking entre um cluster citus com 3n nos particularmente consideramos n 1 e 2 e uma maquina rodando o postgres standalone Para tanto fazse necessario inicialmente preparar um ambiente de experimentos e definir um modelo de banco de dados adequado para tal Por fim sera feito o deploy do banco de dados considerando uma standalone 1 no versus cluster citus 3n nos 31 Ambiente dos Experimentos Para realizacao dos experimentos dado o ambiente de execucao foi definida a base do banco de dados bem como os prerequisitos da maquina de hospedagem Com isso escolhese como base de dados a NFe pertencente ao orgao da Secretaria de Estado da Fazenda da Paraıba SEFAZPB Sua escolha justificase pela confiabilidade dos documentos apresentados Dada as definicoes iniciais entao para alocacao da base de dados em ambos bancos de dados foram utilizadas 7 maquinas virtuais idˆenticas cada uma com um disco rıgido de 500GB configuradas no Sistema Operacional Linux Debian 11 com 2GB de memoria RAM e processador DualCore Todos os testes de consultas foram realizados da mesma forma 32 Modelo de banco de dados Considerando que o tipo comumente utilizado como documento fiscal na base de dados da SEFAZPB foram criadas duas tabelas de armazenamento de dados o fatonfe e fatoitemnfe para armazenar os fator gerador da NFe e seus itens respectivamente Um recorte das propriedades para fatonfe e fatoitemnfe sao apresentados na listas de codigos que segue 1 CREATE TABLE fatonfe 2 idfatonfe BIGSERIAL NOT NULL 3 infProtchNFe char44 PRIMARY KEY 4 infNFesqn bigint NOT NULL 5 informixstnfeletronica char1 NOT NULL DEFAULT A 6 informixdhconexao varchar NULL 7 informixnriptransmissor varchar NULL 8 informixnrportacon int4 NULL 9 infNFeide character varying 27 10 infNFeidecUF integer 11 infNFeidecNF character varying 12 infNFeidenatOp character varying 13 infNFeidemod integer infNFeideserie character varying 14 infNFeidenNF character varying 15 infNFeidedhEmi timestamp with time zone 16 infNFeidedhSaiEnt timestamp with time zone 17 infNFeidetpNF integer 18 infNFeideidDest integer 19 infNFeidecMunFG character varying 20 infNFeidetpImp integer 21 infNFeidetpEmis integer 22 infNFeidecDV integer 23 infNFeidetpAmb integer 24 infNFeidefinNFe integer 25 infNFeideindFinal integer 26 infNFeideindPres integer 27 infNFeideprocEmi integer 28 infNFeideverProc character varying 29 infNFeemitCNPJ char14 30 infNFeemitCPF char11 31 infNFeemitxNome character varying 32 infNFeemitxFant character varying 33 infNFeemitenderEmitxLgr character varying 34 infNFeemitenderEmitnro character varying 35 infNFeemitenderEmitxCpl character varying 36 infNFeemitenderEmitxBairro character varying 37 infNFeemitenderEmitcMun character varying 38 infNFeemitenderEmitxMun character varying 39 infNFeemitenderEmitUF character varying 40 infNFeemitenderEmitCEP character varying 41 infNFeemitenderEmitcPais character varying 42 infNFeemitenderEmitxPais character varying 43 infNFeemitenderEmitfone character varying 44 infNFeemitIE character varying 45 infNFeemitIEST character varying 46 infNFeemitIM character varying 47 infNFeemitCNAE character varying 48 infNFeemitCRT character varying 49 infNFedestCNPJ char14 50 infNFedestCPF char11 51 infNFedestidEstrangeiro character varying 52 infNFedestxNome character varying 53 infNFedestenderDestxLgr character varying 54 infNFedestenderDestnro character varying 55 infNFedestenderDestxCpl character varying 56 infNFedestenderDestxBairro character varying 57 infNFedestenderDestcMun character varying 28 58 infNFedestenderDestxMun character varying 59 infNFedestenderDestUF character varying 60 infNFedestenderDestCEP character varying 61 infNFedestenderDestcPais character varying 62 infNFedestenderDestxPais character varying 63 infNFedestenderDestfone character varying 64 infNFedestindIEDest character varying 65 infNFedestIE character varying 66 infNFedestISUF character varying 67 infNFedestIM character varying 68 infNFedestemail character varying 69 infNFetotalICMSTotvBC numeric162 70 infNFetotalICMSTotvICMS numeric162 71 infNFetotalICMSTotvICMSDeson numeric162 72 infNFetotalICMSTotvFCPUFDest numeric162 73 infNFetotalICMSTotvICMSUFDest numeric162 74 infNFetotalICMSTotvICMSUFRemet numeric162 75 infNFetotalICMSTotvFCP numeric162 76 infNFetotalICMSTotvBCST numeric162 77 infNFetotalICMSTotvST numeric162 78 infNFetotalICMSTotvFCPST numeric162 79 infNFetotalICMSTotvFCPSTRet numeric162 80 infNFetotalICMSTotvProd numeric162 81 infNFetotalICMSTotvFrete numeric162 82 infNFetotalICMSTotvSeg numeric162 83 infNFetotalICMSTotvDesc numeric162 84 infNFetotalICMSTotvII numeric162 85 infNFetotalICMSTotvIPI numeric162 86 infNFetotalICMSTotvPIS numeric162 87 infNFetotalICMSTotvCOFINS numeric162 88 infNFetotalICMSTotvOutro numeric162 89 infNFetotalICMSTotvNF numeric162 90 infNFetotalICMSTotvTotTrib numeric162 91 infNFetranspmodfrete character varying1 92 infNFetranspvagao character varying20 93 infNFetranspbalsa character varying20 94 infNFetransptransportacnpj char14 95 infNFetransptransportacpf char11 96 infNFetransptransportaxnome character varying100 97 infNFetransptransportaie character varying 98 infNFetransptransportaxender character varying100 99 infNFetransptransportaxmun character varying100 100 infNFetransptransportauf character varying2 101 infNFetransprettranspvserv numeric162 102 infNFetransprettranspvbcret numeric162 103 infNFetransprettransppicmsret numeric162 104 infNFetransprettranspvicmsret numeric162 105 infNFetransprettranspcfop character varying 29 106 infNFetransprettranspcmunfg character varying 107 infNFetranspveictranspplaca character varying8 108 infNFetranspveictranspuf character varying2 109 infNFetranspreboque1placa character varying8 110 infNFetranspreboque1uf character varying2 111 infNFetranspreboque2placa character varying8 112 infNFetranspreboque2uf character varying2 113 infNFetranspreboque3placa character varying8 114 infNFetranspreboque3uf character varying2 115 infNFetranspreboque4placa character varying8 116 infNFetranspreboque4uf character varying2 117 infNFetranspreboque5placa character varying8 118 infNFetranspreboque5uf character varying2 119 infNFetranspvol1nVol character varying60 120 infNFetranspvol1qVol numeric162 121 infNFetranspvol1esp character varying60 122 infNFetranspvol1marca character varying60 123 infNFetranspvol1pesoL numeric162 124 infNFetranspvol1pesoB numeric162 125 infNFetranspvol1lacresnLacre character varying60 126 infNFecobrfatnFat character varying60 127 infNFecobrfatvOrig numeric162 128 infNFecobrfatvDesc numeric162 129 infNFecobrfatvLiq numeric162 130 infNFepagvTroco numeric162 131 infNFeinfAdicinfAdFisco character varying 132 infNFeinfAdicinfCpl character varying 133 infNFeinfAdicobsContxCampo character varying 134 infNFeinfAdicobsContxTexto character varying 135 1 CREATE TABLE fatoitemnfe 2 idfatoitemnfe BIGSERIAL NOT NULL 3 infProtchNFe char44 NOT NULL 4 infNFedetnItem character varying NOT NULL 5 infNFedetprodcProd character varying 6 infNFedetprodcEAN character varying 7 infNFedetprodxProd character varying 8 infNFedetprodNCM character varying 9 infNFedetprodCFOP character varying 10 infNFedetproduCom character varying 11 infNFedetprodqCom numeric162 12 infNFedetprodvUnCom numeric162 13 infNFedetprodvProd numeric162 14 infNFedetprodcEANTrib character varying 15 infNFedetproduTrib character varying 30 16 infNFedetprodqTrib numeric162 17 infNFedetprodvUnTrib numeric162 18 infnfedetprodvFrete numeric162 19 infnfedetprodvSeg numeric162 20 infNFedetprodvDesc numeric162 21 infnfedetprodvOutro numeric162 22 infNFedetprodindTot character varying 23 infnfedetprodcombcprodanp character varying 24 infnfedetprodcombdescanp character varying 25 infnfedetprodcombpglp numeric74 26 infnfedetprodcombpgnn numeric74 27 infnfedetprodcombpgni numeric74 28 infnfedetprodcombvpart character varying 29 infnfedetprodcombcodif numeric 30 infnfedetprodcombqtemp numeric 31 infnfedetprodcombufcons character varying2 32 infnfedetprodcombcideqbcprod numeric162 33 infnfedetprodcombcidevaliqprod numeric162 34 infnfedetprodcombcidevcide numeric162 35 infnfedetprodcombencerrantenbico character varying 36 infnfedetprodcombencerrantenbomba character varying 37 infnfedetprodcombencerrantentanque character varying 38 infnfedetprodcombencerrantevencini numeric162 39 infnfedetprodcombencerrantevencfin numeric162 40 infNFedetimpostovTotTrib numeric162 41 infNFedetimpostoICMSorig character varying1 42 infNFedetimpostoICMSCST character varying3 43 infNFedetimpostoICMSCSOSN character varying 44 infNFedetimpostoICMSvBCSTRet numeric162 45 infNFedetimpostoICMSpST numeric162 46 infNFedetimpostoICMSvICMSSubstituto numeric162 47 infNFedetimpostoICMSvICMSSTRet numeric162 48 infNFedetimpostoICMSvBCFCPSTRet numeric162 49 infNFedetimpostoICMSpFCPSTRet numeric162 50 infNFedetimpostoICMSvFCPSTRet numeric162 51 infNFedetimpostoICMSvBCSTDest numeric162 52 infNFedetimpostoICMSvICMSSTDest numeric162 53 infNFedetimpostoICMSpRedBCEfet numeric162 54 infNFedetimpostoICMSvBCEfet numeric162 55 infNFedetimpostoICMSpICMSEfet numeric162 56 infNFedetimpostoICMSvICMSEfet numeric162 57 infNFedetimpostoICMSmodBC character varying1 58 infNFedetimpostoICMSpRedBC numeric162 59 infNFedetimpostoICMSvBC numeric162 60 infNFedetimpostoICMSpICMS numeric162 61 infNFedetimpostoICMSvICMSOp numeric162 62 infNFedetimpostoICMSpDif numeric162 63 infNFedetimpostoICMSvICMSDif numeric162 31 64 infNFedetimpostoICMSvICMS numeric162 65 infNFedetimpostoICMSvBCFCP numeric162 66 infNFedetimpostoICMSpFCP numeric162 67 infNFedetimpostoICMSvFCP numeric162 68 infNFedetimpostoICMSpFCPDif numeric162 69 infNFedetimpostoICMSvFCPDif numeric162 70 infNFedetimpostoICMSvFCPEfet numeric162 71 infNFedetimpostoICMSmodBCST character varying1 72 infNFedetimpostoICMSpMVAST numeric162 73 infNFedetimpostoICMSpRedBCST numeric162 74 infNFedetimpostoICMSvBCST numeric162 75 infNFedetimpostoICMSpICMSST numeric162 76 infNFedetimpostoICMSvICMSST numeric162 77 infNFedetimpostoICMSvBCFCPST numeric162 78 infNFedetimpostoICMSpFCPST numeric162 79 infNFedetimpostoICMSvFCPST numeric162 80 infNFedetimpostoICMSvICMSDeson numeric162 81 infNFedetimpostoICMSmotDesICMS character varying3 82 infNFedetimpostoICMSvICMSSTDeson numeric162 83 infNFedetimpostoICMSmotDesICMSST character varying3 84 infNFedetimpostoICMSpBCOp numeric162 85 infNFedetimpostoICMSUFST character varying2 86 infNFedetimpostoICMSpCredSN numeric162 87 infNFedetimpostoIIvBC numeric162 88 infNFedetimpostoIIvDespAdu numeric162 89 infNFedetimpostoIIvII numeric162 90 infNFedetimpostoIIvIOF numeric162 91 infNFedetimpostoICMSUFDestvBCUFDest numeric162 92 infNFedetimpostoICMSUFDestvBCFCPUFDest numeric162 93 infNFedetimpostoICMSUFDestpFCPUFDest numeric162 94 infNFedetimpostoICMSUFDestpICMSUFDest numeric162 95 infNFedetimpostoICMSUFDestpICMSInter character varying 96 infNFedetimpostoICMSUFDestpICMSInterPart numeric162 97 infNFedetimpostoICMSUFDestvFCPUFDest numeric162 98 infNFedetimpostoICMSUFDestvICMSUFDest numeric162 99 infNFedetimpostoICMSUFDestvICMSUFRemet numeric162 100 PRIMARY KEY infProtchNFe infNFedetnItem 101 33 Deploy banco de dados Para realizar o deploy foi utilizado o gerenciador de container docker swarm e arquivos dockercompose Ademais foram utilizados o deploy de 2 bancos de dados distintos para o Postgres SingleNode e Postgres Citus 32 331 Postgres SingleNode Considerando a exemplificacao na documentacao do dockerhub do proprio Postgres disponnıvel em hub 2022 foi utilizado para o deploy do Postgres SingleNode nas maquinas virtuais da SEFAZPB o arquivo dockercompose que segue 1 version 37 2 services 3 manager 4 image postgres 5 restart always 6 ports 7 54305432 8 volumes 9 homedebiancontrolepgdatavarlibpostgresqldata 10 homedebianamostraamostra 11 environment 12 POSTGRESPASSWORD Aiveid7n 13 TZ AmericaRecife 14 deploy 15 placement 16 constraints 17 nodehostname sefazshard0 18 Neste arquivo esta disponıvel o manual para realizacao do deploy de 1 no contendo apenas o gerente manager Sua execucao e feita pelo comando docker stack deploy c Path to a Compose file Para alem disso tambem no Postgres SingleNode sao criadas as tabelas fatonfe e fatoitemnfe Com isso o Postgres SingleNode esta configurado e os testes podem ser realizados 332 Postgres Citus Para este caso o deploy do Postgres Citus nas maquinas virtuais da SEFAZPB foi feita uma adaptacao disponıvel na documentacao acerca do Docker do proprio Citus disponıvel em data 2022 O arquivo segue abaixo 1 version 37 2 3 networks 33 4 postgisdist 5 driver overlay 6 7 volumes 8 healthcheckvolume 9 10 services 11 master 12 containername COMPOSEPROJECTNAMEcitusmaster 13 image citusdatacitus1112 14 ports COORDINATOREXTERNALPORT54325432 15 labels comcitusdataroleMaster comdockercomposeprojectcitus 16 shmsize 1gb 17 environment AUTH 18 POSTGRESUSER datalakeuser 19 POSTGRESPASSWORD EQuohG2i 20 PGUSER datalakeuser 21 PGPASSWORD EQuohG2i 22 deploy 23 placement 24 constraints 25 nodehostname sefazshard0 26 networks 27 postgisdist 28 29 manager 30 containername COMPOSEPROJECTNAMEcitusmanager 31 image citusdatamembershipmanager030 32 labels comcitusdataroleManager comdockercomposeprojectcitus 33 volumes 34 DOCKERSOCKvarrundockersockvarrundockersock 35 healthcheckvolumehealthcheck 36 dependson master 37 environment AUTH 38 deploy 39 placement 40 constraints 41 nodehostname sefazshard0 42 networks 43 postgisdist 44 45 worker1 46 containername COMPOSEPROJECTNAMEcitusworker1 47 image citusdatacitus1112 48 labels comcitusdataroleWorker comdockercomposeprojectcitus 49 shmsize 1gb 50 dependson manager 51 environment AUTH 34 52 ports 53 54815432 54 volumes 55 healthcheckvolumehealthcheck 56 homedebiancitusvarlibpostgresqldata 57 deploy 58 placement 59 constraints 60 nodehostname sefazshard1 61 networks 62 postgisdist 63 64 worker2 65 containername COMPOSEPROJECTNAMEcitusworker2 66 image citusdatacitus1112 67 labels comcitusdataroleWorker comdockercomposeprojectcitus 68 shmsize 1gb 69 dependson manager 70 environment AUTH 71 ports 72 54825432 73 volumes 74 healthcheckvolumehealthcheck 75 homedebiancitusvarlibpostgresqldata 76 deploy 77 placement 78 constraints 79 nodehostname sefazshard2 80 networks 81 postgisdist 82 83 worker3 84 containername COMPOSEPROJECTNAMEcitusworker3 85 image citusdatacitus1112 86 labels comcitusdataroleWorker comdockercomposeprojectcitus 87 shmsize 1gb 88 dependson manager 89 environment AUTH 90 ports 91 54835432 92 volumes 93 healthcheckvolumehealthcheck 94 homedebiancitusvarlibpostgresqldata 95 deploy 96 placement 97 constraints 98 nodehostname sefazshard3 99 networks 35 100 postgisdist Neste aqruivo e disponibilizado o manual para execucao do deploy de 3 nos trabalha dores worker1 worker2 e worker3 e 1 no contendo simultaneamente o gerente manager e o mestre master No caso do deploy de 6 nos trabalhadores e adicionado mais 3 novos trabalhadores seguindo o mesmo padrao ou seja e necessario alterar o service name container name e deployplacementconstraints Com isso a execucao do deploy e realizada pelo comando docker stack deploy c Path to a Compose file Por conseguinte apos o deploy do Cluster Citus ter sido bem sucedido e realizada a sincronizacao do no master com os nos workers A indicacao do no master no cluster e feita conectando o banco Postgres Citus que esta sendo executado no no master utilizando o psql e executar a consulta SQL com o comando SELECT citussetcoordinatorhostcoordexamplecom 5432 Posteriormente e conectado cada um dos nos workers ao no master Para tanto executadas ss consultas SQL 1 SELECT FROM citusaddnodeworker1 5432 2 SELECT FROM citusaddnodeworker2 5432 3 SELECT FROM citusaddnodeworker3 5432 Desta feita fazse necessario verificar se os nos estao se encontrando dentro do cluster entao portanto executase a consulta SQL SELECT FROM mastergetactiveworkernodes Abaixo destacamos um recorte quando utilizado 3 nos workers da saıda da consulta 1 nodename nodeport 2 3 worker2 5432 4 worker1 5432 5 worker3 5432 6 3 rows 36 De mais a mais e criada as tabelas fatonfe e fatoitemnfe entao a tabela fatonfe e distribuıda entre os nos workers aplicando por padrao hash na coluna infprot chnfe Sua execucao e feita pela consulta SQL SELECT createdistributedtablefatonfe infprotchnfe Ainda a partir da consulta precedente sao criados os fragmentos shards nos nos workers utilizando os valores de configuracao padrao do citus citusshardcount32 e citusshardreplicationfactor1 os quais representam a quantidade de fragmentos que devem ser criados em cada no worker e quantas replicas de cada fragmento deve ter existir respectivamente Feito isso o cluster citus esta configurado e os testes poderao ser realizados 34 Base de Dados As duas bases de dados da NFe pertencente ao orgao da Secretaria de Estado da Fazenda da Paraıba SEFAZPB utilizados neste trabalho contem na primeira base de dados aproximadamente 849 mil registros da tabela fatonfe e 42 milhoes de registros da tabela fatoitemnfe Na segunda base de dados sao aproximadamente 10 milhoes de registros da tabela fatonfe e Y milhoes de registros da tabela fatoitemnfe O tamanho das bases sao respectivamente 21GB e 11 X GB Para uma melhor visualizacao estas informacoes foram organizada na Tabela 1 Tabela 1 Informacoes Bases de Dados Base de Dados Tabela Tamanho Registros Pequena Fatonfe 08 GB 849601 Pequena Fatoitemnfe 13 GB 4230063 Grande Fatonfe 11 GB 9994158 Grande Fatoitemnfe X Y Fonte Elaborada pelo autor 2022 35 Descricao dos Cenarios Como cenarios de execucao foram utilizados Cenario 1 1 no Cenario 2 3 nos e Cenario 3 6 nos Em cada cenario existem 3 subdivisoes com base no ındice utilizado quais sao sem ındice ındice btree e ındice hash Para estas escolhas foi levado em consideracao que o btree e o padrao de ındice utilizado pelo Postgres e o hash e padrao utilizado pelo Citus para distribuir as tabela pelo cluster Desta forma a Figura 2 representa o fluxograma para cada cenario 37 Figura 2 Fluxograma dos cenarios de 1 3 e 6 nos Fonte Elaborada pelo Autor 2022 36 Metrica de Avaliacao Como metricas de metricas de avaliacao foram utilizadas a alocacao de shards por no media de consumo de memoria em cada no e media do tempo de execucao de cada 38 consulta Metricas relacionadas foram utilizadas nos trabalhos de Tardıo et al 2020 que utilizaram como metricas o tempo de construcao sucesso de construcao tamanho do Cubo latˆencia de consulta e cobertura de modelo e FILHO 2014 em que foi empregada como metrica o tempo de resposta taxas de execucao e confiabilidade 361 Benchmark de Consulta O benchmark de consulta foi empregado com o objetivo de avaliar o desempenho dos SGBDs Dessa maneira utilizamos como estrategias de implementacao o registro completo e selecao de colunas aos quais sao definidos a seguir a Registro Completo Retorna todos os campos e atributos que pertencem a consulta b Selecao de Colunas Engloba apenas um subconjunto dos campos e atributos que pertencem a consulta Sendo assim para cada uma das estrategias temse os filtros quantidade de datas e quantidade de CNPJ Estes filtros foram definidos levando em consideracao as atividades habituais dos clientes que utilizam a base de dados da SEFAZPB Ainda para cada um dos filtros existem determinados valores possıveis conforme descrito na lista abaixo Quantidade de Data 0 nenhuma data 1 apenas uma data intervalo intervalo de datas Quantidade de CNPJ 0 nenhum CNPJ 1 apenas um CNPJ LIKE padrao de CNPJ IN lista de CNPJs Outrossim destacamos que foram introduzidos mais de um intervalo de data O recorte do codigo para consulta de acordo com o apresentado na lista precedente esta disponıvel do Apˆendice 1 39 4 RESULTADOS E DISCUSSAO Finaliza a etapa da aplicacao do benchmark entao utilizando comandos especıficos do Postgres e do Docker foram extraıdos os resultados de interesse Imperioso destacar que nao foi identificado problemas ao executar os comandos do Postgres no cluster Citus isso devido ao fato do mesmo ser construıdo utilizando o Postgres como base Ademais o leitor interessado em mais detalhes sobre os comandos utilizados podera consultar a documentacao do docker stats disponıvel em stats 2022 Com relacao ao Postgres foram coletadas informacoes sobre tempo de execucao das queries ativando a flag timing e quantidade de shards em cada um dos nos No caso do lado do Docker utilizando o comando docker stats foi possıvel obter a informacoes em cada dos nos da porcentagem do uso de CPU e memoria RAM quantidade total de memoria RAM em uso e permitida quantidade de dados enviados e recebidos atraves da interface de rede quantidade de dados que foram lidos e escritos nos dispositivos de armazenamento Desta forma na Tabela 2 apresentamos um recorte dos resultados para o tempo de execucao das queries utilizando o Citus Tabela 2 Resultados para o tempo de execucao para uma pequena amostra number of connections number of workers execution time 1 execution time 2 execution time 3 1 6 1395811422 717923563 697791345 1 6 365918 297772 302315 1 6 453295 437798 453786 1 6 453241 435263 447227 1 6 272015 235115 290749 1 6 234344 280841 307159 1 6 307804 254585 255108 1 6 308778 310837 270143 1 6 1080915 1114728 111343 1 6 252683 310112 236565 1 6 257488 275521 251631 1 6 239887 270461 283869 1 6 29112293 28518704 28844431 1 6 273735 26941 269551 1 6 304879 27035 298035 1 6 270308 230989 249226 1 6 216936 254998 269651 1 6 273716 271419 309409 1 6 271952 272284 222356 1 6 260023 240843 266217 1 6 358318 305044 325275 1 6 232638 269299 243977 1 6 269499 253991 284334 1 6 24834 262046 251038 1 6 359567 223392 237865 40 number of connections number of workers execution time 1 execution time 2 execution time 3 1 6 222999 268485 221121 1 6 276565 26963 270111 1 6 226873 262967 238101 1 6 236998 269499 227982 1 6 269528 254949 270007 1 6 250001 248122 270044 1 6 23054 248965 270438 1 6 226632 276886 2408 1 6 269386 251958 257119 1 6 270362 254168 311758 1 6 251088 245987 307105 1 6 28069 223528 220471 1 6 307683 219665 267037 1 6 30768 250836 251082 1 6 307944 269528 257128 1 6 26921 260007 269784 1 6 227357 231696 269447 1 6 283715 269422 237897 1 6 277224 269055 269273 1 6 26905 255071 267049 1 6 225901 253394 269465 1 6 269673 26911 239003 1 6 274197 243976 282239 1 6 235309 250959 222895 1 6 267321 269743 228789 1 6 269626 27201 26962 1 6 269434 269554 269444 1 6 241109 233095 210226 1 6 273417 305392 314719 1 6 253063 279411 273631 1 6 253169 269391 226978 1 6 246259 237033 22593 1 6 26808 231998 239053 1 6 265881 250093 22974 1 6 272006 269495 30404 1 6 282644626 276346774 276160792 1 6 179010415 17257509 176491358 1 6 225038594 23953764 232471921 1 6 237843709 232329075 230670486 1 6 14645243 13745036 141695953 1 6 145500947 138738194 134643112 1 6 136443254 136981539 132003724 1 6 139621104 134498543 13422832 1 6 214656958 228958644 225669037 1 6 144216159 133197835 13158319 1 6 132244943 136834237 133031575 1 6 13233663 130709535 134516651 1 6 88854124 876978635 816167711 41 number of connections number of workers execution time 1 execution time 2 execution time 3 1 6 314918 217552 209508 1 6 486112 454249 490744 1 6 954797 405655 394442 1 6 19709 187489 180541 1 6 203742 235589 178485 1 6 217393 177418 218561 1 6 21905 19855 206458 1 6 1211759 1154249 1179924 1 6 223456 230995 231281 1 6 216621 188112 1948 1 6 206373 225085 196182 1 6 29983518 28900063 29021033 1 6 179588 191667 176228 1 6 272076 270052 248964 1 6 197026 225341 179955 1 6 179617 180023 17961 1 6 176836 178946 191011 1 6 182036 165833 218106 1 6 169874 20204 179564 1 6 307116 248656 245638 1 6 179785 179514 185954 1 6 219524 186882 180846 1 6 179357 190762 193081 1 6 269228 176751 180848 1 6 18229 157836 167871 1 6 307082 306564 306669 1 6 180719 198267 188222 1 6 179227 207434 192493 1 6 223365 178082 191329 1 6 218429 195008 175871 1 6 170548 191305 183578 1 6 176253 181291 18985 1 6 181441 181562 164896 1 6 177753 17138 176757 1 6 183146 179904 22041 1 6 223453 185272 187767 1 6 170916 175935 213602 1 6 271759 241322 264126 1 6 218533 177203 216273 1 6 197456 264174 179564 1 6 177067 183356 185467 1 6 177562 22051 217749 1 6 178762 173154 180109 1 6 171751 181803 180656 1 6 172716 205217 183455 1 6 190715 19253 177631 1 6 195565 182559 199149 1 6 2232 175973 180035 1 6 182721 170247 179632 1 6 269319 304302 249896 1 6 179462 161886 203214 1 6 193905 190994 183838 1 6 193786 216259 180962 1 6 172761 179236 218199 1 6 169954 225361 190848 1 6 191876 167761 216217 1 6 191533 214282 2182 1 6 197369 179492 205026 1 6 202705 180088 181752 42 number of connections number of workers execution time 1 execution time 2 execution time 3 1 6 282822749 275205097 281389468 1 6 182341225 172662873 180714217 1 6 231058631 242463773 255157691 1 6 236164523 236048032 234064049 1 6 150229008 141301172 133331323 1 6 133492991 135071088 133201411 1 6 13250689 135545258 136801216 1 6 13666081 134889479 131615767 1 6 21523691 233171967 223801252 1 6 155899046 138918491 137304306 1 6 137666622 132032068 136936886 1 6 132079968 137127696 136281044 A partir dos resultados do tempo de execucao da Tabela 2 calculamos as trˆes principais estatısticas descritivas Desta forma podemos observar que com relacao ao tempo mınimo de execucao nos trˆes casos os resultados foram similares Por outro lado quando comparado os valores maximos o primeiro tempo de execucao apresentou uma discrepˆancia consideravel com relacao aos demais Tabela 3 Estatistica descritiva do tempo de execucao para uma pequena amostra execution time 1 execution time 2 execution time 3 Mınimo 1699 1578 1649 Maximo 13958114 8769786 8161677 Mean 459458 409322 403126 Fonte Elaborada pelo autor 2022 Destarte frente aos resultados destacamos ainda as caracterısticas comparativas na Tabela 4 entre a citus e as tecnologias Postgres Greenplum e Presto disponıveis na literatura Tabela 4 Comparacao de tecnologias Caracterısticas Postgres Greenplum Citus Presto Escalabilidade horizontal F V V V Controle de acesso V V V F Gerenciamento de usuario V V V V Fragmentacao sharding V V V F Motor de SQL distribuıdo F V V V Transacoes distribuıdas F V V F Armazenamento colunar F V V V Consultas a partir de qualquer no F F V F Tabelas de referˆencia locais F V V F Tabelas distribuıdas F V V F Execucao do pipeline na memoria V F V V Aceita varias fontes de dados como entrada F F F V Deploy simplificado V F V V Flexibilidade com relacao a configuracoes V V F V API para metodos MapReduce definidos por usuarios V F 43 5 CONSIDERAC OES FINAIS E fato que com a a popularizacao de aplicacoes utilizando arquitetura distribuıda tem sido necessario pensar no tempo execucao para processar os resultados esperados pelo usuario Igualmente e importante estudos para escolhas de tecnologias de armazenamento de dados com aplicacoes imediatas Neste contexto este trabalho analisou dois conjuntos de com itens da NFe disponıvel na base de dados da Secretaria da fazenda do Estado da Paraıba SEFAZPB com o objetivo de avaliar o tempo de execucao do processamento utilizando a ferramenta citus Sendo assim para lograrmos dos resultados esperados foi utilizada a mesma estrutura de modelagem para implementacao e analise de dois conjuntos de dados contendo aproximadamente 849 mil e 42 milhoes de registros Com isso foi considerado trˆes c cenarios de execucao quais foram Cenario 1 1 no Cenario 2 3 nos e Cenario 3 6 nos Desta forma foram criados os ambientes experimentais e realizados os teste de execucao entao os resultados mostraram que para conjuntos de dados pequenos pequenos a ferramenta citus apresentou desempenho eficiente com relacao aos tempos de execucao e resposta Outrossim quando utilizado em grandes conjuntos de dados a ferramenta citus apresentou resultados levemente inferior em comparacao com PostgreSQL Contudo apesar disso imperioso destacar que esta pesquisa trouxe contribuicoes significativas para comunidade cientıfica tendo uma em a disponibilidade de uma nova ferramenta de analise de uma base de dados da NFes no ˆambito da Big Data alem da ja disponıvel PostgreSQL 44 REFERˆENCIAS ASSUNC AO T M CARVALHO M d L M Escrituracao contabil a importˆancia da escrituracao contabil para as microempresas e empresas de pequeno porte 2018 AZZINI A CERAVOLO P COLELLA M Performances of olap operations in graph and relational databases In SPRINGER International Conference on Knowledge Management in Organizations Sl 2019 p 282293 BRASIL Decreto nº 6022 de 22 de janeiro de 2007 Diario Oficial da Republica Federativa do Brasil Brasılia DF 2007 Disponıvel em httpwwwplanaltogovbr ccivil 03 ato200720102007decretod6022htm CUBUKCU U ERDOGAN O PATHAK S SANNAKKAYALA S SLOT M Citus Distributed postgresql for dataintensive applications In Proceedings of the 2021 International Conference on Management of Data Sl sn 2021 p 24902502 DATA C Citus documentation 2022 DATA citus dockercompose v 3 p httpsgithubcomcitusdatadockerblob masterdockercomposeyml 2022 FILHO B E M d A OBAS Um Benchmark OLAP Para Servicos de Analises Dissertacao Mestrado Universidade Federal de Pernambuco 2014 FUNKE F KEMPER A NEUMANN T Benchmarking hybrid oltpolap database sys tems Datenbanksysteme fur Business Technologie und Web BTW Gesellschaft fur Informatik eV 2011 GKAMAS T KARAISKOS V KONTOGIANNIS S Performance evaluation of distri buted database strategies using docker as a service for industrial iot data Application to industry 40 Information MDPI v 13 n 4 p 190 2022 HUB D The postgresql objectrelational database system provides reliability and data integrity p httpshubdockercompostgres 2022 MANOEL V OLIVEIRA C G PEREIRA A L MATA A R Escrituracao contabil digital consequˆencias benefıcios e a evolucao da profissao contabil Instituto de Ensino Superior de LondrinaINESUL Londrina 2011 PORTAL D S P D E D httpspedrfbgovbrpaginashow1328 Acessada em 03 de novembro de 2022 2022 RAMAKRISHNAN R GEHRKE J Sistemas de gerenciamento de banco de dados3 Sl AMGH Editora 2008 SANTOS D F P et al Um estudo comparativo sobre uso de modelos de dados para notas fiscais eletrˆonicas Universidade Federal da Paraıba 2021 STATS D Display a live stream of containers resource usage statistics p httpsdocsdockercomenginereferencecommandlinestats 2022 45 TARDIO R MATE A TRUJILLO J A new big data benchmark for olap cube design using data preaggregation techniques Applied Sciences MDPI v 10 n 23 p 8674 2020 TSUKAMOTO V H S et al Sistema publico de escrituracao digital spedecf escrituracao contabil fiscal lucro real lucro presumido e imunes ou isentas Universidade Federal de Mato Grosso 2019 46 APÊNDICES 1 Recorte do código para Benchmark de Consulta SELECT FROM fatonfe SELECT FROM fatonfe WHERE infNFeemitCNPJ 04116842000164 SELECT FROM fatonfe WHERE infNFeemitCNPJ LIKE 0411 SELECT FROM fatonfe WHERE infNFeemitCNPJ IN 04111338000171 04111497000176 04112204000175 04114549000168 04114868000173 04115363000123 04115428000300 04116210000109 04116842000164 04117715000180 SELECT FROM fatonfe WHERE infNFeidedhEmi 20220203 08492603 SELECT FROM fatonfe WHERE infNFeidedhEmi 20220203 08492603 AND infNFeemitCNPJ 04116842000164 SELECT FROM fatonfe WHERE infNFeidedhEmi 20220203 08492603 AND infNFeemitCNPJ LIKE 0411 SELECT FROM fatonfe WHERE infNFeidedhEmi 20220203 08492603 AND infNFeemitCNPJ IN 04111338000171 04111497000176 04112204000175 04114549000168 04114868000173 04115363000123 04115428000300 04116210000109 04116842000164 04117715000180 SELECT FROM fatonfe WHERE infNFeidedhEmi BETWEEN 20220101 AND 20220601 SELECT FROM fatonfe WHERE infNFeemitCNPJ 04116842000164 AND infNFeidedhEmi BETWEEN 20220101 AND 20220601 SELECT FROM fatonfe WHERE infNFeemitCNPJ LIKE 0411 AND infNFeidedhEmi BETWEEN 20220101 AND 20220601 SELECT FROM fatonfe WHERE infNFeemitCNPJ IN 04111338000171 04111497000176 04112204000175 04114549000168 04114868000173 04115363000123 04115428000300 04116210000109 04116842000164 04117715000180 AND infNFeidedhEmi BETWEEN 20220101 AND 20220601 SELECT idfatonfe FROM fatonfe SELECT idfatonfe FROM fatonfe WHERE infNFeemitCNPJ 04116842000164 SELECT idfatonfe FROM fatonfe WHERE infNFeemitCNPJ LIKE 0411 SELECT idfatonfe FROM fatonfe WHERE infNFeemitCNPJ IN 04111338000171 04111497000176 04112204000175 04114549000168 04114868000173 04115363000123 04115428000300 04116210000109 04116842000164 04117715000180 SELECT idfatonfe FROM fatonfe WHERE infNFeidedhEmi 20220203 08492603 SELECT idfatonfe FROM fatonfe WHERE infNFeidedhEmi 20220203 08492603 AND infNFeemitCNPJ 04116842000164 SELECT idfatonfe FROM fatonfe WHERE infNFeidedhEmi 20220203 08492603 AND infNFeemitCNPJ LIKE 0411 SELECT idfatonfe FROM fatonfe WHERE infNFeidedhEmi 20220203 08492603 AND infNFeemitCNPJ IN 04111338000171 04111497000176 04112204000175 04114549000168 04114868000173 04115363000123 04115428000300 04116210000109 04116842000164 04117715000180 SELECT idfatonfe FROM fatonfe WHERE infNFeidedhEmi BETWEEN 20220101 AND 20220601 SELECT idfatonfe FROM fatonfe WHERE infNFeemitCNPJ 04116842000164 AND infNFeidedhEmi BETWEEN 20220101 AND 20220601 SELECT idfatonfe FROM fatonfe WHERE infNFeemitCNPJ LIKE 0411 AND infNFeidedhEmi BETWEEN 20220101 AND 20220601 48 SELECT idfatonfe FROM fatonfe WHERE infNFeemitCNPJ IN 04111338000171 04111497000176 04112204000175 04114549000168 04114868000173 04115363000123 04115428000300 04116210000109 04116842000164 04117715000180 AND infNFeidedhEmi BETWEEN 20220101 AND 20220601 SELECT sumidfatonfe FROM fatonfe SELECT sumidfatonfe FROM fatonfe WHERE infNFeemitCNPJ 04116842000164 SELECT sumidfatonfe FROM fatonfe WHERE infNFeemitCNPJ LIKE 0411 SELECT sumidfatonfe FROM fatonfe WHERE infNFeemitCNPJ IN 04111338000171 04111497000176 04112204000175 04114549000168 04114868000173 04115363000123 04115428000300 04116210000109 04116842000164 04117715000180 SELECT sumidfatonfe FROM fatonfe WHERE infNFeidedhEmi 20220203 08492603 SELECT sumidfatonfe FROM fatonfe WHERE infNFeidedhEmi 20220203 08492603 AND infNFeemitCNPJ 04116842000164 SELECT sumidfatonfe FROM fatonfe WHERE infNFeidedhEmi 20220203 08492603 AND infNFeemitCNPJ LIKE 0411 SELECT sumidfatonfe FROM fatonfe WHERE infNFeidedhEmi 20220203 08492603 AND infNFeemitCNPJ IN 04111338000171 04111497000176 04112204000175 04114549000168 04114868000173 04115363000123 04115428000300 04116210000109 04116842000164 04117715000180 SELECT sumidfatonfe FROM fatonfe WHERE infNFeidedhEmi BETWEEN 20220101 AND 20220601 SELECT sumidfatonfe FROM fatonfe WHERE infNFeemitCNPJ 04116842000164 AND infNFeidedhEmi BETWEEN 20220101 AND 20220601 SELECT sumidfatonfe FROM fatonfe WHERE infNFeemitCNPJ LIKE 0411 AND infNFeidedhEmi BETWEEN 20220101 AND 20220601 SELECT sumidfatonfe FROM fatonfe WHERE infNFeemitCNPJ IN 04111338000171 04111497000176 04112204000175 04114549000168 04114868000173 04115363000123 04115428000300 04116210000109 04116842000164 04117715000180 AND infNFeidedhEmi BETWEEN 20220101 AND 20220601 SELECT avgidfatonfe FROM fatonfe SELECT avgidfatonfe FROM fatonfe WHERE infNFeemitCNPJ 04116842000164 SELECT avgidfatonfe FROM fatonfe WHERE infNFeemitCNPJ LIKE 0411 SELECT avgidfatonfe FROM fatonfe WHERE infNFeemitCNPJ IN 04111338000171 04111497000176 04112204000175 04114549000168 04114868000173 04115363000123 04115428000300 04116210000109 04116842000164 04117715000180 SELECT avgidfatonfe FROM fatonfe WHERE infNFeidedhEmi 20220203 08492603 SELECT avgidfatonfe FROM fatonfe WHERE infNFeidedhEmi 20220203 08492603 AND infNFeemitCNPJ 04116842000164 SELECT avgidfatonfe FROM fatonfe WHERE infNFeidedhEmi 20220203 08492603 AND infNFeemitCNPJ LIKE 0411 SELECT avgidfatonfe FROM fatonfe WHERE infNFeidedhEmi 20220203 08492603 AND infNFeemitCNPJ IN 04111338000171 04111497000176 04112204000175 04114549000168 04114868000173 04115363000123 04115428000300 04116210000109 04116842000164 04117715000180 SELECT avgidfatonfe FROM fatonfe WHERE infNFeidedhEmi BETWEEN 20220101 AND 20220601 SELECT avgidfatonfe FROM fatonfe WHERE infNFeemitCNPJ 04116842000164 AND infNFeidedhEmi BETWEEN 20220101 AND 20220601 SELECT avgidfatonfe FROM fatonfe WHERE infNFeemitCNPJ LIKE 0411 AND infNFeidedhEmi BETWEEN 20220101 AND 20220601 SELECT avgidfatonfe FROM fatonfe WHERE infNFeemitCNPJ IN 04111338000171 04111497000176 04112204000175 04114549000168 04114868000173 04115363000123 04115428000300 04116210000109 04116842000164 04117715000180 AND infNFeidedhEmi BETWEEN 20220101 AND 20220601 SELECT countidfatonfe FROM fatonfe SELECT countidfatonfe FROM fatonfe WHERE infNFeemitCNPJ 04116842000164 SELECT countidfatonfe FROM fatonfe WHERE infNFeemitCNPJ LIKE 0411 SELECT countidfatonfe FROM fatonfe WHERE infNFeemitCNPJ IN 04111338000171 04111497000176 04112204000175 04114549000168 04114868000173 04115363000123 04115428000300 04116210000109 04116842000164 04117715000180 SELECT countidfatonfe FROM fatonfe WHERE infNFeidedhEmi 20220203 08492603 SELECT countidfatonfe FROM fatonfe WHERE infNFeidedhEmi 20220203 08492603 AND infNFeemitCNPJ 04116842000164 SELECT countidfatonfe FROM fatonfe WHERE infNFeidedhEmi 20220203 08492603 AND infNFeemitCNPJ LIKE 0411 SELECT countidfatonfe FROM fatonfe WHERE infNFeidedhEmi 20220203 08492603 AND infNFeemitCNPJ IN 04111338000171 04111497000176 04112204000175 04114549000168 04114868000173 04115363000123 04115428000300 04116210000109 04116842000164 04117715000180 SELECT countidfatonfe FROM fatonfe WHERE infNFeidedhEmi BETWEEN 20220101 AND 20220601 SELECT countidfatonfe FROM fatonfe WHERE infNFeemitCNPJ 04116842000164 AND infNFeidedhEmi BETWEEN 20220101 AND 20220601 SELECT countidfatonfe FROM fatonfe WHERE infNFeemitCNPJ LIKE 0411 AND infNFeidedhEmi BETWEEN 20220101 AND 20220601 SELECT countidfatonfe FROM fatonfe WHERE infNFeemitCNPJ IN 04111338000171 04111497000176 04112204000175 04114549000168 04114868000173 04115363000123 04115428000300 04116210000109 04116842000164 04117715000180 AND infNFeidedhEmi BETWEEN 20220101 AND 20220601 SELECT fatoitemnfeidfatoitemnfe FROM fatoitemnfe inner join fatonfe on fatoitemnfeinfprotchnfefatonfeinfprotchnfe SELECT fatoitemnfeidfatoitemnfe FROM fatoitemnfe inner join fatonfe on fatoitemnfeinfprotchnfefatonfeinfprotchnfe WHERE fatonfeinfNFeemitCNPJ 04116842000164 SELECT fatoitemnfeidfatoitemnfe FROM fatoitemnfe inner join fatonfe on fatoitemnfeinfprotchnfefatonfeinfprotchnfe WHERE fatonfeinfNFeemitCNPJ LIKE 0411 SELECT fatoitemnfeidfatoitemnfe FROM fatoitemnfe inner join fatonfe on fatoitemnfeinfprotchnfefatonfeinfprotchnfe WHERE fatonfeinfNFeemitCNPJ IN 04111338000171 04111497000176 04112204000175 04114549000168 04114868000173 04115363000123 04115428000300 04116210000109 04116842000164 04117715000180 SELECT fatoitemnfeidfatoitemnfe FROM fatoitemnfe FROM fatoitemnfe inner join fatonfe on fatoitemnfeinfprotchnfefatonfeinfprotchnfe WHERE fatonfeinfNFeidedhEmi 20220203 08492603 SELECT fatoitemnfeidfatoitemnfe FROM fatoitemnfe FROM fatoitemnfe inner join fatonfe on fatoitemnfeinfprotchnfefatonfeinfprotchnfe WHERE fatonfeinfNFeidedhEmi 20220203 08492603 AND fatonfeinfNFeemitCNPJ 04116842000164 SELECT fatoitemnfeidfatoitemnfe FROM fatoitemnfe inner join fatonfe on fatoitemnfeinfprotchnfefatonfeinfprotchnfe WHERE fatonfeinfNFeidedhEmi 20220203 08492603 AND fatonfeinfNFeemitCNPJ LIKE 0411 SELECT fatoitemnfeidfatoitemnfe FROM fatoitemnfe FROM fatoitemnfe inner join fatonfe on fatoitemnfeinfprotchnfefatonfeinfprotchnfe WHERE fatonfeinfNFeidedhEmi 20220203 08492603 AND fatonfeinfNFeemitCNPJ IN 04111338000171 04111497000176 04112204000175 04114549000168 04114868000173 04115363000123 04115428000300 04116210000109 04116842000164 04117715000180 SELECT fatoitemnfeidfatoitemnfe FROM fatoitemnfe FROM fatoitemnfe inner join fatonfe on fatoitemnfeinfprotchnfefatonfeinfprotchnfe WHERE fatonfeinfNFeidedhEmi BETWEEN 20220101 AND 20220601 SELECT fatoitemnfeidfatoitemnfe FROM fatoitemnfe FROM fatoitemnfe inner join fatonfe on fatoitemnfeinfprotchnfefatonfeinfprotchnfe WHERE fatonfeinfNFeemitCNPJ 04116842000164 AND fatonfeinfNFeidedhEmi BETWEEN 20220101 AND 20220601 SELECT fatoitemnfeidfatoitemnfe FROM fatoitemnfe FROM fatoitemnfe inner join fatonfe on fatoitemnfeinfprotchnfefatonfeinfprotchnfe WHERE fatonfeinfNFeemitCNPJ LIKE 0411 AND fatonfeinfNFeidedhEmi BETWEEN 20220101 AND 20220601 SELECT fatoitemnfeidfatoitemnfe FROM fatoitemnfe FROM fatoitemnfe inner join fatonfe on fatoitemnfeinfprotchnfefatonfeinfprotchnfe WHERE fatonfeinfNFeemitCNPJ IN 04111338000171 04111497000176 04112204000175 04114549000168 04114868000173 04115363000123 04115428000300 04116210000109 04116842000164 04117715000180 AND fatonfeinfNFeidedhEmi BETWEEN 20220101 AND 20220601

Sua Nova Sala de Aula

Sua Nova Sala de Aula

Empresa

Central de ajuda Contato Blog

Legal

Termos de uso Política de privacidade Política de cookies Código de honra

Baixe o app

4,8
(35.000 avaliações)
© 2025 Meu Guru®