Pular para o conteúdo principal

Converter scripts SQL e pipelines ETL com o Genie Migrate

O Genie Migrate usa o Genie Code para converter SQL existente de dialetos como T-SQL, Snowflake, Redshift, Oracle, BigQuery e Teradata em código para execução no Databricks. Ele também converte cargas de trabalho de extração, transformação e carregamento (ETL) do Informatica PowerCenter (Beta) em notebooks do Databricks. Você organiza seu trabalho em um projeto de migração e escolhe uma estrutura de destino para a saída: queries do Databricks SQL ou notebooks do Databricks (Beta) que usam a API DataFrame. O Genie Migrate analisa cada script de origem, valida a saída convertida e corrige erros iterativamente antes de gravar os resultados em uma pasta de workspace.

O Genie Migrate faz parte das ferramentas do Databricks para migrar cargas de trabalho de data warehouses e ferramentas ETL existentes para o Databricks. Ele converte seus scripts SQL e pipelines ETL enquanto você organiza e monitora o trabalho em um projeto de migração.

Como funciona​

Inicia-se uma conversão criando um projeto de migração em seu Workspace. O projeto rastreia o estado de cada arquivo e oferece um único local para gerenciar a migração.

Diagrama do fluxo de trabalho de conversão: dialetos de origem vão para o Genie Migrate, que converte cada arquivo, verifica sua sintaxe e intenção semântica, e o revisa até que as verificações sejam aprovadas. As skills personalizadas são inseridas, e os arquivos convertidos vão para um projeto de migração.

Ao executar uma conversão, o Genie Code implanta subagentes que convertem arquivos simultaneamente. Cada subagente analisa o dialeto de origem e gera o código equivalente para a estrutura de destino do projeto (Databricks SQL ou um notebook Databricks). Em seguida, ele verifica o código convertido:

  • Sintaxe : Verifica se o código convertido entra em execução no Databricks sem erros.
  • Intenção semântica : Verifica se o código convertido mantém a lógica de negócios da fonte, como os mesmos joins e cláusulas WHERE.

Quando uma verificação falha, o subagente revisa o código e o verifica novamente. O Genie Code também aplica suas habilidades personalizadas quando converte arquivos. Consulte Criar uma habilidade personalizada (opcional). Os arquivos convertidos são gravados diretamente na pasta do workspace especificada para o projeto.

Você também pode converter um único arquivo ou pasta sem um projeto usando o comando /migrate em uma conversa do Genie Code.

Requisitos​

  • Seus arquivos SQL ou XML existentes devem estar acessíveis em seu Workspace, upload como arquivos de Workspace ou abertos no editor.
  • Seu workspace deve atender aos requisitos do Genie Code. See Genie Code.
  • Para usar a estrutura de destino do Notebooks, a análise e a linhagem do projeto ou a conversão do Informatica PowerCenter, que estão em Beta, um administrador do workspace deve ativar os Recursos Experimentais de Projetos de Migração na página Pré-visualizações . Consulte Gerenciar prévias do Databricks.

Fontes compatíveis​

O conversor suporta os seguintes dialetos SQL:

  • T-SQL
  • Snowflake SQL
  • Redshift SQL
  • Oracle
  • BigQuery
  • Teradata

Ao criar um projeto de migração para um dialeto SQL, escolha uma das seguintes estruturas de destino:

  • DBSQL : queries Databricks SQL compatíveis com ANSI.
  • Notebooks (Beta): Notebooks do Databricks que usam a API DataFrame, com spark.sql para lógica que fica mais clara no SQL.
info

Beta

O suporte à fonte do Informatica PowerCenter está em Beta. Para usá-lo, um administrador de workspace deve ativar Recursos experimentais de projetos de migração na página Prévias . Consulte Gerenciar prévias do Databricks.

O conversor também suporta o Informatica PowerCenter como fonte de ETL.

O Informatica Intelligent gestão de dados cloud (IDMC) e o Informatica Intelligent cloud serviços (IICS) não são compatíveis. O Genie Migrate converte os objetos em uma exportação do Informatica, como fluxos de trabalho e mapeamentos, em notebooks do Databricks, para que os projetos do Informatica sempre usem a estrutura de destino Notebooks.

Para preparar fluxos de trabalho do Informatica para conversão, exporte-os do PowerCenter Repository Manager no formato XML do PowerMart. Exporte ao nível do fluxo de trabalho e inclua objetos dependentes, como mapeamentos, sessões, mapplets e worklets. Não inclua credenciais na exportação.

Converta seu código​

Os passos seguintes descrevem como converter scripts SQL e pipelines ETL em um projeto de migração.

Passo 1: Fazer upload de arquivos de origem​

