Zephyrnet Logo

Guia para migração do Databricks Delta Lake para Apache Iceberg

Data:

Introdução

No mundo em rápida mudança das grandes informática e análises, o gerenciamento potencial de extensos conjuntos de dados serve como um pilar fundamental para as empresas tomarem decisões informadas. Isso os ajuda a extrair insights úteis de seus dados. Uma variedade de soluções surgiram nos últimos anos, como Databricks Delta Lake e Apache Iceberg. Essas plataformas foram desenvolvidas para gerenciamento de data lake e ambas oferecem recursos e funcionalidades robustas. Mas para as organizações é necessário compreender as nuances em termos de arquitetura, aspectos técnicos e funcionais para migrar a plataforma existente. Este artigo explorará o complexo processo de transição do Databricks Delta Lake para o Apache Iceberg.

Objetivos de aprendizagem

  • Compreender os recursos do Databricks e do Apache Iceberg.
  • Aprenda a comparar os componentes arquitetônicos entre o Databricks e o Apache Iceberg.
  • Entenda as melhores práticas para migrar a arquitetura do delta lake para uma plataforma de código aberto como o Iceberg.
  • Utilizar outras ferramentas de terceiros como alternativa à plataforma delta lake.

Este artigo foi publicado como parte do Blogatona de Ciência de Dados.

Índice

Compreendendo o Databricks Delta Lake

Databricks Delta Lake é basicamente uma camada sofisticada de armazenamento construída sobre Apache Spark estrutura. Ele oferece algumas funcionalidades de dados modernas desenvolvidas para gerenciamento de dados contínuo. Delta Lake tem vários recursos em sua essência:

  • Transações de ACID: Delta Lake garante os princípios fundamentais de Atomicidade, Consistência, Isolamento e Durabilidade para todas as modificações nos dados do usuário, garantindo assim operações de dados robustas e válidas.
  • Evolução do Esquema: A flexibilidade vem predominantemente com Lago Delta, porque suporta perfeitamente a evolução do esquema, permitindo assim que as indústrias realizem alterações de esquema sem perturbar os pipelines de dados existentes na produção.
  • Time Travel: assim como a viagem no tempo nos filmes de ficção científica, o lago delta oferece a capacidade de consultar instantâneos de dados em determinados momentos. Assim, ele fornece aos usuários um mergulho profundo na análise histórica abrangente de dados e recursos de controle de versão.
  • Gerenciamento de arquivos otimizado: Delta Lake oferece suporte a técnicas robustas para organizar e gerenciar arquivos de dados e metadados. Isso resulta em desempenho de consulta otimizado e redução de custos de armazenamento.

Recursos do Apache Iceberg

O Apache Iceberg oferece uma alternativa competitiva para empresas que buscam soluções aprimoradas de gerenciamento de data lake. Icebergs supera alguns dos formatos tradicionais, como Parquet ou ORC. Existem muitas vantagens distintas:

  • Evolução do Esquema: o usuário pode aproveitar o recurso de evolução de esquema enquanto executa as alterações de esquema sem reescrever tabelas dispendiosas.
  • Isolamento de instantâneo: Iceberg fornece suporte para isolamento de snapshots, garantindo leituras e gravações consistentes. Facilita modificações simultâneas nas tabelas sem comprometer a integridade dos dados.
  • Gestão de Metadados: Este recurso basicamente separa os metadados dos arquivos de dados. E armazene-o em um repositório dedicado que seja diferente dos próprios arquivos de dados. Isso é feito para aumentar o desempenho e capacitar operações eficientes de metadados.
  • Poda de partição: aproveitando técnicas avançadas de remoção, otimiza o desempenho da consulta, reduzindo os dados verificados durante a execução da consulta.

Análise Comparativa de Arquiteturas

Vamos nos aprofundar na análise comparativa de arquiteturas:

Arquitetura Delta Lake do Databricks

  • Camada de armazenamento: Delta Lake aproveita o armazenamento em nuvem, por exemplo, Amazon S3, Blob Azure como sua camada subjacente de armazenamento, que consiste em arquivos de dados e logs de transações.
  • Gestão de Metadados: os metadados permanecem em um log de transações. Assim, leva a operações eficientes de metadados e garante a consistência dos dados.
  • Técnicas de Otimização: Delta Lake utiliza toneladas de técnicas de otimização. Inclui salto de dados e ordenação Z para melhorar radicalmente o desempenho da consulta e reduzir a sobrecarga durante a verificação dos dados.
