Snowpark Migration Accelerator: Pontuações de preparação

O Snowpark Migration Accelerator (SMA) avalia seu código e produz dados de avaliação detalhados. Para tornar essas informações mais acessíveis, o SMA calcula as pontuações de preparação que medem a facilidade com que seu código pode ser migrado para o Snowflake. Essas pontuações funcionam como indicadores de compatibilidade - quanto maior a pontuação, mais compatível é o seu código com a plataforma da Snowflake. Você pode obter essas pontuações simplesmente executando a ferramenta SMA.

O SMA gera as seguintes pontuações de preparação:

The Readiness Scores indicate how compatible your code is with Snowflake, not how much work remains to be done. Even with a high readiness score, the remaining incompatible code might still require significant effort to migrate. To accurately estimate the work needed for migration, review the complete assessment report. If you need help creating a migration plan or estimating the effort required, reach out to our team.

Níveis

O Snowpark Migration Accelerator (SMA) usa um sistema de pontuação com código de cores semelhante a um semáforo:

  • Vermelho - Problema crítico detectado. Pare imediatamente e resolva o problema, pois ele afeta significativamente o processo de migração ou impede a análise precisa do código. Siga as etapas de ação fornecidas antes de prosseguir.

  • Amarelo - Aviso detectado. Analise cuidadosamente as etapas de ação e entenda o possível impacto em sua migração. Depois de entender as implicações, pode passar para a próxima etapa.

  • Verde - Não foram detectados problemas importantes. Embora isso indique que não há impedimentos significativos para a migração, o código ainda pode precisar de ajustes. Revise as etapas de ação e continue com o processo de migração.

Como interpretar as pontuações

Para cada pontuação, você receberá:

  • Um valor numérico

  • Um indicador de status (vermelho, amarelo ou verde, conforme explicado anteriormente)

  • Uma recomendação para a próxima ação

Recomendamos enfaticamente que você:

  • Analise as pontuações sequencialmente - Quando encontrar uma pontuação vermelha, investigue e resolva o problema imediatamente

  • Revise todas as ações recomendadas para cada pontuação - Verifique as próximas etapas sugeridas para todos os resultados, incluindo as pontuações verdes, pois elas contêm itens de ação importantes

Vamos examinar as pontuações de preparação atualmente disponíveis no sistema.

Snowpark API Readiness Score

The Snowpark Migration Accelerator (SMA) generates a Snowpark API Readiness Score, which indicates how ready your code is for migration. It’s important to note that this score only evaluates the usage of Spark API components and does not assess other elements such as third-party libraries or external dependencies in your code.

When SMA analyzes your code, it identifies all Spark API references, including both import statements and function calls. These references are documented in the Spark API Usages Inventory, which you can find in your local output directory. Each reference is classified as either «supported» or «not supported» according to the Spark Reference Categories. The readiness score is calculated by dividing the number of supported references by the total number of references found in your code.

Snowpark API Readiness Score Calculation

This score is displayed as a percentage, indicating how well Snowflake supports the Spark API references found in your code. A higher percentage means better compatibility with Snowflake. You can view this score in both the detailed report and the assessment summary sections of the application.

A pontuação de preparação mostrada aqui é a pontuação original gerada pelo SMA. Para as versões mais recentes do SMA que exibem apenas uma pontuação de preparação, essa pontuação mede especificamente a compatibilidade do Spark API.

Snowpark API Readiness Levels

Com base na pontuação calculada, o resultado será classificado em uma das três categorias: verde, amarelo ou vermelho. O aplicativo e o relatório de resultados fornecerão recomendações específicas com base em sua categoria de pontuação.

The Snowpark API Readiness Score will be assigned one of these levels:

  • Verde: A maioria das referências do Spark API é compatível, o que torna essa carga de trabalho uma forte candidata à migração. Se outros indicadores também estiverem verdes, considere prosseguir com uma Prova de Conceito.

  • Amarelo: Algumas referências do Spark API não são compatíveis, o que exigirá um esforço adicional de migração. As próximas etapas devem incluir a criação de um inventário de itens sem suporte e a estimativa do esforço de conversão necessário.

Pontuação de preparação do Snowpark Connect

A pontuação de preparação do Snowpark Connect mede a porcentagem de referências à API do Spark em sua base de código que são suportadas pelo Snowpark Connect. Essa pontuação fornece uma avaliação da prontidão do seu código da API do Spark existente para execução no ambiente Snowpark Connect.

Como é calculado

During its execution, the SMA scans your codebase to identify all references to the Spark API. Examples of such references include import statements, function calls, and class instantiations. All discovered references are then logged in the Spark API Usages Inventory. This inventory is generated as a file in your local output directory. For every reference listed in the inventory, the SMA populates the IsSnowparkConnectToolSupported column, setting it to True if the API usage is supported by Snowpark Connect, or False if it is not.

Para calcular a pontuação de preparação, o SMA pega todas as referências suportadas e as divide pelo total de referências encontradas na base de código:

Cálculo da pontuação de preparação do Snowpark Connect

Por exemplo, se sua base de código tiver 100 referências à API do Spark e 90 delas forem suportadas pelo Snowpark Connect, sua pontuação de preparação do Snowpark Connect será de 90%.

Uma porcentagem mais alta na pontuação de preparação do Snowpark Connect indica um maior grau de compatibilidade com o Snowpark Connect, sugerindo que uma parte maior do seu código Spark está alinhada com as funcionalidades suportadas por ele.

