Quando é que HBase fazem sentido para você?
Então, quando você deve considerar o uso HBase? Embora a resposta a esta pergunta não é necessariamente fácil para todos, para começar você claramente deve ter um requisito de dados grandes e recursos de hardware suficientes.
A exigência de dados grande: Terabytes para petabytes- caso contrário você terá um monte de servidores ociosos em seus racks.
recursos de hardware suficientes: Cinco servidores é um bom ponto de partida.
Ao considerar qual caminho a tomar - HBase contra RDBMS - considerar outros requisitos, tais como suporte a transações, tipos de dados ricos, índices, e apoio linguagem de consulta - embora esses fatores não são tão preto e branco como as anteriores duas balas. tipos de dados ricos, índices e suporte linguagem de consulta podem ser adicionados através de outras tecnologias, como Hive ou produtos comerciais.
Nº 147-E sobre transações? # 148- você pedir.
Alguns casos de uso para RDBMSs, como processamento de transações on-line, dependem de transações ACID-compliant entre o cliente eo RDBMS para o sistema para funcionar corretamente. (ACID - UMAtomicity, COERÊNCIA, Eusolation, e Durability)
Quando comparado com um RDBMS, HBase não é considerado um banco de dados ACID-compliant como esta escrito. O HBase não suporta transações ACID-compliant ao longo de várias linhas ou através de tabelas. No entanto, HBase faz garantir os seguintes aspectos:
Atómica: Todas as operações de nível de linha dentro de uma tabela são atômicas. Esta garantia é mantida mesmo quando há mais de uma família de coluna dentro de uma linha.
Consistência: operações de varredura retornar uma visão consistente dos dados armazenados em HBase em algum momento no passado. interação com o cliente concorrente poderia atualizar uma linha durante uma verificação multi-linha, mas todas as linhas retornadas por uma operação de varredura sempre conterá dados válidos a partir de algum ponto no passado.
Durabilidade: Quaisquer dados que pode ser recuperada a partir HBase também foi feita durável para o disco (Persistiu até HDFS, em outras palavras).
Um dos aspectos interessantes do HBase e outros projetos de código aberto Apache é que alguém na comunidade está sempre inovando e tentando melhorar a tecnologia. HBase suporta transações multi-linha se as linhas estão no mesmo RegionServer. Este recurso, que requer codificação adicional, foi introduzida em HBase versão 0.94.0. (Se você estiver curioso, a codificação adicional focada na política de divisão do HBase.)
Quando as propriedades ACID são exigidos por clientes HBase, projetar o esquema HBase tal que operações de linha cruzada ou dados da tabela cruzada não são necessários. Manter os dados dentro de uma linha fornece atomicidade.