Por que o Hadoop não é um Data Warehouse?

3

Quais são as razões funcionais pelas quais o Hadoop não pode ser um Data Warehouse

Em vários sites, é possível ver instruções de que um cluster do Hadoop não é uma substituição de um armazém de dados tradicional. No entanto, não consigo encontrar as verdadeiras razões pelas quais.

Estou ciente de que, tecnicamente, há algumas coisas que não estão disponíveis / maduras no Hadoop, mas estou realmente procurando o impacto funcional .

O que encontrei até agora, incluindo mitigações

Encontrei alguns argumentos, mas nenhum é tão crítico que aconselho não usar o Hadoop como DWH. Aqui está uma seleção:

  1. Você não pode fazer consultas ad hoc rápidas ou relatórios , pois o Hadoop tende a incorrer em sobrecarga para mapear e reduzir tarefas.

No entanto, na situação que estou analisando, isso não deve ser um problema, pois os dados só são disponibilizados por meio do datamart (regular). Além disso, você poderia usar spark sql se quisesse cavar em algumas tabelas.

  1. Você não pode obter determinados resultados , pois o Hadoop não suporta procedimentos armazenados.

Na situação em que estou olhando, não há muitos procedimentos armazenados (felizmente!) e usando ferramentas como R ou Python, você pode realmente obter qualquer resultado que precisar.

  1. Você não pode se recuperar de desastres , pois o Hadoop não tem backups integrados

No entanto, como todo o código é roteirizado e os dados podem ser transferidos para um backup, deve ser possível recuperar-se de desastres.

  1. Você não pode fazer conformidade e privacidade , pois não há linhagem de segurança e dados

Com um kit de ferramentas como o Knox + Ranger + Atlas, isso pode ser alcançado.

  1. Não é fácil criar consultas , pois você não pode criar o fluxo, mas precisa escrever código sql ou pig.

Parece haver várias ferramentas, como o Talend, onde você pode criar fluxos com ícones, como em construtores de consultas comuns.

  1. O Hadoop é mais difícil de manter , pois requer conhecimento específico

É verdade, mas, na situação que estou analisando, existe uma boa quantidade de conhecimento, pois atualmente eles usam uma plataforma de análise do Hadoop.

    
por Dennis Jaheruddin 21.12.2016 / 10:05

4 respostas

3

Um cluster do Hadoop não é de forma alguma um substituto para um data warehouse tradicional. O Bare Hadoop só faz duas coisas:

  1. Armazenamento e recursos distribuídos
  2. MapReduce

No topo do Hadoop é construído um ecossistema inteiro de pacotes de software, principalmente Porco, colmeia, HBase, Phoenix, faísca, ZooKeeper, Cloudera Impala, Flume, Sqoop, Oozie, Storm.

Hoje, você pode escolher o que deseja de uma infinidade de produtos.

Deseja usar o SQL? Dê uma olhada nestes servidores de virtualização de dados: Centro de dados Cirro, Servidor de informações Cisco / Composite, Plataforma Denodo, Informatica Data Services, Virtualização de dados Red Hat JBoss e Stone Bond Enterprise Enabler Virtuoso.

Deseja que o produto armazene dados em seu próprio banco de dados SQL nativo ou no Hadoop? Exemplos são EMC / Greenplum UAP, HP Vertica (no MapR), Microsoft PolyBase, Actian ParAccel e Teradata Aster Database (via SQL-H).

Adicione a estes:

  • Apache Hive - o SQL-on-Hadoop original
  • Ferrão de Hortonworks
  • Apache Drill - implementação aberta do Dremel do Google (também conhecido como BigQuery)
  • Spark SQL - processamento paralelizado em memória, em tempo real
  • Apache Phoenix - o "skin do SQL para HBase"
  • Cloudera Impala - outra implementação do Dremel / Apache Drill
  • HAWQ para Pivotal HD - processamento paralelo de SQL e alta conformidade com os padrões SQL na própria distribuição do Hadoop da Pivotal
  • Presto - Construído por engenheiros do Facebook e usado internamente
  • Oracle Big Data SQL - só se integra ao Oracle Database 12c
  • IBM BigSQL - vinculado ao Hadoop e InfoSphere BigInsights da IBM

Conclusão: Quaisquer que sejam seus requisitos de armazenamento de banco de dados, você pode encontrar algum produto no Hadoop, ou uma combinação de produtos, que faz o que você quer.

A desvantagem: encontrar o (s) seu (s) produto (s) ideal (is), aprender a orientá-los e quais são suas deficiências, desenvolva seu aplicativo de banco de dados distribuído, reportar bugs e pressionar por melhorias - tudo isso vai demorar uma quantidade horrível de tempo da sua parte. Você está procurando o impacto funcional - portanto, procure o impacto sobre você e seu tempo, especialmente se você não tiver um especialista em Hadoop em sua equipe.

Conclusão final: O Hadoop não é um Data Warehouse, mas os aplicativos construídos nele são, e todos os sabores possíveis são atendidos. Mas boa sorte para navegar naquela selva. Se suas necessidades são modestas o suficiente, sugiro criar seu próprio aplicativo construído sobre MapReduce, ou indo para uma solução mais clássica usando as ferramentas que você sabe. Saiba também que o MapReduce não é uma boa combinação para todos os problemas.

Mais algumas leituras:

por 04.01.2017 / 21:22
3

É verdade, com o Hadoop e alguns truques você pode fazer a mesma coisa que um DWH é capaz de fazer.

