Migrar pipelines ETL para Databricks

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

Para obter informações gerais sobre a mudança de um data warehouse empresarial para um lakehouse, consulte Migrar o seu data warehouse para o Databricks lakehouse. Para obter informações sobre como mudar de Parquet para Delta Lake, consulte Migrar um data lake Parquet para Delta Lake.

Você pode executar pipelines do Hive no 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 a compatibilidade do Apache Hive. Databricks inclui um Hive metastore por default. A maioria das migrações do Hive precisa abordar algumas preocupações principais:

  • O Hive SerDe precisa ser atualizado para usar codecs de arquivo nativos do Databricks. (Mude DDL de STORED AS para USING para usar Databricks SerDe.)

  • As UDFs do Hive devem ser instaladas em clusters como biblioteca ou refatoradas para o Spark nativo. Como as UDFs do Hive já estão na JVM, elas podem fornecer desempenho suficiente para muitas cargas de trabalho. Consulte Quais UDFs são mais eficientes?.

  • A estrutura de diretórios das tabelas deve ser alterada, pois o Databricks usa partições de maneira diferente do Hive. Consulte Quando particionar tabelas no Databricks.

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

  • 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

Você pode executar pipelines SQL ETL no Databricks?

A migração de cargas de trabalho SQL de outros sistemas para 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 formato de tabela default , portanto, as tabelas são criadas com garantias transacionais por default.

O Spark SQL é principalmente compatível com ANSI, mas podem existir algumas diferenças de comportamento. Consulte Como a plataforma de inteligência de dados Databricks é diferente de um data warehouse empresarial?.

Como os sistemas de dados tendem a configurar o acesso a dados externos de maneira diferente, grande parte do trabalho de refatoração de pipelines SQL ETL pode ser configurar o acesso a essas fontes de dados e, em seguida, atualizar sua lógica para usar essas novas conexões. Databricks fornece opções para conectar-se a muitas fontes de dados para ingestão.

Você pode executar pipelines ETL dbt no Databricks?

O Databricks fornece uma integração nativa com dbt, permitindo que você aproveite os scripts dbt existentes com muito pouca refatoração.

Delta Live Tables fornece uma sintaxe SQL declarativa nativa do Databricks otimizada para criar, testar e aprimorar pipelines. Embora você possa aproveitar o dbt no Databricks, uma leve refatoração de código para Delta Live Tables pode reduzir seu custo total para operar seus pipelines no Databricks. Veja O que é Delta Live Tables?.

Você pode migrar funções de nuvem sem servidor para Databricks?

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

Use o Auto Loader para obter dados otimizados do armazenamento de objetos clouds . A transmissão estruturada pode processar dados de fontes de transmissão quase em tempo real.

Você pode executar a sintaxe de outros sistemas de dados no Databricks?

Os pipelines ETL definidos em idiomas diferentes de SQL, Apache Spark ou Hive podem precisar ser fortemente refatorados antes de serem executados no Databricks. Databricks tem experiência em ajudar os clientes a migrar da maioria dos sistemas de dados em uso hoje e pode ter recursos disponíveis para impulsionar seus esforços de migração.