Snowpark Migration Accelerator: 評価の概要の理解

評価を実行した後、評価の概要レポートで初期結果と概要を表示することができます。このレポートにアクセスするには、 結果を表示 ボタンをクリックします。

表示を結果

評価レポートが表示されます。このレポートは、 SMA の実行中に 出力レポート フォルダーに作成されたインベントリファイルからの情報を要約したものであることに留意してください。包括的な分析については、出力ディレクトリの 詳細レポート をご確認ください。

アプリケーションの「評価の結果」セクションにはいくつかのコンテナーが含まれています。

標準評価概要

概要は以下のように表示されます。

評価の概要

レポートの右上には、分析が実行された日付を示すドロップダウンメニューがあります。同じプロジェクト内でアクセラレーターを複数回実行した場合、ドロップダウンメニューには複数の日付が表示されます。これらの日付は、現在開いているプロジェクトの実行にのみ対応しています。

レポートの左上で、 さまざまなレディネススコアを読み解く方法 を知ることができるリンクをクリックします。このリンクの下に、各レディネススコアについての詳しい説明があります。

Spark API レディネススコア

このレポートにはいくつかのアイテムがありますが、中でも最も重要なメトリックは「レディネススコア」です。

各セクションを詳しく見ていきましょう。

Spark API レディネススコア

  1. レディネススコア - Spark API レディネススコア は、コードが移行に対してどの程度準備ができているかを評価するために SMA が使用する主なメトリックです。このスコアは、Spark API 参照のうち、Snowpark API に変換できるものの割合を示しています。このスコアは有用ですが、Spark API 参照のみを考慮し、サードパーティのライブラリやその他の要因は考慮していません。したがって、完全な評価ではなく、初期評価としてご利用ください。

    スコアは、変換可能なSpark API 参照の数を、コード内で見つかったSpark API 参照の合計数で割って計算されます。たとえば、スコアが3541/3746と表示された場合、3746の参照合計数のうち、3541の参照が変換可能であることを意味します。スコアが高いほど、Snowpark API との互換性が高いことを示します。このスコアは詳細レポートの最初のページに記載されています。

  2. 次にすることの提案 - レディネススコアに基づき、 SMA は移行プロセスにおける次のステップを提案します。

  3. レディネススコアの説明 - このセクションでは、Spark API レディネススコアの意味と、結果の解釈方法について詳しく説明します。

  4. レディネススコアの内訳 - このセクションでは、2つの主要なメトリクスを使用してスコアがどのように計算されたかを示します。

    • 変換準備済みの使用: Snowparkに変換可能なSpark API 参照(関数、エレメント、またはインポートステートメント)の数。

    • 識別された使用: コード内で見つかったSpark API 参照の合計数。

サードパーティライブラリレディネススコア

サードパーティライブラリレディネススコアは、以下の形式で表示されます。

サードパーティライブラリレディネススコア

  1. レディネススコア - レディネススコアとそのカテゴリ(緑、黄、赤)が表示されます。サードパーティライブラリレディネススコアは、インポートしたライブラリのうち、Snowflakeでサポートされているライブラリの割合を示します。詳細については、 サードパーティ API レディネススコア セクションをご参照ください。

  2. 次のステップ - レディネススコアに基づいて、 SMA は次のアクションに関する推奨事項を提供します。

  3. スコアの説明 - サードパーティライブラリレディネススコアの意味と結果の解釈方法について説明しています。

  4. スコアの内訳 - サードパーティライブラリレディネススコアが、(Snowparkでサポートされているライブラリ呼び出しの数)÷(識別されたライブラリ呼び出しの合計数)という式を使用してどのように計算されたかを示します。

    条件:

    • 「Snowparkでサポートされるライブラリ呼び出し」とは、Snowparkが使用できるライブラリを意味します。

    • 「識別されたライブラリ呼び出し」とは、サポートされているかどうかにかかわらず、Sparkライブラリおよび非Sparkライブラリの両方を含む、コード内で検出されたすべてのサードパーティライブラリ呼び出しを意味します。

SQL レディネススコア

SQL レディネススコアは以下の形式で表示されます。

SQL レディネススコア

  • レディネススコア - レディネススコアとそのカテゴリ(緑、黄、赤)が表示されます。このスコアは、Snowflake SQL に変換できたコード内の SQL 要素の数を示します。詳細については 、 SQL レディネススコア のセクションをご参照ください。

  • 次のステップ - レディネススコアに基づいて、 SMA は、続行する前に実行する推奨アクションを提供します。

  • スコアの説明 - SQL レディネススコアの明確な説明と結果の解釈方法を提供します。

  • スコアの内訳 - SQL レディネススコアの詳細な計算が表示されます。計算は、(サポートされている要素の数)÷(要素の合計数)として計算されます。

