Snowpark Migration Accelerator: レディネススコア

Snowpark Migration Accelerator(SMA)は、お客様のコードを評価し、詳細な評価データを生成します。この情報をよりアクセスしやすくするために、 SMA は、レディネススコアを計算し、コードをSnowflakeにどれだけ簡単に移行できるかを測定します。これらのスコアは互換性のインジケーターとして機能し、スコアが高いほど、Snowflakeプラットフォームとのコードの互換性が高くなります。これらのスコアは、 SMA ツールを実行するだけで取得できます。

SMA は、以下のレディネススコアを生成します。

レディネススコアは、ご自身のコードがSnowflakeとどの程度互換性があるかを示すものであり、どれだけの作業が残っているかを示すものではありません。レディネススコアが高くても、互換性のないコードが残っている場合には、移行に多大な労力を要する可能性があります。移行に必要な作業を正確に見積もるには、完全な評価レポートをご確認ください。移行計画の作成や必要な労力の見積もりでお困りの場合は、 お問い合わせ ください。

レベル

Snowpark Migration Accelerator(SMA)は、信号機のような色分けされた採点システムを採用しています。

  • レッド - 重大な問題が検出されました。これは移行プロセスに大きな影響を与えたり、正確なコード分析を妨げたりするため、直ちに停止して問題を解決します。先に進む前に、提供されたアクションステップに従います。

  • イエロー - 警告が検出されました。アクションステップをよく確認し、移行への潜在的な影響を理解します。その意味合いを理解した後、次のステップに進みます。

  • グリーン - 重大な問題は検出されませんでした。これは、移行に大きな障害はないことを示していますが、コードの調整がまだ必要な場合があります。アクションステップを確認し、移行プロセスを続行します。

スコアの解釈方法

各スコアには、以下があります。

  • 数値

  • ステータスインジケーター(前述の赤、黄、緑のいずれか)

  • 推奨される次のアクション

以下を強くお勧めします。

  • スコアを順次確認 - レッドスコアに直面した場合はすぐに調査し、その問題に対処します。

  • 各スコアについて推奨されるアクションをすべて確認 - グリーンスコアを含むすべての結果について、重要なアクションアイテムが含まれているため、次のステップの提案を確認します。

現在システムで利用可能なレディネススコアを調べてみましょう。

Spark API レディネススコア

Snowpark Migration Accelerator(SMA)は、Spark API レディネススコアを生成し、コードが移行に対してどの程度準備ができているかを示します。このスコアは、Spark API コンポーネントの使用のみを評価するものであり、サードパーティのライブラリやコード内の外部依存関係などの他の要素を評価するものではないことに注意することが重要です。

SMA は、コードを分析する際に、インポートステートメントと関数呼び出しの両方を含む、すべてのSpark API 参照を識別します。これらの参照は、 Spark API 使用状況インベントリ にドキュメント化されています。ローカル出力ディレクトリで見つけることができます。各参照は、 Spark参照カテゴリ に従って、「サポート対象」か「サポート外」のどちらかに分類されます。レディネススコアは、サポートされている参照の数をコード内で見つかった参照の総数で割って計算されます。

Spark API レディネススコア計算

このスコアはパーセントで表示され、Snowflakeがコード内のSpark API 参照をどの程度サポートしているかを示します。パーセントが高いほど、Snowflakeとの互換性が高いことを意味します。このスコアはアプリケーションの 詳細レポート評価の概要 の両方で表示できます。

ここに表示されているレディネススコアは、 SMA によって生成されたオリジナルのスコアです。レディネススコアが1つのみ表示される新しい SMA バージョンでは、このスコアは特にSpark API の互換性を測定します。

Spark API レディネスレベル

算出されたスコアに基づき、結果はグリーン、イエロー、レッドの3つのカテゴリのいずれかに分類されます。アプリケーションと出力レポートでは、スコアカテゴリに基づいた具体的な推奨事項を提供します。