Arquitetura Delta Lake do Databricks

Arquitetura Apache Iceberg

  • Separação de metadados: Há uma diferença em comparação com Bancos de dados em termos de separação de metadados de arquivos de dados. O iceberg armazena metadados em um repositório separado dos arquivos de dados.
  • Suporte Transacional: Para garantir a integridade e confiabilidade dos dados, o Iceberg possui um protocolo de transação robusto. Este protocolo garante as operações de tabela atômicas e consistentes.
  • Compatibilidade: Os motores como Apache Spark, Flink e Presto são facilmente compatíveis com o Iceberg. Os desenvolvedores têm a flexibilidade de usar o Iceberg com essas estruturas de processamento em lote e em tempo real.
Arquitetura Apache Iceberg

Navegando no cenário da migração: considerações e práticas recomendadas

É necessário muito planejamento e execução para implementar a migração do Databricks Delta Lake para o Apache Iceberg. Algumas considerações devem ser feitas que são:

  • Evolução do Esquema: Garantindo a compatibilidade perfeita entre o recurso de evolução de esquema do Delta Lake e do Iceberg para preservar a consistência durante as alterações de esquema.
  • Migração de dados: As estratégias devem ser desenvolvidas e implementadas com fatores como volume de dados, requisitos de tempo de inatividade e consistência de dados.
  • Compatibilidade de consulta: Deve-se verificar a compatibilidade da consulta entre Delta Lake e Iceberg. Isso levará a uma transição tranquila e a funcionalidade de consulta existente também permanecerá intacta após a migração.
  • Performance ensaio: inicie testes extensivos de desempenho e regressão para verificar o desempenho da consulta. A utilização dos recursos também deve ser verificada entre Iceberg e Delta Lake. Dessa forma, as áreas potenciais podem ser reconhecidas para otimização.

Para a migração, os desenvolvedores podem usar alguns esqueletos de código predefinidos da documentação do Iceberg e dos databricks e implementá-los. As etapas são mencionadas abaixo e a linguagem usada aqui é Scala:

Passo 1: Criar Tabela Delta Lake

Na etapa inicial, certifique-se de que o bucket S3 esteja vazio e verificado antes de prosseguir com a criação de dados nele. Assim que o processo de criação de dados for concluído, execute a seguinte verificação:

Passo 1: Criar Tabela Delta Lake
val data=spark.range(0,5)
data.write.format("delta").save("s3://testing_bucket/delta-table")

spark.read.format("delta").load("s3://testing_bucket/delta-table")
Criar tabela Delta Lake
Criar tabela Delta Lake

Adicionando código de vácuo opcional

#adding optional code for vaccum later
val data=spark.range(5,10)
data.write.format("delta").mode("overwrite").save("s3://testing_bucket/delta-table")

Etapa 2: CTAS e leitura da tabela Delta Lake

#reading delta lake table
spark.read.format("delta").load("s3://testing_bucket/delta-table")

Etapa 3: Ler Delta Lake e escrever na tabela Iceberg

