Snowpark Migration Accelerator : Inventaires SMA

L’outil Snowpark Migration Accelerator (SMA) analyse votre base de code et génère des données détaillées qui sont stockées dans le dossier Rapports sous forme de feuilles de calcul (inventaires). Ces données sont utilisées pour créer deux types de rapports :

  1. Le résumé de l’évaluation

  2. Les rapports organisés

La compréhension des fichiers d’inventaire peut sembler déconcertante au premier abord, mais ils fournissent des informations précieuses sur votre charge de travail source et sur la charge de travail convertie. Vous trouverez ci-dessous une explication détaillée de chaque fichier de sortie et de ses colonnes.

Ces inventaires sont également partagés via la collecte de données télémétriques. Pour plus de détails, veuillez vous référer à la section Télémétrie de cette documentation.

Détails du rapport d’évaluation

Le fichier AssessmentReport.json stocke les données qui sont affichées dans les sections Rapport détaillé et Résumé de l’évaluation de l’application. Ce fichier est principalement utilisé pour renseigner ces rapports et peut contenir des informations qui sont également disponibles dans d’autres feuilles de calcul.

Inventaire des fichiers

Le fichier files.csv contient une liste complète de tous les fichiers traités pendant l’exécution de l’outil, y compris leur type et leur taille.

  • Chemin : L’emplacement du fichier par rapport au répertoire racine. Par exemple, les fichiers du répertoire racine n’afficheront que leur nom.

  • Technologie : Le langage de programmation du code source (Python ou Scala)

  • FileKind : Identifie si le fichier contient du code source ou s’il est d’un autre type (texte ou fichier journal, par exemple)

  • BinaryKind : Indique si le fichier est un texte lisible par l’homme ou un fichier binaire

  • Octets : La taille du fichier est mesurée en octets

  • SupportedStatus : Indique toujours « DoesNotApply » car le statut de prise en charge du fichier n’est pas applicable dans ce contexte

Inventaire des utilisations de l’importation

Le fichier ImportUsagesInventory.csv contient une liste de toutes les importations de bibliothèques externes trouvées dans votre base de données. Une bibliothèque externe est un paquet ou un module importé dans vos fichiers de code source.

  • Élément : L’identifiant unique de la référence Spark

  • ProjectId : Le nom du répertoire racine où l’outil a été exécuté

  • FileId : Le chemin relatif et le nom du fichier contenant la référence Spark

  • Nombre : Nombre d’occurrences de l’élément dans une seule ligne

  • Alias : Nom alternatif facultatif pour l’élément

  • Type : Toujours vide/nul car tous les éléments sont des importations

  • Ligne : Numéro de la ligne du code source où l’élément apparaît

  • PackageName : Paquet contenant l’élément

  • Prise en charge : Indique si la référence peut être convertie (Vrai/Faux)

  • Automatique : Vide/nul (colonne obsolète)

  • Statut : Toujours « Non valide » (colonne obsolète)

  • Instruction : Le code réel utilisant l’élément [Non inclus dans la télémétrie]

  • SessionId : Identifiant unique pour chaque exécution d’outil

  • SnowConvertCoreVersion : Numéro de version du moteur de traitement de base de l’outil

  • SnowparkVersion : Version Snowpark API disponible pour la technologie spécifique

  • ElementPackage : Nom du paquet contenant l’élément importé (si disponible)

  • CellId : Pour les fichiers notebooks, indique le numéro de la cellule contenant l’élément

  • ExecutionId : Identifiant unique pour l’exécution de cet outil SMA

  • Origine : Type de source de l’importation (BuiltIn, ThirdPartyLib, ou vide)

Inventaire des fichiers d’entrée

Le fichier InputFilesInventory.csv contient une liste détaillée de tous les fichiers, organisés selon leur type et leur taille.

  • Élément : Le nom du fichier, qui est identique à FileId

  • ProjectId : Le nom du projet, représenté par le répertoire racine où l’outil a été exécuté

  • FileId : Le chemin complet d’accès au fichier contenant la référence Spark, indiqué comme un chemin relatif

  • Nombre : Le nombre de fichiers partageant ce nom de fichier

  • SessionId : Un Identifiant unique attribué à chaque session de l’outil

  • Extension : Le type d’extension du fichier

  • Technologie : Le langage de programmation ou le type de technologie, déterminé par l’extension du fichier

  • Octets : La taille du fichier est mesurée en octets

  • CharacterLength : Le nombre total de caractères dans le fichier

  • LinesOfCode : Le nombre total de lignes de code dans le fichier

  • ParsingResult : Indique si la cellule a été analysée avec succès (« Successful ») ou si elle a rencontré des erreurs (« Error »)

