Snowpark Migration Accelerator: Hinweise zur Vorbereitung des Codes

Bevor Sie Snowpark Migration Accelerator (SMA) ausführen, stellen Sie sicher, dass sich alle Quellcodedateien auf dem Computer befinden, auf dem Sie SMA installiert haben. Sie müssen keine Verbindung zu einer Quelldatenbank oder einer Spark-Umgebung herstellen, da SMA nur eine Codeanalyse durchführt.

Der Quellcode muss in einem lesbaren Format vorliegen, damit SMA ihn korrekt verarbeiten kann, da sich das Tool vollständig auf den von Ihnen bereitgestellten Quellcode verlässt.

Extraktion

Bevor Sie den Snowpark Migration Accelerator (SMA) ausführen, organisieren Sie alle Ihre Quellcodedateien in einem einzigen Hauptordner. Sie können Ihre bestehende Unterordnerstruktur innerhalb dieses Hauptordners beibehalten, aber alle Codedateien müssen sich in diesem einen Verzeichnis befinden. Diese Anforderung gilt für:

Die folgenden Dateitypen werden unterstützt:

  • GitHub-Repositorys (als ZIP heruntergeladen und auf Ihrem lokalen Rechner extrahiert)

  • Python Skript-Dateien

  • Scala-Projektdateien

  • Databricks-Notebook-Dateien

  • Jupyter-Notebooks laufen auf Ihrem lokalen Computer

Bevor Sie mit der Migration beginnen, sammeln Sie alle Quellcodedateien in einem einzigen Hauptordner. Ihr Quellcode kann zwar von verschiedenen Orten stammen, aber wenn er an einem Ort organisiert ist, wird der Migrationsprozess effizienter. Wenn Sie bereits eine Organisationsstruktur für Ihre Dateien haben, sollten Sie diese im Hauptordner beibehalten.

Exportieren Sie GitHub-Repositorys in ZIP-Dateien

Um mit dem Snowpark Migration Accelerator (SMA) genaue und vollständige Berichte zu erstellen, scannen Sie nur den Code, der für Ihr Migrationsprojekt relevant ist. Anstatt den gesamten verfügbaren Code zu scannen, sollten Sie nur die wesentlichen Codedateien, die Sie migrieren möchten, identifizieren und einbeziehen. Weitere Informationen finden Sie unter Größe im Abschnitt Überlegungen.

Hinweise

Sehen wir uns an, welche Dateitypen mit dem Snowpark Migration Accelerator (SMA) kompatibel sind und welche Überlegungen bei der Vorbereitung Ihres Quellcodes für die Analyse mit SMA wichtig sind.

Dateitypen

Der Snowpark Migration Accelerator (SMA) untersucht alle Dateien in Ihrem Verzeichnis, verarbeitet aber nur Dateien mit bestimmten Erweiterungen, die Spark API-Code enthalten können. Dazu gehören sowohl normale Codedateien als auch Jupyter-Notebooks.

Eine Liste der Dateitypen, die SMA unterstützt, finden Sie im Abschnitt „Unterstützte Dateitypen“ dieser Dokumentation.

Exportierte Dateien

Wenn Ihr Code nicht in lokalen Dateien, sondern in einer Versionskontrollplattform gespeichert ist, müssen Sie ihn in ein Format exportieren, das SMA verarbeiten kann. Hier erfahren Sie, wie Sie Ihren Code exportieren können:

Für Databricks-Benutzer: Um den Snowpark Migration Accelerator (SMA) zu verwenden, müssen Sie Ihre Notebooks in das .dbc-Format exportieren. Eine ausführliche Anleitung zum Exportieren von Notebooks finden Sie in der Databricks-Dokumentation zum Exportieren von Notebooks .

Benötigen Sie Hilfe beim Exportieren von Dateien? Besuchen Sie die Export-Skripte im Snowflake Labs Github Repo, wo Snowflake Professional Services Skripte für Databricks, Hive und andere Plattformen bereitstellt.

  • Wenn Sie eine andere Plattform verwenden, finden Sie auf der Seite „Code-Extraktion“ spezifische Anweisungen für Ihre Plattform. Wenn Sie Hilfe benötigen, um Ihren Code in ein Format zu konvertieren, das mit SMA funktioniert, wenden Sie sich bitte an sma-support@snowflake.com.

Größe

Der Snowpark Migration Accelerator (SMA) ist für die Analyse von Quellcode und nicht von Daten konzipiert. Um eine optimale Leistung zu gewährleisten und eine Erschöpfung der Systemressourcen zu verhindern, empfehlen wir:

  1. Fügen Sie nur die spezifischen Codedateien ein, die Sie migrieren möchten

  2. Vermeiden Sie die Einbeziehung unnötiger Bibliotheksabhängigkeiten

Sie können zwar abhängige Bibliothekscodedateien einbeziehen, aber das erhöht die Verarbeitungszeit erheblich, ohne einen Mehrwert zu bieten, da SMA sich speziell auf die Identifizierung von Spark-Code konzentriert, der migriert werden muss.

