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:

  1. Die Bewertungzusammenfassung

  2. Die kuratierten Berichte

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