• Português
  • English
  • Español
  • Presto – Consultas SQL em ambiente distribuído

    Por: em 11 de outubro de 2018

    Em engenharia de dados, constantemente estamos avaliando ferramentas que facilitem a exploração de dados, consultas analíticas e até mesmo Insights.

    Neste post do blog, pretendo mostrar uma das ferramentas criada pelo Facebook com o intuito de resolver problemas de latência nas pesquisas com linguagem SQL.

    Presto é um sistema distribuído que roda em um cluster de máquinas. Para entender como funciona, temos que explicar 2 tipos de serviços na arquitetura que o Presto possui: o serviço Coordinator e serviço Worker. Pelos nomes, já dá para ter uma ideia de como eles funcionam.

    O Coordinator é considerado o cérebro do Presto pois é neste serviço que as queries de usuários são analisadas e gerenciadas. Já o serviço Worker é responsável pelas tarefas que processam os dados pesquisados.

    A Instalação é bem simples e está detalhada no site https://prestodb.io/docs/current/installation.html

    Uma instalação de um cluster Presto contempla no mínimo 1 Coordinator e vários workers.

    Figura 1 – Arquitetura básica de um cluster Presto acessando Hive/HDFS – Fonte: https://prestodb.io/

     

    Várias fontes de dados

    Uma das vantagens de utilizar o presto, é a possibilidade de “conectar” diversas fontes de dados em diversas tecnologias, tais como Hive, Cassandra, bancos de dados relacionais como Oracle e Teradata, entre outras.

    Interface Web

    Presto disponibiliza uma página web para monitoração e gerenciamento de queries executadas pelos times de engenharia de dados e ciência de dados.

    Figura 2- Presto Admin Web Interface

    Nesta instalação, estamos utilizando 1 coordinator e 4 workers.

     

    Interface Client

    Para realizar consultas no Presto, temos que usar o Presto CLI, na qual provê uma interface semelhante a de um terminal Linux. Veja o exemplo:

    Figura 3 – Presto Client Interface

     

    Figura 4 – Fazendo um “Count” em uma tabela

     

    Uma das características do Presto, é a compatibilidade com o padrão SQL ANSI, muito difundido em diversos bancos de dados existentes.

    Conclusão

    Nas atividades preparatórias e exploratórias do universo Big Data, o Presto facilita bastante a manipulação de grandes bases de dados.

    No DataLab, inicialmente adotamos o Presto com a conexão Hive para facilitar a manipulação de dados nos estágios iniciais de um processo de Insight.

    Com certeza iremos explorar novas opções de conexão para aproveitarmos ainda mais as características do Presto.

    Referências:

    https://prestodb.io/

    https://www.facebook.com/notes/facebook-engineering/presto-interacting-with-petabytes-of-data-at-facebook/10151786197628920/

    https://pdfs.semanticscholar.org/presentation/4414/e073e5f2999389c11541cfc134ef76d02686.pdf

    https://github.com/prestodb/presto

    https://prestodb.io/docs/current/

    11 de outubro de 2018

    Filtre por autor