Faça upload dos seus arquivos SQL (.sql) ou exportações ETL (.xml) existentes usando o navegador de arquivos do workspace, ou use a CLI do Databricks para fazer upload em massa de um diretório de scripts.

Passo 2: Criar um projeto de migração​

Crie um projeto de migração a partir do seu Workspace:

  1. Clique em Novo ícone > Projeto de migração .
  2. Insira um Nome para o projeto.
  3. Use os seletores drop-down para escolher um Dialeto de origem e um Framework de destino . Para Framework de destino , escolha DBSQL para gerar queries do Databricks SQL, ou Notebooks (Beta) para gerar notebooks do Databricks. Se você escolher Informatica como o dialeto de origem, o framework de destino será definido como Notebooks .
  4. Insira o caminho do arquivo para a pasta de destino . Clique em Procurar para escolher um destino em uma lista de pastas de workspace disponíveis.
  5. Clique em Criar .

Caixa de diálogo de novo projeto de migração mostrando os campos de nome do projeto, dialeto de origem, framework de destino e pasta de destino.

Etapa 3: Adicionar arquivos ao seu projeto​

No novo projeto:

  1. Clique em Adicionar arquivos > + Adicionar arquivos .
  2. Selecione a pasta de origem ou um arquivo do seu Workspace.

Em projetos da Informatica, apenas arquivos .xml são adicionados. Arquivos de outros tipos são ignorados.

A tab Arquivos lista cada arquivo com seu tipo de arquivo, contagem de linhas e status de conversão. Os projetos do Informatica são abertos na tab Inventário , que lista cada exportação com os objetos que ela contém.

Tela do projeto de migração mostrando arquivos de origem adicionados com seu tipo de arquivo, contagem de linhas e status de conversão.

O passo 4: Revisar a complexidade do código e linhagem (Beta)​

info

Beta

Este recurso está em Beta. Para usá-lo, um administrador do workspace deve ativar Recursos experimentais de projetos de migração na página Prévias . Consulte Gerenciar prévias do Databricks.

Analise o projeto para revisar a complexidade do código e as dependências entre arquivos antes de converter. A análise é opcional para projetos SQL e necessária para projetos Informatica.

Para analisar um projeto SQL:

  1. No projeto, clique em Analisar tudo . Se o projeto não tiver linhagem, Analisar tudo é a ação default. Caso contrário, selecione Analisar tudo no menu suspenso do botão. A análise abrange todos os arquivos do projeto, mesmo que você selecione arquivos.
  2. Aguarde a conclusão da análise. Para cancelar uma análise em execução, clique em Parar . Quando a análise termina, o botão muda para Converter tudo .
  3. Clique em um arquivo de origem para abrir sua avaliação de complexidade e clique em Linhagem para abrir um gráfico de dependência que mostra os arquivos e tabelas interdependentes que você deve migrar juntos.

Para analisar um projeto Informatica, clique em Analyze all (Analisar tudo) na tab Inventory (Inventário). A análise divide cada exportação em seus fluxos de trabalho, worklets, mapeamentos e mapplets. Você deve analisar uma exportação antes de poder convertê-la.

Passo 5: Execução da conversão​

Em projetos Informatica, você seleciona e converte os fluxos de trabalho, mapeamentos e outros objetos que a análise cria, não as exportações .xml upload.

Para converter arquivos específicos, selecione-os e clique em Converter selecionados . Para converter todos os arquivos no projeto, limpe a seleção e clique em Converter todos . O Genie Code inicia uma conversa, invoca a habilidade de migração e implanta subagentes para converter os arquivos simultaneamente. Cada arquivo convertido aparece como um arquivo vinculado no projeto. Cada arquivo mostra um dos seguintes status:

  • Cinza : O arquivo ainda não foi convertido ( Não começado , Na fila ou Parado ). Um ícone de carregamento é exibido enquanto o arquivo é convertido.
  • Verde não preenchido : o arquivo foi convertido sem problemas ( Convertido ).
  • Verde preenchido : Você revisou e aceitou o arquivo convertido ( Revisado ).
  • Amarelo : o arquivo foi convertido, mas tem itens de ação que você precisa revisar.
  • Vermelho : A conversão falhou ( Erro ).

Cada execução converte até 500 arquivos. Se você colocar em fila mais de 500 arquivos, os primeiros 500 arquivos não convertidos entram em execução no lote atual. Após o término do lote, comece a conversão novamente para converter os próximos 500.

Passo 6: Revisar os resultados da conversão​

