---
url: /v6.2/data-science.md
---
# 脚本

HENGSHI SENSE 提供了自助式数据处理工作，可完成数据清洗、转换、合并功能，但是对于资深分析师来说，他们更习惯自己编写代码进行数据处理。 为了满足资深分析师的需求，HENGSHI SENSE 提供了**脚本**模块，支持分析师使用SQL 编写和运行代码， 实现数据清洗、数据探索、数据建模、机器学习、数据可视化等数据处理工作。

**脚本**是一个开放空间，对拥有[数据管理角色](user-role.md#用户角色)的用户开放。用户可以创建笔记、执行笔记、查看笔记运行结果，也可以编辑和运行其他用户创建的笔记。

![](/images/data-science/data-science-001.png)

## 笔记

笔记是脚本任务运行的基本单位，每个**笔记**相互独立。 笔记中包括段落（编写的代码）、执行计划、运行环境设置等。

笔记工作流程大概为：

1. 创建笔记
2. 设置笔记运行环境
3. 创建段落，编写代码，实现数据处理功能
4. 执行笔记，查看运行结果。

下面通过示例了解笔记工作的大概流程。

### 笔记示例

1. 在脚本模块中，点击创建笔记，输入笔记名称，完成笔记创建。

   ![](/images/data-science/data-science-002.png)

2. 在笔记页面中，点击设置进入[运行环境设置](#笔记设置)页面，添加代码运行需要的数据连接和事务提交方式，如图所示。

   ![](/images/data-science/data-science-003.png)

3. 点击“＋”号新建段落，选择语言、运行环境和默认 Schema。

   ![](/images/data-science/data-science-004.png)

4. 在段落中编写代码，[测试执行](#段落执行)检验运行结果，也可以点击[提交执行](#段落执行)。

   ![](/images/data-science/data-science-005.png)

5. 参照步骤3、4，创建其他段落。 当所有段落都创建后，可点击[全部执行](#全部执行)手动执行笔记，也可以根据需要设置[执行计划](#执行计划)，在指定时间执行。

![](/images/data-science/data-science-006.png)

上述示例简单地介绍了笔记工作流程，下面详细介绍脚本笔记的各种概念和常用操作。

## 段落

段落是脚本中实现数据处理功能的最小单位，每个笔记可由一个或多个段落组成。段落支持新建、配置、编辑、删除、执行等操作。

### 新建和删除

新建段落包括新建空白段落和上传文件两种方式。

![](/images/data-science/data-science-007.png)

* 新建空白段落： 点击“＋”号可以新增一个空白段落，用户自己编写代码。

* 上传文本文件： 点击上传文件图标可以将文本文件上传到段落中。

段落废弃时可以点击右侧的删除按钮来删除。

### 配置段落

配置段落包括配置语言、运行环境和默认执行路径 Schema。

* 语言： 指段落中使用的脚本语言，目前支持 SQL。

  * SQL：使 SQL 语言编写代码。 要求代码符合所选连接类型的语法要求。
* 运行环境：指当前笔记运行的环境，从[笔记设置](#笔记设置)中的有效的连接列表进行选择。
* 默认 Schema：指在段落中不指定 Schema 时默认使用的 Schema，是段落执行的具体路径。

### 编辑段落

段落可直接进行编辑，也可点击右侧的打开按钮在全屏模式下编辑。 全屏模式展示了运行环境下所有 table 及其字段名称，方便用户编写代码及调试。

![](/images/data-science/data-science-008.png)

### 段落执行

段落的代码编写完成后，需要进行执行，查看运行结果。 段落支持测试执行和提交执行。

* 测试执行

  测试执行是运行代码，查看代码结果是否正确，不会将结果提交到数据库。

* 提交执行
  提交执行是运行代码并将代码执行结果直接提交到数据库中。

*

测试执行和提交执行都会展示预览结果和执行日记。

* 预览结果

  预览结果只针对 SQL 语言的段落，当代码中包含 show、select 等标准输出语句时，会在预览结果中展示相应输出信息，其他情况预览结果页面无数据展示。

* 执行日记

  执行日记显示了段落运行情况，可协助用户进行段落调试和问题定位。

  ![](/images/data-science/data-science-009.png)

## 笔记设置

笔记设置包括运行环境设置和运行时事务提交设置。

### 运行环境

运行环境是指运行段落使用的数据连接。 点击添加按钮，在弹出的数据连接页面中选择需要的数据连接，数据连接会显示在授权链接列表中。

如果对连接有 RW 权限，连接状态显示有效，否则连接状态为无效。

![](/images/data-science/data-science-010.png)

* 授权

  在授权连接列表中，打开一个连接的三点菜单，选择授权，可以将该连接授权给脚本的所有用户，脚本的所有用户都可以使用该连接运行笔记，不管该用户是否有 RW 权限。

* 取消授权

  授权之后，所有用户都可以执行笔记，从而会有数据泄漏的危险，如果用户不想授权给其他用户，可以在每次执行完笔记之后，取消授权，这样其他用户就无法使用该连接执行笔记了。点击取消授权之后，连接状态变为无效，任何用户都无法使用该连接了。

* 删除

  在授权连接列表中，打开一个连接的三点菜单，选择删除，该连接从授权连接列表中消失。 如果有段落使用该连接，删除时会报错并给出提示信息。

### 事务提交

笔记运行时可设置整体提交事务和分段落提交事务两种方式。

![](/images/data-science/data-science-012.png)

* 整体提交事务

  笔记运行时所有段落会作为一个事务提交，如果有一个段落失败，则全部段落都回滚。

* 分段落提交事务

  笔记运行时，每个段落会作为一个事务提交，如果有某个段落失败，则只回滚该段落，其他事务正常执行和提交。

## 执行

笔记中段落编写完成后，需要进行执行。 每个段落可以[单独执行](#段落执行)，也可和笔记一起执行。 笔记执行包括全部执行和执行计划。

![](/images/data-science/data-science-011.png)

### 全部执行

全部执行即手动执行，点击该按钮会执行当前笔记中所有段落，执行结果会提交到数据库中。

### 执行计划

除了手动执行外，笔记可设置执行计划，按照设定计划运行。 点击右上角的执行计划，进入执行计划设置页面，设置计划的基本信息、调度信息、告警信息。

* 基本信息：设置执行时失败重试次数及任务的优先级。
* 调度信息：
  * 设置任务的调度时间，可设置多个调度时间。
  * 设置任务的前置依赖，可设置多个前置依赖任务。
  * 设置依赖等待时间。
* 告警信息：开启失败告警，当任务执行失败后，会以邮件形式通知到收件人。

![](/images/data-science/data-science-013.png)

* 笔记**开启 定执行计划**后，可在[任务管理](task-management.md)中查看执行情况。

![](/images/data-science/data-science-014.png)
