Pergunta

Estou me perguntando se existe uma maneira de obter versões anteriores de uma chave de linha específica no HBase sem ter que escrever um programa MapReduce e calcular a média dos valores.Fiquei curioso para saber se isso era possível usando Hive ou Impala (ou outro programa semelhante) e como você faria isso.

Minha mesa fica assim:

  Composite keys          Values 
  (md5 + date + id) | (value)

Gostaria de calcular a média de todos os valores para uma data específica e uma substring do ID ("411") para todas as versões.

Obrigado antecipadamente.

Foi útil?

Solução

O Impala usa o metastore Hive para mapear sua noção lógica de tabela em dados armazenados fisicamente em HDFS ou HBase (para obter mais detalhes, consulte o Documentação da Cloudera).

Para saber mais sobre como informar ao metastore do Hive sobre os dados armazenados no HBase, consulte o Documentação da colmeia.

Infelizmente, conforme observado na documentação do Hive vinculada acima:

Atualmente, não há como acessar o atributo HBase Timestamp, e as consultas sempre acessarem dados com o mais recente registro de data e hora

Houve algum trabalho para adicionar esse recurso a uma versão mais antiga do Hive em HIVE-2828, embora infelizmente esse trabalho ainda não tenha sido incorporado ao trunk.

Portanto, para seu aplicativo, você terá que redesenhar seu esquema HBase para incluir uma coluna "versão", informar o metastore do Hive sobre essa nova coluna e informar seu aplicativo sobre essa coluna.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top