No entanto, não faz sentido reinventar a roda para que o Hadoop faça as mesmas coisas de um data warehouse de maneira ineficiente. Muitos podem dizer que o Hadoop é mais barato que um Data Warehouse em termos de hardware e software: é verdade, há uma grande diferença, mas temos que considerar o tempo gasto para implementar um sistema como esse, o know-how e as habilidades necessárias, a manutenção do cluster, as atualizações dos serviços e o risco de usar ferramentas ou ferramentas imaturas que no futuro poderiam ser abandonadas.

O aspecto real a ser escolhido para selecionar entre o Hadoop e um Data Warehouse é:

  • Tipo de cargas de trabalho (leitura x gravação, tática versus relatório, etc.)
  • Tipo de dados (estruturados ou não estruturados)
  • Integração de dados (schema-on-read versus schema-on-write)
  • Consultar SLAs (tempo de execução, simultaneidade, etc.)
  • Habilidades requeridas (quantidade de recursos e know-how necessários para a implementação)
  • Conformidade com o SQL (integração com ferramentas)
  • Otimização (gerenciamento de carga de trabalho, índices, mapas de hash, etc.)
  • Maturidade (segurança, bug, etc.)
  • Tipo na análise (análise SQL ou não SQL)

Uma arquitetura híbrida feita com os dois melhor se adapta a muitos casos de uso. Posso economizar recursos (CPU, armazenamento) do data warehouse para descarregar dados históricos e o processamento de ETL no Hadoop, posso fazer análises em dados não estruturados e, ao mesmo tempo, posso ter maior desempenho, integração de dados e alta simultaneidade, consultando os dados "quentes" armazenados no Data Warehouse.

Responda ao comentário:

Depende do que você deseja fazer com o Hadoop, é possível preencher o data warehouse diretamente para colocar dados brutos no hadoop e fazer o ETL para cobrar o depósito.

Há muitos casos de uso relacionados à integração do Hadoop com um data warehouse, por exemplo:

  • Data Lake: todos os dados brutos armazenados no Hadoop. Isso pode te dar um lugar onde você pode capturar, refinar e explorar dados brutos originais e metadados e talvez fazer agregações ou ETL para preencher um modelo de dados no data warehouse.
  • Histórico: você pode desenvolver scripts para transferir dados frios para Hadoop (por exemplo, transações do ano passado em DWH e transações antigas Hadoop). Você pode acessar os dois dados por meio de um federador de consulta (por exemplo, Presto), que pode dar-lhe a possibilidade de juntar dados que residem em diferentes plataformas (ou seja, para fazer o UNION ALL entre o histórico parte de uma tabela no Hadoop e a parte recente no data warehouse)

Se você quiser usar o Hadoop como um data lake, o fluxo de dados será: source - > HDFS (limpeza) - > data warehouse

Se você usa o Hadoop apenas para historicização: source - > data warehouse - > HDFS

Os federadores de consulta, como o Presto, abrem muitos casos de uso e a possibilidade de usar dados de sistemas diferentes na mesma consulta. Isso libera a chance de ter dados frios no Hadoop e dados quentes no data warehouse OU a possibilidade de ter os dados "centrais" no data warehouse e o restante no Hadoop.

    
por 04.01.2017 / 15:06
1

O Hadoop é uma das várias opções para as situações listadas. Parece que você está procurando por um único sistema / federador / datapipe a partir do qual você pode consultar várias fontes de dados. Outras opções para as funções do Hadoop são Spark, Pentaho, Apache Pig e Hortonworks.

Mas, em vez de olhar primeiro para essa ferramenta, analise suas necessidades de dados e análise.

Você tem várias fontes de dados

Você quer executar consultas ad-hoc

C. Você precisa gerenciar essas várias fontes de dados em termos de estar acessível e "consultável" para seus analistas / usuários finais. E você (pensando em termos de TI aqui) precisa ser capaz de fazer esse gerenciamento sem se tornar um segundo emprego.

D. Eu estou supondo que você irá adicionar mais fontes de dados com o passar do tempo.

Estou assumindo que suas fontes de dados crescerão e o potencial existe para consultas em conjuntos de dados maiores.

F, Você deseja recuperação de desastres e segurança / conformidade.

Você gostaria de ter a opção de usar vários métodos de consulta, incluindo procedimentos armazenados.

Olhando isso primeiro, determine quais ferramentas atendem a essas necessidades. Existem fornecedores de IPaaS (Integration Platform as a Service - essencialmente, integração de dados na nuvem), como Mulesoft e SnapLogic. Você tem o Hadoop e seus primos, eu digo primos porque nesse espaço os produtos tendem a ter diferenças suficientes que eu não poderia juntá-los como bancos de dados SQL. Você tem lagos de dados, que usam dados brutos e, assim, facilitam a necessidade de um trabalho pesado de transformação. E você tem processamento de fluxo de dados, que manipula vários fluxos de dados e filtra os dados em vez de lançá-los.

Veja suas necessidades de negócios (incluindo orçamento e recursos), compare-as com as disponíveis e determine a melhor ferramenta para sua empresa. Se você quiser recursos em ETL e integração de dados, existe um site chamado ETLTools.net que tem muitas informações, incluindo descrições de os vários tipos de ambientes.

    
por 06.11.2017 / 09:08
0

O Hadoop é um framework e o data warehouse é um software ... Confuso? O data warehouse apenas coordenará entre os dados e você. Ele simplesmente tratará de armazenar e manter o ciclo de vida dos dados. Onde, como Hadoop, além da coordenação entre dados e você, ele executa operações simples / complexas em dados, se você solicitar.

A razão pela qual hadoop não pode ser mais adequada para datawarehousing é que existem várias outras ferramentas para realizar a mesma tarefa de forma eficiente que o hadoop.

    
por 14.05.2018 / 12:09