Dados do registro de caso no modo HBase e dados de séries temporais

Obrigado por compartilhar a plataforma - http://bjbsair.com/2020-04-10/tech-info/53339.html

Este artigo apresenta um dos casos do modo HBase: dados de log e dados de séries temporais

Suponha que os seguintes elementos de dados estejam sendo coletados.

  • Nome do host (nome do host)
  • Registro de data e hora
  • Evento de log
  • Valor / mensagem

Podemos armazená-los em uma tabela do HBase chamada LOG_DATA, mas qual será a chave de linha? A partir desses atributos, rowkey será uma combinação de nome do host, registro de data e hora e eventos de log, mas o que exatamente?

Registro de data e hora na posição dominante de Rowkey

rowkey [timestamp] [hostname] [log-event] é afetado pelo problema crescente de chave de linha monotonicamente descrito em Dados de chaves de linha com aumento monotônico / séries temporais.

Ao executar operações mod em registros de data e hora, outro modo é frequentemente mencionado nas listas dist sobre "registros de data e hora". Se a verificação do tempo for importante, esse pode ser um método útil. Você deve prestar atenção ao número de buckets, pois isso requer o mesmo número de varreduras para retornar os resultados.

Caso do modo HBase: dados de log e dados de séries temporais

Construção:

Caso do modo HBase: dados de log e dados de séries temporais

Como mencionado acima, para selecionar dados para um intervalo de tempo específico, é necessário executar uma varredura para cada intervalo de armazenamento. Por exemplo, 100 buckets de armazenamento fornecerão uma ampla distribuição no espaço principal, mas exige 100 varreduras para obter um único registro de data e hora dos dados, para que haja compensações.

Anfitrião na posição dominante de Rowkey

Se houver um grande número de hosts escrevendo e lendo em todo o espaço de chaves, a chave de linha [nome do host] [evento de log] [registro de data e hora] será candidata. Este método é muito útil se a verificação pelo nome do host for uma prioridade.

Carimbo de hora ou carimbo de hora reversa

Se o caminho de acesso mais importante for obter o evento mais recente, o armazenamento do registro de data e hora como um registro de data e hora reverso (por exemplo, registro de data e hora = Long.MAX_VALUE - registro de data e hora) criará a capacidade de verificar [nome do host] [evento de log] para obter Os atributos do evento capturado mais recentemente.

Nenhum dos métodos está errado, depende apenas de qual é a situação mais adequada.

API de varredura reversa

O HBASE-4811 implementa uma API que varre uma tabela ou um intervalo de tabelas ao contrário, reduzindo assim a necessidade de otimização de padrão para varredura direta ou reversa. Este recurso está disponível no HBase 0.98 e posterior.

Chaves de linha de comprimento variável ou de comprimento fixo

Lembre-se, é muito importante adicionar uma senha de linha a cada coluna do HBase. Se o nome do host for a e o tipo de evento for e1, a chave de linha resultante será pequena. Mas e se o nome do host ingerido for myserver1.mycompany.com e o tipo de evento for com.package1.subpackage2.subsubpackage3.ImportantService?

Pode fazer sentido usar algumas substituições na chave de linha. Existem pelo menos dois métodos: hash e número. No nome do host no exemplo Rowkey Lead Position, pode ser assim:

Rowkey composto com hash:

  • [MD5 hash do nome do host] = 16 bytes ([MD5 hash do nome do host] = 16 bytes)
  • [MD5 hash do tipo de evento] = 16 bytes ([MD5 hash do tipo de evento] = 16 bytes)
  • [Registro de data e hora] = 8 bytes ([registro de data e hora] = 8 bytes)

Chave de linha composta com substituição numérica:

Para esse método, além de LOG_DATA (chamado LOG_TYPES), é necessária outra tabela de pesquisa. A chave de linha de LOG_TYPES é:

  • [type], (por exemplo, um byte indicando o nome do host e o tipo de evento).
  • [bytes], bytes de tamanho variável do nome do host original ou do tipo de evento.

A coluna desta chave de linha pode ser um número inteiro longo com o número especificado, que pode ser obtido usando o contador HBase.

Portanto, a chave de linha composta resultante será:

  • [Nome do host substituto longo] = 8 bytes ([longo substituído pelo nome do host] = 8 bytes)
  • [Tipo de evento de substituição a longo prazo] = 8 bytes ([longo substituído pelo tipo de evento] = 8 bytes)
  • [Registro de data e hora] = 8 bytes ([registro de data e hora] = 8 bytes)

No método de substituição Hash ou Numérico, os valores originais do nome do host e do tipo de evento podem ser armazenados como colunas.

Acho que você gosta

Origin blog.51cto.com/14744108/2486399
Recomendado
Clasificación