Bases de dados de processamento massivamente paralelo
Para proporcionar uma melhor compreensão das alternativas SQL-on-Hadoop para Hive, pode ser útil rever uma cartilha sobre processamento paralelo (MPP) de bancos de dados em primeiro lugar.
Apache Hive é mergulhado em cima do Hadoop Distributed File System (HDFS) e do sistema MapReduce e apresenta uma interface de programação SQL-como aos seus dados (HiveQL, para ser preciso). Esta combinação de tecnologias Hadoop implantado em um cluster é semelhante às bases de dados do MPP, que já existem há algum tempo no mercado de TI.
bases de dados MPP geralmente oferecem uma interface SQL e um sistema de gerenciamento de banco de dados relacional (RDBMS) rodando em um cluster de servidores ligados em rede por uma interconexão de alta velocidade. A figura mostra os componentes de um RDBMS que são normalmente incluídos em soluções SQL-on-Hadoop.
sistemas de dados relacionais evoluíram consideravelmente a um ponto onde as melhores práticas têm surgido entre a maioria das ofertas, em termos de uma infra-estrutura de execução de consulta ideal. A figura mostra esta em termos de fluxo de uma consulta, uma vez que é processada por um motor RDBMS.
Em primeiro lugar, o texto da consulta é analisado e compreendido. Em seguida, a árvore de sintaxe para a consulta é compilado em um plano de execução de lógica, que é então otimizada para formar o plano de execução física final, que é então executado pelo tempo de execução. Para muitas das soluções SQL-on-Hadoop, você está vendo componentes similares a ser implantado em Hadoop.
clusters de MPP são geralmente referidos como tendo uma arquitetura partilhada-Nada, porque cada sistema tem sua própria CPU, memória e disco. No entanto, através do software de banco de dados de alta velocidade e interconexões, as funções do sistema como um todo e pode escalar à medida que novos servidores são adicionados ao cluster. O sistema global é explicitamente ajustado para fornecer resposta de consulta rápida, interativa.
bases de dados MPP são muitas vezes mais flexível, escalável e de custo eficaz do que os RDBMS tradicional, hospedados em um grande servidor multiprocessador.