Para projetos do Databricks SQL, clique em um arquivo convertido para abrir um diff inline no editor de SQL, que mostra cada seção do código-fonte acima do Databricks SQL proposto que o substitui. Aceite todas as alterações sugeridas ou revise e aceite edições individuais. Para projetos de Notebooks, clique em um arquivo convertido para abrir o notebook do Databricks gerado. Para scripts que não podem ser convertidos, edite o código no editor ou peça ao Genie Code para revalidar ou tentar novamente seções específicas. Depois de satisfeito, execute o SQL ou o notebook convertido para confirmar se ele é executado no Databricks. Se o mesmo erro aparecer em vários arquivos, capture a correção em uma skill personalizada e execute esses arquivos novamente. Consulte Criar uma skill personalizada (opcional).

Para projetos Informatica, compare cada notebook gerado com o mapeamento do PowerCenter correspondente. Verifique as tabelas de origem e destino, joins, filtros e grupos de roteador, lookups, lógica de Update Strategy e parâmetros. Antes de usar um pipeline convertido em produção, faça uma execução dele em dados que não são de produção e compare os resultados, como contagens de linhas e agregados de key, com a saída do fluxo de trabalho do PowerCenter.

Criar uma habilidade personalizada (opcional)​

As habilidades personalizadas permitem codificar regras de negócios que o Genie Code aplica automaticamente durante cada conversão. Use-os para lidar com tipos de dados proprietários, impor padrões de destino preferenciais ou capturar correções que você faz repetidamente. Uma habilidade de migração é uma habilidade do Genie Code, assim, você pode criá-la e gerenciá-la da mesma forma que qualquer outra habilidade. Para obter mais detalhes, consulte Estenda o Genie Code com habilidades de agente.

Não é necessário definir todas as suas skills antes da primeira conversão. A maioria das regras que uma skill deve capturar só fica clara depois que você revisa os primeiros resultados. Um fluxo de trabalho típico é:

  1. Converter um conjunto representativo de arquivos.
  2. Revise os arquivos com itens de ação ou erros e procure erros que se repetem entre os arquivos, como o mesmo tipo de dados, função ou padrão de nomenclatura não suportado.
  3. Crie uma habilidade que capture a correção para cada erro recorrente.
  4. Selecione apenas os arquivos afetados e clique em Converter selecionados . O Genie Code aplica a nova habilidade a esses arquivos.

Repita este ciclo conforme converte mais códigos. O Genie Code aplica cada skill às conversões posteriores no workspace, portanto, uma correção cobre outros arquivos com o mesmo padrão.

Você pode criar uma habilidade a partir das configurações do Genie Code ou de uma conversa do Genie Code. Use o caminho de configurações para habilidades complexas que incluem instruções detalhadas, exemplos ou arquivos de suporte. Use o caminho de chat para habilidades rápidas de regra única.

Crie a habilidade como um arquivo para que você possa criar instruções detalhadas e controlar a versão em uma pasta Git:

  1. No painel Genie Code, clique em Ícone de engrenagem. **Configurações** e, em seguida, clique em Seta no ícone. **Abrir pasta de habilidades**.

  2. Crie uma pasta para sua habilidade no caminho de habilidades do workspace, Workspace/.assistant/skills/. Por exemplo, Workspace/.assistant/skills/sql-migration/.

  3. Na pasta de habilidades, crie um arquivo SKILL.md com o frontmatter necessário e suas regras de conversão. Por exemplo:

    ---
    name: sql-migration
    description: Conversion rules to apply when migrating legacy SQL to ANSI SQL.
    ---

    Always convert the custom type MYDATE to TIMESTAMP_NTZ.

O Genie Code detecta a habilidade na próxima execução de uma conversão.

As habilidades do workspace são armazenadas no nível do workspace e compartilhadas entre todos os usuários no workspace.

Dicas para testes​

Como parte de seu ciclo de agente, o conversor analisa cada script de origem, valida que o resultado convertido é sintaticamente válido e semanticamente equivalente à origem, e corrige iterativamente as seções que falham antes de escrever os resultados. As dicas a seguir ajudam a revisar e obter confiança no resultado:

  • Conversão em lote : Converta um pequeno lote de dois a cinco arquivos em uma sessão para verificar se a conversão de vários arquivos funciona de ponta a ponta.
  • **Validação de sintaxe**: Após a conversão, execute a saída em um editor Databricks SQL ou Notebook para confirmar que ela é executada sem erros.
  • Casos extremos : Inclua um script com construções específicas de dialeto, como funções de janela T-SQL, Snowflake QUALIFY ou Redshift LISTAGG, para ver como o conversor lida com padrões não triviais.
  • **Correção semântica**: Execute as queries originais e convertidas em relação a dados de teste equivalentes e compare os resultados. Certifique-se de que o resultado é semanticamente correto, não apenas sintaticamente válido.

Recursos adicionais​