Wir empfehlen, alle Code-Dateien zu sammeln, die…

  • Automatisch als Teil eines geplanten Prozesses ausgeführt

  • Wurden verwendet, um diesen Prozess zu erstellen oder zu konfigurieren (falls sie getrennt sind)

  • Sind von Ihrem Unternehmen erstellte benutzerdefinierte Bibliotheken, die in einem der oben genannten Szenarien verwendet werden

Sie müssen keinen Code für gängige Bibliotheken von Drittanbietern wie Pandas oder Sci-Kit Learn einfügen. Das Tool erkennt und katalogisiert diese Bibliotheksreferenzen automatisch, ohne dass der Quellcode benötigt wird.

Wird er ausgeführt?

Der Snowpark Migration Accelerator (SMA) kann nur vollständigen und syntaktisch korrekten Quellcode verarbeiten. Ihr Code muss unter einer unterstützten Quellplattform erfolgreich ausgeführt werden können. Wenn SMA mehrere Parsing-Fehler meldet, deutet dies normalerweise darauf hin, dass Ihr Quellcode Syntaxfehler enthält. Um die besten Ergebnisse zu erzielen, stellen Sie sicher, dass Ihr Verzeichnis für die Eingabe nur gültigen Code enthält, der auf der Quellplattform ausgeführt werden kann.

Anwendungsfall

Bei der Überprüfung der Scanergebnisse ist es wichtig, den Zweck Ihrer Codebasis zu verstehen. Es wird Ihnen helfen:

  1. Ermitteln Sie, welche Anwendungen oder Prozesse möglicherweise nicht gut mit Snowpark funktionieren

  2. Verstehen und analysieren Sie die Ergebnisse der Bereitschaftsbewertung effektiver

  3. Prüfen Sie, ob Ihr vorhandener Code und Ihre Systeme mit Snowflake kompatibel sind

Beim Scannen eines Notebooks, das einen nicht unterstützten SQL-Dialekt und einen Datenbank-Connector ohne Spark verwendet, zeigt SMA nur importierte Bibliotheken von Drittanbietern an. Diese Informationen sind zwar hilfreich, aber das Notebook erhält keine Spark API-Bereitschaftsbewertung. Wenn Sie wissen, wie Sie Ihren Code verwenden möchten, können Sie diese Beschränkungen besser verstehen und während der Migration bessere Entscheidungen treffen.

Exporte aus Databricks-Notebooks

Databricks Notebooks unterstützen mehrere Programmiersprachen wie SQL, Scala und PySpark in einem einzigen Notebook. Wenn Sie ein Notebook exportieren, gibt die Dateierweiterung die Hauptsprache an:

  • Python-Notebooks: .ipynb oder .py

  • SQL-Notebooks: .sql

Code, der in einer anderen Sprache als der Hauptsprache des Notebooks geschrieben wurde, wird beim Export automatisch in Kommentare umgewandelt. Wenn Sie zum Beispiel SQL-Code in ein Python-Notebook einfügen, erscheint der SQL-Code als Kommentar in der exportierten Datei.

![Kommentierter Code beim Exportieren](../../../../../images/migrations/sma-assets/commentedCodeWhenExported.png „Bild“)

Code-Kommentare sind von der SMA-Analyse ausgeschlossen. Um sicherzustellen, dass Ihr Code ordnungsgemäß analysiert wird, legen Sie ihn in einer Datei mit der richtigen Dateierweiterung ab, die der Quellsprache entspricht. Beispiel:

  • Python-Code sollte in .py-Dateien vorliegen

  • SQL der Code sollte in .sql-Dateien enthalten sein

Beachten Sie, dass auch unkommentierter Code nicht analysiert wird, wenn er sich in einer Datei mit der falschen Erweiterung befindet (z. B. Python-Code in einer .sql-Datei).

Bevor Sie das Tool verwenden, lesen Sie bitte den Abschnitt Überlegungen zur Vorverarbeitung in unserer Dokumentation. Dieser Abschnitt enthält wichtige Informationen, die Sie wissen müssen, bevor Sie fortfahren.

Anleitung zur Codebasis

Wählen Sie eines der extrahierten Verzeichnisse der Beispiel-Codebase als Eingabe für den Snowpark Migration Accelerator (SMA).

Behalten Sie bei der Migration von Code Ihre ursprüngliche Ordnerstruktur bei. Dadurch bleibt die Dateiorganisation erhalten und die Entwickler können die Code-Architektur besser verstehen. Sowohl die Konvertierung des Codes als auch die Analyse der Bewertung werden für jede Datei einzeln durchgeführt.

In diesem Tutorial werden wir mit kleinen, funktionalen Spark-Codebeispielen arbeiten (jeweils weniger als 1MB). Diese Beispiele zeigen verschiedene Szenarien und Funktionen, die konvertiert werden können. Obwohl es sich bei diesen Beispielen um vereinfachte Versionen und nicht um Produktionscode handelt, demonstrieren sie effektiv verschiedene Konvertierungsmöglichkeiten.

Das Verzeichnis der Quellen kann Jupyter-Notebooks (.ipynb), Python-Skripte (.py) und Textdateien enthalten. Während SMA alle Dateien in Ihrer Codebasis untersucht, sucht es nur nach Spark API-Referenzen in Python-Dateien (.py) und Jupyter-Notebook-Dateien (.ipynb).