Spark API 使用状況

危険

Spark API 使用状況 セクションは、バージョン 2.0.2 以降廃止されました。現在、以下があります。

レポートには3つの主要セクションがタブとして表示されます。

  1. 全体の使用分類

  2. Spark API 使用状況カテゴリ分類

  3. ステータス別Spark API 使用状況

以下、各セクションについて詳しく見ていきましょう。

全体の使用分類

このタブには3行のコンテナーが表示されます。

  • サポートされている操作

  • サポートされていない操作

  • 使用合計の統計

全体の使用分類

詳細は以下のセクションをご参照ください。

  1. 使用カウント - Spark API 関数がコード内で参照された回数の合計。各参照は「サポートあり」「サポートなし」に分類され、合計が下部に表示されます。

  2. 最低1回使用されたファイル - Spark API 参照を1つ以上含むファイルの数。この数がファイルの合計数より少ない場合は、Spark API をまったく使用していないファイルがあることを意味します。

  3. すべてのファイルの割合 - Spark API を使用しているファイルの割合が表示されます。これは、Spark API を使用しているファイルの数をコードファイルの合計数で割ったもので、パーセントで表されます。

Spark API 使用状況カテゴリ分類

このタブには、コードベースで検出されたさまざまなタイプのSpark参照が表示されます。全体のレディネススコア(ページ上部に表示されているスコアと同じもの)が表示され、カテゴリ別の詳細な内訳が表示されます。

Spark API 使用状況カテゴリ分類

Spark参照カテゴリ セクションに、利用可能なすべてのカテゴリ分類があります。

ステータス別Spark API 使用状況

最後のタブには、マッピングステータス別に分類された内訳が表示されます。

Spark API ステータス別使用状況

SMA ツールでは、SparkコードをSnowparkに変換できる度合いを示す7つの主なマッピングステータスを使用します。これらのステータスの詳細情報については、 Spark参照カテゴリ セクションをご参照ください。

インポート呼び出し

危険

インポート呼び出し セクションは、バージョン 2.0.2 以降削除されました。現在、以下があります。

「インポート呼び出し」セクションには、コードベースで頻繁に使用される外部ライブラリのインポートが表示されます。Spark API のインポートについては、「Spark API」のセクションで個別に説明されているため、このセクションからは除外されていることに注意してください。

インポート呼び出し

このテーブルには以下の情報が含まれています。

レポートには以下の情報が表示されます。

  1. 5行があるテーブルには以下が表示されます。

    • 最も頻繁にインポートされる3つのPythonライブラリ

    • 残りのパッケージをまとめた「Other」の行

    • すべてのインポートの合計を示す「Total」行

  2. 各ライブラリがSnowflakeの Snowparkでサポートされているパッケージのリスト に含まれているかどうかを示す「Supported in Snowpark」列。

  3. 「Import Count」列は、各ライブラリが全ファイルで何回インポートされたかを示します。

  4. 各ライブラリのインポートを少なくとも1つ含むファイルの割合を示す「File Coverage」列。例:

    • 「sys」がインポートステートメントに29回登場し、28.16%のファイルでしか使用されていない場合、「sys」は通常、使用されるファイルごとに1回インポートされることを示唆しています。

    • 「Other」カテゴリでは、ファイルの100%で56件のインポートが発生している可能性があります。

ファイルごとの詳細なインポート情報については、 出力レポート の ImportUsagesInventory.csvファイルをご参照ください。

ファイルの概要

危険

ファイルの概要 セクションは、バージョン 2.0.2 以降削除されました。現在、以下があります。

概要レポートには、ファイルタイプとサイズ別に整理されたメトリクスを表示する複数のテーブルが含まれています。これらのメトリクスは、コードベースの量に関する洞察を提供し、移行プロジェクトに必要な労力を見積もるのに役立ちます。

Snowpark Migration Acceleratorは、コードファイルと非コードファイルの両方を含む、ソースコードベースのすべてのファイルを分析します。スキャンされたファイルの詳細情報は、 files.csv レポートをご覧ください。

ファイルの概要には複数のセクションがあります。各セクションを詳しく見ていきましょう。

ファイルタイプの概要