Inventaire des fichiers d’entrée et de sortie

Le fichier IOFilesInventory.csv contient une liste de tous les fichiers et ressources externes que votre code lit ou sur lesquels il écrit.

  • Élément : L’élément spécifique (fichier, variable ou composant) ayant fait l’objet d’un accès pour des opérations de lecture ou d’écriture

  • ProjectId : Le nom du répertoire racine où l’outil a été exécuté

  • FileId : Le chemin complet et le nom du fichier où le code Spark a été détecté

  • Nombre : Nombre d’occurrences de ce nom de fichier

  • isLiteral : Indique si l’emplacement de lecture/d’écriture est spécifié comme une valeur littérale

  • Format : Le format du fichier détecté (tel que CSV, JSON) si SMA peut l’identifier

  • FormatType : Spécifie si le format identifié est explicite

  • Mode : Indique si l’opération est de type « lecture » ou « écriture »

  • Prise en charge : Indique si Snowpark prend en charge cette opération

  • Ligne : Le numéro de ligne dans le fichier où se produit l’opération de lecture ou d’écriture

  • SessionId : Un Identifiant unique attribué à chaque session de l’outil

  • OptionalSettings : Répertorie les éventuels paramètres supplémentaires définis pour l’élément

  • CellId : Pour les fichiers notebooks, identifie l’emplacement spécifique de la cellule (null pour les fichiers qui ne sont pas des fichiers notebooks)

  • ExecutionId : Un Identifiant unique pour exécution de l’outil

Inventaire des problèmes

Le fichier Issues.csv contient un rapport détaillé de tous les problèmes de conversion découverts dans votre base de code. Pour chaque problème, vous trouverez :

  • Une description du problème

  • L’emplacement précis dans le fichier où se produit le problème

  • Un Identifiant de code unique pour le type de problème

Pour des informations plus détaillées sur des problèmes spécifiques, veuillez vous référer à la section Analyse des problèmes de notre documentation.

  • Code : Un identifiant unique attribué à chaque problème détecté par l’outil

  • Description : Une explication détaillée du problème, y compris le nom de la référence Spark le cas échéant

  • Catégorie : Le type de problème détecté, qui peut être l’un des suivants :

    • Avertissement

    • Erreur de conversion

    • Erreur de l’analyseur

    • Assistant

    • Transformation

    • WorkAround

    • NotSupported

    • NotDefined

  • NodeType : L’identifiant du nœud de syntaxe où le problème a été détecté

  • FileId : Le chemin relatif et le nom du fichier où la référence Spark a été trouvée

  • ProjectId : Le nom du répertoire racine où l’outil a été exécuté

  • Ligne : Le numéro de ligne spécifique dans le fichier source où le problème se produit

  • Colonne : La position du caractère spécifique dans la ligne où le problème se produit

Inventaires des jointures

Le fichier JoinsInventory.csv contient une liste complète de toutes les opérations de jointure du Dataframe trouvées dans la base de code.

  • Élément : Numéro de ligne indiquant où la jointure commence (et se termine, si elle s’étend sur plusieurs lignes)

  • ProjectId : Nom du répertoire racine où l’outil a été exécuté

  • FileId : Chemin et nom du fichier contenant la référence Spark

  • Nombre : Nombre de fichiers ayant le même nom de fichier

  • isSelfJoin : TRUE pour joindre une table à elle-même, FALSE sinon

  • HasLeftAlias : TRUE si un alias est défini pour le côté gauche de la jointure, FALSE sinon

  • HasRightAlias : TRUE si un alias est défini pour le côté droit de la jointure, FALSE sinon

  • Ligne : Numéro de la ligne de début de la jointure

  • SessionId : Identifiant unique attribué à chaque session de l’outil

  • CellId : Identifiant de la cellule du notebook contenant l’élément (null pour les fichiers qui ne sont pas des fichiers notebooks)

  • ExecutionId : Identifiant unique pour chaque exécution d’outil

