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 也会检测并进行处理。

对于非笔记本文件,请确保使用与源语言相匹配的正确文件扩展名保存代码(例如,使用 .py 扩展名保存 Python 代码)。这样可确保正确分析代码。

语言: 中文