Compartilhar via


Migrar pipelines de ETL para Azure Databricks

Este artigo fornece uma visão geral das opções para migrar pipelines ETL (extração, transformação e carregamento) em execução em outros sistemas de dados para o Azure Databricks. Se você estiver migrando o código do Apache Spark, confira Adaptar um código existente do Apache Spark para o Azure Databricks.

Para obter informações gerais sobre como migrar de um data warehouse corporativo para um lakehouse, confira Migrar seu data warehouse para o Databricks lakehouse. Para obter informações sobre como migrar de Parquet para o Delta Lake, confira Migrar um data lake Parquet para Delta Lake.

É possível executar pipelines do Hive no Azure Databricks?

A maioria das cargas de trabalho do Hive pode ser executada no Azure Databricks com refatoração mínima. A versão do Spark SQL que dá suporte ao Databricks Runtime permite muitos constructos do HiveQL. Confira Compatibilidade com o Apache Hive. O Azure Databricks inclui um metastore do Hive por padrão. A maioria das migrações do Hive precisa resolver algumas preocupações principais:

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

Se você optar por atualizar suas tabelas para o Delta Lake durante a migração inicial, não há suporte para várias instruções DDL e DML. Estão incluídos:

  • 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
  • Especificar partições de destino usando PARTITION (part_spec) em TRUNCATE TABLE

É possível executar pipelines de ETL do SQL no Azure Databricks?

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

O Spark SQL é compatível principalmente com ANSI, mas algumas diferenças de comportamento podem existir. Confira Como a Plataforma Data Intelligence do Databricks é 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 de pipelines de ETL do SQL pode estar configurando o acesso a essas fontes de dados e atualizando sua lógica para usar essas conexões novas. O Azure Databricks fornece opções para se conectar a várias fontes de dados para ingestão.

É possível executar pipelines de ETL do dbt no Azure Databricks?

O Azure Databricks fornece uma integração nativa com o dbt, permitindo que você aproveite scripts dbt existentes com pouquíssima refatoração.

O Lakeflow Declarative Pipelines fornece uma sintaxe SQL declarativa nativa do Databricks otimizada para criar, testar e implantar pipelines. Embora você possa aproveitar o dbt no Azure Databricks, uma leve refatoração do código para Lakeflow Declarative Pipelines pode reduzir seu custo total de operação dos pipelines no Azure Databricks. Consulte Pipelines Declarativos do Lakeflow.

É possível migrar funções de nuvem sem servidor para o Azure Databricks?

A extensibilidade e a versatilidade das funções de nuvem personalizadas sem servidor dificultam fornecer 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 resultado. Embora o Azure Databricks não dê suporte a lógica complexa para disparar cargas de trabalho com base em condições de nuvem, você pode usar o Streaming Estruturado junto aos Trabalhos para processar dados incrementalmente.

Usar o Carregador Automático para ingestão de dados otimizada do armazenamento de objetos de nuvem. O Streaming Estruturado pode processar dados de fontes de streaming quase em tempo real.

É possível executar a sintaxe de outros sistemas de dados no Azure Databricks?

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