Snowpark Migration Accelerator: Notas sobre a preparação do código¶
Antes de executar o Snowpark Migration Accelerator (SMA), certifique-se de que todos os seus arquivos de código-fonte estejam localizados no computador em que instalou o SMA. Você não precisa se conectar a nenhum banco de dados de origem ou ambiente Spark, pois o SMA só realiza análise de código.
O código-fonte deve estar em um formato legível para que o SMA possa processá-lo corretamente, pois a ferramenta depende totalmente do código-fonte fornecido por você.
Extração¶
Antes de executar o Snowpark Migration Accelerator (SMA), organize todos os seus arquivos de código-fonte em uma única pasta principal. Você pode manter a estrutura de subpastas existente dentro dessa pasta principal, mas todos os arquivos de código devem estar localizados nesse único diretório. Esse requisito se aplica a:
Os seguintes tipos de arquivos são suportados:
Repositórios GitHub (baixados como arquivos ZIP e extraídos para seu computador local)
Arquivos de script Python
Arquivos de projeto Scala
Arquivos de notebook do Databricks
Os notebooks Jupyter são executados em seu computador local
Antes de iniciar a migração, reúna todos os arquivos de código-fonte em uma única pasta principal. Embora seu código-fonte possa vir de diferentes locais, tê-lo organizado em um único lugar tornará o processo de migração mais eficiente. Se você já tiver uma estrutura de organização de arquivos estabelecida, mantenha-a intacta dentro da pasta principal.
Exportar repositórios GitHub para arquivos ZIP
Para gerar relatórios precisos e completos usando o Snowpark Migration Accelerator (SMA), verifique apenas o código relevante para o seu projeto de migração. Em vez de verificar todo o código disponível, identifique e inclua apenas os arquivos de código essenciais que planeja migrar. Para obter mais informações, consulte Tamanho na seção Considerações.
Considerações¶
Vamos analisar quais tipos de arquivos são compatíveis com o Snowpark Migration Accelerator (SMA) e entender as principais considerações ao preparar seu código-fonte para análise com o SMA.
Tipos de arquivo¶
O Snowpark Migration Accelerator (SMA) examina todos os arquivos em seu diretório de origem, mas processa apenas arquivos com extensões específicas que podem conter código Spark API. Isso inclui arquivos de código regulares e notebooks Jupyter.
É possível encontrar uma lista dos tipos de arquivos compatíveis com o SMA na seção Tipos de arquivos suportados desta documentação.
Arquivos exportados¶
Se o seu código estiver armazenado em uma plataforma de controle de origem em vez de arquivos locais, será necessário exportá-lo para um formato que o SMA possa processar. Veja como pode exportar seu código:
Para usuários do Databricks: para usar o Snowpark Migration Accelerator (SMA), você precisa exportar seus notebooks para o formato .dbc. Você pode encontrar instruções detalhadas sobre como exportar notebooks na documentação do Databricks sobre exportação de notebooks.
Precisa de ajuda para exportar arquivos? Acesse os scripts de exportação no repositório do Snowflake Labs Github, onde o Snowflake Professional Services mantém scripts para Databricks, Hive e outras plataformas.
Se estiver usando uma plataforma diferente, consulte a página Extração de código para obter instruções específicas para sua plataforma. Se precisar de ajuda para converter seu código em um formato que funcione com SMA, entre em contato com sma-support@snowflake.com.
Tamanho¶
O Snowpark Migration Accelerator (SMA) foi projetado para analisar o código-fonte, não os dados. Para garantir o desempenho ideal e evitar o esgotamento dos recursos do sistema, recomendamos que você
Inclua apenas os arquivos de código específicos que deseja migrar
Evite incluir dependências de biblioteca desnecessárias
Embora possa incluir arquivos de código de biblioteca dependentes, isso aumentará significativamente o tempo de processamento sem agregar valor, pois o SMA se concentra especificamente na identificação do código do Spark que requer migração.
Recomendamos reunir todos os arquivos de código que…
Executem automaticamente como parte de um processo programado
Foram usados para criar ou configurar esse processo (se forem separados)
São bibliotecas personalizadas criadas por sua organização que são usadas em qualquer um dos cenários acima
Você não precisa incluir código para bibliotecas comuns de terceiros, como Pandas ou Sci-Kit Learn. A ferramenta detectará e catalogará automaticamente essas referências de biblioteca sem precisar do código-fonte.
Ele funciona?¶
O Snowpark Migration Accelerator (SMA) só pode processar códigos-fonte completos e sintaticamente corretos. Seu código deve ser executado com êxito em uma plataforma de origem compatível. Se o SMA informar vários erros de análise, isso geralmente indica que o código-fonte contém erros de sintaxe. Para obter os melhores resultados, certifique-se de que o diretório de entrada contenha apenas códigos válidos que possam ser executados na plataforma de origem.
Caso de uso¶
Compreender a finalidade de sua base de código é essencial ao analisar os resultados da varredura. Isso ajudará você a:
Determinar quais aplicativos ou processos podem não funcionar bem com o Snowpark
Compreender e analisar os resultados da avaliação de preparação de forma mais eficaz
Verificar se o código e os sistemas existentes são compatíveis com a Snowflake
Ao verificar um notebook que usa um dialeto SQL não suportado e um conector de banco de dados sem o Spark, o SMA exibirá apenas as bibliotecas importadas de terceiros. Embora essas informações sejam úteis, o notebook não receberá uma pontuação de preparação para Spark API. Entender como você planeja usar o código o ajudará a compreender melhor essas limitações e a tomar melhores decisões durante a migração.
Exportações de Databricks Notebooks¶
Os Databricks Notebooks suportam várias linguagens de programação, como SQL, Scala e PySpark em um único notebook. Quando você exportar um notebook, a extensão do arquivo refletirá a linguagem principal:
Notebooks Python: .ipynb ou .py
Notebooks SQL: .sql
Qualquer código escrito em uma linguagem diferente da linguagem principal do notebook será automaticamente convertido em comentários durante a exportação. Por exemplo, se incluir código SQL em um notebook Python, o código SQL aparecerá como comentários no arquivo exportado.
Os comentários do código são excluídos da análise do SMA. Para garantir que seu código seja analisado adequadamente, coloque-o em um arquivo com a extensão correta correspondente à linguagem de origem. Por exemplo:
O código Python deve estar em arquivos .py
O código SQL deve estar em arquivos .sql
Observe que mesmo o código não comentado não será analisado se estiver em um arquivo com a extensão errada (como o código Python em um arquivo .sql).
Antes de usar a ferramenta, leia a seção Considerações de pré-processamento em nossa documentação. Esta seção contém informações essenciais que você precisa saber antes de prosseguir.
Base de código passo a passo¶
Selecione um dos diretórios de base de código de amostra extraídos como a entrada para o Snowpark Migration Accelerator (SMA).
Ao migrar o código, mantenha sua estrutura de pastas original. Isso preserva a organização dos arquivos e ajuda os desenvolvedores a entender a arquitetura do código. O processo de conversão de código e a análise de avaliação são realizados um arquivo de cada vez.
Neste tutorial, trabalharemos com amostras de código Spark pequenas e funcionais (cada uma com menos de 1MB). Esses exemplos mostram diferentes cenários e funções que podem ser convertidos. Embora esses exemplos sejam versões simplificadas e não código de produção, eles demonstram efetivamente várias possibilidades de conversão.
O diretório de origem pode conter notebooks Jupyter (.ipynb), scripts Python (.py) e arquivos de texto. Embora o SMA examine todos os arquivos em sua base de código, ele procura apenas referências ao Spark API em arquivos Python (.py) e arquivos de notebook Jupyter (.ipynb).