主题
Notebook 交互式开发
场景 数据探索的日常是「SQL 拿数 → Python 分析 → 画图 → 反复调」,但工具是割裂的:查询平台跑 SQL、本地 Jupyter 跑 Python,数据靠导出 CSV 搬运,权限在本地失控,探索完的成果还得重写成脚本才能上生产。平台把这条链路收进一个 Notebook:SQL / Python / Markdown 多 cell 混编,跑在空间级共享的 Spark 引擎上,探索完直接发布成周期调度任务。
能干什么
| 你想做的事 | 在 Notebook 里长这样 |
|---|---|
| SQL 拿数接着用 Python 分析 | SQL cell 出结果表,Python cell 在同一引擎里接着算、画图,变量跨 cell 保持 |
| 团队共用算力、依赖只装一次 | Python 引擎是空间级常驻资源,多人多 Notebook 复用;pip 依赖引擎级安装一次 |
| 各写各的互不干扰 | 每个 Notebook 在引擎里有独立变量命名空间;不同 Notebook 的 cell 可同时运行 |
| 探索成果变生产任务 | 「发布」冻结版本后,挂成 NOTEBOOK 类型调度作业周期跑,改草稿不影响线上 |
| 卡在报错上 | 每个 cell 带 AI 助手:生成/解释/修正代码;报错一键「根因诊断」,带服务端证据链 |
| 记录分析思路 | Markdown cell 排版说明,Notebook 按空间共享,同事能看懂你的完整推导 |
亮点
- 真 Spark 引擎,不是玩具内核——Python 引擎就是一个专属的 Spark Driver + Executor,大数据量直接
spark.sql分布式算,不受「先导出再分析」的内存天花板限制 - 共享而不串台——引擎空间级复用摊薄成本,变量命名空间按 Notebook 隔离,别人的会话重启不影响你
- 权限不因换了入口而放松——SQL cell 经平台逐表鉴权执行,引擎以本空间受限身份运行、落本空间独立资源边界,越不出本空间数据
- 探索与生产同一份资产——不用把 Notebook 重写成脚本,发布版本即可调度,调度只跑线上版本
实景:SQL 拿数,Python 接着画
SQL cell 汇总各支付渠道营收,结果直接以表格呈现——这条 SQL 和数据查询页一样走逐表权限检查:

紧接着的 Python cell 直接引用 df_1——SQL cell 的结果天然就是一个 DataFrame 变量(按 cell 位置命名),不用导出、不用注入,清洗后 matplotlib 画图,图表内嵌在输出区:

print 与富输出实时流式回显;运行中的 Python cell 可随时中断。cell 报错时,错误下方会出现「AI 解释此错误」与「根因诊断」——后者不只看代码,还会取 cell 上下文与引擎日志做证据链分析。
引擎:空间级共享,按需自定义
- 引擎在「管理引擎」里新建,可选镜像、pip 依赖、CPU/内存规格、空闲超时;依赖在引擎启动时装一次,其上所有 Notebook 共享
- 引擎占用空间的「交互式内核」配额(资源管理申请、平台审批),启动前按配额准入——超了会明确报「内存不足」而不是挤占别人
- 空闲超时自动回收,释放资源;重启会话只清自己 Notebook 的变量,引擎和别人不受影响
从探索到生产:发布 + 调度
编辑器里改的是草稿;「发布」把草稿冻结为版本并设为线上。调度作业(NOTEBOOK 类型)只跑线上版本——你继续改草稿、做实验,线上任务纹丝不动,直到下次发布。版本历史支持回滚与恢复到草稿:
![数据开发页 NOTEBOOK 类型作业 notebook_orders_report_demo 详情:执行内容链接到 orders_report_nb 并注明"按序执行此 Notebook 的线上版本 cell";Cron 调度、重试与告警沿用作业体系;运行历史一条成功实例,右侧任务日志逐 cell 记录执行(cell #1 [SQL] 时间宏按调度时刻解析,1 行,全部 cell 执行成功)](/screenshots/42-notebook-job-detail.png)
调度运行时逐 cell 记录日志,失败能定位到具体哪个 cell、哪段代码;时间宏(如 ${yyyy-MM-dd})按调度时刻解析,周期报表天然正确。作业配置(资源/重试/告警/入工作流)与其它作业类型完全一致,见Notebook 作业。