更多技术交流、求职机会,欢迎重视字节跳动数据渠道微信大众号,回复【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(nbformat.readthedocs.io/en/latest/f… -
Kernel 是 Notebook 中的代码实际的运转环境,它是一个独立的进程。每一次「运转」动作,产生的效果是单个 Cell 的代码被运转。详细来讲,「运转」便是把 Cell 内的代码片段,经过 Jupyter Notebook 后端以特定格局发送给 Kernel 进程,再从 Kernel 接受特定格局的回来,并反馈到页面上。这儿所说的「特定格局」,可参阅 Messaging in Jupyter(jupyter-client.readthedocs.io/en/stable/m…
在火山引擎 DataLeap 数据研制渠道,开发进程围绕的中心是使命。用户能够在项目下的使命开发目录创立子目录和使命,像 IDE 相同经过目录树管理其使命。Notebook 也是一种使命类型,用户能够发动一个独立的使命 Kernel 环境,像开发其他一般使命相同运用 Notebook。
(图:火山引擎 DataLeap 数据开发 Notebook 使命界面)
现在 Notebook 使命已成为字节跳动内部运用较为高频的使命类型,用户能够在火山引擎 DataLeap 官网开通交互式分析的版本,运用到 DataLeap 的 Notebook 使命。
点击跳转 火山引擎大数据研制管理DataLeap 了解更多