Processamento na memória - In-memory processing

Na ciência da computação , o processamento in-memory é uma tecnologia emergente para o processamento de dados armazenados em um banco de dados in-memory . Os sistemas mais antigos eram baseados em armazenamento em disco e bancos de dados relacionais usando a linguagem de consulta SQL , mas são cada vez mais considerados inadequados para atender às necessidades de business intelligence (BI). Como os dados armazenados são acessados ​​muito mais rapidamente quando colocados na memória de acesso aleatório (RAM) ou memória flash , o processamento na memória permite que os dados sejam analisados ​​em tempo real , permitindo relatórios e tomadas de decisão mais rápidas nos negócios.

Business Intelligence baseado em disco

Estruturas de dados

Com a tecnologia baseada em disco, os dados são carregados no disco rígido do computador na forma de várias tabelas e estruturas multidimensionais nas quais as consultas são executadas. As tecnologias baseadas em disco são sistemas de gerenciamento de banco de dados relacionais (RDBMS), muitas vezes baseados na linguagem de consulta estruturada ( SQL ), como SQL Server , MySQL , Oracle e muitos outros. RDBMS são projetados para os requisitos de processamento transacional . Usando um banco de dados que suporta inserções e atualizações, bem como agregações de desempenho, as junções (típicas em soluções de BI) são normalmente muito lentas. Outra desvantagem é que o SQL foi projetado para buscar linhas de dados com eficiência, enquanto as consultas de BI geralmente envolvem a busca de linhas parciais de dados envolvendo cálculos pesados.

Para melhorar o desempenho da consulta, bancos de dados multidimensionais ou cubos OLAP - também chamados de processamento analítico online multidimensional (MOLAP) - são construídos. Projetar um cubo é um processo elaborado e demorado, e alterar a estrutura do cubo para se adaptar às necessidades de negócios que mudam dinamicamente pode ser complicado. Os cubos são pré-preenchidos com dados para responder a consultas específicas e, embora aumentem o desempenho, ainda não são adequados para responder a consultas ad hoc.

A equipe de tecnologia da informação (TI) gasta um tempo substancial de desenvolvimento na otimização de bancos de dados, construção de índices e agregados , projeto de cubos e esquemas em estrela , modelagem de dados e análise de consultas.

Velocidade de processamento

A leitura de dados do disco rígido é muito mais lenta (possivelmente centenas de vezes) em comparação com a leitura dos mesmos dados da RAM. Especialmente ao analisar grandes volumes de dados, o desempenho é severamente degradado. Embora o SQL seja uma ferramenta muito poderosa, as consultas complexas levam um tempo relativamente longo para serem executadas e geralmente resultam na redução do desempenho do processamento transacional. Para obter resultados dentro de um tempo de resposta aceitável, muitos data warehouses foram projetados para pré-calcular resumos e responder apenas a consultas específicas. Algoritmos de agregação otimizados são necessários para aumentar o desempenho.

Ferramentas de processamento em memória

O processamento da memória pode ser realizado por meio de bancos de dados tradicionais, como Oracle , DB2 ou Microsoft SQL Server, ou por meio de ofertas NoSQL , como grade de dados in-memory como Hazelcast , Infinispan , Oracle Coherence ou ScaleOut Software. Com o banco de dados na memória e a grade de dados , todas as informações são inicialmente carregadas na memória RAM ou memória flash em vez de discos rígidos . Com uma grade de dados, o processamento ocorre em três ordens de magnitude mais rápido do que os bancos de dados relacionais que possuem funcionalidades avançadas, como ACID, que degradam o desempenho em compensação pela funcionalidade adicional. A chegada de bancos de dados centrados em colunas , que armazenam informações semelhantes juntas, permitem que os dados sejam armazenados de forma mais eficiente e com maiores taxas de compactação . Isso permite que grandes quantidades de dados sejam armazenadas no mesmo espaço físico, reduzindo a quantidade de memória necessária para realizar uma consulta e aumentando a velocidade de processamento. Muitos usuários e fornecedores de software integraram memória flash em seus sistemas para permitir que os sistemas sejam dimensionados para conjuntos de dados maiores de forma mais econômica. A Oracle vem integrando memória flash aos produtos Oracle Exadata para aumentar o desempenho. O software Microsoft SQL Server 2012 BI / Data Warehousing foi acoplado aos arrays de memória flash Violin Memory para permitir o processamento na memória de conjuntos de dados maiores que 20 TB.

