Skip to content

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 和数据查询页一样走逐表权限检查:

Notebook 编辑器:SQL cell 内容为按支付渠道汇总营收的查询(过滤已退款),下方结果表 4 行(微信 605398.00、银行卡 380326.00、支付宝 375221.00、余额 149549.00);顶部工具栏显示引擎徽标"demo-engine:就绪"、重启会话/断开/管理引擎按钮,以及 +SQL/+Python/+Markdown、保存、发布;下方紧接一个 Python cell

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

Python cell:代码注释写明"SQL cell 的结果已是 DataFrame 变量 df_1,直接用",df_1.copy 后 astype 清洗,print 输出 DataFrame 四行(微信/银行卡/支付宝/余额),并用 df.plot.bar 画出中文标题"7 月各支付渠道营收(未含退款)"的柱状图,横轴为中文渠道名,图表直接渲染在 cell 输出区;cell 右上角有 AI 按钮

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 执行成功)

调度运行时逐 cell 记录日志,失败能定位到具体哪个 cell、哪段代码;时间宏(如 ${yyyy-MM-dd})按调度时刻解析,周期报表天然正确。作业配置(资源/重试/告警/入工作流)与其它作业类型完全一致,见Notebook 作业

回到核心能力总览 →