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
paraUSING
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)
emTRUNCATE 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.