Inventaire des cellules des notebooks

Le fichier NotebookCellsInventory.csv fournit une liste détaillée de toutes les cellules d’un notebook, y compris leur contenu en code source et le nombre de lignes de code par cellule.

  • Élément : Le langage de programmation utilisé dans le code source (Python, Scala ou SQL)

  • ProjectId : Le nom du répertoire racine où l’outil a été exécuté

  • FileId : Le chemin complet et le nom du fichier où le code Spark a été détecté

  • Nombre : Le nombre de fichiers avec ce nom de fichier spécifique

  • CellId : Pour les fichiers notebook, l’identifiant unique de la cellule contenant le code (null pour les fichiers qui ne sont pas des fichiers notebooks)

  • Arguments : Ce champ est toujours vide (null)

  • LOC : Le nombre total de lignes de code dans la cellule

  • Taille : Le nombre total de caractères dans la cellule

  • SupportedStatus : Indique si tous les éléments de la cellule sont pris en charge (TRUE) ou s’il y a des éléments non pris en charge (FALSE)

  • ParsingResult : Indique si la cellule a été analysée avec succès (« Successful ») ou s’il y a eu des erreurs d’analyse (« Error »)

Inventaire des tailles des notebooks

Le fichier NotebookSizeInventory.csv fournit un résumé des lignes de code pour chaque langage de programmation trouvé dans les fichiers notebook.

  • Nom de fichier : Le nom du fichier de la feuille de calcul (identique à FileId)

  • ProjectId : Le nom du répertoire racine où l’outil a été exécuté

  • FileId : Le chemin relatif et le nom du fichier contenant les références Spark

  • Nombre : Le nombre de fichiers avec ce nom de fichier spécifique

  • PythonLOC : Nombre de lignes de code Python dans les cellules du notebook (zéro pour les fichiers ordinaires)

  • ScalaLOC : Nombre de lignes de code Scala dans les cellules du notebook (zéro pour les fichiers ordinaires)

  • SqlLOC : Nombre de lignes de code SQL dans les cellules du notebook (zéro pour les fichiers ordinaires)

  • Ligne : Ce champ est toujours vide (null)

  • SessionId : Un Identifiant unique attribué à chaque session de l’outil

  • ExecutionId : Un identifiant unique attribué à chaque exécution d’outil

Inventaire des utilisations de Pandas

Le fichier PandasUsagesInventory.csv contient une liste complète de toutes les références Pandas API trouvées dans votre base de code Python au cours du processus d’analyse.

  • Élément : L’identifiant unique de la référence Pandas

  • ProjectId : Le nom du répertoire racine où l’outil a été exécuté

  • FileId : Le chemin relatif vers le fichier contenant la référence Spark

  • Nombre : Nombre d’occurrences de l’élément dans une seule ligne

  • Alias : Le nom alternatif utilisé pour l’élément (ne s’applique qu’aux importations)

  • Type : Le type d’élément, tel que la classe, la variable, la fonction, l’importation, etc.

  • Ligne : Le numéro de ligne du fichier source où l’élément a été trouvé

  • PackageName : Le paquet contenant l’élément

  • Prise en charge : Indique si la référence est prise en charge (vrai/faux)

  • Automatique : Indique si l’outil peut convertir automatiquement l’élément (vrai/faux)

  • Statut : Classification des éléments : Renommer, Direct, Assistant, Transformation, WorkAround, NotSupported ou NotDefined

  • Instruction : Le contexte dans lequel l’élément a été utilisé [Non inclus dans la télémétrie]

  • SessionId : Un identifiant unique pour chaque exécution d’outil

  • SnowConvertCoreVersion : Le numéro de version du code de traitement de base de l’outil

  • SnowparkVersion : La version de Snowpark API disponible pour la technologie et l’outil spécifiques

  • PandasVersion : La version de Pandas API utilisée pour identifier les éléments dans la base de code

  • CellId : L’identifiant de la cellule dans le champ FileId (uniquement pour les notebooks, null sinon)

  • ExecutionId : Un identifiant unique pour chaque exécution d’outil

Inventaire des utilisations de Spark

