Snowpark Migration Accelerator : Scores de préparation¶
L’outil Snowpark Migration Accelerator (SMA) évalue votre code et génère des données d’évaluation détaillées. Pour rendre ces informations plus accessibles, SMA calcule des scores de préparation qui mesurent la facilité avec laquelle votre code peut être migré vers Snowflake. Ces scores agissent comme des indicateurs de compatibilité. Plus le score est élevé, plus votre code est compatible avec la plateforme de Snowflake. Vous pouvez obtenir ces scores en exécutant simplement l’outil SMA.
L’outil SMA génère les scores de préparation suivants :
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.
Niveaux¶
L’outil Snowpark Migration Accelerator (SMA) utilise un système de notation par code couleur similaire à des feux tricolores :
Rouge - Un problème critique a été détecté. Arrêtez immédiatement et résolvez le problème, car il a un impact significatif sur le processus de migration ou empêche une analyse précise du code. Suivez les étapes de l’action fournie avant de poursuivre.
Jaune - Avertissement détecté. Examinez attentivement les étapes de l’action et comprenez l’impact potentiel sur votre migration. Une fois que vous avez compris les implications, vous pouvez passer à l’étape suivante.
Vert - Aucun problème majeur n’a été détecté. Bien que cela indique qu’il n’y a pas d’obstacles significatifs à la migration, le code peut encore nécessiter des ajustements. Passez en revue les actions à entreprendre et poursuivez le processus de migration.
Comment interpréter les scores ?¶
Pour chaque score, vous recevrez :
Une valeur numérique
Un indicateur de statut (rouge, jaune ou vert, comme expliqué précédemment)
Une action recommandée
Nous vous recommandons vivement les actions suivantes :
Examiner les scores de manière séquentielle - Lorsque vous rencontrez un score rouge, examinez ce problème et traitez-le immédiatement
Examiner toutes les actions recommandées pour chaque score - Consultez les prochaines étapes suggérées pour tous les résultats, y compris les scores verts, car elles contiennent des éléments d’action importants
Examinons les scores de préparation actuellement disponibles dans le système.
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.
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.
Le score de préparation indiqué ici est le score d’origine généré par l’outil SMA. Pour les versions plus récentes de l’outil SMA qui n’affichent qu’un seul score de préparation, ce score mesure spécifiquement la compatibilité avec Spark API.
Snowpark API Readiness Levels¶
En fonction du score calculé, le résultat sera classé dans l’une des trois catégories suivantes : vert, jaune ou rouge. L’application et le rapport de sortie fourniront des recommandations spécifiques basées sur la catégorie de votre score.
The Snowpark API Readiness Score will be assigned one of these levels:
Vert : La plupart des références Spark API sont prises en charge, ce qui fait de cette charge de travail un candidat solide à la migration. Si d’autres indicateurs sont également vert, envisagez de procéder à une preuve de concept.
Jaune : Certaines références Spark API ne sont pas prises en charge, ce qui nécessitera un effort de migration supplémentaire. Les prochaines étapes devraient comprendre la création d’un inventaire d’éléments non pris en charge et l’estimation de l’effort de conversion nécessaire.
Score de préparation Snowpark Connect¶
Le score de préparation Snowpark Connect mesure le pourcentage de références Spark API dans votre base de code qui sont prises en charge par Snowpark Connect. Ce score fournit une évaluation de l’état de préparation de votre code Spark API existant pour l’exécution dans l’environnement Snowpark Connect.
Comment est-il calculé ?¶
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.
Pour calculer le score de préparation, SMA prend toutes les références prises en charge et les divise par le total des références trouvées dans la base de code :
Par exemple, si votre base de code comporte 100 références Spark API et 90 d’entre elles sont prises en charge par Snowpark Connect, votre score de préparation Snowpark Connect est de 90 %.
Un pourcentage plus élevé pour le score de préparation Snowpark Connect indique un plus grand degré de compatibilité avec Snowpark Connect, ce qui suggère qu’une plus grande partie de votre code Spark s’aligne sur les fonctionnalités prises en charge par Snowpark Connect.
Niveaux de préparation¶
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:
Green - This workload is highly compatible with Snowpark Connect as the majority of references to the Spark API are supported without any code changes. Files that are fully compatible can be run immediately, though some files will still require issue resolution.
A good next step would be to try to run some of the files in Snowflake. View the reports generated by the SMA and select a file that might be ready to run with Snowpark Connect.
Yellow - There are some elements of the Spark API in this workload that are not supported in Snowpark Connect or are incompatible with Snowpark Connect for Spark. This workload may still be able to run with Snowpark Connect, but there are elements that will require issue resolution or even re-architecture.
The recommended next step would be to evaluate if code conversion makes more sense. You can do this by converting this workload to the Snowpark API, and reviewing the Snowpark API Readiness Score. You can also dive deeper into this workload’s compatibility with Snowpark Connect by viewing the reports generated by the SMA. You can explore the compatibility with Snowpark by understanding which files may be ready to run and working through the Spark elements that have issues that need resolution.
Red - This workload has a significant number of references to the Spark API that are not supported in Snowpark Connect. However, this workload may still be a good candidate for conversion to the Snowpark API. The recommended next step would be to convert this workload, and take a look at the Snowpark API Readiness Score. If you need help, feel free to reach out to sma-support@snowflake.com.
If you would still like to further explore the compatibility with Snowpark Connect, you can view the reports generated by the SMA. A good place to start would be to understand which files may be ready to run.
Score de préparation d’une API tierce¶
Le score de préparation d’une API tierce indique combien de vos bibliothèques importées peuvent être utilisées dans Snowflake. Pour mieux comprendre ce score, expliquons d’abord ce que nous entendons par « tiers » :
Bibliothèque tierce : Tout paquet logiciel ou bibliothèque qui n’est pas développé, géré ou contrôlé par Snowflake (ou Snowpark dans 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.
Le score de préparation est calculé en divisant le nombre d’importations de bibliothèques tierces prises en charge par le nombre total d’importations de bibliothèques tierces dans votre code.
Informations importantes sur le score de préparation :
Bibliothèques tierces prises en charge dans Snowpark : Inclut toutes les bibliothèques prises en charge par Snowpark (y compris org.apache.spark)
Nombre total d’appels de bibliothèques tierces : Somme de tous les appels de bibliothèques tierces trouvés dans le code, y compris les bibliothèques Spark et non-Spark, qu’elles soient prises en charge ou non par Snowpark.
Seules les importations marquées comme « ThirdPartyLib » dans l’inventaire des utilisations des importations sont comptabilisées. Les dépendances internes et les importations provenant de la base de code sont exclues.
Cette métrique comptabilise le nombre total d’appels, et non les références uniques de la bibliothèque. Par exemple, si votre code comporte 100 appels de bibliothèque au total, dont 80 appels à une bibliothèque non prise en charge et 20 appels à une bibliothèque prise en charge, le score de prise en charge sera de 20 %. Cela montre la fréquence d’utilisation réelle des bibliothèques prises en charge par rapport à celles qui ne le sont pas dans le code, plutôt que le ratio des références uniques de la bibliothèque.
Niveau de préparation d’une API tierce¶
En fonction du score calculé, le résultat sera classé dans l’une des trois catégories suivantes : vert, jaune ou rouge. L’application et le rapport de sortie fourniront des recommandations spécifiques basées sur la catégorie de votre score.
Le score de préparation d’une API tierce se verra attribuer l’un de ces niveaux :
Vert - La base de code utilise des bibliothèques Python qui sont entièrement prises en charge par Snowflake. Aucune configuration supplémentaire n’est exigée.
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.
Score de préparation SQL¶
Le score de préparation SQL indique le pourcentage d’éléments SQL de votre code source qui peuvent être automatiquement convertis en Snowflake SQL à l’aide de l’outil Snowpark Migration Accelerator (SMA). Un score plus élevé signifie qu’une plus grande partie de votre code peut être convertie automatiquement, ce qui rend le processus de migration plus facile et plus rapide.
Le score de préparation est calculé en divisant le nombre d’éléments SQL qui peuvent être convertis par le nombre total d’éléments SQL trouvés dans le code source.
Niveaux du score de préparation SQL¶
Le score de préparation SQL se verra attribuer l’un de ces niveaux :
Vert - La plupart des éléments SQL de cette base de code sont directement pris en charge par Snowflake ou peuvent être convertis automatiquement par l’outil SMA. Bien qu’aucune conversion ne soit parfaite, cette charge de travail nécessite un minimum d’ajustements manuels pour la migration vers Snowflake.
Jaune - Certains éléments SQL de cette base de code ne sont pas pris en charge par Snowflake, ce qui nécessite des efforts supplémentaires pour la migration. Examinez l’inventaire des éléments SQL pour repérer les fonctionnalités non prises en charge et vérifiez les EWI dans la sortie des problèmes afin d’élaborer un plan d’action. Il se peut que vous deviez procéder à des ajustements mineurs du code ou à une refonte partielle de certains composants.
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.