Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Atualizado em 2023-05-19 GMT+08:00

Hudi

Hudi é um formato de tabela de data lake que fornece a capacidade de atualizar e excluir dados, bem como consumir novos dados no HDFS. Ele suporta vários mecanismos de computação e fornece interfaces de inserção, atualização e exclusão (IUD) e primitivos de streaming, incluindo upsert e pull incremental, sobre conjuntos de dados no HDFS.

Para usar o Hudi, verifique se o serviço Spark2x foi instalado no cluster do MRS.

Figura 1 Arquitetura básica de Hudi

Características

  • O recurso de transação ACID suporta importação de dados em tempo real para o lake e importação de dados em lote para o data lake.
  • Múltiplas capacidades de visualização (visualização otimizada para leitura/visualização incremental/visualização em tempo real) permitem uma análise rápida dos dados.
  • O design de controle de simultaneidade multi-versão (MVCC) suporta rastreamento inverso de versão de dados.
  • O gerenciamento automático de tamanhos de arquivos e layouts otimiza o desempenho da consulta e fornece dados quase em tempo real para consultas.
  • Leitura e gravação simultâneas são suportadas. Os dados podem ser lidos ao serem gravados com base no isolamento de snapshot.
  • Inicialização é suportada para converter tabelas existentes em conjuntos de dados de Hudi.

Principais tecnologias e vantagens

  • Mecanismo de índice plugável: o Hudi fornece vários mecanismos de índice para atualizar e excluir rapidamente dados em massa.
  • Apoio ao ecossistema: o Hudi suporta vários mecanismos de dados, incluindo o Hive, o Spark, e o Flink.

Dois tipos de tabelas apoiadas por Hudi

  • Cópia em gravação

    As tabelas de cópia em gravação também são chamadas de tabelas COW. Os arquivos Parquet são usados para armazenar dados, e as operações de atualização internas precisam ser executadas reescrevendo os arquivos Parquet originais.

    • Vantagens: é eficiente porque apenas um arquivo de dados na partição correspondente precisa ser lido.
    • Desvantagens: durante a gravação de dados, uma cópia anterior precisa ser copiada e, em seguida, um novo arquivo de dados é gerado com base na cópia anterior. Este processo é demorado. Portanto, os dados lidos pela solicitação de leitura ficam atrasados.
  • Mesclagem na leitura

    As tabelas de mesclagem na leitura também são chamadas de tabelas MOR. A combinação de Parquet baseado em coluna e formato baseado em linha Avro é usada para armazenar dados. Os arquivos Parquet são usados para armazenar dados básicos, e os arquivos Avro (também chamados de arquivos de log) são usados para armazenar dados incrementais.

    • Vantagens: os dados são gravados no log delta primeiro e o tamanho do log delta é pequeno. Portanto, o custo de gravação é baixo.
    • Desvantagens: os arquivos precisam ser compactados periodicamente. Caso contrário, há um grande número de arquivos fragmentados. O desempenho de leitura é fraco porque os logs de delta e os arquivos de dados antigos precisam ser mesclados.

Hudi suporte três tipos de visualizações para capacidades de leitura em diferentes cenários

  • Visualização de snapshot

    Fornece os dados instantâneos mais recentes da tabela de Hudi atual. Ou seja, uma vez que os dados mais recentes são gravados na tabela de Hudi, os dados recém-escritos podem ser consultados por meio dessa visão.

    Ambas as tabelas COW e MOR suportam esse recurso de visualização.

  • Visualização incremental

    Fornece a capacidade de consulta incremental. Os dados incrementais após um commit especificado podem ser consultados. Essa visualização pode ser usada para puxar rapidamente dados incrementais.

    As tabelas COW suportam esse recurso de visualização. As tabelas MOR também suportam essa capacidade de visualização, mas a capacidade de visualização incremental desaparece quando a operação compacta é realizada.

  • Visualização de leitura otimizada

    Fornece apenas os dados armazenados no arquivo Parquet mais recente.

    Essa visualização é diferente para as tabelas COW e MOR.

    Para tabelas COW, a capacidade de visualização é a mesma que a capacidade de visualização em tempo real. (As tabelas COW usam somente arquivos Parquet para armazenar dados.)

    Para tabelas MOR, apenas os arquivos base são acessados e os dados nas fatias de arquivo fornecidas desde a última operação compacta são fornecidos. Pode ser simplesmente entendido que esta visualização fornece apenas os dados armazenados em arquivos Parquet de tabelas MOR, e os dados em arquivos de log são ignorados. Os dados fornecidos por esta visualização podem não ser os mais recentes. No entanto, uma vez que a operação compacta é realizada em tabelas MOR, os dados de log incrementais são mesclados nos dados base. Neste caso, esta vista tem a mesma capacidade que a vista em tempo real.