O que é o Presto ou o PrestoDB?

O Presto (ou PrestoDB) é um mecanismo de consultas SQL distribuídas de código aberto, projetado desde o início para oferecer consultas analíticas rápidas de dados de qualquer tamanho. Ele oferece suporte a fontes não relacionais, como o Sistema de Arquivos Distribuído do Hadoop (HDFS), Amazon S3, Cassandra, MongoDB e HBase, e fontes de dados relacionais, como MySQL, PostgreSQL, Amazon Redshift, Microsoft SQL Server e Teradata.

O Presto pode consultar dados onde eles estão armazenados, sem precisar movê-los para um sistema de análise separado. A execução da consulta é executada em paralelo em uma arquitetura baseada em memória pura, com a maioria dos resultados retornando em segundos. Você o encontrará usado por muitas empresas conhecidas, como Facebook, Airbnb, Netflix, Atlassian e Nasdaq.

Qual é a história do Presto?

O Presto começou como um projeto no Facebook, para executar consultas analíticas interativas em um data warehouse de 300 PB, construído com grandes clusters baseados em Hadoop/HDFS. Antes de criar o Presto, o Facebook usou o Apache Hive, criado e lançado em 2008, para levar a familiaridade da sintaxe SQL ao ecossistema Hadoop. O Hive teve um impacto significativo no ecossistema do Hadoop ao simplificar tarefas complexas do Java MapReduce em consultas semelhantes ao SQL, ao mesmo tempo em que foi capaz de executar tarefas em alta escala. No entanto, ele não foi otimizado para o desempenho rápido necessário em consultas interativas.

Em 2012, o grupo de infraestrutura de dados do Facebook criou o Presto, um sistema de consulta interativo que poderia operar rapidamente em escala de petabytes. Foi lançado em toda a empresa na primavera de 2013. Em novembro de 2013, o Facebook abriu o código do Presto sob a Licença de Software Apache e o disponibilizou para qualquer pessoa baixar no Github. Hoje, o Presto se tornou uma escolha popular para fazer consultas interativas no Hadoop e tem muitas contribuições do Facebook e de outras organizações. A implementação do Presto pelo Facebook é usada por mais de mil funcionários, que executam mais de 30 mil consultas, processando um petabyte de dados diariamente.

Como funciona o Presto?

O Presto é um sistema distribuído executado no Hadoop e usa uma arquitetura semelhante a um sistema clássico de gerenciamento de banco de dados com processamento paralelo massivo (MPP). Ele possui um nó coordenador trabalhando em sincronia com vários nós de processamento. Os usuários enviam sua consulta SQL ao coordenador, que usa um mecanismo personalizado de consulta e execução para analisar, planejar e programar um plano de consulta distribuído entre os nós de processamento. Ele foi projetado para oferecer suporte à semântica ANSI SQL padrão, incluindo consultas complexas, agregações, junções, junções externas esquerda/direita, subconsultas, funções de janela, contagens distintas e percentis aproximados.

Depois que a consulta é compilada, o Presto processa a solicitação em vários estágios nos nós de processamento. Todo o processamento é na memória e distribuído pela rede entre os estágios, para evitar qualquer sobrecarga de E/S desnecessária. Adicionar mais nós de processamento permite mais paralelismo e processamento mais rápido.

Para tornar o Presto extensível a qualquer fonte de dados, ele foi projetado com abstração de armazenamento para facilitar a criação de conectores conectáveis. Por causa disso, o Presto tem muitos conectores, inclusive para fontes não relacionais, como o Sistema de arquivos Distribuído do Hadoop (HDFS), Amazon S3, Cassandra, MongoDB e HBase, e fontes relacionais, como MySQL, PostgreSQL, Amazon Redshift, Microsoft SQL Server e Teradata. Os dados são consultados onde estão armazenados, sem a necessidade de movê-los para um sistema de análise separado.  

Quais são as diferenças entre o Presto e o Hadoop?

O Presto é um mecanismo de consulta SQL distribuído e de código aberto projetado para consultas rápidas e interativas sobre dados no HDFS e outros. Ao contrário do Hadoop/HDFS, ele não tem seu próprio sistema de armazenamento. Assim, o Presto é complementar ao Hadoop, com organizações adotando ambos para resolver um desafio comercial mais amplo. O Presto pode ser instalado com qualquer implementação do Hadoop e está empacotado na distribuição Amazon EMR Hadoop.

Quem usa o Presto?

O Presto é usado na produção em grande escala em muitas organizações conhecidas. Você o encontrará usado no Facebook, no Airbnb, na Netflix, na Atlassian, na Nasdaq e muitos outros. A implementação do Presto pelo Facebook é usada por mais de mil funcionários, que executam mais de 30 mil consultas, processando um petabyte de dados diariamente. Em média, a Netflix executa cerca de 3500 consultas por dia em seus clusters do Presto. O Airbnb criou e abriu o código do Airpal, uma ferramenta de execução de consultas baseada na web que funciona em cima do Presto. A comunidade mais ampla do Presto pode ser encontrada neste fórum e na página do Presto no Facebook.

Como você pode implantar o Presto na nuvem?

O Presto é uma workload ideal na nuvem, porque a nuvem fornece desempenho, escalabilidade, confiabilidade, disponibilidade e grandes economias de escala. É possível iniciar um cluster Presto em minutos. Não é necessário se preocupar com provisionamento de nós, a configuração de clusters, a configuração ou os ajustes do Presto.

Como a AWS pode criar sua implementação do Presto na nuvem?

O Amazon EMR e o Amazon Athena são os melhores lugares para implantar o Presto na nuvem, porque eles fazem a integração e o rigor dos testes do Presto para você, com a escala, simplicidade e economia da AWS. Com o Amazon EMR, você pode executar clusters do Presto em minutos, sem necessidade de executar provisionamento de nós, configuração de clusters, configuração do Presto ou ajustes de clusters. O EMR permite provisionar uma, centenas ou milhares de instâncias de computação em alguns minutos. O Amazon Athena permite que você implante o Presto usando a plataforma AWS Serverless, sem servidores, máquinas virtuais ou clusters para configurar, gerenciar ou ajustar. Basta apontar para seus dados no Amazon S3, definir o esquema e começar a consultar usando o editor de consultas integrado ou com suas ferramentas de Business Intelligence (BI) existentes. O Athena paraleliza automaticamente sua consulta e dimensiona dinamicamente os recursos para que as consultas sejam executadas rapidamente. Você paga apenas pelas consultas que executar.

Próximas etapas na AWS

Confira recursos adicionais relacionados a produtos
Veja ofertas gratuitas de serviços de análises na nuvem 
Cadastre-se para obter uma conta gratuita

Obtenha acesso instantâneo ao nível gratuito da AWS.

Cadastre-se 
Comece a criar no console

Comece a criar no Console de Gerenciamento da AWS.

Faça login