Níveis de prontidão

The compatibility analysis yields a readiness score, which is categorized into one of three distinct levels: Green, Yellow, or Red. Both the application’s assessment summary and the generated detailed report will display this readiness level, accompanied by specific guidance tailored to the findings:

Pontuação de preparação de API de terceiros

A pontuação de preparação de terceiros mostra quantas de suas bibliotecas importadas podem ser usadas no Snowflake. Para entender melhor essa pontuação, vamos primeiro explicar o que queremos dizer com «Terceiro»:

Biblioteca de terceiros: Qualquer pacote de software ou biblioteca que não seja desenvolvido, mantido ou controlado pelo Snowflake (ou Snowpark no Snowflake).

The readiness score indicates the percentage of external libraries and packages that are compatible with Snowflake. For Python code, compatibility means the package is available through the Anaconda package collection in Snowpark. For Scala or Java code, compatibility means the package is already included in Snowpark’s core functionality.

A pontuação de preparação é calculada dividindo-se o número de importações de bibliotecas de terceiros suportadas pelo número total de importações de bibliotecas de terceiros em seu código.

Cálculo da pontuação de preparação de API de terceiros

Informações importantes sobre a pontuação de preparação:

  • Bibliotecas de terceiros suportadas no Snowpark: Isso inclui todas as bibliotecas que o Snowpark suporta (incluindo org.apache.spark)

  • Total de chamadas de bibliotecas de terceiros: A soma de todas as chamadas de bibliotecas de terceiros encontradas no código, incluindo bibliotecas Spark e não-Spark, com ou sem suporte do Snowpark.

  • Somente as importações marcadas como «ThirdPartyLib» no Inventário de usos de importação são contadas. As dependências internas e as importações de dentro da base de código são excluídas.

  • Essa métrica conta o número total de chamadas, não as referências de biblioteca exclusivas. Por exemplo, se o seu código tiver 100 chamadas de biblioteca no total, com 80 chamadas para uma biblioteca sem suporte e 20 chamadas para uma biblioteca com suporte, a pontuação de suporte será de 20%. Isso mostra a frequência real de uso de bibliotecas compatíveis e não compatíveis no código, em vez da proporção de referências de bibliotecas exclusivas.

Níveis de preparação de API de terceiros

Com base na pontuação calculada, o resultado será classificado em uma das três categorias: verde, amarelo ou vermelho. O aplicativo e o relatório de resultados fornecerão recomendações específicas com base em sua categoria de pontuação.

A Pontuação de preparação de API de terceiros terá um desses níveis:

  • Verde - A base de código usa bibliotecas Python que são totalmente compatíveis com o Snowflake. Não é necessária nenhuma configuração adicional.

  • Yellow - The codebase contains at least one Python package or library that is not currently supported in Snowpark. You can add unsupported third-party packages using several methods described in the third-party package documentation. To identify unsupported packages, review the Import Usages Inventory generated by SMA. Then analyze how these packages are used in your code and plan their implementation in Snowflake.

  • Red - The codebase heavily relies on packages or libraries not supported in Snowpark. This could mean either a single unsupported library is used extensively throughout the code, or multiple unsupported libraries are used across different parts of the codebase. A thorough assessment of these import statements is necessary to understand their impact. For guidance or assistance with package support, contact sma-support@snowflake.com.

Pontuação de preparação de SQL

A Pontuação de preparação de SQL indica a porcentagem de elementos SQL em seu código-fonte que podem ser convertidos automaticamente para o Snowflake SQL usando o Snowpark Migration Accelerator (SMA). Uma pontuação mais alta significa que mais do seu código pode ser convertido automaticamente, o que torna o processo de migração mais fácil e rápido.

A pontuação de preparação é calculada dividindo-se o número de elementos SQL que podem ser convertidos pelo número total de elementos SQL encontrados no código-fonte.

Cálculo da pontuação de preparação de SQL

Níveis de pontuação de preparação de SQL

A Pontuação de preparação de SQL terá um desses níveis:

  • Verde - A maior parte do SQL nesta base de código é diretamente suportada pelo Snowflake ou pode ser convertida automaticamente pelo SMA. Embora nenhuma conversão seja perfeita, essa carga de trabalho requer ajustes manuais mínimos para a migração para o Snowflake.

  • Amarelo - Alguns elementos do SQL nesta base de código não são compatíveis com o Snowflake, exigindo esforço adicional para a migração. Analise o Inventário de elementos SQL em busca de recursos sem suporte e verifique os EWIs na saída de problemas para criar um plano de ação. Talvez precise fazer pequenos ajustes no código ou redesenhar parcialmente alguns componentes.

  • Red - A large portion of SQL in this codebase is not compatible with Snowflake, suggesting significant redesign may be necessary. To proceed, review the SQL Element Inventory for unsupported features and examine the EWI’s in the issues output to develop a migration strategy. For assistance, contact sma-support@snowflake.com.


While readiness scores provide valuable insights, they should not be the only factor in determining a workload’s migration readiness. Consider multiple aspects of your migration plan alongside these scores, as they serve as an initial assessment rather than a complete evaluation. If you notice any readiness metrics that could be improved or aren’t accurately represented in the tool, let us know. The SMA team continuously works to enhance and refine these readiness measurements.