Snowpark Migration Accelerator: SMA インベントリ¶
Snowpark Migration Accelerator(SMA)は、コードベースを分析して詳細なデータを作成し、スプレッドシート(インベントリ)としてReportsフォルダーに保存されます。このデータは、2つのタイプのレポートを作成するために使用されます。
インベントリファイルを理解することは、最初は難しく感じるかもしれませんが、ソースワークロードと変換後のワークロードの両方について貴重な洞察を与えてくれます。以下、各出力ファイルとその列について詳しく説明します。
これらのインベントリは、テレメトリデータ収集を通じても共有されます。詳細については、このドキュメントのテレメトリセクションをご参照ください。
評価レポート詳細¶
AssessmentReport.json ファイルには、アプリケーションの詳細レポートセクションと評価の概要セクションの両方に表示されるデータが保存されています。このファイルは主にこれらのレポートを作成するために使用され、他のスプレッドシートでも利用可能な情報が含まれている場合があります。
DBX 要素インベントリ¶
DbxElementsInventory.csv は、ノートブック内の DBX 要素をリストします。
Element: DBX 要素名。
ProjectId: プロジェクト(ツールが実行されたルートディレクトリ)の名前
FileId: 要素が見つかったファイルとそのファイルへの相対パス。
Count: 要素が1行に表示される回数。
Category: 要素のカテゴリ。
Alias: 要素のエイリアス(インポート要素にのみ適用)。
Kind: 各要素のカテゴリ。 FunctionやMagicなどがある。
Line: 要素が見つかったソースファイルの行番号。
PackageName: 要素が見つかったパッケージの名前。
Supported: この参照が「サポート」されているかどうか。値はTrueまたはFalse。
Automated: ツールで自動変換できるかどうか。値はTrueまたはFalse。
Status: 各要素の分類。選択肢はRename、Direct、Helper、Transformation、WorkAround、NotSupported、NotDefined。
Statement: 要素が使用されたコード。 [NOTE: この列はテレメトリー経由では送信されません。]
SessionId: ツールの各実行に対する一意の識別子。
SnowConvertCoreVersion: ツールのコード処理のコアプロセスのバージョン番号。
SnowparkVersion: 指定されたテクノロジーとツールの実行で利用可能なSnowparkの API のバージョン。
CellId: この要素がノートブックファイルで見つかった場合、ファイル内でこの要素があったセルの番号付けされた場所。
ExecutionId: SMA のこの実行に対する一意の識別子。
実行フローインベントリ¶
ExecutionFlowInventory.csv は、見つかった関数呼び出しに基づいて、さまざまなワークロードスコープ間の関係をリストします。このインベントリの主な目的は、エントリポイント識別のベースとして機能することです。
Caller: 呼び出しが見つかったスコープの完全な名前。
CallerType: 呼び出しが見つかったスコープの型。使用できるデータ型は、Function、Class、Moduleのいずれか。
Invoked: 呼び出された要素の完全な名前。
InvokedType: 要素の型。FunctionまたはClass。
FileId: ファイルの相対パス。(SMA ツールでユーザーが選択した入力フォルダーから始まる)
CellId: 該当する場合は、ノートブックファイル内で呼び出しが見つかったセル番号。
Line: 呼び出しが見つかった行番号。
Column: 呼び出しが見つかった列番号。
ExecutionId: 実行ID。
チェックポイントインベントリ¶
Checkpoints.csv は、ユーザーワークロード用に生成されたチェックポイントをリストします。これらのチェックポイントはSnowflake拡張機能のチェックポイント機能で完全に使用できます。
Name: チェックポイント名(前述の形式を使用)。
FileId: ファイルの相対パス(ユーザーが SMA ツールで選択した入力フォルダーから始まる)。
CellId: ノートブックファイル内で DataFrame 操作が見つかったセルの番号。
Line: DataFrame 操作が見つかった行番号。
Column: DataFrame 操作が見つかった列番号。
Type: チェックポイントのユースケース(CollectionまたはValidation)。
DataFrameName: DataFrame の名前。
Location: DataFrame 名の割り当て番号。
Enabled: チェックポイントが有効かどうかを示す(TrueまたはFalse)。
Mode: コレクションのモード番号(Schema [1]または DataFrame [2])。
Sample: DataFrame のサンプル。
EntryPoint: チェックポイントを実行するようフローをガイドするエントリポイント。
ExecutionId: 実行ID。
DataFrames インベントリ¶
DataFramesInventory.csv は、ユーザーワークロードのチェックポイントを生成するために使用されるデータフレーム割り当てをリストします。
FullName: DataFrame の完全な名前。
Name: DataFrame の変数の単純名。
FileId: ファイルの相対パス(ユーザーが SMA ツールで選択した入力フォルダーから始まる)。
CellId: ノートブックファイル内で DataFrame 操作が見つかったセルの番号。
Line: DataFrame 操作が見つかった行番号。
Column: DataFrame 操作が見つかった列番号。
AssignmentNumber: ファイル内のこの特定の識別子(シンボルではない)に対する割り当ての数。
RelevantFunction: これが収集された理由となる関連関数。
RelatedDataFrames: 操作に関わった DataFrame の完全修飾名(複数の場合、セミコロン区切り)。
EntryPoints: このフェーズでは空になります。後のフェーズで入力されます。
ExecutionId: 実行ID。
アーティファクト依存関係インベントリ¶
ArtifactDependencyInventory.csv は、SMA によって分析された各ファイルのアーティファクト依存関係をリストします。このインベントリによって、ユーザーはファイルがSnowflakeで適切に機能するために必要なアーティファクトを判断できます。
サードパーティのライブラリ、SQL エンティティ、読み取りまたは書き込み操作のソース、およびワークロード内の別のソースコードファイルが、アーティファクトと見なされます。
ExecutionId: 実行の識別子。
FileId: ソースコードファイルの識別子。
Dependency: 現在のファイルが持つアーティファクトの依存関係。
Type: アーティファクトの依存関係のタイプ。
UserCodeFile: ソースコードまたはノートブック。
IOSources: 入出力操作に必要なリソース。
ThirdPartyLibraries: サードパーティのライブラリ。
UnknownLibraries: SMA にオリジンを特定されなかったライブラリ。
SQLObjects: SQL エンティティ。たとえば、テーブルやビューなど。
Success: アーティファクトに介入が必要な場合は FALSE が表示され、必要ない場合は TRUE が表示されます。
Status_Detail: タイプに基づく、アーティファクトの依存関係のステータス。
UserCodeFile:
Parsed: ファイルは正常に解析されました。
NotParsed: ファイルの解析に失敗しました。
IOSources:
Exists: 操作のリソースはワークロードにあります。
DoesNotExists: 操作のリソースが入力に存在しません。
ThirdPartyLibraries:
Supported: ライブラリはSnowpark Anacondaでサポートされています。
NotSupported: ライブラリはSnowpark Anacondaでサポートされていません。
UnknownLibraries:
NotSupported: SMA によってオリジンが特定されなかったため。
SQLObject
DoesNotExists: エンティティを作成する埋め込みステートメントが、入力ソースコードにありません。
Exists: エンティティを作成する埋め込みステートメントは、入力ソースコードにあります。
Arguments: タイプに基づく、アーティファクトの依存関係の追加データ。
Location: ソースコードファイルでアーティファクトの依存関係が使われているセル ID と行番号のコレクション。
IndirectDependencies: このファイルが(直接ではないとしても)依存する他のファイルのリスト。
TotalIndirectDependencies: これらの間接的な依存関係の合計数。
DirectParents: このファイルを直接使用するファイルのリスト。
TotalDirectParents: これらの直接的な親ファイルの合計数。
IndirectParents: このファイルを間接的に(他のファイルを通じて)使用するファイルのリスト。
TotalIndirectParents: これらの間接的な親ファイルの合計数。
ファイルインベントリ¶
files.csv には、ツールの実行中に処理されたすべてのファイルの包括的なリストが含まれ、ファイルのタイプやサイズも含まれます。
Path: ルートディレクトリに関連するファイルの場所。たとえば、ルートディレクトリにあるファイルはファイル名のみが表示されます。
Technology: ソースコードのプログラミング言語(PythonまたはScala)
FileKind: ファイルがソースコードを含むか、他のタイプ(テキストファイルやログファイルなど)かを識別します
BinaryKind: ファイルが人間の読めるテキストかバイナリかを示します。
Bytes: バイト単位のファイルサイズ
SupportedStatus: ファイルのサポートステータスは、このコンテキストではアプリケーションに該当しないため、常に「DoesNotApply」と表示されます。
インポート使用状況インベントリ¶
ImportUsagesInventory.csv ファイルには、コードベースで見つかったすべての外部ライブラリのインポートのリストが含まれています。外部ライブラリとは、ソースコードファイルにインポートされるパッケージやモジュールのことです。
Element:Spark参照の一意の識別子
ProjectId: ツールが実行されたルートディレクトリ名
FileId:Spark参照を含む相対パスとファイル名
Count:1行に出現する要素の数
Alias: 要素のオプションの別名
Kind: すべての要素がインポートされるため、常に空/null
Line: 要素が現れるソースコードの行番号
PackageName: 要素を含むパッケージ
Supported: 参照が変換可能かどうかを示します(True/False)
Automated: 空/null(廃止された列)
Status: 常に「無効」(廃止された列)
Statement: 要素を使用する実際のコード [テレメトリには含まれません]
SessionId: 各ツール実行の一意の識別子
SnowConvertCoreVersion: ツールのコア処理エンジンのバージョン番号
SnowparkVersion: 特定のテクノロジに対して利用可能なSnowpark API バージョン
ElementPackage: インポートされた要素を含むパッケージ名(利用可能な場合)
CellId: ノートブックファイルの場合は、要素を含むセル番号を示します
ExecutionId: この SMA 実行に対する一意の識別子
Origin: インポートのソースタイプ(BuiltIn、 ThirdPartyLib、 または空白)
入力ファイルインベントリ¶
InputFilesInventory.csv ファイルには、ファイルのタイプとサイズ別に整理された全ファイルの詳細リストが含まれています。
Element: FileId と同一のファイル名
ProjectId: ツールが実行されたルートディレクトリで表されるプロジェクト名
FileId:Spark参照を含むファイルへの完全パス(相対パス)
Count: このファイル名を共有するファイルの数
SessionId: 各ツールセッションに割り当てられた一意の識別子
Extension: ファイル拡張子タイプ
Technology: ファイル拡張子によって決定されるプログラミング言語またはテクノロジタイプ
Bytes: バイト単位のファイルサイズ
CharacterLength: ファイル内の文字合計数
LinesOfCode: ファイル内のコード行合計数
ParsingResult: セルの解析に成功したか(「Successful」)、エラーが発生したか(「Error」)を示します。
入力ファイルと出力ファイルのインベントリ¶
IOFilesInventory.csv ファイルには、コードが読み取ったり書き込んだりする外部ファイルやリソースのリストがすべて含まれています。
Element: 読み取りまたは書き込み操作のためにアクセスされる特定のアイテム(ファイル、変数、またはコンポーネント)
ProjectId: ツールが実行されたルートディレクトリ名
FileId:Sparkコードが検出された完全パスとファイル名
Count: このファイル名の出現回数
isLiteral: 読み取り/書き込み位置がリテラル値として指定されているかどうかを示します
Format: SMA が識別できる場合は、検出されたファイル形式(CSV や JSON など)。
FormatType: 識別された形式が明示的かどうかを指定します
Mode: 操作が「Read」か「Write」かを示します
Supported:Snowparkがこの操作をサポートしているかどうかを示します
Line: 読み取りまたは書き込みが行われたファイルの行番号
SessionId: 各ツールセッションに割り当てられた一意の識別子
OptionalSettings: 要素に定義された追加パラメーターをリストします
CellId: ノートブックファイルの場合、特定のセル位置を識別子で指定(ノートブック以外のファイルの場合はnull)
ExecutionId: ツールを実行するたびに一意となる識別子
問題インベントリ¶
Issues.csv ファイルには、コードベースで発見されたすべての変換問題の詳細なレポートが含まれています。各問題について、以下の情報が得られます。
問題を説明する記述
問題が発生したファイル内の正確な場所
問題タイプに固有のコード識別子
特定の問題に関するより詳細な情報については、ドキュメントの 問題の分析 セクションをご参照ください。
Code: ツールによって検出された各問題に割り当てられた一意の識別子
Description: 問題の詳細説明(該当する場合はSpark参照名を含む)
Category: 見つかった問題のタイプ。以下のいずれかです
警告
変換エラー
Parser Error
Helper
変換
WorkAround
NotSupported
NotDefined
NodeType: 問題が検出された構文ノード識別子
FileId:Spark参照が見つかった相対パスとファイル名。
ProjectId: ツールが実行されたルートディレクトリ名
Line: 問題が発生したソースファイル内の特定の行番号
Column: 問題が発生した行の特定の文字位置
結合インベントリ¶
JoinsInventory.csv ファイルには、コードベースにあるすべてのデータフレーム結合操作の包括的なリストが含まれています。
Element: 結合の開始位置(複数行にまたがる場合は終了位置も)を示す行番号
ProjectId: ツールが実行されたルートディレクトリ名
FileId:Spark参照を含むファイルのパスと名前
Count: 同じファイル名のファイルの数
isSelfJoin: テーブルと自分自身を結合する場合は TRUE、そうでない場合は FALSE
HasLeftAlias: 結合の左側にエイリアスが定義されている場合は TRUE、そうでない場合は FALSE
HasRightAlias: 結合の右側にエイリアスが定義されている場合は TRUE、そうでない場合は FALSE
Line: 結合の開始行番号
SessionId: 各ツールセッションに割り当てられた一意の識別子
CellId: 要素を含むノートブックセルの識別子(ノートブックファイルでない場合はnull)
ExecutionId: 各ツール実行の一意の識別子
ノートブックセルインベントリ¶
NotebookCellsInventory.csv ファイルは、ノートブック内のすべてのセルの詳細なリスト(ソースコードの内容、セルあたりのコード行数など)を提供します。
Element: ソースコードで使用されているプログラミング言語(Python、Scala、または SQL)
ProjectId: ツールが実行されたルートディレクトリ名
FileId:Sparkコードが検出された完全パスとファイル名
Count: このファイル名を持つファイルの数
CellId: ノートブックファイルの場合は、コードを含むセルの一意の識別子(ノートブックファイルでない場合はnull)
Arguments: このフィールドは常に空(null)です
LOC: セル内のコード行数
Size: セル内の文字合計数
SupportedStatus: セル内のすべての要素がサポートされているか(TRUE)、またはサポートされていない要素があるか(FALSE)を示します
ParsingResult: セルの解析に成功したか(「Successful」)、解析エラーがあったか(「Error」)を表示します
ノートブックサイズインベントリ¶
NotebookSizeInventory.csv ファイルは、ノートブックファイルにある各プログラミング言語のコード行の概要を提供します。
filename: スプレッドシートファイルの名前(FileId と同一)
ProjectId: ツールが実行されたルートディレクトリ名
FileId:Spark参照を含むファイルの相対パスとファイル名
Count: このファイル名を持つファイルの数
PythonLOC: ノートブックのセル内のPythonコード行数(通常のファイルの場合はゼロ)
ScalaLOC: ノートブックのセル内のScalaコード行数(通常のファイルの場合はゼロ)
SqlLOC: ノートブックセル内の SQL コード行数(通常のファイルの場合はゼロ)
Line: このフィールドは常に空です
SessionId: 各ツールセッションに割り当てられた一意の識別子
ExecutionId: 各ツールの実行に割り当てられた一意の識別子。
Pandas使用状況インベントリ¶
PandasUsagesInventory.csv ファイルには、スキャン中にPythonコードベースから検出されたすべてのPandas API 参照の包括的なリストが含まれています。
Element: pandas参照の一意の識別子
ProjectId: ツールが実行されたルートディレクトリ名
FileId:Spark参照を含むファイルへの相対パス
Count:1行に出現する要素の数
Alias: 要素に使用される別の名前(インポートにのみ適用されます)
Kind: クラス、変数、関数、インポートなど、要素のタイプ。
Line: 要素が見つかったソースファイルの行番号
PackageName: 要素を含むパッケージ
Supported: 参照がサポートされているどうかを示します(True/False)
Automated: ツールが要素を自動的に変換できるかどうかを示します(True/False)
Status: 要素の分類:Rename、Direct、Helper、Transformation、 WorkAround、 NotSupported、 または NotDefined
Statement: 要素が使用されたコンテキスト [テレメトリには含まれません]
SessionId: 各ツール実行の一意の識別子
SnowConvertCoreVersion: ツールのコア処理コードのバージョン番号
SnowparkVersion: 特定のテクノロジとツール実行で使用可能なSnowpark API バージョン
PandasVersion: コードベース内の要素の識別に使用されるpandas API バージョン
CellId: FileId 内のセル識別子(ノートブック用のみ、それ以外はnull)
ExecutionId: 各ツール実行の一意の識別子
Spark使用状況インベントリ¶
SparkUsagesInventory.csv ファイルは、Spark API 関数がコード内でどこでどのように使用されているかを識別します。この情報は、 レディネススコア を計算するのに役立ちます。
Element:Spark参照の一意の識別子
ProjectId: ツールが実行されたルートディレクトリ名
FileId:Spark参照を含む相対パスとファイル名
Count:1行に出現する要素の数
Alias: 要素のエイリアス(インポート要素にのみ適用されます)
Kind: 要素のカテゴリ(例: クラス、変数、関数、インポート)
Line: 要素が見つかったソースファイルの行番号
PackageName: 要素を含むパッケージ名
Supported: 参照がサポートされているどうかを示します(True/False)
Automated: ツールが要素を自動的に変換できるかどうかを示します(True/False)
Status: 要素のカテゴリ分類(Rename、Direct、Helper、Transformation、 WorkAround、 NotSupported、 NotDefined)
Statement: その要素が使用された実際のコード [NOTE: この列はテレメトリ経由では送信されません]
SessionId: 各ツール実行の一意の識別子
SnowConvertCoreVersion: ツールのコアプロセスのバージョン番号
SnowparkVersion: 特定のテクノロジとツールの実行に対して利用可能なSnowpark API バージョン
CellId: ノートブックファイルの場合は、要素が見つかったセルの数値位置
ExecutionId: この特定の SMA 実行に対する一意の識別子
SqlStatementsInventory.csv ファイルには、Spark SQL 要素で見つかった SQL キーワードのカウントが含まれています。
Element: SQL ステートメントを含むコード要素の名前
ProjectId: ツールが実行されたルートディレクトリ名
FileId:Spark参照を含むファイルへの相対パス
Count:1行に出現する要素の数
InterpolationCount: この要素に挿入された外部要素の数
Keywords: SQL キーワードとその頻度を含むディクショナリ
Size: SQL ステートメントの文字合計数
LiteralCount: 要素内の文字列リテラル数
NonLiteralCount: 文字列リテラルではない SQL コンポーネントの数
Line: 要素が現れる行番号
SessionId: 各ツールセッションの一意の識別子
CellId: 要素を含むノートブックセルの識別子(ノートブックにない場合はnull)
ExecutionId: 各ツール実行の一意の識別子
SQL 要素インベントリ¶
SQLElementsInventory.csvファイルには、Spark SQL 要素内で見つかった SQL ステートメントのカウントが含まれています。
以下は、 SQL 分析レポートに含まれるフィールドです。
Element: SQL コード要素タイプ(例: SqlSelect、 SqlFromClause)
ProjectId: ツールが実行されたルートディレクトリ名
FileId: SQL コードを含むファイルへのパス
Count:1行に出現する要素の数
NotebookCellId: ノートブックセルの ID
Line: 要素が現れる行番号
Column: 要素が現れる列番号
SessionId: 各ツールセッションの一意の ID
ExecutionId: 各ツール実行の一意の ID
SqlFlavor: 分析対象の SQL のタイプ(例:Spark SQL、Hive SQL)
RootFullName: メインコード要素の完全な名前
RootLine: メイン要素の行番号
RootColumn: メイン要素の列番号
TopLevelFullName: SQL ステートメントの最上位レベルの完全な名前
TopLevelLine: 最上位ステートメントの行番号
TopLevelColumn: 最上位ステートメントの列番号
ConversionStatus: SQL 変換結果(例:Success、Failed)
Category: SQL ステートメントのタイプ(例: DDL、 DML、 DQL)
EWI: エラー警告情報コード
ObjectReference: 参照される SQL オブジェクトの名前(例: テーブル名、表示名)
SQL 埋め込み使用状況インベントリ¶
SqlEmbeddedUsageInventory.csvファイルには、Spark SQL 要素内で見つかった SQL キーワードのカウントが含まれています。
Element: コード内の SQL コンポーネントのタイプ(Selectステートメント、From句、Numericリテラルなど)
ProjectId: ツールが実行されたルートディレクトリ名
FileId: SQL 参照を含むファイルの場所と相対パス。
Count: この要素が1行に何回現れるかを表します
ExecutionId: 各ツール実行に割り当てられた一意の ID
LibraryName: 使用中のライブラリ名
HasLiteral: 要素がリテラル値を含むかどうかを示します
HasVariable: 要素に変数が含まれているかどうかを示します
HasFunction: 要素に関数呼び出しが含まれているかどうかを示します
ParsingStatus: 現在の解析状態(Success、Failed、またはPartial)
HasInterpolation: 要素に文字列の補間が含まれているかどうかを示します
CellId: ノートブックセルの識別子
Line: 要素が見つかった行番号
Column: 要素が見つかった列番号
サードパーティ使用状況インベントリ¶
ThirdPartyUsagesInventory.csv ファイルには以下が含まれます
Element: サードパーティ参照の一意の識別子
ProjectId: ツールが実行されたプロジェクトのルートディレクトリ名
FileId:Spark参照を含むファイルへの相対パス
Count:1行に出現する要素の数
Alias: 要素に割り当てられた別の名前(該当する場合)
Kind: 要素のタイプ分類(変数、型、関数、クラス)
Line: 要素が見つかったソースファイルの行番号
PackageName: 完全なパッケージ名(Pythonでの ProjectId と FileId の組み合わせ)
Statement: 要素が使用された実際のコード [NOTE: テレメトリデータには含まれません]
SessionId: 各ツールセッションの一意の識別子
CellId: 要素が見つかったノートブックセルの識別子(ノートブックファイルでない場合はnull)
ExecutionId: 各ツール実行の一意の識別子
パッケージインベントリ¶
packagesInventory.csv ファイルには以下が含まれます
Package Name: 分析対象のパッケージ名。
Project Name: ツールが実行されたルートディレクトリに対応するプロジェクト名。
File Location: パッケージが見つかったファイルパスで、相対パスで表示されます。
Occurrence Count: このパッケージがコードの1行に出現する回数。
ツール実行の概要¶
tool_execution.csv ファイルには、Snowpark Migration Accelerator(SMA)ツールの現在の実行に関する重要な情報が含まれています。
ExecutionId: 各ツールの実行ごとに割り当てられた一意の識別子。
ToolName: 使用するツールの名前。PythonSnowConvert または SparkSnowConvert (Scalaの場合)のいずれかです。
Tool_Version: ソフトウェアのバージョン番号。
AssemblyName: コードプロセッサーの完全な名前(ToolName の詳細バージョン)。
LogFile: エラーまたは障害が発生したときにログファイルが生成されたかどうかを示します。
FinalResult: エラーや障害が発生した場合、ツールがどの時点で停止したかを示します。
ExceptionReport: エラーが発生したときにエラーレポートが生成されたかどうかを示します。
StartTime: ツールの実行開始日時。
EndTime: ツールの実行終了日時。
SystemName: ツールが実行されたたマシンのシリアル番号(トラブルシューティングとライセンスの検証にのみ使用)。