主题
数据科学
HENGSHI SENSE 提供了自助式数据处理工作,可完成数据清洗、转换、合并功能,但是对于数据科学家来说,他们更习惯自己编写代码进行数据处理。 为了满足数据科学家的需求,HENGSHI SENSE 提供了数据科学模块,支持数据科学家使用 Python、SQL 编写和运行代码, 实现数据清洗、数据探索、数据建模、机器学习、数据可视化等数据处理工作。
数据科学是一个开放空间,对拥有数据管理角色的用户开放。用户可以创建笔记、执行笔记、查看笔记运行结果,也可以编辑和运行其他用户创建的笔记。
笔记
笔记是数据科学任务运行的基本单位,每个“笔记”相互独立。 笔记中包括段落(编写的代码)、执行计划、运行环境设置等。
笔记工作流程大概为:创建笔记->设置笔记运行环境->创建段落,编写代码,实现数据处理功能->执行笔记,查看运行结果。
下面通过示例了解笔记工作的大概流程。
笔记示例
在数据科学模块中,点击创建笔记,输入笔记名称,完成笔记创建。
在笔记页面中,点击设置进入运行环境设置页面,添加代码运行需要的数据连接和事务提交方式,如图所示。
点击“+”号新建段落,选择语言、运行环境和默认 Schema。
参照步骤3、4,创建其他段落。 当所有段落都创建后,可点击全部执行手动执行笔记,也可以根据需要设置执行计划,在指定时间执行。
上述示例简单地介绍了笔记工作流程,下面详细介绍数据科学笔记的各种概念和常用操作。
段落
段落是数据科学中实现数据处理功能的最小单位,每个笔记可由一个或多个段落组成。段落支持新建、配置、编辑、删除、执行等操作。
新建和删除
新建段落包括新建空白段落和上传文件两种方式。
新建空白段落: 点击“+”号可以新增一个空白段落,用户自己编写代码。
上传文本文件: 点击上传文件图标可以将文本文件上传到段落中。
段落废弃时可以点击右侧的删除按钮来删除。
配置段落
配置段落包括配置语言、运行环境和默认执行路径 Schema。
语言: 指段落中使用的脚本语言,包括 SQL 和 PYTHON。同一笔记支持多种语言编写的段落同时构建。
- SQL:使 SQL 语言编写代码。 要求代码符合所选连接类型的语法要求。
- Python:使用 Python 语言编写代码。 可用于数据分析高级需求,如数据的深度挖掘和加工,机器学习建模等场景。
- 支持 Python 编写段落。
- 提供内置封装的函数,高效获取指定的数据连接。 目前暂时只支持 MySQL、Oracle、PostgreSQL、SQL Server、Hive 数据库。
- 默认支持 Pandas、scikit-learn 等主流数据分析和机器学习库,其他库可由客户 DBA 自行安装扩展。
运行环境:指当前笔记运行的环境,从笔记设置中的有效的连接列表进行选择。
默认 Schema:指在段落中不指定 Schema 时默认使用的 Schema,是段落执行的具体路径。
编辑段落
段落可直接进行编辑,也可点击右侧的打开按钮在全屏模式下编辑。 全屏模式展示了运行环境下所有 table 及其字段名称,方便用户编写代码及调试。
段落执行
段落的代码编写完成后,需要进行执行,查看运行结果。 段落支持测试执行和提交执行。
测试执行
测试执行是运行代码,查看代码结果是否正确,不会将结果提交到数据库。 Python 语言的段落不支持事务回滚,所以没有测试执行功能。
提交执行 提交执行是运行代码并将代码执行结果直接提交到数据库中。
测试执行和提交执行都会展示预览结果和执行日记。
预览结果
预览结果只针对 SQL 语言的段落,当代码中包含 show、select 等标准输出语句时,会在预览结果中展示相应输出信息,其他情况预览结果页面无数据展示。
执行日记
执行日记显示了段落运行情况,可协助用户进行段落调试和问题定位。
笔记设置
笔记设置包括运行环境设置和运行时事务提交设置。
运行环境
运行环境是指运行段落使用的数据连接。 点击添加按钮,在弹出的数据连接页面中选择需要的数据连接,数据连接会显示在授权链接列表中。
如果对连接有 RW 权限,连接状态显示有效,否则连接状态为无效。
授权
在授权连接列表中,打开一个连接的三点菜单,选择授权,可以将该连接授权给数据科学的所有用户,数据科学的所有用户都可以使用该连接运行笔记,不管该用户是否有 RW 权限。
取消授权
授权之后,所有用户都可以执行笔记,从而会有数据泄漏的危险,如果用户不想授权给其他用户,可以在每次执行完笔记之后,取消授权,这样其他用户就无法使用该连接执行笔记了。点击取消授权之后,连接状态变为无效,任何用户都无法使用该连接了。
删除
在授权连接列表中,打开一个连接的三点菜单,选择删除,该连接从授权连接列表中消失。 如果有段落使用该连接,删除时会报错并给出提示信息。
事务提交
笔记运行时可设置整体提交事务和分段落提交事务两种方式。
整体提交事务
笔记运行时所有段落会作为一个事务提交,如果有一个段落失败,则全部段落都回滚。
分段落提交事务
笔记运行时,每个段落会作为一个事务提交,如果有某个段落失败,则只回滚该段落,其他事务正常执行和提交。
执行
笔记中段落编写完成后,需要进行执行。 每个段落可以单独执行,也可和笔记一起执行。 笔记执行包括全部执行和执行计划。
全部执行
全部执行即手动执行,点击该按钮会执行当前笔记中所有段落,执行结果会提交到数据库中。
执行计划
除了手动执行外,笔记可设置执行计划,按照设定计划运行。 点击右上角的执行计划,进入执行计划设置页面,设置计划的基本信息、调度信息、告警信息。
- 基本信息:设置执行时失败重试次数及任务的优先级。
- 调度信息:
- 设置任务的调度时间,可设置多个调度时间。
- 设置任务的前置依赖,可设置多个前置依赖任务。
- 设置依赖等待时间。
- 告警信息:开启失败告警,当任务执行失败后,会以邮件形式通知到收件人。
笔记设定执行计划后,可在任务管理中查看执行情况。