Quando Doris Encontra Iceberg: A Redenção de um Engenheiro de Dados

Acordar no meio da noite devido a um bug de dados novamente, você já sonhou com um mundo de dados ideal onde as consultas retornam em segundos, os dados nunca se perdem e os custos são tão baixos que seu chefe está sorrindo? Parece um sonho? Não! Isso está se tornando realidade.

Lembre-se daquela noite em que você foi esmagado por problemas de particionamento de dados, com o gerente de produto empurrando freneticamente o progresso enquanto você lutava com dados dispersos? As consultas entre fontes eram lentas como um caracol subindo uma montanha, e as mudanças de esquema exigiam coordenação em sete departamentos.

Mas agora, esses pontos de dor estão sendo reescritos. 

A combinação do Apache Doris e Iceberg está redefinindo a forma como os lagos de dados funcionam. Não é apenas um simples 1+1=2; traz um salto qualitativo: consultas de segundo nível, evolução de esquema sem emendas e verdadeiras garantias de consistência de dados.

A Sinfonia Perfeita de Doris e Iceberg

No campo da engenharia de dados, frequentemente nos deparamos com problemas como estes:

O Xiao Zhang está trabalhando em um requisito de análise de dados, precisando analisar dados de comportamento do usuário dos últimos três meses. Os dados estão dispersos entre armazéns de dados Hive, bancos de dados empresariais e armazenamento de objetos. O desempenho de junção entre fontes é ruim, com consultas levando mais de 40 minutos, e a inconsistência de dados ocorre frequentemente.

Além disso, o Xiao Zhang também tem que lidar com o trabalho de governança de dados, e cada mudança na estrutura da tabela lhe dá dor de cabeça. Múltiplos aplicativos dependentes dessas tabelas, e as mudanças de esquema exigem coordenação entre várias equipes, possivelmente levando uma semana para concluir uma única mudança.

Esses problemas se tornaram mais proeminentes com o crescimento explosivo de dados. A separação tradicional entre data warehouses e data lakes não consegue mais atender às necessidades.

Felizmente, na versão 2.1, a arquitetura lakehouse do Apache Doris foi significativamente aprimorada. Ela não apenas melhora as capacidades de leitura e escrita de formatos de data lake mainstream (Hudi, Iceberg, Paimon, etc.), mas também introduz compatibilidade com vários dialetos SQL, permitindo a transição perfeita de sistemas existentes para o Apache Doris. Em cenários de ciência de dados e leitura de dados em larga escala, o Doris integra a interface de leitura de alta velocidade Arrow Flight, alcançando uma melhoria de 100 vezes na eficiência de transferência de dados.

Assim, Xiao Zhang decidiu usar Doris + Iceberg para sua redenção.

O Apache Doris fornece suporte nativo para muitos recursos principais do Iceberg: Iceberg:

  • Suporta vários tipos de Catálogo Iceberg, como Hive Metastore, Hadoop, REST, Glue, Google Dataproc Metastore e DLF.
  • Suporta nativamente os formatos de tabela Iceberg V1/V2, bem como a leitura de arquivos de Delete de Posição e Delete de Igualdade.
  • Suporta consultas ao histórico de snapshots de tabela Iceberg por meio de funções de tabela.
  • Suporta a funcionalidade de viagem no tempo.
  • Oferece suporte nativo ao mecanismo de tabela Iceberg. O Apache Doris pode criar, gerenciar e gravar dados diretamente em tabelas Iceberg. Ele suporta um conjunto completo de funções de transformação de partições, fornecendo capacidades como partições ocultas e evolução do layout de partições.

Além disso, a versão 2.1.6 do Doris trouxe melhorias significativas para Doris + Iceberg:

O Apache Doris suporta operações DDL e DML no Iceberg. Os usuários podem criar bancos de dados e tabelas diretamente no Iceberg através do Apache Doris e gravar dados em tabelas Iceberg.

Através deste recurso, os usuários podem realizar consultas de dados completas e operações de gravação no Iceberg usando o Apache Doris, simplificando ainda mais a arquitetura do lakehouse.

