在 Lakeflow Designer 中创建的每个可视化数据准备文件,背后都有可用于生产的代码支持,并以名为 <name>.designer.ipynb 的笔记本形式存储。 可以使用用于其他Azure Databricks代码的相同工具将其移动到生产环境:将其存储在 Git 中,将其作为作业运行,并使用声明性自动化捆绑包部署它。
本页介绍如何将视觉数据准备文件从原型带到生产环境。
在 Git 中存储并进行版本控制
工作区以原生方式存储可视化数据准备文件。 若要对视觉数据准备文件进行版本控制,请将其放置在 Git 文件夹中,并像跟踪任何其他笔记本一样跟踪该文件:
- 在工作区中创建 Git 文件夹。
- 将可视化数据准备文件移动到该 Git 文件夹中。
- 像 Git 中的其他任何笔记本一样跟踪、提交和版本化文件。 在 Git 中,该文件显示为
<file_name>.designer.ipynb.
有关 Git 文件夹的详细信息,请参阅Azure Databricks Git 文件夹。 若要导出或导入视觉对象数据准备文件,请参阅 导出和导入视觉对象数据准备文件。
计划为作业
您可以通过将可视化数据准备文件计划为作业来自动运行该文件。
- 直接计划:单击顶部菜单中的“ 计划 ”按钮,为视觉数据准备文件创建计划作业。
- 添加到作业中:创建一个 Azure Databricks 作业,并将可视化数据准备文件添加为任务。 这样,便可以将视觉数据准备文件与其他任务合并到更大的管道中。 在“任务 类型” 下拉列表中,选择 “视觉对象数据准备”,然后选择该文件。
计划运行会在“作业”任务图中将每个算子显示为单独的节点,因此您可以像在画布上一样检查某次运行中每个算子的结果。
若要查看和管理现有计划,请再次单击“ 计划 ”以打开列表。 单击 “添加计划 ”以创建另一个计划,或打开计划的 菜单可 编辑、 立即运行、 暂停、 克隆、 查看作业或 将其删除 。
在运行中显示运算符输出
默认情况下,计划的运行仅为终端运算符(没有下游连接的运算符)生成输出,例如 Output 运算符。 若要查看运行中每个运算符的结果,请在计划对话框中展开 “高级设置 ”,然后选择“ 显示运算符输出”。
为大型画布关闭此选项,以避免超出运行输出大小限制。
选择无服务器环境
使用视觉数据准备文件时,可以选择用于交互式运行和计划作业的无服务器环境。 像配置笔记本一样,在右侧边栏的 环境侧边窗格中,通过 进行配置。 在 “基本环境”下,选择环境版本。 请参阅 配置无服务器环境。
跨环境参数化
参数是为整个视觉数据准备文件定义的命名值,可以从 SQL 和 Python 运算符引用这些值。 有关定义和引用参数的详细信息,请参阅 “参数”。
参数允许针对不同的环境运行相同的视觉数据准备文件,例如,在开发和生产环境中运行测试目录。
-
在 UI 中计划作业时:覆盖每个计划的参数值。 例如,创建一个计划,使其在
environment参数设置为test时运行;再创建另一个计划,使其在environment参数设置为 时运行。 -
使用捆绑包进行部署时:通过作业
parameters设置参数值,并使用捆绑包目标为每个环境提供不同的值。 捆绑包开发目标和生产目标可让你将同一作业部署到不同的环境中,并为每个环境使用特定的设置。 请参阅 声明性自动化捆绑包部署模式 和 声明性自动化捆绑包配置。
在运行时,可视化数据准备文件无论是以交互方式运行还是作为作业运行,都会以相同的方式读取其参数,因此同一个文件无需修改即可在您的所有环境中使用。
根据环境从不同的表中读取
若要从每个环境中的不同源表进行读取,请使用具有参数的 SQL 运算符,而不是固定的 Source 运算符。 定义 catalog、schema 和 table 参数,然后使用 IDENTIFIER() 子句引用这些参数,以动态构建表名:
SELECT * FROM IDENTIFIER(:catalog || '.' || :schema || '.' || :table)
针对每个计划或捆绑包目标,重写 catalog、schema 或 table 参数,以便让同一个可视化数据准备文件在开发期间指向测试数据,并在生产环境中指向生产数据。 有关 IDENTIFIER() 子句的更多信息,请参阅 IDENTIFIER 子句。
使用声明式自动化包进行部署
声明性自动化捆绑包允许你定义和部署Azure Databricks资源(如源文件),以便可以将软件工程最佳做法(如源代码管理、代码评审、测试和 CI/CD)应用于视觉数据准备文件。 请参阅什么是声明性自动化捆绑包?
若要使用捆绑包部署可视化数据准备文件,请定义一个笔记本任务,并在 .designer.ipynb 中引用 notebook_task.notebook_path 文件路径。 在捆绑包中,视觉数据准备文件使用 notebook_task 密钥,即使作业 UI 将其显示为 视觉数据准备 任务类型。
以下示例定义一个作业,该作业运行位于捆绑配置文件旁的视觉数据准备文件:
resources:
jobs:
daily_prep_job:
name: daily_prep_job
tasks:
- task_key: run_visual_data_prep
notebook_task:
notebook_path: ./my_transformation.designer.ipynb
使用 Azure Databricks CLI 部署并运行捆绑包:
databricks bundle deploy
databricks bundle run daily_prep_job
有关完整的笔记本任务键集,请参阅 笔记本任务。 有关在捆绑包中定义作业的完整演练,请参阅 使用声明性自动化捆绑包开发作业。
使用 CI/CD 实现自动化
若要自动验证和部署视觉数据准备捆绑包,请将它们集成到 CI/CD 管道中。 有关使用GitHub Actions的示例,请参阅GitHub Actions。