Spark API レディネススコアには、これらのレベルのいずれかが割り当てられます。

  • グリーン: ほとんどのSpark API 参照がサポートされているため、このワークロードは移行の有力な候補となります。他のインジケーターもグリーンであれば、概念実証を進めることを検討してください。

  • イエロー: 一部のSpark API 参照がサポートされていないため、追加の移行作業が必要になります。次のステップとしては、サポートされていない項目のインベントリを作成し、必要な変換作業を見積もる必要があります。

Snowpark Connect Readiness Score

The Snowpark Connect Readiness Score measures the percentage of Spark API references in your codebase that are supported by Snowpark Connect. This score provides an assessment of your existing Spark API code's readiness for execution within the Snowpark Connect environment.

How It's Calculated

During its execution, the SMA scans your codebase to identify all references to the Spark API. Examples of such references include import statements, function calls, and class instantiations. All discovered references are then logged in the Spark API Usages Inventory. This inventory is generated as a file in your local output directory. For every reference listed in the inventory, the SMA populates the IsSnowparkConnectSupported column, setting it to True if the API usage is supported by Snowpark Connect, or False if it is not.

To calculate the readiness score, the SMA takes all of the supported references and divides them by the total references found in the codebase:

Snowpark Connect Readiness Score Calculation

For example, if your codebase has 100 Spark API references and 90 of them are supported by Snowpark Connect, your Snowpark Connect Readiness Score would be 90%.

A higher percentage for the Snowpark Connect Readiness Score indicates a greater degree of compatibility with Snowpark Connect, suggesting that a larger portion of your Spark code aligns with functionalities supported by Snowpark Connect.

Readiness Levels

The compatibility analysis yields a readiness score, which is categorized into one of three distinct levels: Green, Yellow, or Red. Both the application's assessment summary and the generated detailed report will display this readiness level, accompanied by specific guidance tailored to the findings:

  • Green - This workload is highly compatible with Snowpark Connect because the majority of references to the Spark API are supported without any change needed. Files that are fully compatible can be run immediately, though some files will still require issue resolution.

  • Yellow - There are some elements of the Spark API in this workload that are not supported in this workload or are incompatible with Snowpark Connect. This workload can be migrated, but there are elements that may require rearchitecture.

  • レッド: 大量のSpark API 参照がサポートされていません。このワークロードの移行には困難が予想されます。パターンを特定するために、サポートされていない要素のインベントリを作成します。大規模な再構築が必要な場合は、これを移行計画に含めます。サポートが必要な場合は、 sma-support@snowflake.com にお問い合わせください。

サードパーティ API レディネススコア

サードパーティレディネススコアは、インポートしたライブラリのうち、Snowflakeで使用できるライブラリの数を示します。このスコアをよりよく理解するために、まず「サードパーティ」の意味を説明しましょう。

サードパーティライブラリ: Snowflake(またはSnowflake内のSnowpark)が開発、保守、管理していないソフトウェアパッケージまたはライブラリ。

レディネススコアは、Snowflakeと互換性のある外部ライブラリとパッケージの割合を示します。Pythonコードの場合、互換性とは、Snowpark の Anacondaパッケージコレクション を通してパッケージの利用が可能であることを意味します。ScalaやJavaのコードの場合、互換性とは、そのパッケージがすでにSnowparkのコア機能に含まれていることを意味します。

レディネススコアは、サポートされているサードパーティライブラリのインポート数を、コード内のサードパーティライブラリのインポート合計数で割って計算されます。

サードパーティ API レディネススコア計算

レディネススコアに関する重要な情報:

  • Snowparkでサポートされているサードパーティライブラリ: Snowparkがサポートするすべてのライブラリが含まれます(org.apache.sparkを含む)。

  • サードパーティライブラリ呼び出し合計数: Snowparkがサポートしているかどうかに関わらず、Sparkと非Sparkライブラリの両方を含む、コード内で見つかったすべてのサードパーティライブラリ呼び出しの合計数。

  • インポート使用状況インベントリで「ThirdPartyLib」とマークされたインポートのみがカウントされます。内部依存関係やコードベース内からのインポートは除外されます。

  • このメトリックは、一意のライブラリ参照ではなく、呼び出しの合計をカウントします。たとえば、コードのライブラリ呼び出しが合計100回あり、サポートされていないライブラリへの呼び出しが80回、サポートされているライブラリへの呼び出しが20回あった場合、サポートスコアは20%になります。これは、一意のライブラリ参照の比率ではなく、コード内でサポートされているライブラリとサポートされていないライブラリの実際の使用頻度を示しています。