Portanto, Xiao Zhang pode rapidamente construir uma solução eficiente de lakehouse com base no Apache Doris + Apache Iceberg para atender flexivelmente a várias necessidades de análise e processamento de dados em tempo real:

  • Use o mecanismo de consulta de alto desempenho do Doris para unir e analisar dados de tabelas Iceberg e outras fontes de dados, construindo uma plataforma unificada de análise de dados federados.
  • Gerencie e construa diretamente tabelas Iceberg no Doris, limpe e processe dados e escreva-os em tabelas Iceberg, construindo uma plataforma unificada de processamento de dados de lakehouse.
  • Compartilhe dados do Doris com outros sistemas a montante e a jusante para processamento adicional através do mecanismo de tabela Iceberg, construindo uma plataforma unificada de armazenamento de dados abertos.

Isso não é mais uma simples integração superficial, mas uma fusão profunda de arquiteturas de lakehouse!

Resumo prático de Doris e Iceberg

Depois de uma série de altos e baixos na exploração e prática, Xiao Zhang resumiu algumas experiências práticas com Doris + Iceberg:

Gestão Inteligente de Metadados

Nas soluções tradicionais, a gestão de metadados sempre foi um problema complicado. As informações de partição de tabelas, localizações de arquivos e históricos de alterações de esquema estão espalhados por toda parte, levando a um desempenho de consulta ruim e operações e manutenção complexas.

O Doris + Iceberg fornece uma camada unificada de gestão de metadados:

Esta arquitetura traz diversos valores-chave:

  1. Evolução de esquema sem interrupções: As mudanças na estrutura da tabela não exigem mais tempo de inatividade. O Doris + Iceberg suporta adição, exclusão e modificação de campos, bem como ajuste de métodos de partição.
  2. Gestão de versão de dados: Através do mecanismo de snapshot do Iceberg, você pode reverter para o estado dos dados em qualquer momento.
  3. Serviço de catálogo unificado: Suporta vários tipos de Catálogo Iceberg, como Hive Metastore, Hadoop, REST, Glue, Google Dataproc Metastore e DLF, integrando-se perfeitamente com a infraestrutura existente.

Xiao Zhang agora pode concluir as alterações de esquema com uma única instrução ALTER TABLE. O sistema lida automaticamente com a compatibilidade, e as aplicações downstream permanecem alheias às mudanças.

Organização Eficiente de Dados

Doris combina de forma inovadora o mecanismo MPP com os métodos de organização de dados Iceberg:

SQL

 

Esta declaração SQL esconde poderosos mecanismos técnicos:

  • Organização de arquivos: Suporta mídias de armazenamento comuns, como HDFS e armazenamento de objetos.
  • Particionamento inteligente: Suporta funções de transformação de partições para habilitar o particionamento implícito do Iceberg e recursos de evolução de partições.
  • Otimização de armazenamento: Suporta formatos de armazenamento colunar como Parquet e ORC, combinados com vários métodos de compressão para aprimorar o desempenho.

Com o suporte do Doris para operações DDL e DML no Iceberg, os problemas de consistência de dados também são completamente resolvidos.

Operações e Gerenciamento de Manutenção

Para garantir a estabilidade da plataforma de dados, Xiao Zhang utiliza os seguintes métodos para monitorar e gerenciar as tabelas Iceberg:

SQL

 

Esta cadeia de ferramentas fornece:

  • Monitoramento de métricas: Controle em tempo real do status da tabela e métricas de snapshot.
  • Gerenciamento de snapshots: Limpeza de snapshots expirados para liberar espaço de armazenamento.
  • Recuperação de falhas: Suporta retorno a qualquer versão histórica (leitura de dados da versão histórica com base no ID do snapshot ou na hora de criação do snapshot).

Através dessas práticas, a plataforma de dados de Xiao Zhang baseada em Doris + Iceberg alcançou novos patamares:

  • O desempenho de consulta melhorou em 300%.
  • Os custos de armazenamento foram reduzidos em 40%.
  • A eficiência das operações e da manutenção aumentou em 200%.

A emocionante jornada da casa do lago de Doris é interminável.

Fique ligado para mais conteúdo interessante, útil e valioso na próxima edição!

Source:
https://dzone.com/articles/when-doris-meets-iceberg