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 :
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).