val df_delta=spark.read.format("delta").load("s3://testing_bucket/delta-table")
df_delta.writeTo("test.db.iceberg_ctas").create()
spark.read.format("iceberg").load("test.db.iceberg.ctas)

Verifique os dados despejados nas tabelas iceberg no S3

Lendo Delta Lake e escrevendo na tabela Iceberg
Lendo Delta Lake e escrevendo na tabela Iceberg

Comparando ferramentas de terceiros em termos de simplicidade, desempenho, compatibilidade e suporte. As duas ferramentas, ou seja. AWS Glue DataBrew e Snowflake vêm com seu próprio conjunto de funcionalidades.

Produção de dados do AWS Glue

Processo de migração:

  • Fácil de usar: AWS Glue DataBrew é um produto na nuvem AWS e oferece uma experiência amigável para tarefas de limpeza e transformação de dados.
  • Moderna: O Glue DataBrew pode ser perfeitamente integrado a outros serviços em nuvem da Amazon. Para as organizações que trabalham com AWS podem utilizar este serviço.

Conjunto de características:

  • Transformação de Dados: vem com um grande conjunto de recursos para transformação de dados (EDA). Pode ser útil durante a migração de dados.
  • Perfil Automático: como outras ferramentas de código aberto, o DataBrew cria o perfil dos dados automaticamente. para detectar qualquer inconsistência e também recomendar tarefas de transformação.

Desempenho e compatibilidade:

  • AMPLIAR: para processar conjuntos de dados maiores que podem ser encontrados durante o processo de migração, o Glue DataBrew também fornece escalabilidade para lidar com isso.
  • Compatibilidade: fornece compatibilidade com um conjunto mais amplo de formatos e fontes de dados, facilitando assim a integração com diversas soluções de armazenamento.

Floco de neve

Processo de migração:

  • Facilidade de Migração: Para simplificar, o Snowflake possui serviços de migração que ajudam os usuários finais a migrar dos data warehouses existentes para a plataforma Snowflake.
  • Documentação abrangente: Snowflake oferece vasta documentação e ampla quantidade de recursos para iniciar o processo de migração.

Conjunto de características:

  • Capacidades de armazenamento de dados: fornece um conjunto mais amplo de recursos de armazenamento e oferece suporte para dados semiestruturados, compartilhamento de dados e governança de dados.
  • Concorrência: A arquitetura permite alta simultaneidade, adequada para organizações com requisitos exigentes de processamento de dados.

Desempenho e compatibilidade:

  • Performance: Snowflake também tem desempenho eficiente em termos de escalabilidade, o que permite aos usuários finais processar grandes volumes de dados com facilidade.
  • Compatibilidade: Snowflake também fornece vários conectores para diferentes fontes de dados, garantindo assim compatibilidade cruzada com diversos ecossistemas de dados.
"

Conclusão

Para otimizar os fluxos de trabalho de gerenciamento de data lake e warehouse e extrair resultados de negócios, a transição é vital para as organizações. As indústrias podem aproveitar ambas as plataformas em termos de capacidades e disparidades arquitetónicas e técnicas e decidir qual escolher para utilizar o potencial máximo dos seus conjuntos de dados. Também ajuda as organizações no longo prazo. Com o cenário de dados em rápida e dinâmica mudança, soluções inovadoras podem manter as organizações no limite.

Principais lições

  • O Apache Iceberg oferece recursos fantásticos como isolamento de instantâneos, gerenciamento eficiente de metadados e remoção de partições, melhorando assim os recursos de gerenciamento de data lake.
  • A migração para o Apache Iceberg envolve planejamento e execução cautelosos. As organizações devem considerar fatores como evolução do esquema, estratégias de migração de dados e compatibilidade de consultas.
  • O Databricks Delta Lake aproveita o armazenamento em nuvem como camada de armazenamento subjacente, armazenando arquivos de dados e logs de transações, enquanto o Iceberg separa os metadados dos arquivos de dados, melhorando o desempenho e a escalabilidade.
  • As organizações também devem considerar as implicações financeiras, como custos de armazenamento, encargos de computação, taxas de licenciamento e quaisquer recursos ad hoc necessários para a migração.

Perguntas Frequentes

Q1. Como é realizado o processo de migração do Databricks Delta Lake para o Apache Iceberg?

A. Envolve exportar os dados do Databricks Delta Lake, limpá-los, se necessário, e depois importá-los para as tabelas Apache Iceberg.

Q2. Existem ferramentas automatizadas disponíveis para auxiliar na migração sem intervenção manual?

R. As organizações geralmente utilizam scripts python/Scala personalizados e ferramentas ETL para construir esse fluxo de trabalho.

Q3. Quais são os desafios comuns que as organizações enfrentam durante o processo de migração?

R. Alguns desafios que provavelmente acontecerão são: consistência de dados, tratamento de diferenças de evolução de esquema e otimização de desempenho pós-migração.

Q4. Qual é a diferença entre o Apache Iceberg e outros formatos de tabela como Parquet ou ORC?

R. O Apache Iceberg fornece recursos como evolução de esquema, isolamento de snapshots e gerenciamento eficiente de metadados, o que o diferencia do Parquet e do ORC.

Q5. Podemos usar o Apache Iceberg com soluções de armazenamento baseadas em nuvem?

R. Definitivamente, o Apache Iceberg é compatível com soluções de armazenamento baseadas em nuvem comumente usadas, como AWS S3, Azure Blob Storage e Google Cloud Storage.

A mídia mostrada neste artigo não é propriedade da Analytics Vidhya e é usada a critério do Autor.

local_img

Inteligência mais recente

local_img