DolphinDB启动脚本教程

介绍 DolphinDB 启动脚本功能:从 1.0 开始提供启动脚本,并可通过 startup 参数指定用户级脚本以在启动时自动执行初始化类任务。

Source: https://dolphindb.cn/blogs/65

What this page covers

技能认证特训营第二期报名推广 (cta)

页面顶部提供活动报名引导与限时报名链接信息。

DolphinDB启动脚本教程(作者与日期) (product_overview)

文章包含标题、作者署名与发布日期,表明内容是关于 DolphinDB 启动脚本的教程。

启动脚本功能概述与用途 (definition)

介绍 DolphinDB 从 1.0 开始提供启动脚本,通过 startup 参数指定用户级脚本并在启动时自动执行初始化类任务。

DolphinDB启动顺序与相关组件 (how_it_works)

说明与启动脚本相关的初始化脚本、函数视图与定时任务,并给出组件资源初始化顺序及其影响。

启动脚本的执行与配置方式 (how_it_works)

说明 startup 配置项的参数含义、默认值、路径搜索规则、单机/集群配置位置、权限与登录要求、错误处理与日志记录。

启动脚本常见应用场景与示例 (use_case)

列举系统重启后常见初始化工作,并给出共享内存表、流数据表初始化与订阅、以及加载插件的示例与故障日志。

启动脚本的编写与调试建议 (how_it_works)

说明启动脚本可使用 module、可定义函数并使用分布式功能,并建议使用日志输出与 try-catch 进行调试与异常处理。

启动脚本不适用的场景与限制 (limitations)

列出启动脚本不应涉及的定时任务相关功能、系统级函数定义位置,以及依赖其他节点的任务风险。

Facts Index

Entity Attribute Value Confidence
技能认证特训营第二期 报名链接 https://www.qingsuyun.com/h5/e/217471/5/ high
DolphinDB启动脚本教程 发布日期 2021-08-05 high
DolphinDB启动脚本教程 作者署名 Junxi high
DolphinDB database 提供启动脚本功能的版本起点 从 1.0 版本开始提供启动脚本功能 high
startup 参数 用途 用于指定用户级启动脚本 high
startup 参数 默认值 startup.dos high
启动脚本(startup.dos) 可自动完成的工作示例 初始化流数据、定义共享变量、加载插件脚本等 high
init 参数 用途 用于指定系统级初始化脚本 high
系统级初始化脚本(init) 默认值 dolphindb.dos high
DolphinDB 节点启动过程 相关脚本/任务至少包括 系统级初始化脚本(init)、函数视图(function view)、定时任务(scheduled job) high
系统级初始化脚本 dolphindb.dos 是否必需 必需 high
系统级初始化脚本 dolphindb.dos 所在位置与内容 默认在版本发布目录中,定义一些系统级函数 high
dolphindb.dos 执行时环境 网络与分布式文件系统状态 执行时系统网络和分布式文件系统尚未启动,函数视图尚未加载 high
启动脚本执行前环境 网络/分布式文件系统与函数视图状态 启动脚本执行前系统网络与分布式文件系统已启动,函数视图已加载 high
启动脚本 能力范围(在启动脚本中可做的事情) 几乎可以做任何事情 medium
scheduled jobs 与启动脚本的加载顺序 定时任务在启动脚本执行后加载 high
scheduled jobs 反序列化 前置条件 若定时任务使用插件函数/共享表等,需要在启动脚本中预先加载或定义,否则反序列化会失败 high
函数视图(function view) 与启动脚本的加载顺序 函数视图在启动脚本执行之前加载 high
函数视图使用插件的前置条件 插件加载位置 若函数视图中用了插件,加载插件必须在 dolphindb.dos 中完成 high
函数视图中使用插件(集群) 官方建议 不建议在函数视图中使用插件,否则集群中每个节点的 dolphindb.dos 都需要加载插件 high
函数视图与定时任务的存储位置 存储节点差异 函数视图存储在控制节点;定时任务存储在数据节点 high
startup 配置项 参数值类型 自定义启动脚本文件名,可配置绝对路径或相对路径 high
startup 脚本路径搜索顺序(相对路径或未指定目录) 搜索位置 依次搜索节点 home 目录、工作目录、可执行文件所在目录 high
startup 参数配置文件位置 单机模式配置位置 dolphindb.cfg high
startup 参数配置文件位置 集群模式配置位置 节点配置文件 cluster.cfg high
startup 配置示例 示例值 startup=/home/streamtest/init/server/startup.dos high
启动脚本执行身份 运行用户 以本地管理员身份运行,但并没有登录集群 high
启动脚本访问集群分布式功能 访问身份 访问集群的分布式功能时以 guest 身份运行 high
启动脚本远程执行控制节点功能/访问分布式表 前置条件 需要先以管理员(admin)或其他授权用户身份登录,可通过 login 函数完成 high
启动脚本执行错误处理 错误发生时的行为 遇到错误执行会中断,但系统不会退出,会继续运行 high
启动脚本输出记录 记录位置 所有输出记录在本地节点日志文件中 high
系统重启后的初始化工作 主要内容 定义并共享内存表;定义/加载/共享流数据表;订阅流数据;加载插件等 high
示例1:内存表共享 效果描述 定义内存表 t 并分享为 sharedT,其他会话可对 sharedT 增删改查 high
示例1:内存表共享代码 代码片段 t=table(1:0,`date`sym`val,[DATE,SYMBOL,INT]) share(t, `sharedT); high
流数据表(stream table) 是否可持久化保存 流数据表的定义不可在 DolphinDB 中持久化保存 high
示例2:加载并共享流数据表 st1 实现方式(代码中涉及的操作) 通过 login("admin","123456")、streamTable(...)、enableTableShareAndPersistence(... tableName=`st1, cacheSize=1000) high
示例2:订阅流数据表 st1 并保存到分布式库表 实现方式(代码中涉及的操作) tb=loadTable("dfs://db1","tb"); subscribeTable(,"st1","subst",-1,append!{tb},true) high
scheduled jobs 使用插件函数 启动时插件加载要求 必须在启动脚本中加载插件,否则会因反序列化失败导致系统退出 high
示例3:scheduled jobs 使用的插件 odbc 插件 high
odbc 插件未加载时读取 scheduled job 的结果 错误日志 <ERROR>:Failed to unmarshall the job [job demo]. Failed to deserialize assign statement.. Invalid message format high
启动脚本加载 odbc 插件 加载方式(示例) loadPlugin("plugins/odbc/odbc.cfg") high
DolphinDB 启动脚本编写 可使用的机制 可以使用 module 来声明和使用可重用模块;可以自定义函数;可以使用分布式功能 high
DolphinDB 启动脚本编写 限制程度 几乎没有限制 medium
调试启动脚本 建议方法 使用 print 与 writeLog 等函数打印日志,系统会输出到节点日志 high
启动脚本开始执行时日志 日志内容示例 <INFO> :Executing the startup script: high
启动脚本异常处理 建议做法 使用 try-catch 语句捕获异常,防止异常停止执行后续脚本 high
启动脚本与定时任务功能 不适用范围 不能在启动脚本中使用与定时任务相关的任何功能,包括 scheduleJob、getScheduledJobs、deleteScheduledJob high
系统级函数定义 推荐位置与条件 若需要定义系统级函数(所有用户可见且不能被覆盖),应在初始化脚本 dolphindb.dos 中定义 high
依赖其他节点的任务 启动脚本中执行的风险 不适合在启动脚本中完成,可能因其他节点尚未启动而无法运行 high