ファイルタイプの概要には、スキャンしたコードリポジトリで見つかったすべてのファイル拡張子のリストが表示されます。

ファイルタイプの概要

リストされているファイル拡張子は、 SMA が分析できるコードファイルのタイプを示しています。各ファイル拡張子には、以下の情報があります。

  • コード行数 - この拡張子を持つ全ファイルの実行可能コード行数の合計。このカウントはコメントと空行を除きます。

  • ファイルカウント - この拡張子を持つファイルの合計数。

  • ファイル合計のパーセント - プロジェクト内の全ファイルのうち、この拡張子を持つファイルが占める割合。

ワークロードを分析するには、主にスクリプトファイル(PythonやRなど)で構成されているのか、ノートブックファイル(Jupyterノートブックなど)で構成されているのか、 SQL ファイルで構成されているのかを簡単に識別します。この情報は、プロジェクト内の主なコードファイルのタイプを判断するのに役立ちます。

言語別ノートブックサイズ

このツールは、コードベース内のノートブックを評価し、コード行数に基づいて「Tシャツ」のサイズ(S、M、L、 XL)を割り当てます。このサイズは、各ノートブックの複雑さと範囲を見積もるのに役立ちます。

言語別ノートブックサイズ

ノートブックサイズは、各ノートブックで使用されている主なプログラミング言語によって分類されています。

言語別ノートブック統計

この表は、すべてのノートブックのコード行数とセル数の合計を、プログラミング言語別に整理して表示します。

言語別ノートブック統計

これらのノートブックは、その中で使われている主要なプログラミング言語ごとに整理されています。

コードファイルのコンテンツ

SMA を実行すると、ソース言語に応じてタブ名が変更されます。

  • Pythonソースファイルの場合、タブには「Pythonファイルコンテンツ」と表示されます。

  • Scalaソースファイルの場合、タブには「Scalaファイルコンテンツ」と表示されます。

この行は、Spark API 参照を含むファイルの数を示しています。「Spark使用状況」の行が表示されます。

  1. Spark APIs を使用するファイルの数

  2. 分析されたコードベースファイル全体に占めるこれらのファイルの割合

コードファイルのコンテンツ

このメトリックは、Spark API 参照が含まれていないファイルの割合を特定するのに役立ちます。パーセントが低いということは、多くのコードファイルにSpark依存関係がないことを示唆しており、移行の労力が当初の見積もりよりも小さくなる可能性があります。

コードファイルのサイズ

「ファイルサイズ」タブの名前は、ソース言語によって変わります。

  • Pythonソースファイルの場合は、「Pythonファイルサイズ」と表示されます。

  • Scalaソースファイルの場合は「Scalaファイルサイズ」と表示されます。

コードベースファイルは「Tシャツ」のサイズ(S、M、L、XL)で分類されています。各サイズには、「サイズ」列に記載されている特定の基準があります。このテーブルは、Pythonファイル全体の何パーセントが各サイズカテゴリに該当するかも示しています。

コードファイルサイズ

コードベースのファイルサイズ分布を把握することは、ワークロードの複雑さを評価するのに役立ちます。小容量のファイルの割合が高いということは、一般的に、作業負荷が単純で複雑ではないことを意味します。

問題の概要

問題の概要は、コードスキャン中に見つかった潜在的な問題に関する重要な情報を提供します。評価から変換に移行すると、コードベースで検出された EWIs (エラー、警告、問題)のリストが表示されます。これらの問題の詳細については、ドキュメントの「問題の分析」セクションをご参照ください。

問題の概要

問題の概要の上部には、識別されたすべての問題の概要を示すテーブルがあります。

問題の概要 - 概要テーブル

テーブルには2行あります。

  • 「問題の数」は、各カテゴリで見つかったすべての問題コードの合計数を表します。

  • 「一意の問題の数」は、各カテゴリで見つかったエラーコードの数を表しています。

問題は大きく3つのカテゴリに分けられます。

  • 警告 は、ソースプラットフォームとターゲットプラットフォーム間の潜在的な差異を示し、直ちにアクションを起こす必要はないかもしれませんが、テスト中に考慮する必要があります。これには、エッジケースに対する動作のわずかな変化や、ソースプラットフォームと比較した外観の変更に関する通知などが含まれます。

  • 変換の問題 は、変換に失敗した、またはターゲットプラットフォームで適切に動作するために追加構成が必要な要素を強調表示します。

  • 解析の問題 は、ツールが特定のコード要素を解釈できない場合に発生します。これらは、早急な対応が必要な重大な問題であり、通常、ソースコードの非コンパイルや不正確なコード抽出が原因です。ソースコードが正しいと思われても改正エラーが発生する場合は、 SMA のパターンが認識されていない可能性があります。そのような場合は、 問題を報告 し、問題のあるソースコード部分を含めてください。

