Snowpark Migration Accelerator: 前処理の考慮事項

Snowpark Migration Accelerator(SMA)で分析するソースコードを準備する場合、ツールが処理できるのは入力ディレクトリにあるコードのみであることに注意してください。SMA を実行する前に、関連するすべてのソースファイルがこのディレクトリに配置されていることを確認してください。

サイズ

SMA ツールは、データファイルではなく、ソースコードとテキストファイルを分析します。大容量のコードベースや多数のファイルをスキャンする場合、ツールはローカルマシンのメモリ制限を受けることがあります。たとえば、すべての依存関係ライブラリからエクスポートされたコードを入力ファイルとして含めると、分析に大幅に時間がかかります。SMA は、スキャンに含めるコードの量に関係なく、Spark固有のコード参照のみを識別することに留意してください。

以下のコードファイルをすべて収集することをお勧めします。

  • 自動化されたプロセスの一部として定期的に実行されたもの

  • プロセスの作成に使用されたもの(通常の実行とは別の場合)

  • プロセスまたはその作成スクリプトのいずれかで参照となる、組織で開発されたカスタムライブラリ

確立されたサードパーティライブラリ(Pandas、Scikit-Learnなど)を作成するコードを含める必要はありません。このツールは、定義コードを必要とすることなく、これらの参照を自動的にカタログ化します。

正しく動作するには

Snowpark Migration Accelerator(SMA)が正しく機能するには、完全で有効なソースコードが必要です。ScalaやPythonで独立して実行されない不完全なコード断片やスニペットは処理できません。SMA を実行中に多数の解析エラーが発生した場合は、ソースコードが不完全であるか、構文エラーが含まれている可能性があります。分析を確実に成功させるためには、入力ディレクトリに、ソースプラットフォームからの、動作し、構文的に正しいコードのみが含まれていることを確認してください。

ユースケース

SMA の出力を理解することは、ツールそのものを理解することにとどまりません。SMA はお客様のコードベースを分析しますが、移行における潜在的な課題を特定するためには、お客様固有のユースケースを理解することが重要です。たとえば、 SQL とデータベースコネクタを使用するノートブックがあり、Spark参照がない場合、 SMA はそのノートブックで使用されているサードパーティライブラリのみを報告します。この情報は役に立ちますが、ツールはこのようなファイルのレディネススコアを提供しません。アプリケーションに関するコンテキストを持つことは、これらの調査結果をより効果的に解釈するのに役立ちます。

Databricksノートブックからのコード

Databricksノートブックでは、同じノートブック内で複数のプログラミング言語(SQL、Scala、 PySpark)でコードを書くことができます。ノートブックをエクスポートする場合、ファイルの拡張子は主要な言語カテゴリと一致します(Pythonノートブックの場合は.ipynbまたは.py、 SQL ノートブックの場合は.sql)。ノートブックの主要言語とは異なる言語で書かれたコードは、エクスポート時に自動的にコメントアウトされます。たとえば、Pythonノートブックに SQL コードを書いた場合、その SQL コードはノートブックをエクスポートするときにコメントアウトされます。

DBX ノートブックの例

コードを含むコメントは、 SMA ツールでは分析されません。コメント内のコードを分析する場合は、まず前処理を行い、ツールが認識できるファイル形式でコードを公開する必要があります。

ノートブックで作業する場合、 SMA は、ノートブックのファイル拡張子とは異なる言語で書かれたコードを分析し、認識することができます。たとえば、Jupyterノートブック(.ipynbファイル)に SQL コードがある場合、 SMA は、コードがコメントされていなくてもコードを検出し、処理します。

ノートブック以外のファイルでは、ソース言語に合った正しい拡張子でコードが保存されていることを確認してください(例: Pythonのコードは拡張子.pyで保存)。これにより、コードが適切に分析されるようになります。