Le fichier SparkUsagesInventory.csv identifie où et comment les fonctions Spark API sont utilisées dans votre code. Ces informations permettent de calculer le [score de préparation qui indique dans quelle mesure votre code est prêt pour la migration.

  • Élément : L’identifiant unique de la référence Spark

  • ProjectId : Le nom du répertoire racine où l’outil a été exécuté

  • FileId : Le chemin relatif et le nom du fichier contenant la référence Spark

  • Nombre : Nombre d’occurrences de l’élément dans une seule ligne

  • Alias : L’alias de l’élément (ne s’applique qu’aux éléments d’importation)

  • Type : La catégorie de l’élément (par exemple, classe, variable, fonction, importation)

  • Ligne : Le numéro de ligne du fichier source où l’élément a été trouvé

  • PackageName : Le nom du paquet contenant l’élément

  • Prise en charge : Indique si la référence est prise en charge (vrai/faux)

  • Automatique : Indique si l’outil peut convertir automatiquement l’élément (vrai/faux)

  • Statut : Catégorisation des éléments (Renommer, Direct, Assistant, Transformation, WorkAround, NotSupported, NotDefined)

  • Instruction : Le code réel où l’élément a été utilisé [NOTE : Cette colonne n’est pas envoyée par télémétrie]

  • SessionId : Un identifiant unique pour chaque exécution d’outil

  • SnowConvertCoreVersion : Numéro de version du processus de base de l’outil

  • SnowparkVersion : La version Snowpark API disponible pour la technologie et l’outil spécifiques

  • CellId : Pour les fichiers notebook, l’emplacement numérique de la cellule où l’élément a été trouvé

  • ExecutionId : Un identifiant unique pour cette exécution spécifique de SMA

Le fichier SqlStatementsInventory.csv contient un nombre de mots-clés SQL trouvés dans les éléments SQL Spark.

  • Élément : Nom de l’élément de code contenant l’instruction SQL

  • ProjectId : Nom du répertoire racine où l’outil a été exécuté

  • FileId : Chemin relatif vers le fichier contenant la référence Spark

  • Nombre : Nombre d’occurrences de l’élément dans une seule ligne

  • InterpolationCount : Nombre d’éléments externes insérés dans cet élément

  • Mots-clés : Dictionnaire contenant des mots-clés SQL et leur fréquence

  • Taille : Nombre total de caractères de l’instruction SQL

  • LiteralCount : Nombre de littéraux de chaîne dans l’élément

  • NonLiteralCount : Nombre de composants SQL qui ne sont pas des chaînes littérales

  • Ligne : Numéro de la ligne où l’élément apparaît

  • SessionId : Identifiant unique pour chaque session de l’outil

  • CellId : Identifiant de la cellule du notebook contenant l’élément (null si pas dans un notebook)

  • ExecutionId : Identifiant unique pour chaque exécution d’outil

Inventaire des éléments SQL

Le fichier SQLElementsInventory.csv contient un nombre d’instructions SQL trouvées dans les éléments SQL Spark.

Voici les champs inclus dans le rapport d’analyse SQL :

  • Élément : Type d’élément de code SQL (exemple : SqlSelect, SqlFromClause)

  • ProjectId : Nom du répertoire racine où l’outil a été exécuté

  • FileId : Chemin d’accès au fichier contenant le code SQL

  • Nombre : Nombre d’occurrences de l’élément dans une seule ligne

  • NotebookCellId : ID de la cellule de notebook

  • Ligne : Numéro de la ligne où l’élément apparaît

  • Colonne : Numéro de la colonne où l’élément apparaît

  • SessionId : ID unique pour chaque session de l’outil

  • ExecutionId : ID unique pour chaque exécution de l’outil

  • SqlFlavor : Type de SQL analysé (Exemple : Spark SQL, Hive SQL)

  • RootFullName : Nom complet de l’élément de code principal

  • RootLine : Numéro de ligne de l’élément principal

  • RootColumn : Numéro de colonne de l’élément principal

  • TopLevelFullName : Nom complet de l’instruction SQL de plus haut niveau

  • TopLevelLine : Numéro de ligne de l’instruction de plus haut niveau

  • TopLevelColumn : Numéro de colonne de l’instruction de plus haut niveau

  • ConversionStatus : Résultat de la conversion SQL (Exemple : Succès, Échec)

  • Catégorie : Type d’instruction SQL (Exemple : DDL, DML, DQL)

  • EWI : Code Error Warning Information (Erreur Avertissement Information)

  • ObjectReference : Nom de l’objet SQL auquel il est fait référence (Exemple : nom de la table, nom de la vue)

Inventaire des utilisations intégrées SQL

Le fichier SqlEmbeddedUsageInventory.csv contient un décompte des mots-clés SQL trouvés dans les éléments SQL Spark.

  • Élément : Le type de composant SQL présent dans le code (tel qu’une instruction Select, une clause From ou un littéral numérique)

  • ProjectId : Le nom du répertoire racine où l’outil a été exécuté

  • FileId : L’emplacement et le chemin relatif du fichier contenant la référence SQL

  • Nombre : Nombre de fois où cet élément apparaît dans une même ligne

  • ExecutionId : ID unique attribué à chaque exécution d’outil

  • LibraryName : Le nom de la bibliothèque en cours d’utilisation

  • HasLiteral : Indique si l’élément contient des valeurs littérales

  • HasVariable : Indique si l’élément contient des variables

  • HasFunction : Indique si l’élément contient des appels de fonction

  • ParsingStatus : L’état actuel de l’analyse (Succès, Échec ou Partiel)

  • HasInterpolation : Indique si l’élément contient des interpolations de chaînes

  • CellId : L’identifiant de la cellule du notebook

  • Ligne : Le numéro de la ligne où se trouve l’élément

  • Colonne : Le numéro de la colonne où se trouve l’élément

Inventaire des utilisations tierces

Le fichier ThirdPartyUsagesInventory.csv contient

  • Élément : L’identifiant unique de la référence tierce

  • ProjectId : Le nom du répertoire racine du projet où l’outil a été exécuté

  • FileId : Le chemin relatif vers le fichier contenant la référence Spark

  • Nombre : Nombre d’occurrences de l’élément dans une seule ligne

  • Alias : Le nom alternatif attribué à l’élément (le cas échéant)

  • Type : La classification du type de l’élément (variable, type, fonction ou classe)

  • Ligne : Le numéro de ligne du fichier source où l’élément a été trouvé

  • PackageName : Le nom complet du paquet (combinaison de ProjectId et FileId dans Python)

  • Instruction : Le code réel où l’élément a été utilisé [NOTE : Non inclus dans les données de télémétrie]

  • SessionId : Un identifiant unique pour chaque session de l’outil

  • CellId : L’identifiant de la cellule du notebook où l’élément a été trouvé (null pour les fichiers qui ne sont pas des fichiers notebooks)

  • ExecutionId : Un identifiant unique pour chaque exécution d’outil

Inventaire des paquets

Le fichier packagesInventory.csv contient

  • Nom du paquet : Le nom du paquet analysé.

  • Nom du projet : Le nom du projet qui correspond au répertoire racine où l’outil a été exécuté.

  • Emplacement du fichier : Le chemin d’accès au fichier où le paquet a été trouvé, sous la forme d’un chemin d’accès relatif.

  • Nombre d’occurrences : Le nombre de fois où ce paquet apparaît sur une seule ligne de code.

Résumé de l’exécution de l’outil

Le fichier tool_execution.csv contient des informations essentielles sur l’exécution actuelle de l’outil Snowpark Migration Accelerator (SMA).

  • ExecutionId : Un identifiant unique attribué chaque fois que l’outil est exécuté.

  • ToolName : Le nom de l’outil utilisé. Peut être PythonSnowConvert ou SparkSnowConvert (pour Scala).

  • Tool_Version : Le numéro de version du logiciel.

  • AssemblyName : Le nom complet du processeur de code (une version plus détaillée de ToolName).

  • LogFile : Indique si un fichier journal a été généré lorsqu’une erreur ou une panne s’est produite.

  • FinalResult : Indique à quel moment l’outil s’est arrêté en cas d’erreur ou de panne.

  • ExceptionReport : Indique si un rapport d’erreur a été généré lorsqu’une panne s’est produite.

  • StartTime : La date et l’heure auxquelles l’outil a commencé à s’exécuter.

  • EndTime : La date et l’heure auxquelles l’outil a fini de s’exécuter.

  • SystemName : Le numéro de série de la machine où l’outil a été exécuté (utilisé uniquement pour le dépannage et la vérification des licences).