テーブルは各アイテムの合計数をまとめたものです。

このテーブルの下に、固有の問題コードとその説明のリストがあります。

問題の概要 - 問題コードテーブル

各問題コードエントリは以下を提供します。

  • 一意の問題識別子

  • 問題の説明

  • 発生回数

  • 重大度レベル(警告、変換エラー、解析エラー)

問題コードをクリックすると、以下のような詳細ドキュメントを表示できます。

  • 問題の包括的な説明

  • コード例

  • 推奨ソリューション

たとえば、上記の最初の問題コード(SPRKPY1002)をクリックすると、その問題専用のドキュメントページが表示されます。

デフォルトでは、上位5件のみが表示されます。すべての問題を表示するには、テーブルの下にある SHOW ALL ISSUES ボタンをクリックします。また、テーブルの上にある検索バーを使って特定の問題を検索することもできます。

評価モードでは、残りの変換作業を理解することが重要です。Reportsフォルダー 内の問題インベントリで、各問題の詳細情報とその場所を確認できます。

実行の概要

実行の概要は、ツールによる最近の分析の包括的な概要を提供します。説明には次が含まれます。

  • コード分析スコア

  • ユーザーの詳細

  • 一意の実行 ID

  • SMA とSnowpark API 両方のバージョン情報

  • プロジェクト作成 時に指定したプロジェクトフォルダーの場所

実行の概要

付録

付録には、 SMA ツールが生成する出力をより理解するのに役立つ追加参照情報が含まれています。

画像 (512).png

このガイドには、Snowpark Migration Accelerator(SMA)の使用に関する一般的な参照情報が記載されています。コンテンツは定期的に更新される可能性がありますが、特定のコードベースに関する詳細ではなく、普遍的な SMA の使用に重点を置いています。


Snowpark Migration Accelerator(SMA)を実行すると、ほとんどのユーザーにこのような画面が表示されます。古いバージョンを使用している場合は、代わりに以下のような省略された評価の概要が表示される可能性があります。

省略された評価の概要 [廃止]

レディネススコアが低いと、移行の概要は以下のように表示される場合があります。

評価の概要

この概要には以下の情報が含まれています。

  • 実行日: 分析がいつ実行されたかを示します。このプロジェクトの過去の実行結果を表示できます。

  • 結果: レディネススコア に基づいて、ワークロードが移行に適しているかどうかを示します。レディネススコアは予備評価ツールであり、移行の成功を保証するものではありません。

  • 入力フォルダー: 分析されたソースファイルの場所。

  • 出力フォルダー: 分析レポートと変換されたコードファイルが格納される場所。

  • ファイル合計: 分析されたファイルの数。

  • 実行の時間: 分析プロセスの実行時間。

  • 識別されたSpark参照: コード内で見つかったSpark API 呼び出しの数。

  • Python(またはScala)ファイルのカウント: 指定されたプログラミング言語のソースコードファイルの数。


次のステップ

アプリケーションにはいくつかの追加機能があり、以下の画像に示すインターフェイスからアクセスできます。

  • 評価を再試行 - 評価結果ページの 評価を再試行 ボタンをクリックして、評価を再実行することができます。これは、ソースコードに変更を加え、更新された結果を表示する場合に便利です。

  • ログフォルダーを表示 - 評価の実行ログを含むフォルダーを開きます。これらのテキストファイルは評価プロセスに関する詳細な情報を提供し、評価が失敗した場合のトラブルシューティングに不可欠です。テクニカルサポートが必要な場合に、これらのログの共有を求められることがあります。

  • レポートを表示 - 評価出力レポートを含むフォルダーを開きます。これには、詳細な評価レポート、Spark参照インベントリ、ソースコードベースのその他の分析が含まれます。各レポートタイプについては、このドキュメントで詳しく説明しています。

  • 変換に進む - これは次の論理的なステップのように思えるかもしれませんが、先に進む前に評価結果を十分に検討することが重要です。変換を実行するにはアクセスコードが必要です。詳細情報については、このドキュメントの 変換セクション をご参照ください。

次のページでは、ツールを実行するたびに生成されるレポートの詳細情報を提供します。