O Presto, ou banco de dados Presto (PrestoDB), é um mecanismo de consultas de código aberto e distribuído, baseado em SQL, capaz de consultar grandes volumes de dados de diferentes fontes, permitindo que as empresas lidem com problemas de dados em larga escala.
Ele oferece às organizações de todos os portes uma maneira rápida e eficiente de analisar big data de várias fontes, incluindo sistemas no local e na nuvem. Também ajuda as empresas a consultarem petabytes de dados usando seus recursos atuais de SQL, sem precisar aprender uma nova linguagem.
Atualmente, o Presto é mais utilizado para executar consultas em Hadoop e em outros provedores comuns de armazenamento de dados, permitindo que os usuários gerenciem vários idiomas de consulta e interfaces com bancos de dados e com o armazenamento.
Na era digital, análise de big data vem se tornando rapidamente uma competência essencial para empresas, independentemente do porte ou do setor. A capacidade de coletar, armazenar e analisar grandes volumes de dados relacionados a processos de negócios, preferências dos clientes e tendências de mercado tem um valor imenso. A principal vantagem do Presto para a análise de dados é conseguir analisar os dados independentemente de onde estejam armazenados, sem precisar transferi-los previamente para um sistema mais estruturado, como um data warehouse ou um data lake.
O Presto se tornou uma ferramenta popular para cientistas e engenheiros de dados que lidam com várias linguagens de consulta, bancos de dados isolados e diferentes tipos de armazenamento. Seus recursos de alto desempenho permitem que os usuários consultem grandes volumes de dados em tempo real, independentemente de onde os dados estejam localizados, usando uma interface ANSI SQL simples. A velocidade e o desempenho do Presto na realização de consultas em grandes volumes de dados tornaram-no uma ferramenta indispensável para algumas das maiores empresas do mundo, como Facebook, Airbnb, Netflix, Microsoft, Apple (iOS) e AWS (Athena e Amazon s3).
A arquitetura Presto é única, pois foi criada para consultar dados, não importa onde eles estejam sendo armazenados, tornando-a mais escalável e eficiente do que outras soluções semelhantes. As consultas Presto permitem que os engenheiros usem dados sem precisar migrá-los fisicamente de um local para outro. Este é um recurso importante, à medida que as organizações lidam com uma quantidade cada vez maior de dados que elas precisam armazenar e analisar.
O Presto foi criado para permitir que cientistas de dados e engenheiros consultem grandes volumes de dados de forma interativa, independentemente da origem ou do tipo de armazenamento. Como o Presto não armazena dados, mas se comunica com um banco de dados separado para executar suas consultas, ele oferece mais flexibilidade que os concorrentes e consegue aumentar ou reduzir a escala das consultas rapidamente conforme as necessidades variáveis da organização. Segundo um whitepaper da IBM, o Presto, otimizado para cargas de trabalho de business intelligence (BI), pode ajudar empresas a otimizar os custos dos seus data warehouses e a reduzir despesas em até 50%.
Estes são alguns dos principais benefícios de usar um fluxo de trabalho Presto:
Custos mais baixos: à medida que o tamanho dos data warehouses e o número de usuários que realizam consultas aumentam, não é incomum que as empresas vejam seus custos aumentarem rapidamente. O Presto, no entanto, é otimizado para grandes quantidades de pequenas consultas, o que facilita a consulta de qualquer quantidade de dados e, ao mesmo tempo, mantém os custos baixos. Além disso, como o Presto é de código aberto, não há taxas associadas à sua implementação, o que pode resultar em uma economia significativa para as empresas que desejam processar grandes volumes de dados.
Escalabilidade aumentada: É comum que engenheiros configurem múltiplos mecanismos e linguagens sobre um único sistema de armazenamento de data lake, o que pode exigir reconfigurações futuras e limitar a escalabilidade da solução. Com o Presto, todas as consultas são feitas com a linguagem e interface SQL ANSI universal, tornando redundante novas plataformas. Além disso, o Presto pode ser usado tanto com pequenos quanto com grandes volumes de dados, sendo facilmente escalável de um ou dois usuários para milhares. O Presto implementa diversos mecanismos de processamento com dialetos SQL exclusivos e APIs, tornando-se uma ferramenta ideal para escalar cargas de trabalho que poderiam ser complexas e demoradas demais para equipes de engenheiros e cientistas de dados.
Melhor desempenho: embora muitos mecanismos de consulta que executam SQL no Hadoop tenham desempenho computacional restrito porque foram criados para gravar seus resultados em disco, o modelo distribuído em memória do Presto permite que ele realize grandes quantidades de consultas interativas de uma só vez em grandes conjuntos de dados. Seguindo um modelo clássico de processamento paralelo massivo (MPP), o Presto agenda o máximo de consultas possível em um único nó de trabalho e usa o streaming aleatório na memória para aumentar ainda mais suas velocidades de processamento. A execução de tarefas na memória torna redundantes a gravação e a leitura do disco entre os estágios e reduz o tempo de execução de cada consulta, tornando o Presto uma opção de menor latência do que seus concorrentes.
Maior flexibilidade: o Presto usa um modelo plug-and-play para todas as suas fontes de dados, incluindo Cassandra, Kafka, MySQL, sistema de arquivos distribuído do Hadoop (HDFS), PostgreSQL e outras, tornando as consultas entre elas mais rápidas e mais simples do que com outras ferramentas semelhantes que não oferecem essa funcionalidade. Além disso, a arquitetura flexível do Presto não se restringe a um único fornecedor e roda na maioria das distribuições Hadoop, o que o torna uma das ferramentas mais portáteis disponíveis.
Embora o Presto não seja a única opção de SQL-on-Hadoop disponível para desenvolvedores e engenheiros de dados, sua arquitetura exclusiva que mantém a funcionalidade de consulta separada do armazenamento de dados o torna um dos mais flexíveis. Ao contrário de outras ferramentas, o Presto separa o mecanismo de consulta do armazenamento de dados e usa conectores para a comunicação entre eles. Essa funcionalidade adicional oferece aos engenheiros mais flexibilidade do que outras ferramentas na forma como eles constroem soluções usando o Presto.
O Presto usa um sistema de gerenciamento de banco de dados MPP com um nó coordenador que funciona em conjunto com outros nós. Um ecossistema Presto é composto por três tipos de servidores, um servidor coordenador, um servidor de trabalho e um servidor de resource manager.
Coordenador: o servidor coordenador é considerado o "cérebro" da instalação do Presto. Ele é responsável por algumas das tarefas mais críticas, incluindo a análise de declarações, o planejamento de consultas e gerenciamento dos nós de trabalho do Presto. Por fim, ele é responsável por recuperar os dados dos nós de trabalho e entregar os resultados ao cliente.
De trabalho: o servidor de trabalho é responsável por coletar os dados dos nós de trabalho e garantir a troca tranquila de dados entre ele e os conectores.
Gerenciador de recursos: o gerenciador de recursos coleta dados de todos os nós coordenadores e nós de trabalho e cria uma visão global, ou um “cluster Presto”.
Quando o servidor SQL coordenador do Presto recebe uma consulta SQL de um usuário, ele começa usando uma consulta personalizada para interpretar, planejar e agendar a execução distribuída entre os demais nós. A API REST do Presto é usada para enviar instruções de consulta para execução no servidor e recuperar os resultados para o cliente. O Presto é compatível com os significados padrão do SQL ANSI, incluindo junções, consultas, subconsultas e agregações. Após compilar a consulta, o Presto divide a requisição em diferentes estágios entre os nós de trabalho.
Como o Presto foi criado com base no conceito de abstração de dados, ele é extensível a qualquer fonte de dados e pode facilmente consultar fontes de dados, como data lakes, data warehouses e bancos de dados relacionais. A abstração de dados é um processo de programação que permite que os dados sejam armazenados e manipulados de maneira mais eficiente, separando sua representação do seu armazenamento físico. Essa abstração permite que o mecanismo de consulta se concentre exclusivamente nos aspectos dos dados relevantes para sua consulta. Por meio do processo de abstração de dados, os dados são consultados onde quer que estejam sendo armazenados, e não depois de terem sido migrados para outro sistema de análise de dados.
Inicialmente desenvolvido no Facebook para realizar consultas interativas em um enorme data warehouse Apache Hadoop, os desenvolvedores do Presto sempre o imaginaram como um software de código aberto e procuraram torná-lo gratuito para uso comercial para que qualquer pessoa pudesse usá-lo para análise e gerenciamento de dados. Em 2013, ele foi disponibilizado de código aberto no GitHub para que qualquer pessoa pudesse baixar sob a licença do Apache Software. Em 2019, três dos membros originais da equipe de desenvolvimento do Presto abandonaram o projeto e fundaram uma versão alternativa do Presto conhecida como Presto Software Foundation, ou mais comumente prestosql.
A fundação Linux e outras comunidades de código aberto oferecem webinars e treinamentos sobre o Presto em inglês e outros idiomas para engenheiros e desenvolvedores que desejam obter certificação. Esses fóruns também são um bom lugar para descobrir as novidades do Presto.
O Presto permite que as organizações consultem repositórios de dados de grande escala e bancos de dados NoSQL de forma rápida e eficiente para uma variedade de fins comerciais. Estes são alguns dos casos de uso mais comuns:
O Presto permite a exploração rápida de dados e relatórios diretos para uma variedade de fins comerciais. Por meio de conectores Presto populares, como Hive, MongoDB ou Cassandra, os usuários podem consultar dados de interesse e obter resultados em segundos. Com sua velocidade e flexibilidade, o Presto possibilita os usuários a iterar e explorar ainda mais os conjuntos de dados, independentemente de onde estejam.
Estes são alguns dos repositórios de dados mais usados aos quais o Presto pode se conectar:
Segundo uma avaliação de desempenho de 2021 da Red Hat, o uso crescente de ambientes de nuvem híbrida pelas empresas aumenta a pressão sobre o armazenamento nativo da nuvem; para isso, o Presto, “o mecanismo de consulta distribuído mais rápido disponível hoje”, é ideal. 1 Transferir cargas de trabalho de um ambiente local para uma infraestrutura de nuvem ou nuvem híbrida traz muitos benefícios, incluindo melhor desempenho e escalabilidade. A arquitetura do Presto o torna uma excelente opção para essas implementações, pois pode ser iniciado em poucos minutos, sem provisionamento, configuração ou ajuste adicionais.
O Presto ajuda engenheiros a preparar dados e executar engenharia e extração de atributos de forma altamente eficiente, garantindo que eles estejam prontos para aprendizado de máquina (ML). Seu número de conectores, o mecanismo SQL e seus recursos de consulta tornam o Presto ideal para engenheiros que precisam de acesso rápido e fácil a grandes volumes de dados. Além disso, o Presto oferece ferramentas projetadas especificamente para funções de ML, como agregação, que permitem que cientistas de dados treinem classificadores e regressores de máquinas de vetores de suporte (SVM) para lidar com problemas de aprendizado supervisionado.
O Presto permite que os dados sejam consultados a partir de várias fontes e gera um único relatório ou dashboard facilmente acessível para fins de BI. O Presto é tão simples e fácil de usar que os analistas podem realizar consultas e criar relatórios sem a ajuda de engenheiros.
O Presto permite que os analistas realizem consultas em dados estruturados e não estruturados diretamente em um data lake, sem passar por um processo de transformação de dados.
O processo de coletar e preparar dados pode ser caro e ineficiente. Os cientistas de dados podem passar horas todos os dias coletando e preparando dados antes mesmo de analisá-los. O Presto automatiza esse processo com rapidez e precisão, permitindo que cientistas de dados e engenheiros dediquem mais tempo a tarefas de maior valor.
Use soluções de bancos de dados da IBM para atender a diversas necessidades de cargas de trabalho em toda a nuvem híbrida.
Explore o IBM Db2, um banco de dados relacional que oferece alto desempenho, escalabilidade e confiabilidade para armazenar e gerenciar dados estruturados. Está disponível como SaaS no IBM Cloud ou para auto-hospedagem.
Libere o valor dos dados empresariais com a IBM® Consulting, construindo uma organização orientada por insights, que proporciona vantagem comercial.
1 External-mode performance characterization for databases and analytics, Red Hat, January 18th, 2021