サードパーティ API レディネスレベル

算出されたスコアに基づき、結果はグリーン、イエロー、レッドの3つのカテゴリのいずれかに分類されます。アプリケーションと出力レポートでは、スコアカテゴリに基づいた具体的な推奨事項を提供します。

サードパーティ API レディネススコアには、これらのレベルのいずれかが割り当てられます。

  • グリーン - コードベースは、Snowflakeで完全にサポートされているPythonライブラリを使用しています。追加の構成は必要ありません。

  • イエロー - コードベースに、現在SnowparkでサポートされていないPythonパッケージまたはライブラリが少なくとも1つ含まれています。サードパーティパッケージのドキュメント で説明されているいくつかの方法を使って、サポートされていないサードパーティパッケージを追加することができます。サポートされていないパッケージを識別するには、 SMA で生成される インポート使用状況インベントリ を確認します。次に、これらのパッケージがご自身コードでどのように使用されているかを分析し、Snowflakeでの実装を計画します。

  • レッド - コードベースがSnowparkでサポートされていないパッケージやライブラリに大きく依存しています。これは、1つの非対応ライブラリがコード全体で広範囲に使用されているか、複数の非対応ライブラリがコードベースの異なる部分で使用されていることを意味します。これらのインポートステートメントの影響を理解するには、徹底的な評価が必要です。パッケージサポートに関するガイダンスやサポートについては、 sma-support@snowflake.com にお問い合わせください。

SQL レディネススコア

SQL レディネススコアは、Snowpark Migration Accelerator(SMA)を使用して、ソースコード内の SQL 要素の何パーセントを自動的にSnowflake SQL に変換できるかを示します。スコアが高いほど、より多くのコードが自動的に変換され、移行プロセスが簡単かつ迅速になります。

レディネススコアは、変換可能な SQL 要素の数を、ソースコードに含まれる SQL 要素の合計数で割ることによって計算されます。

SQL レディネススコア計算

SQL レディネススコアレベル

SQL レディネススコアには、これらのレベルのいずれかが割り当てられます。

  • グリーン - このコードベース内のほとんどの SQL は、Snowflakeで直接サポートされているか、 SMA によって自動的に変換できます。変換が完全であるとは限りませんが、このワークロードでは、Snowflake移行に必要な手動調整は最小限で済みます。

  • イエロー - このコードベースのいくつかの SQL 要素はSnowflakeでサポートされていないため、移行に追加の労力が必要です。SQL 要素インベントリでサポートされていない機能を確認し、問題出力で EWI をチェックしてアクションプランを作成します。ちょっとしたコードの調整や、コンポーネントの部分的な再設計が必要になる場合があります。

  • レッド - このコードベースの SQL の多くがSnowflakeと互換性がないため、大幅な再設計が必要になる可能性があります。先に進むには、 SQL 要素インベントリでサポートされていない機能を確認し、問題出力の EWI を調べて移行戦略を立てます。サポートが必要な場合は、 sma-support@snowflake.com にお問い合わせください。


レディネススコアは貴重な洞察を提供しますが、ワークロードの移行準備状況を判断する唯一の要因として扱うべきではありません。このスコアは完全な評価ではなく、初期評価としての役割を果たすため、これらのスコアと並行して移行計画の複数の側面を検討してください。改善が必要なレディネスメトリクスやツールで正確に表現されていないメトリクスにお気づきの場合は、 弊社までお知らせ ください。SMA チームは、これらのレディネス測定を継続的に強化改良しています。