Snowpark Migration Accelerator: SMA-Inventare¶
Der Snowpark Migration Accelerator (SMA) analysiert Ihre Codebasis und erstellt detaillierte Daten, die im Berichtsordner als Tabellen (Inventare) gespeichert werden. Diese Daten werden verwendet, um zwei Arten von Berichten zu erstellen:
Das Verständnis der Inventardateien mag auf den ersten Blick entmutigend erscheinen, aber sie bieten wertvolle Einblicke sowohl in Ihren Ursprungs-Workload als auch in den konvertierten Workload. Im Folgenden erklären wir jede Ausgabedatei und ihre Spalten im Detail.
Diese Inventare werden auch über die Telemetriedatenerfassung ausgetauscht. Weitere Einzelheiten finden Sie im Telemetrieabschnitt in dieser Dokumentation.
Details des Bewertungsberichts¶
Die Datei AssessmentReport.json speichert Daten, die sowohl im Abschnitt „Detaillierter Bericht“ als auch im Abschnitt „Zusammenfassung der Bewertung“ der Anwendung angezeigt werden. Diese Datei wird in erster Linie zum Auffüllen dieser Berichte verwendet und kann Informationen enthalten, die auch in anderen Tabellen verfügbar sind.
Dateiinventar¶
Die Datei files.csv enthält eine vollständige Liste aller während der Ausführung des Tools verarbeiteten Dateien, einschließlich ihrer Dateitypen und Größen.
Pfad: Der Speicherort der Datei relativ zum Stammverzeichnis. Bei Dateien im Stammverzeichnis wird zum Beispiel nur der Dateiname angezeigt.
Technologie: Die Programmiersprache des Quellcodes (Python oder Scala)
FileKind: Bezeichner, ob die Datei Quellcode enthält oder von einem anderen Typ ist (z. B. Text- oder Protokolldateien)
BinaryKind: Zeigt an, ob die Datei ein für Menschen lesbarer Text oder eine Binärdatei ist
Bytes: Die Dateigröße gemessen in Bytes
SupportedStatus: Zeigt immer „DoesNotApply“ an, da der Dateiunterstützungsstatus in diesem Zusammenhang nicht anwendbar ist
Inventar der Importverwendungen¶
Die Datei ImportUsagesInventory.csv enthält eine Liste aller externen Bibliotheksimporte, die in Ihrer Codebasis gefunden wurden. Eine externe Bibliothek ist jedes Paket oder Modul, das in Ihre Quellcode-Dateien importiert wird.
Element: Der eindeutige Bezeichner für die Spark-Referenz
ProjectId: Der Name des Stammverzeichnisses, in dem das Tool ausgeführt wurde
FileId: Der relative Pfad und Dateiname, der die Spark-Referenz enthält
Anzahl: Anzahl der Vorkommen des Elements in einer einzelnen Zeile
Alias: Optionaler alternativer Name für das Element
Art: Immer leer/null, da alle Elemente Importe sind
Zeile: Nummer der Quellcodezeile, in der das Element erscheint
PackageName: Paket, das das Element enthält
Unterstützt: Gibt an, ob die Referenz konvertiert werden kann (True/False)
Automatisiert: Leer/null (veraltete Spalte)
Status: Immer „Ungültig“ (veraltete Spalte)
Erklärung: Der aktuelle Code, der das Element verwendet [Nicht in der Telemetrie enthalten]
SessionId: Eindeutiger Bezeichner für jede Tool-Ausführung
SnowConvertCoreVersion: Versionsnummer der Haupt-Engine für die Verarbeitung des Tools
SnowparkVersion: Verfügbare Snowpark API-Version für die spezifische Technologie
ElementPackage: Paketname, der das importierte Element enthält (sofern verfügbar)
CellId: Gibt bei Notebook-Dateien die Zellennummer an, die das Element enthält
ExecutionId: Eindeutiger Bezeichner für diese SMA-Ausführung
Herkunft: Art der Quelle des Imports (BuiltIn, ThirdPartyLib oder leer)
Inventar der Eingabedateien¶
Die Datei InputFilesInventory.csv enthält eine detaillierte Liste aller Dateien, geordnet nach Dateityp und Größe.
Element: Der Dateiname, der identisch ist mit FileId
ProjectId: Der Name des Projekts, repräsentiert durch das Stammverzeichnis, in dem das Tool ausgeführt wurde
FileId: Der vollständige Pfad zur Datei, die die Spark-Referenz enthält, angezeigt als relativer Pfad
Anzahl: Die Anzahl der Dateien mit diesem Dateinamen
SessionId: Ein eindeutiger Bezeichner, der jeder Tool-Sitzung zugewiesen wird
Erweiterung: Der Typ der Dateierweiterung
Technologie: Die Programmiersprache oder der Technologietyp, bestimmt durch die Dateierweiterung
Bytes: Die Dateigröße gemessen in Bytes
CharacterLength: Die Gesamtzahl der Zeichen in der Datei
LinesOfCode: Die Gesamtzahl der Codezeilen in der Datei
ParsingResult: Zeigt an, ob die Zelle erfolgreich geparst wurde („Erfolgreich“) oder ob Fehler aufgetreten sind („Fehler“)
Inventar der Eingabe- und Ausgabedateien¶
Die Datei IOFilesInventory.csv enthält eine Liste aller externen Dateien und Ressourcen, aus denen Ihr Code liest oder in die er schreibt.
Element: Das spezifische Element (Datei, Variable oder Komponente), auf das für Lese- oder Schreibvorgänge zugegriffen wird
ProjectId: Der Name des Stammverzeichnisses, in dem das Tool ausgeführt wurde
FileId: Der vollständige Pfad und Dateiname, in dem Spark-Code entdeckt wurde
Anzahl: Die Anzahl der Vorkommen dieses Dateinamens
isLiteral: Gibt an, ob der Lese-/Schreibort als Literalwert angegeben ist
Format: Das erkannte Dateiformat (z. B. CSV, JSON ), wenn SMA es identifizieren kann
FormatType: Gibt an, ob das identifizierte Format explizit ist
Modus: Zeigt an, ob der Vorgang „Lesen“ oder „Schreiben“ ist
Unterstützt: Zeigt an, ob Snowpark diesen Vorgang unterstützt
Zeile: Die Zeilennummer in der Datei, in der der Lese- oder Schreibvorgang stattfindet
SessionId: Ein eindeutiger Bezeichner, der jeder Tool-Sitzung zugewiesen wird
OptionalSettings: Listet alle zusätzlichen Parameter auf, die für das Element definiert wurden
CellId: Bezeichnet bei Notebook-Dateien die spezifische Zellposition (null bei Nicht-Notebook-Dateien)
ExecutionId: Ein eindeutiger Bezeichner für jede Ausführung des Tools
Probleminventar¶
Die Datei Issues.csv enthält einen detaillierten Bericht über alle Konvertierungsprobleme, die in Ihrer Codebasis entdeckt wurden. Zu jedem Problem finden Sie:
Eine Beschreibung, die das Problem erklärt
Die genaue Stelle innerhalb der Datei, an der das Problem auftritt
Ein eindeutiger Bezeichner für den Problemtyp
Ausführlichere Informationen zu bestimmten Problemen finden Sie im Abschnitt issue analysis unserer Dokumentation.
Code: Ein eindeutiger Bezeichner, der jedem vom Tool erkannten Problem zugewiesen wird
Beschreibung: Eine detaillierte Erklärung des Problems, einschließlich des Spark-Referenznamens, falls zutreffend
Kategorie: Der Typ des gefundenen Problems, der einer der folgenden sein kann:
Warnung
Konvertierungsfehler
Parser-Fehler
Helper
Transformation
WorkAround
NotSupported
NotDefined
NodeType: Der Bezeichner des Syntaxknotens, in dem das Problem entdeckt wurde
FileId: Der relative Pfad und Dateiname, unter dem die Spark-Referenz gefunden wurde
ProjectId: Der Name des Stammverzeichnisses, in dem das Tool ausgeführt wurde
Zeile: Die spezifische Zeilennummer in der Quelldatei, in der das Problem auftritt
Spalte: Die spezifische Zeichenposition in der Zeile, in der das Problem auftritt
Fügt Inventar hinzu¶
Die Datei JoinsInventory.csv enthält eine umfassende Liste aller Verknüpfungsoperationen von Datenframe, die in der Codebase zu finden sind.
Element: Zeilennummer, die angibt, wo die Verknüpfung beginnt (und endet, wenn sie sich über mehrere Zeilen erstreckt)
ProjectId: Name des Stammverzeichnisses, in dem das Tool ausgeführt wurde
FileId: Pfad und Name der Datei, die die Spark-Referenz enthält
Anzahl: Anzahl der Dateien mit demselben Dateinamen
isSelfJoin TRUE wenn eine Tabelle mit sich selbst verbunden wird, sonst FALSE
HasLeftAlias TRUE wenn ein Alias für die linke Seite der Verknüpfung definiert ist, ansonsten FALSE
HasRightAlias TRUE wenn ein Alias für die rechte Seite der Verknüpfung definiert ist, ansonsten FALSE
Zeile: Nummer der Startzeile der Verbindung
SessionId: Eindeutiger Bezeichner, der jeder Tool-Sitzung zugewiesen wird
CellId: Bezeichner der Notebook-Zelle, die das Element enthält (null für Nicht-Notebook-Dateien)
ExecutionId: Eindeutiger Bezeichner für jede Tool-Ausführung
Inventar der Notebook-Zellen¶
Die Datei NotebookCellsInventory.csv enthält eine detaillierte Liste aller Zellen in einem Notebook, einschließlich des Inhalts des Quellcodes und der Anzahl der Codezeilen pro Zelle.
Element: Die im Quellcode verwendete Programmiersprache (Python, Scala oder SQL)
ProjectId: Der Name des Stammverzeichnisses, in dem das Tool ausgeführt wurde
FileId: Der vollständige Pfad und Dateiname, in dem Spark-Code entdeckt wurde
Anzahl: Die Anzahl der Dateien mit diesem bestimmten Dateinamen
CellId: Bei Notebook-Dateien der eindeutige Bezeichner der Zelle, die den Code enthält (null bei Nicht-Notebook-Dateien)
Argumente: Dieses Feld ist immer leer (null)
LOC: Die Gesamtzahl der Codezeilen in der Zelle
Größe: Die Gesamtzahl der Zeichen in der Zelle
SupportedStatus: Zeigt an, ob alle Elemente in der Zelle unterstützt werden (TRUE) oder ob es nicht unterstützte Elemente gibt (FALSE)
ParsingResult: Zeigt an, ob die Zelle erfolgreich geparst wurde („Erfolgreich“) oder ob es Fehler beim Parsen gab („Fehler“)
Inventar der Notebook-Größe¶
Die Datei NotebookSizeInventory.csv enthält eine Zusammenfassung der Codezeilen für jede Programmiersprache, die in den Notebook-Dateien gefunden wurde.
Dateiname: Der Name der Tabellendatei (identisch mit FileId)
ProjectId: Der Name des Stammverzeichnisses, in dem das Tool ausgeführt wurde
FileId: Der relative Pfad und Name der Datei, die Spark-Referenzen enthält
Anzahl: Die Anzahl der Dateien mit diesem bestimmten Dateinamen
PythonLOC: Anzahl der Python-Codezeilen in den Zellen des Notebooks (Null für reguläre Dateien)
ScalaLOC: Anzahl der Scala-Codezeilen in den Zellen des Notebooks (Null für reguläre Dateien)
SqlLOC: Anzahl der SQL Codezeilen in den Zellen des Notebooks (Null für reguläre Dateien)
Zeile: Dieses Feld ist immer leer (null)
SessionId: Ein eindeutiger Bezeichner, der jeder Tool-Sitzung zugewiesen wird
ExecutionId: Ein eindeutiger Bezeichner, der jeder Tool-Ausführung zugewiesen wird
Inventar der Pandas-Verwendungen¶
Die Datei PandasUsagesInventory.csv enthält eine umfassende Liste aller Pandas API-Referenzen, die während des Scanvorgangs in Ihrer Python-Codebasis gefunden wurden.
Element: Der eindeutige Bezeichner für die Pandas-Referenz
ProjectId: Der Name des Stammverzeichnisses, in dem das Tool ausgeführt wurde
FileId: Der relative Pfad zur Datei, die die Spark-Referenz enthält
Anzahl: Anzahl der Vorkommen des Elements in einer einzelnen Zeile
Alias: Der alternative Name, der für das Element verwendet wird (gilt nur für Importe)
Art: Der Typ des Elements, z. B. Klasse, Variable, Funktion, Import usw.
Zeile: Die Zeilennummer der Quelldatei, in der das Element gefunden wurde
PackageName: Das Paket, das das Element enthält
Unterstützt: Zeigt an, ob die Referenz unterstützt wird (True/False)
Automatisch: Gibt an, ob das Tool das Element automatisch konvertieren kann (True/False)
Status: Element-Klassifizierung: Umbenennen, Direkt, Helper, Transformation, WorkAround, NotSupported oder NotDefined
Erklärung: Der Kontext, in dem das Element verwendet wurde [Nicht in der Telemetrie enthalten]
SessionId: Ein eindeutiger Bezeichner für jede Tool-Ausführung
SnowConvertCoreVersion: Die Versionsnummer des Hauptverarbeitungscodes des Tools
SnowparkVersion: Die Snowpark API-Version, die für die jeweilige Technologie und das verwendete Tool verfügbar ist
PandasVersion: Die Version von pandas API, die zur Identifizierung von Elementen in der Codebasis verwendet wird
CellId: Der Bezeichner der Zelle in der FileId (nur für Notebooks, sonst null)
ExecutionId: Ein eindeutiger Bezeichner für jede Tool-Ausführung
Spark-Verwendungsinventar¶
Die SparkUsagesInventory.csv-Datei gibt an, wo und wie Spark API-Funktionen in Ihrem Code verwendet werden. Diese Informationen helfen bei der Berechnung der Bereitschaftsbewertung, die angibt, wie bereit Ihr Code für die Migration ist.
Element: Der eindeutige Bezeichner für die Spark-Referenz
ProjectId: Der Name des Stammverzeichnisses, in dem das Tool ausgeführt wurde
FileId: Der relative Pfad und Dateiname, der die Spark-Referenz enthält
Anzahl: Anzahl der Vorkommen des Elements in einer einzelnen Zeile
Alias: Der Alias des Elements (gilt nur für Importelemente)
Art: Die Kategorie des Elements (z. B. Klasse, Variable, Funktion, Import)
Zeile: Die Zeilennummer der Quelldatei, in der das Element gefunden wurde
PackageName: Der Name des Pakets, das das Element enthält
Unterstützt: Zeigt an, ob die Referenz unterstützt wird (True/False)
Automatisch: Gibt an, ob das Tool das Element automatisch konvertieren kann (True/False)
Status: Element-Kategorisierung (Umbenennen, Direkt, Helper, Transformation, WorkAround, NotSupported, NotDefined)
Anweisung: Der tatsächliche Code, in dem das Element verwendet wurde [NOTE: Diese Spalte wird nicht über die Telemetrie gesendet]
SessionId: Ein eindeutiger Bezeichner für jede Tool-Ausführung
SnowConvertCoreVersion: Die Versionsnummer des Kernprozesses des Tools
SnowparkVersion: Die verfügbare Version von Snowpark-API für die jeweilige Technologie und das verwendete Tool
CellId: Bei Notebook-Dateien, die numerische Position der Zelle, in der das Element gefunden wurde
ExecutionId: Ein eindeutiger Bezeichner für diese spezielle SMA-Ausführung
Die Datei SqlStatementsInventory.csv enthält eine Zählung der SQL-Schlüsselwörter, die in Spark SQL-Elementen gefunden wurden.
Element: Name des Code-Elements, das die SQL-Anweisung enthält
ProjectId: Name des Stammverzeichnisses, in dem das Tool ausgeführt wurde
FileId: Relativer Pfad zu der Datei, die die Spark-Referenz enthält
Anzahl: Anzahl der Vorkommen des Elements in einer einzelnen Zeile
InterpolationCount: Anzahl der in dieses Element eingefügten externen Elemente
Schlüsselwörter: Wörterbuch mit SQL-Schlüsselwörtern und deren Häufigkeit
Größe: Gesamtzahl der Zeichen in der Anweisung SQL
LiteralCount: Anzahl der Zeichenfolgeliterale im Element
NonLiteralCount: Anzahl der Komponenten von SQL, die keine String-Literale sind
Zeile: Zeilennummer, in der das Element erscheint
SessionId: Eindeutiger Bezeichner für jede Tool-Sitzung
CellId: Bezeichner der Notebook-Zelle, die das Element enthält (null, wenn nicht in einem Notebook)
ExecutionId: Eindeutiger Bezeichner für jede Tool-Ausführung
SQL-Elementeinventar¶
Die SQLElementsInventory.csv-Datei enthält eine Zählung der SQL-Anweisungen, die innerhalb der Spark SQL-Elemente gefunden wurden.
Hier sind die Felder, die im SQL-Analysebericht enthalten sind:
Element: SQL-Codeelementtyp (Beispiel: SqlSelect, SqlFromClause)
ProjectId: Name des Stammverzeichnisses, in dem das Tool ausgeführt wurde
FileId: Pfad zur Datei, die den SQL-Code enthält
Anzahl: Anzahl der Vorkommen des Elements in einer einzelnen Zeile
NotebookCellId: ID der Notebook-Zelle
Zeile: Zeilennummer, in der das Element erscheint
Spalte: Nummer der Spalte, in der das Element angezeigt wird
SessionId: Einzigartige ID für jede Tool-Sitzung
ExecutionId: Einzigartige ID für jede Tool-Ausführung
SqlFlavor: Typ von SQL, der analysiert wird (Beispiel: Spark SQL, Hive SQL)
RootFullName: Vollständiger Name des Hauptcodeelements
RootLine: Zeilennummer des Hauptelements
RootColumn: Spaltennummer des Hauptelements
TopLevelFullName: Vollständiger Name der SQL-Anweisung höchster Ebene
TopLevelLine: Zeilennummer der Anweisung höchster Ebene
TopLevelColumn: Spaltennummer der Anweisung höchster Ebene
ConversionStatus: Ergebnis der SQL-Konvertierung (Beispiel: Erfolg, Fehlgeschlagen)
Kategorie: Typ der Anweisung SQL (Beispiel: DDL, DML, DQL)
EWI: Fehlerwarnung-Informationscode
ObjectReference: Name des SQL-Objekts, auf das verwiesen wird (Beispiel: Tabellenname, Ansichtsname)
SQL Eingebettetes Verwendungsinventar¶
Die SqlEmbeddedUsageInventory.csv-Datei enthält eine Zählung der SQL-Schlüsselwörter, die in Spark SQL-Elementen gefunden wurden.
Element: Der Typ der SQL-Komponente, die im Code gefunden wird (z. B. Select-Anweisung, From-Klausel oder numerisches Literal)
ProjectId: Der Name des Stammverzeichnisses, in dem das Tool ausgeführt wurde
FileId: Der Speicherort und der relative Pfad der Datei, die den SQL-Verweis enthält
Anzahl: Wie oft dieses Element in einer einzigen Zeile angezeigt wird
ExecutionId: Eine eindeutige ID, die jeder Tool-Ausführung zugewiesen wird
LibraryName: Der Name der verwendeten Bibliothek
HasLiteral: Zeigt an, ob das Element Literalwerte enthält
HasVariable: Zeigt an, ob das Element Variablen enthält
HasFunction: Zeigt an, ob das Element Funktionsaufrufe enthält
ParsingStatus: Der aktuelle Parsing-Status (Erfolg, Fehlgeschlagen oder Teilweise)
HasInterpolation: Zeigt an, ob das Element Zeichenfolge-Interpolationen enthält
CellId: Der Bezeichner für die Notebook-Zelle
Zeile: Die Zeilennummer, in der das Element gefunden wird
Spalte: Die Nummer der Spalte, in der sich das Element befindet
Inventar von Drittanbieterverwendungen¶
Die Datei ThirdPartyUsagesInventory.csv enthält
Element: Der eindeutige Bezeichner für die Drittanbieter-Referenz
ProjectId: Der Name des Stammverzeichnisses des Projekts, in dem das Tool ausgeführt wurde
FileId: Der relative Pfad zur Datei, die die Spark-Referenz enthält
Anzahl: Die Anzahl der Vorkommen des Elements in einer einzelnen Zeile
Alias: Der alternative Name, der dem Element zugewiesen wurde (falls zutreffend)
Art: Die Typklassifizierung des Elements (Variable, Typ, Funktion oder Klasse)
Zeile: Die Zeilennummer der Quelldatei, in der das Element gefunden wurde
PackageName: Der vollständige Paketname (Kombination aus ProjectId und FileId in Python)
Erklärung: Der tatsächliche Code, in dem das Element verwendet wurde [NOTE: Nicht in den Telemetriedaten enthalten]
SessionId: Ein eindeutiger Bezeichner für jede Tool-Sitzung
CellId: Der Bezeichner der Notebook-Zelle, in der das Element gefunden wurde (null für Nicht-Notebook-Dateien)
ExecutionId: Ein eindeutiger Bezeichner für jede Tool-Ausführung
Paketeinventar¶
Die Datei packagesInventory.csv enthält
Paketname: Der Name des zu analysierenden Pakets.
Projektname: Der Name des Projekts, der dem Stammverzeichnis entspricht, in dem das Tool ausgeführt wurde.
Dateispeicherort: Der Dateipfad, in dem das Paket gefunden wurde, wird als relativer Pfad angezeigt.
Anzahl der Vorkommnisse: Die Anzahl, wie oft dieses Paket in einer einzigen Codezeile vorkommt.
Zusammenfassung der Tool-Ausführung¶
Die Datei tool_execution.csv enthält wichtige Informationen über die aktuelle Ausführung des Programms Snowpark Migration Accelerator (SMA).
ExecutionId: Ein eindeutiger Bezeichner, der bei jeder Ausführung des Tools vergeben wird.
ToolName: Der Name des verwendeten Tools. Kann entweder PythonSnowConvert oder SparkSnowConvert (für Scala) sein.
Tool_Version: Die Versionsnummer der Software.
AssemblyName: Der vollständige Name des Code-Prozessors (eine ausführlichere Version von ToolName).
LogFile: Zeigt an, ob beim Auftreten eines Fehlers oder einer Störung eine Protokolldatei erstellt wurde.
FinalResult: Zeigt an, an welchem Punkt das Tool angehalten hat, wenn ein Fehler oder eine Störung aufgetreten ist.
ExceptionReport: Zeigt an, ob ein Fehlerbericht erstellt wurde, als ein Fehler auftrat.
StartTime: Das Datum und die Uhrzeit, zu der das Tool gestartet wurde.
EndTime: Das Datum und die Uhrzeit, zu der die Ausführung des Tools beendet wurde.
SystemName: Die Seriennummer des Rechners, auf dem das Tool ausgeführt wurde (wird nur zur Problembehandlung und zur Überprüfung von Lizenzen verwendet).