Pular para o conteúdo principal

Migrar o pipeline ETL para Databricks

Este artigo fornece uma visão geral das opções para migrar o pipeline extrair, transformar, carregar (ETL) em execução em outros sistemas de dados para Databricks. Se o senhor estiver migrando o código do Apache Spark, consulte Adaptar o código existente do Apache Spark para a Databricks.

Para obter informações gerais sobre a mudança de uma empresa data warehouse para uma lakehouse, consulte Migrar sua data warehouse para a Databricks lakehouse . Para obter informações sobre a mudança de Parquet para Delta Lake, consulte Migrate a Parquet data lake to Delta Lake.

O senhor pode executar o pipeline Hive em Databricks?

A maioria das cargas de trabalho do Hive pode ser executada no Databricks com refatoração mínima. A versão do Spark SQL suportada pelo Databricks Runtime permite muitas construções HiveQL. Consulte Compatibilidade do Apache Hive. Databricks inclui um Hive metastore de default. A maioria das migrações do Hive precisa atender a algumas preocupações principais:

  • O Hive SerDe precisa ser atualizado para usar os codecs de arquivo nativos do Databricks. (Altere a DDL de STORED AS para USING para usar o Databricks SerDe).
  • Hive Os UDFs devem ser instalados no clustering como biblioteca ou refatorados para o site nativo Spark. Como os UDFs do Hive já estão no JVM, eles podem fornecer desempenho suficiente para muitas cargas de trabalho. Consulte Considerações sobre desempenho.
  • A estrutura de diretório das tabelas deve ser alterada, pois o Databricks usa partições de forma diferente do Hive. Consulte Quando particionar tabelas em Databricks.

Se o senhor optar por atualizar suas tabelas para o Delta Lake durante a migração inicial, várias instruções DDL e DML não serão suportadas. Isso inclui:

  • ROWFORMAT
  • SERDE
  • OUTPUTFORMAT
  • INPUTFORMAT
  • COMPRESSION
  • STORED AS
  • ANALYZE TABLE PARTITION
  • ALTER TABLE [ADD|DROP] PARTITION
  • ALTER TABLE RECOVER PARTITIONS
  • ALTER TABLE SET SERDEPROPERTIES
  • CREATE TABLE LIKE
  • INSERT OVERWRITE DIRECTORY
  • LOAD DATA
  • Especificando partições de destino usando PARTITION (part_spec) em TRUNCATE TABLE

O senhor pode executar SQL ETL pipeline em Databricks?

A migração de cargas de trabalho SQL de outros sistemas para o Databricks geralmente requer muito pouca refatoração, dependendo da extensão em que os protocolos específicos do sistema foram usados no código-fonte. Databricks usa Delta Lake como o formato de tabela default, portanto, as tabelas são criadas com garantias transacionais por default.

O Spark SQL é, em sua maioria, compatível com ANSI, mas podem existir algumas diferenças de comportamento. Veja Como a Databricks Data Intelligence Platform é diferente de um data warehouse corporativo?

Como os sistemas de dados tendem a configurar o acesso a dados externos de forma diferente, grande parte do trabalho de refatoração do pipeline SQL ETL pode ser a configuração do acesso a essas fontes de dados e a atualização da lógica para usar essas novas conexões. Databricks oferece opções de conexão a várias fontes de dados para ingestão.

O senhor pode executar dbt ETL pipeline em Databricks?

O Databricks oferece uma integração nativa com o dbt, permitindo que o senhor aproveite os scripts dbt existentes com pouquíssima refatoração.

O DLT oferece uma sintaxe Databricksdeclarativa e nativa SQL otimizada para criar, testar e implantar pipelines. Embora o senhor possa aproveitar o dbt em Databricks, uma leve refatoração do código para DLT pode reduzir o custo total para operar seu pipeline em Databricks. Consulte O que é DLT? .

O senhor pode migrar as funções de nuvem do serverless para o Databricks?

A extensibilidade e a versatilidade das funções personalizadas da nuvem serverless dificultam o fornecimento de uma recomendação comum, mas um dos casos de uso mais comuns para essas funções é esperar que arquivos ou dados apareçam em um local ou fila de mensagens e, em seguida, executar alguma ação como resultado. Embora o site Databricks não ofereça suporte à lógica complexa para acionar cargas de trabalho com base nas condições da nuvem, o senhor pode usar a transmissão estruturada em conjunto com Jobs para processar dados de forma incremental.

Use o Auto Loader para otimizar a ingestão de dados do armazenamento de objetos na nuvem. A transmissão estruturada pode processar dados de fontes de transmissão em tempo quase real.

O senhor pode executar a sintaxe de outros sistemas de dados no site Databricks?

ETL O pipeline definido em linguagens diferentes de SQL, Apache Spark, ou Hive pode precisar ser fortemente refatorado antes de ser executado em Databricks. Databricks tem experiência em ajudar os clientes a migrar da maioria dos sistemas de dados em uso atualmente e pode ter recursos disponíveis para iniciar seus esforços de migração.