You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Oracle自治数据库中调度SQL+Python+OML4PY代码执行?

针对ADB上SQL+Python+OML4PY ETL脚本每日调度的最佳方案

方案一:OML Notebook 内置调度(直接适配已有代码)

你已经完成Notebook代码编写,这个方案最直接落地,操作步骤如下:

  1. 打开目标OML Notebook,点击右上角的调度图标(时钟样式)
  2. 在配置面板设置执行频率为每日,指定具体执行时间点
  3. 选择对应Python环境(需包含OML4PY依赖),确认作业拥有操作目标ADB表的权限
  4. 保存调度任务,系统会按设定时间后台自动执行Notebook代码

注意事项:

  • 调度执行不占用前端会话,可在OML控制台的任务调度模块查看日志、失败告警
  • 这是OML生态内的官方推荐轻量方案,适合快速部署已调试完成的Notebook代码

方案二:ADB原生数据库调度作业(生产级场景首选)

如果ETL逻辑复杂、需和ADB原生能力深度集成,可使用DBMS_SCHEDULER包实现调度,步骤如下:

  1. 将Notebook中的Python+OML4PY代码封装为OML脚本(在OML控制台脚本库中创建,复用现有代码)
  2. 用PL/SQL创建定时作业,示例代码:
BEGIN
  DBMS_SCHEDULER.CREATE_JOB(
    job_name        => 'DAILY_ETL_JOB',
    job_type        => 'PLSQL_BLOCK',
    job_action      => 'BEGIN OML_SCRIPT.RUN_SCRIPT(''你的OML脚本名称''); END;',
    start_date      => SYSTIMESTAMP,
    repeat_interval => 'FREQ=DAILY; BYHOUR=2; BYMINUTE=0;', -- 每日凌晨2点执行
    enabled         => TRUE,
    comments        => '每日执行SQL+Python+OML4PY ETL作业'
  );
END;
/
  1. 通过USER_SCHEDULER_JOBS、USER_SCHEDULER_JOB_LOG等视图监控作业状态与执行日志

核心优势:

  • 基于ADB原生调度能力,稳定性更强,适配生产级核心ETL任务
  • 可与数据库备份、统计信息收集等其他作业统一管理
  • 支持灵活调度规则(如节假日排除、复杂周期设置)

方案选择建议

  • 若代码已在Notebook调试完成、ETL逻辑简单,优先用OML Notebook调度,配置快、易维护,符合OML使用流程
  • 若为生产环境核心任务,需精细监控、权限控制或联动其他数据库作业,选择DBMS_SCHEDULER调度OML脚本,更贴合企业级生产实践

内容的提问来源于stack exchange,提问作者Joe Hahn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 09:43:23