Os usuários consultam os dados carregados na memória do sistema, evitando assim um acesso mais lento ao banco de dados e gargalos de desempenho. Isso difere do cache , um método amplamente usado para acelerar o desempenho da consulta, pois os caches são subconjuntos de dados organizados predefinidos muito específicos. Com ferramentas in-memory, os dados disponíveis para análise podem ser tão grandes quanto um data mart ou um pequeno data warehouse inteiramente na memória. Isso pode ser acessado rapidamente por vários usuários ou aplicativos simultâneos em um nível detalhado e oferece o potencial para análises aprimoradas e para dimensionar e aumentar a velocidade de um aplicativo. Teoricamente, a melhoria na velocidade de acesso aos dados é de 10.000 a 1.000.000 vezes em comparação com o disco. Ele também minimiza a necessidade de ajuste de desempenho pela equipe de TI e fornece um serviço mais rápido para os usuários finais.

Vantagens da tecnologia de processamento in-memory

Certos desenvolvimentos em tecnologia de computador e necessidades de negócios tendem a aumentar as vantagens relativas da tecnologia in-memory.

  • O hardware se torna progressivamente mais barato e de melhor desempenho, de acordo com a lei de Moore . O poder de computação dobra a cada dois ou três anos, enquanto os custos diminuem. O processamento da CPU, a memória e o armazenamento em disco estão todos sujeitos a algumas variações desta lei. Além disso, inovações de hardware, como arquitetura multinúcleo , memória flash NAND , servidores paralelos e maior capacidade de processamento de memória, além de inovações de software, como bancos de dados centrados em colunas, técnicas de compactação e manipulação de tabelas agregadas, contribuíram para a demanda por memória in-memory produtos.
  • O advento dos sistemas operacionais de 64 bits , que permitem acesso a muito mais RAM (até 100 GB ou mais) do que os 2 ou 4 GB acessíveis em sistemas de 32 bits. Ao fornecer Terabytes (1 TB = 1.024 GB) de espaço para armazenamento e análise, os sistemas operacionais de 64 bits tornam o processamento na memória escalonável. O uso de memória flash permite que os sistemas sejam dimensionados para muitos Terabytes de forma mais econômica.
  • O aumento dos volumes de dados significa que os data warehouses tradicionais não são mais capazes de processar os dados de maneira oportuna e precisa. O processo de extração, transformação, carregamento (ETL) que atualiza periodicamente data warehouses com dados operacionais pode levar de algumas horas a semanas para ser concluído. Portanto, em qualquer ponto do tempo, os dados têm pelo menos um dia. O processamento na memória permite acesso instantâneo a terabytes de dados para relatórios em tempo real.
  • O processamento in-memory está disponível a um custo menor em comparação com as ferramentas tradicionais de BI e pode ser implantado e mantido com mais facilidade. De acordo com a pesquisa do Gartner, a implantação de ferramentas tradicionais de BI pode levar até 17 meses. Muitos fornecedores de data warehouse estão escolhendo a tecnologia in-memory em vez do BI tradicional para acelerar os tempos de implementação.

Aplicação em negócios

Uma variedade de produtos in-memory fornecem a capacidade de se conectar a fontes de dados existentes e acesso a painéis interativos visualmente ricos. Isso permite que analistas de negócios e usuários finais criem relatórios e consultas personalizados sem muito treinamento ou especialização. A navegação fácil e a capacidade de modificar consultas em tempo real são benéficas para muitos usuários. Como esses painéis podem ser preenchidos com dados novos, os usuários têm acesso a dados em tempo real e podem criar relatórios em minutos. O processamento in-memory pode ser particularmente benéfico em call centers e gerenciamento de depósitos.

Com o processamento na memória, o banco de dados de origem é consultado apenas uma vez, em vez de acessar o banco de dados toda vez que uma consulta é executada, eliminando assim o processamento repetitivo e reduzindo a carga sobre os servidores de banco de dados. Ao programar para preencher o banco de dados na memória durante a noite, os servidores de banco de dados podem ser usados ​​para fins operacionais durante os horários de pico.

Adoção de tecnologia in-memory

Com um grande número de usuários, uma grande quantidade de RAM é necessária para uma configuração na memória, o que por sua vez afeta os custos de hardware. É mais provável que o investimento seja adequado em situações em que a velocidade de resposta à consulta é de alta prioridade e onde há um crescimento significativo no volume de dados e aumento na demanda por recursos de relatório; pode ainda não ser eficaz em termos de custos quando as informações não estão sujeitas a mudanças rápidas. A segurança é outra consideração, pois as ferramentas in-memory expõem grandes quantidades de dados aos usuários finais. Os fabricantes aconselham garantir que apenas usuários autorizados tenham acesso aos dados.

Veja também

Referências