通过运行 Synapse 笔记本转换数据
适用于: Azure 数据工厂
Azure Synapse Analytics
管道中的 Azure Synapse 笔记本活动在 Azure Synapse 工作区中运行 Synapse 笔记本。 本文基于数据转换活动一文,它概述了数据转换和受支持的转换活动。
可以直接通过 Azure 数据工厂工作室用户界面创建 Azure Synapse Analytics 笔记本活动。 有关如何使用用户界面创建 Synapse 笔记本活动的分步演练,可以参考以下内容。
若要在管道中使用 Synapse 的笔记本活动,请完成以下步骤:
- 在管道“活动”窗格中搜索“笔记本”,然后将 Synapse 下的笔记本活动拖动到管道画布上。
- 在画布上选择新的“Notebook”活动(如果尚未选择)。
- 在“常规”设置中,输入 sample 作为名称。
- (选项)也可以输入说明。
- 超时:活动可以运行的最长时间。 默认值为 12 小时,允许的最大时间为 7 天。 格式为 D.HH:MM:SS。
- 重试:最大重试尝试次数。
- 重试间隔(秒):两次重试尝试之间的时间,以秒为单位。
- 安全输出:选中后,将不会在日志记录中捕获活动的输出。
- 安全输入:选中后,将不会在日志记录中捕获活动的输入。
选择“Azure Synapse Analytics (项目)”选项卡,并选择将执行笔记本活动的 Azure Synapse Analytics 链接服务,或创建一个新的链接服务。
在画布上选择新的 Synapse 笔记本活动(如果尚未选择)。
选择“设置”选项卡。
展开“笔记本”列表,可以在链接的 Azure Synapse Analytics(项目)中选择现有笔记本。
单击“打开”按钮,打开所选笔记本所在的链接服务页面。
选择“设置”选项卡并选择笔记本和要传递给笔记本的可选基参数。
(可选)可以填写 Synapse 笔记本的信息。 如果以下设置为空,将使用 Synapse 笔记本本身的设置来运行;如果以下设置不为空,这些设置将替换 Synapse 笔记本本身的设置。
属性 说明 Spark 池 对 Spark 池的引用。 可以从列表中选择 Apache Spark 池。 执行程序大小 用于为会话在指定 Apache Spark 池中分配的执行程序的内核和内存数量。 对于动态内容,有效值为 Small/Medium/Large/XLarge/XXLarge。 动态分配执行程序 此设置映射到用于 Spark 应用程序执行工具分配的 Spark 配置中的动态分配属性。 最小执行程序数 要在作业的指定 Spark 池中分配的最小执行程序数。 最大执行程序数 要在作业的指定 Spark 池中分配的最大执行程序数。 驱动程序大小 作业的指定 Apache Spark 池中提供的驱动程序要使用的核心数和内存量。
下面是一个 Azure Synapse Analytics 笔记本活动的示例 JSON 定义:
{
"activities": [
{
"name": "demo",
"description": "description",
"type": "SynapseNotebook",
"dependsOn": [],
"policy": {
"timeout": "7.00:00:00",
"retry": 0,
"retryIntervalInSeconds": 30,
"secureOutput": false,
"secureInput": false
},
"userProperties": [
{
"name": "testproperties",
"value": "test123"
}
],
"typeProperties": {
"notebook": {
"referenceName": {
"value": "Notebookname",
"type": "Expression"
},
"type": "NotebookReference"
},
"parameters": {
"test": {
"value": "testvalue",
"type": "string"
}
},
"snapshot": true,
"sparkPool": {
"referenceName": {
"value": "SampleSpark",
"type": "Expression"
},
"type": "BigDataPoolReference"
}
},
"linkedServiceName": {
"referenceName": "AzureSynapseArtifacts1",
"type": "LinkedServiceReference"
}
}
]
}
下表描述了 JSON 定义中使用的 JSON 属性:
属性 | 描述 | 必需 |
---|---|---|
name | 管道中活动的名称。 | 是 |
description | 描述活动用途的文本。 | 否 |
type | 对于 Azure Synapse Analytics 笔记本活动,活动类型为 SynapseNotebook。 | 是 |
笔记本 | 在 Azure Synapse Analytics 中运行的笔记本的名称。 | 是 |
sparkPool | 运行 Azure Synapse Analytics 笔记本所需的 Spark 池。 | 否 |
参数 (parameter) | 运行 Azure Synapse Analytics 笔记本所需的参数。 有关详细信息,请参阅通过运行 Synapse 笔记本转换数据 | 否 |
Azure 数据工厂查找参数单元格,并将这些值作为执行时传入的参数的默认值。 执行引擎将使用输入参数在参数单元格下面添加新的单元格,以覆盖默认值。 可以参阅通过运行 Synapse 笔记本转换数据。
可以在活动中读取笔记本单元格输出值,对于此面板,可以参考通过运行 Synapse 笔记本转换数据。
可以通过调用 %run magic 或 mssparkutils 笔记本实用程序,在 Synapse 笔记本活动中引用其他笔记本。 两者都支持嵌套函数调用。 根据你的方案,你应该考虑的这两种方法的主要区别是:
- %run magic 将引用的笔记本中的所有单元格复制到 %run 单元格,并共享变量上下文。 当 notebook1 通过
%run notebook2
引用 notebook2,以及 notebook2 调用 mssparkutils.notebook.exit 函数时,将停止 notebook1 中的单元格执行。 如果要“包含”笔记本文件,建议使用 %run magic。 - mssparkutils 笔记本实用程序将引用的笔记本作为方法或函数进行调用。 变量上下文不共享。 当 notebook1 通过
mssparkutils.notebook.run("notebook2")
引用 notebook2,以及 notebook2 调用 mssparkutils.notebook.exit 函数时,将继续 notebook1 中的单元格执行。 如果要“导入”笔记本,建议使用 mssparkutils 笔记本实用程序。
转到“监视”选项卡下的“管道运行”,将看到已触发的管道。 打开包含笔记本活动的管道以查看运行历史记录。
对于“打开笔记本快照”,当前不支持此功能。
可以通过选择“输入”或“输出”按钮查看笔记本活动输入或输出 。 如果管道因用户错误而失败,可以选择“输出”来检查“结果”字段,以查看详细的用户错误回溯 。