乐趣区

关于技术选型:火山引擎-DataLeap-下-Notebook-系列文章一技术选型之路

更多技术交换、求职机会,欢送关注字节跳动数据平台微信公众号,回复【1】进入官网交换群

Notebook 是一种反对 REPL 模式的开发环境。所谓「REPL」,即「读取 - 求值 - 输入」循环:输出一段代码,立即失去相应的后果,并持续期待下一次输出。Notebook 通常使得探索性的开发和调试更加便捷,在 Notebook 环境,用户能够交互式地在其中编写代码、运行代码、查看输入、可视化数据并查看后果,应用起来非常灵活。

在数据开发畛域,Notebook 广泛应用于数据清理和转换、数值模仿、统计建模、数据可视化、构建和训练机器学习模型等方面。

然而显然,做数据开发,只有 Notebook 是不够的。目前火山引擎 DataLeap 数据研发平台提供了工作开发、公布调度、监控运维等一系列能力。研发团队将 Notebook 作为一种工作类型,退出了火山引擎 DataLeap 数据研发平台,使用户既能领有 Notebook 交互式的开发体验,又能享受一站式大数据研发治理套件提供的便当。

如果还不够直观的话,试想以下场景:

在交互式运行和可视化图表的加持下,用户很快就调试实现了一份 Notebook。简略整顿了下代码,依据应用到的数据配置了上游工作依赖,上线了周期调度,并棘手挂了报警。之后,基本上就不必管这个工作了:不须要每天手动查看上游数据是否就绪;不须要每天来点击运行,因为调度零碎会主动帮用户执行这个 Notebook;执行失败了有报警,能够间接上平台来解决;上游数据出错了,能够请零碎发动深度回溯,对立修数。

2019 年末,基于业务需要决定反对 Notebook 工作的时候,火山引擎 DataLeap 研发团队调研了许多 Notebook 的实现,包含 Jupyter、Polynote、Zeppelin、Deepnote 等。Jupyter Notebook 是 Notebook 的传统实现,它有着极其丰富的生态以及宏大的用户群体,置信许多人都用过这个软件。

事实上,在字节跳动数据平台倒退晚期,就有了在物理机集群上对立部署的 Jupyter(基于多用户计划 JupyterHub),供外部的用户应用。思考到用户习惯和其弱小的生态,Jupyter 最终成为了火山引擎 DataLeap 研发团队的抉择。

(图:Jupyter Notebook 界面)

Jupyter Notebook 是一个 Web 利用。通常认为其有两个外围的概念:Notebook 和 Kernel。

Notebook 指的是代码文件,个别在文件系统中存储,后缀名为 ipynb。Jupyter Notebook 后端提供了治理这些文件的能力,用户能够通过 Jupyter Notebook 的页面创立、关上、编辑、保留 Notebook。在 Notebook 中,用户以一个一个 Cell 的模式编写代码,并按 Cell 运行代码。Notebook 文件的具体内容格局,可参考 The Notebook file format

Kernel 是 Notebook 中的代码理论的运行环境,它是一个独立的过程。每一次「运行」动作,产生的成果是单个 Cell 的代码被运行。具体来讲,「运行」就是把 Cell 内的代码片段,通过 Jupyter Notebook 后端以特定格局发送给 Kernel 过程,再从 Kernel 承受特定格局的返回,并反馈到页面上。这里所说的「特定格局」,可参考 Messaging in Jupyter。

在火山引擎 DataLeap 数据研发平台,开发过程围绕的外围是工作。用户能够在我的项目下的工作开发目录创立子目录和工作,像 IDE 一样通过目录树治理其工作。Notebook 也是一种工作类型,用户能够启动一个独立的工作 Kernel 环境,像开发其余一般工作一样应用 Notebook。

(图:火山引擎 DataLeap 数据开发 Notebook 工作界面)

目前 Notebook 工作已成为字节跳动外部应用较为高频的工作类型,用户能够在火山引擎 DataLeap 官网开明交互式剖析的版本,应用到 DataLeap 的 Notebook 工作。

点击跳转 火山引擎大数据研发治理 DataLeap 理解更多

退出移动版