Skill: zhangxinyu0330/dolphindb-skill (version 1.0.0)

--- name: dolphindb description: DolphinDB 时序数据库完整技术文档与最佳实践。包含1490个技术文档 + 3份官方白皮书。涵盖数据库设计、流计算、量化回测、函数查询等全场景。 version: 2.0.0 source: https://docs.dolphindb.cn + Official Whitepapers author: Optimized by Skill Creator tags: - database - time-series - streaming - quantitative-trading - backtesting - dolphindb --- # DolphinDB 完整技术文档与实战指南 **版本**: 2.0.0 (优化版) **文档数量**: 1490 个技术文档 + 3 份官方白皮书 **DolphinDB版本**: 3.00.4 **更新时间**: 2026-01-22 **文档来源**: https://docs.dolphindb.cn --- ## 📚 核心资源概览 ### 🎯 官方白皮书（深度最佳实践） 提供生产级架构设计和完整工作流程指南： 1. **[数据库白皮书](references/whitepapers/database.md)** (1073行) - DolphinDB 核心架构与分布式设计 - TSDB vs OLAP 存储引擎详解 - 分区策略、高可用、备份恢复 - SQL优化与库内计算 - **适用场景**: 系统架构设计、性能优化、生产部署 2. **[流数据白皮书](references/whitepapers/streaming.md)** (2279行) - 流计算框架与发布订阅机制 - 7大流计算引擎详解 - 流批一体架构与历史回放 - 金融与物联网场景应用 - **适用场景**: 实时计算、CEP、流式ETL 3. **[中高频回测白皮书](references/whitepapers/backtest.md)** (2205行) - 完整回测系统架构 - 数据回放与模拟撮合引擎 - DolphinScript/Python/C++ 策略开发 - 量化策略实战案例 - **适用场景**: 量化回测、算法交易、策略研发 ### 📖 在线技术文档（1490篇） 按功能领域分类的完整API参考和操作指南： | 分类 | 文档数量 | 说明 | |------|---------|------| | 函数参考/其他函数 | 1171 | 系统函数、网络函数等 | | 其他 | 97 | 其他技术文档 | | 函数参考/统计函数 | 61 | 相关性、协方差、标准差等统计指标 | | 函数参考/数学函数 | 42 | 基础数学运算、三角函数、对数等 | | 函数参考/SQL函数 | 41 | 查询、关联、聚合等SQL操作 | | 函数参考/时间序列函数 | 26 | 日期时间处理、时序窗口计算 | | 流数据处理 | 22 | 流表、订阅、流计算引擎 | | 数据库核心 | 13 | 存储引擎、分区、事务、高可用 | | 部署与配置 | 9 | 集群部署、参数配置 | | 函数参考/字符串函数 | 5 | 字符串操作、正则表达式 | | API与连接器 | 1 | Python、Java、C++ API | | 运维管理 | 1 | 监控、备份、权限管理 | | 教程与示例 | 1 | 快速入门、场景案例 | **完整文档索引**: 详见 [CATALOG.md](CATALOG.md) --- ## 🚀 常见问题快速导航 ### 新手入门 - **如何快速上手DolphinDB？** → [关于 DolphinDB](references/doc_1201.md) - **如何部署集群？** → [分布式架构](references/doc_6249.md) - **如何选择存储引擎？** → 查阅 [数据库白皮书](references/whitepapers/database.md) 第3-4章 ### 数据库设计 - **如何选择分区策略？** → [数据分区](references/doc_9485.md) + [数据库白皮书](references/whitepapers/database.md) - **TSDB vs OLAP 如何选择？** → [TSDB存储引擎](references/doc_6240.md) 和 [OLAP存储引擎](references/doc_7837.md) - **如何优化查询性能？** → [数据库白皮书](references/whitepapers/database.md) 第5章 ### 流计算开发 - **如何实现实时计算？** → [流数据白皮书](references/whitepapers/streaming.md) - **流计算引擎有哪些？** → [流数据白皮书](references/whitepapers/streaming.md) 第3章 - **如何实现流批一体？** → [流数据白皮书](references/whitepapers/streaming.md) 第4章 ### 量化回测 - **如何搭建回测系统？** → [回测白皮书](references/whitepapers/backtest.md) - **如何实现模拟撮合？** → [回测白皮书](references/whitepapers/backtest.md) 第3章 - **如何进行中高频回测？** → [回测白皮书](references/whitepapers/backtest.md) 第4-7章 ### 高级功能 - **如何实现高可用？** → [高可用](references/doc_3934.md) - **如何进行数据备份？** → [数据库白皮书](references/whitepapers/database.md) 第6章 - **如何管理权限？** → [数据库白皮书](references/whitepapers/database.md) 第6.4节 --- ## 📝 常用代码示例 ### 1. 创建TSDB存储引擎的分区表 ```dolphindb // 组合分区: VALUE(日期) + HASH(股票代码) db_date = database("", VALUE, 2024.01.01..2024.12.31) db_sym = database("", HASH, [SYMBOL, 10]) db = database("dfs://stock_data", COMPO, [db_date, db_sym]) // TSDB引擎，支持排序列和去重 schemaTable = table( 1:0, `trade_time`symbol`price`volume, [TIMESTAMP, SYMBOL, DOUBLE, LONG] ) pt = db.createPartitionedTable( table=schemaTable, tableName="stock_tick", partitionColumns=`trade_date`symbol, sortColumns=`symbol`trade_time, // 排序键 keepDuplicates=LAST, // 去重策略 engine="TSDB" ) ``` ### 2. 创建OLAP存储引擎的分区表 ```dolphindb // OLAP引擎适合追加式写入和批量分析 db = database("dfs://stock_analysis", VALUE, 2024.01M..2024.12M) schemaTable = table( 1:0, `trade_date`symbol`open`high`low`close`volume, [DATE, SYMBOL, DOUBLE, DOUBLE, DOUBLE, DOUBLE, LONG] ) pt = db.createPartitionedTable( table=schemaTable, tableName="daily_kline", partitionColumns=`trade_date, engine="OLAP" ) ``` ### 3. 流计算 - 实时K线合成 ```dolphindb // 1. 创建流表 share streamTable(1:0, `time`sym`price`vol, [TIMESTAMP, SYMBOL, DOUBLE, INT]) as tickStream share streamTable(1:0, `time`sym`open`high`low`close`volume, [TIMESTAMP, SYMBOL, DOUBLE, DOUBLE, DOUBLE, DOUBLE, LONG]) as klineStream // 2. 创建时序聚合引擎 tsEngine = createTimeSeriesEngine( name="kline_1min", windowSize=60000, // 1分钟窗口 step=60000, metrics=<[first(price), max(price), min(price), last(price), sum(vol)]>, dummyTable=tickStream, outputTable=klineStream, timeColumn=`time, keyColumn=`sym ) // 3. 订阅流表 subscribeTable(tableName="tickStream", actionName="kline", handler=append!{tsEngine}) // 4. 插入数据测试 insert into tickStream values(2024.01.01T09:30:00.000, `600000, 10.5, 1000) ``` ### 4. 中高频回测完整流程 ```dolphindb // 1. 清理环境 try{ unsubscribeTable(tableName="replayStream", actionName="backtest") }catch(ex){} try{ dropStreamEngine("backtestEngine") }catch(ex){} // 2. 创建回放流表 share streamTable(1:0, `time`sym`price`vol, [TIMESTAMP, SYMBOL, DOUBLE, INT]) as replayStream // 3. 创建回测引擎（需要加载回测插件） loadPlugin("/path/to/backtest_plugin.so") backtestEngine = createBacktestEngine( name="my_strategy", initialCapital=10000000, commission=0.0003 ) // 4. 订阅回放数据 subscribeTable(tableName="replayStream", actionName="backtest", handler=backtestEngine) // 5. 数据回放 histData = loadTable("dfs://stock_data", "stock_tick") ds = replayDS(sqlObj=<select * from histData where trade_date=2024.01.01>, dateColumn=`trade_date, timeColumn=`trade_time) replay(inputTables=ds, outputTables=replayStream, dateColumn=`trade_date, timeColumn=`trade_time, replayRate=1000) // 6. 获取回测结果 backtestEngine.getPositions() // 持仓 backtestEngine.getOrders() // 订单 backtestEngine.getTrades() // 成交 backtestEngine.getMetrics() // 绩效指标 ``` ### 5. 高级SQL示例 ```dolphindb // Context By - 组内窗口计算 select trade_date, symbol, close, movingAvg(close, 5) as ma5, movingAvg(close, 20) as ma20 from loadTable("dfs://stock", "daily") context by symbol // Pivot By - 数据透视 select close from loadTable("dfs://stock", "daily") where symbol in `600000`600001`600002 pivot by trade_date, symbol // Asof Join - 时序非精确关联 select * from tick_data aj snapshot_data on tick_data.time = snapshot_data.time and tick_data.symbol = snapshot_data.symbol ``` --- ## 💡 最佳实践工作流 ### 1. 数据库设计流程 ``` 需求分析 → 存储引擎选择 → 分区策略设计 → 性能测试 → 生产部署 ↓ ↓ ↓ ↓ ↓ 数据特征 TSDB/OLAP COMPO分区 压力测试 高可用配置 ``` **决策要点**: - **高频写入 + 点查** → TSDB引擎 + sortColumns - **批量分析** → OLAP引擎 - **时序数据** → VALUE(日期) + HASH(Symbol) 组合分区 - **查询优化** → 合理使用分区裁剪、并行计算 **参考文档**: [数据库白皮书](references/whitepapers/database.md) 第2-4章 ### 2. 流计算开发流程 ``` 数据源接入 → 流表设计 → 引擎选择 → 订阅处理 → 结果输出 ↓ ↓ ↓ ↓ ↓ Kafka等 streamTable 7种引擎 subscribeTable 入库/推送 ``` **引擎选择**: - **滑动窗口聚合** (K线合成) → TimeSeriesEngine - **横截面计算** (全市场排名) → CrossSectionalEngine - **复杂状态逻辑** (多因子计算) → ReactiveStateEngine - **异常检测** → AnomalyDetectionEngine **参考文档**: [流数据白皮书](references/whitepapers/streaming.md) 第3章 ### 3. 量化回测完整流程 ``` 数据准备 → 历史回放 → 模拟撮合 → 策略执行 → 绩效分析 ↓ ↓ ↓ ↓ ↓ 分区表 replay Exchange BacktestEngine Sharpe/回撤 ``` **核心技术点**: - 使用 `replay` 或 `replayDS` 严格按时序回放 - `createExchange` 实现"价格优先、时间优先"撮合 - 支持逐笔、快照、分钟频等多种数据源 - C++插件可提升10倍以上性能 **参考文档**: [回测白皮书](references/whitepapers/backtest.md) 完整内容 --- ## 🔍 如何使用本Skill ### 按场景查找 1. **我是新手，想快速上手** - 先阅读: [关于 DolphinDB](references/doc_1201.md) - 然后看: [数据库白皮书](references/whitepapers/database.md) 第1章 2. **我要设计生产数据库** - 必读: [数据库白皮书](references/whitepapers/database.md) 第2-6章 - 参考: [数据分区](references/doc_9485.md)、[高可用](references/doc_3934.md) 3. **我要开发实时计算应用** - 必读: [流数据白皮书](references/whitepapers/streaming.md) 全文 - 速查: 本文档中的"流计算代码示例" 4. **我要搭建量化回测系统** - 必读: [回测白皮书](references/whitepapers/backtest.md) 全文 - 实战: 白皮书第5-7章策略案例 5. **我要查特定函数用法** - 使用: [CATALOG.md](CATALOG.md) 按分类查找 - 或在 `references/` 目录搜索关键词 ### 按角色查找 | 角色 | 推荐阅读路径 | |------|-------------| | **架构师** | 数据库白皮书 → 分布式架构 → 高可用方案 | | **DBA** | 数据库白皮书 → 运维章节 → 备份恢复 | | **后端开发** | 流数据白皮书 → API文档 → 代码示例 | | **量化研究员** | 回测白皮书 → 策略开发 → 绩效分析 | | **数据分析师** | SQL函数参考 → Context By → Pivot By | --- ## 📊 版本信息 - **Skill版本**: 2.0.0 (相比1.x版本的改进) - ✅ 新增完整文档索引 (CATALOG.md) - ✅ 新增常见问题快速导航 - ✅ 新增5大类代码示例 - ✅ 优化文档分类 (14个细分类别) - ✅ 明确DolphinDB版本对应关系 - **DolphinDB版本**: 3.00.4 - **文档同步时间**: 2026-01-20 - **维护策略**: 季度更新 / 重大版本发布时同步 --- ## 🔗 相关资源 - **官网**: https://www.dolphindb.com - **文档中心**: https://docs.dolphindb.cn - **社区论坛**: https://community.dolphindb.com - **GitHub**: https://github.com/dolphindb --- **Generated by Skill Creator v2.0** | 优化时间: 2026-01-22

path: CATALOG.md
content: # DolphinDB 技术文档完整目录

本目录包含所有1490个技术文档的完整索引，按功能分类组织。

---

## API与连接器 (1个文档)

1. [连接器 & API](references/doc_5576.md)

## 其他 (97个文档)

1. [3.00.4](references/doc_1696.md)
2. [DolphinDB 终端](references/doc_940.md)
3. [DolphinDB 脚本语言](references/doc_2263.md)
4. [GUI 客户端](references/doc_5604.md)
5. [Grafana 数据源插件](references/doc_4375.md)
6. [Jupyter Notebook 客户端](references/doc_308.md)
7. [K 线计算](references/doc_914.md)
8. [MCP](references/doc_63.md)
9. [MyTT 指标库](references/doc_8809.md)
10. [SQL Trace](references/doc_9381.md)
11. [SQL 语句](references/doc_3418.md)
12. [VS Code 插件](references/doc_7287.md)
13. [Web 操作手册](references/doc_1063.md)
14. [WorldQuant 101 Alpha 因子指标库](references/doc_5642.md)
15. [[HINT_EXPLAIN]](references/doc_6564.md)
16. [alter](references/doc_6970.md)
17. [any/all](references/doc_5822.md)
18. [asof join](references/doc_1954.md)
19. [between](references/doc_8055.md)
20. [case](references/doc_2892.md)
21. [cgroup by](references/doc_9598.md)
22. [coalesce](references/doc_7780.md)
23. [context by](references/doc_8101.md)
24. [create](references/doc_6767.md)
25. [cross join](references/doc_3711.md)
26. [delete](references/doc_4815.md)
27. [distinct](references/doc_5546.md)
28. [drop](references/doc_8552.md)
29. [eachAt(@)](references/doc_4598.md)
30. [easyNSQ 实时行情数据接入功能模块](references/doc_3687.md)
31. [easyTLDataImport 通联历史数据自动化导入功能模块](references/doc_8753.md)
32. [equi join](references/doc_1996.md)
33. [exec](references/doc_4344.md)
34. [exists](references/doc_3011.md)
35. [full join/full outer join](references/doc_3114.md)
36. [getTraces](references/doc_7228.md)
37. [group by](references/doc_2397.md)
38. [having](references/doc_1523.md)
39. [in](references/doc_8823.md)
40. [inner join](references/doc_7840.md)
41. [insert into](references/doc_23.md)
42. [interval](references/doc_6760.md)
43. [is null](references/doc_2649.md)
44. [left join/left outer join](references/doc_3462.md)
45. [like/LIKE](references/doc_876.md)
46. [limit](references/doc_433.md)
47. [map](references/doc_3411.md)
48. [module](references/doc_9647.md)
49. [notBetween/NOTBETWEEN](references/doc_5841.md)
50. [notIn/NOTIN](references/doc_9663.md)
51. [notLike/NOTLIKE](references/doc_2080.md)
52. [order by](references/doc_9131.md)
53. [partition](references/doc_4603.md)
54. [pivot by](references/doc_3372.md)
55. [prefix join](references/doc_7911.md)
56. [right join/right outer join](references/doc_254.md)
57. [sample](references/doc_9651.md)
58. [select](references/doc_8438.md)
59. [setTraceMode](references/doc_9159.md)
60. [share](references/doc_7878.md)
61. [timer](references/doc_7988.md)
62. [top](references/doc_2220.md)
63. [union/union all](references/doc_6805.md)
64. [update](references/doc_8103.md)
65. [use](references/doc_9665.md)
66. [viewTraceInfo](references/doc_8520.md)
67. [where](references/doc_7893.md)
68. [window join](references/doc_2997.md)
69. [with](references/doc_3907.md)
70. [交互编程](references/doc_8969.md)
71. [交易日历](references/doc_7520.md)
72. [关于 DolphinDB](references/doc_1201.md)
73. [功能配置](references/doc_2337.md)
74. [参数配置](references/doc_8706.md)
75. [国泰君安 191 Alpha 因子库](references/doc_2627.md)
76. [基于 DataX 的 DolphinDB 数据导入工具](references/doc_8011.md)
77. [基于 DolphinDB 的多因子风险模型实践](references/doc_4409.md)
78. [多范式编程](references/doc_2274.md)
79. [实时检测传感器状态变化](references/doc_3544.md)
80. [建库建表](references/doc_4421.md)
81. [异步复制](references/doc_6436.md)
82. [快速上手](references/doc_2977.md)
83. [技术分析（Technical Analysis）指标库](references/doc_3964.md)
84. [插件](references/doc_5126.md)
85. [操作手册](references/doc_1958.md)
86. [故障排查](references/doc_5020.md)
87. [数据备份以及恢复 （1.30.20/2.00.8及之后版本）](references/doc_5013.md)
88. [数据导入方法](references/doc_8009.md)
89. [数据导入最容易忽略的十个细节](references/doc_7191.md)
90. [数据迁移方法](references/doc_7739.md)
91. [模块](references/doc_5922.md)
92. [物联网应用范例](references/doc_3592.md)
93. [用户权限管理](references/doc_4723.md)
94. [第三方工具](references/doc_7388.md)
95. [编程语言](references/doc_5868.md)
96. [量化金融范例](references/doc_7605.md)
97. [错误代码](references/doc_8642.md)

## 函数参考/SQL函数 (41个文档)

1. [addGroupMember](references/doc_6058.md)
2. [appendForJoin](references/doc_3716.md)
3. [createAsofJoinEngine](references/doc_5102.md)
4. [createEqualJoinEngine](references/doc_5767.md)
5. [createEquiJoinEngine](references/doc_9579.md)
6. [createGroup](references/doc_1547.md)
7. [createLeftSemiJoinEngine](references/doc_2105.md)
8. [createLookupJoinEngine](references/doc_6182.md)
9. [createSnapshotJoinEngine](references/doc_5260.md)
10. [createWindowJoinEngine](references/doc_9714.md)
11. [declareStreamingSQLTable](references/doc_670.md)
12. [deleteGroup](references/doc_3750.md)
13. [deleteGroupMember](references/doc_9749.md)
14. [dynamicGroupCumcount](references/doc_9768.md)
15. [dynamicGroupCumsum](references/doc_9774.md)
16. [getGroupAccess](references/doc_9374.md)
17. [getGroupAccessByCluster](references/doc_8570.md)
18. [getGroupListOfAllClusters](references/doc_5910.md)
19. [getMemLimitOfTaskGroupResult](references/doc_3459.md)
20. [getStreamingRaftGroups](references/doc_1950.md)
21. [getUsersByGroupId](references/doc_5598.md)
22. [groupby](references/doc_1278.md)
23. [groups](references/doc_6964.md)
24. [join](references/doc_3875.md)
25. [join!](references/doc_9323.md)
26. [listStreamingSQLTables](references/doc_6330.md)
27. [loadTableBySQL](references/doc_1035.md)
28. [registerStreamingSQL](references/doc_7248.md)
29. [regroup](references/doc_2294.md)
30. [revokeStreamingSQL](references/doc_2965.md)
31. [revokeStreamingSQLTable](references/doc_7239.md)
32. [rowGroupby](references/doc_9202.md)
33. [setMemLimitOfTaskGroupResult](references/doc_7235.md)
34. [sql](references/doc_2146.md)
35. [sqlCol](references/doc_1884.md)
36. [sqlColAlias](references/doc_3910.md)
37. [sqlDS](references/doc_3327.md)
38. [sqlDelete](references/doc_9736.md)
39. [subscribeStreamingSQL](references/doc_7012.md)
40. [ungroup](references/doc_8734.md)
41. [unsubscribeStreamingSQL](references/doc_6412.md)

## 函数参考/其他函数 (1171个文档)

1. [accumulate](references/doc_4194.md)
2. [acf](references/doc_7622.md)
3. [acos](references/doc_8598.md)
4. [acosh](references/doc_9957.md)
5. [adaBoostClassifier](references/doc_4296.md)
6. [adaBoostRegressor](references/doc_5996.md)
7. [add](references/doc_6110.md)
8. [addAccessControl](references/doc_341.md)
9. [addColumn](references/doc_7529.md)
10. [addFunctionView](references/doc_1097.md)
11. [addMCPPrompt](references/doc_7620.md)
12. [addMCPTool](references/doc_4225.md)
13. [addMarketHoliday](references/doc_9639.md)
14. [addMetrics](references/doc_6643.md)
15. [addNode](references/doc_3035.md)
16. [addRangePartitions](references/doc_8862.md)
17. [addReactiveMetrics](references/doc_4728.md)
18. [addValuePartitions](references/doc_5297.md)
19. [addVolumes](references/doc_6037.md)
20. [adfuller](references/doc_4009.md)
21. [aggrTopN](references/doc_3615.md)
22. [align](references/doc_746.md)
23. [all](references/doc_7368.md)
24. [all](references/doc_9187.md)
25. [amortizingFixedRateBondDirtyPrice](references/doc_9996.md)
26. [and](references/doc_7723.md)
27. [anova](references/doc_2222.md)
28. [any](references/doc_5225.md)
29. [any](references/doc_6917.md)
30. [append!](references/doc_4871.md)
31. [appendMsg](references/doc_475.md)
32. [appendTuple!](references/doc_7470.md)
33. [arima](references/doc_2200.md)
34. [array](references/doc_9034.md)
35. [arrayVector](references/doc_9209.md)
36. [asFreq](references/doc_6538.md)
37. [asin](references/doc_4143.md)
38. [asinh](references/doc_4845.md)
39. [asis](references/doc_7051.md)
40. [asof](references/doc_8367.md)
41. [at](references/doc_1122.md)
42. [atImax](references/doc_3378.md)
43. [atImin](references/doc_9147.md)
44. [atan](references/doc_3785.md)
45. [atanh](references/doc_2155.md)
46. [attributeNames](references/doc_4487.md)
47. [attributeValues](references/doc_8984.md)
48. [avg](references/doc_8128.md)
49. [backup](references/doc_680.md)
50. [backupDB](references/doc_671.md)
51. [backupSettings](references/doc_7159.md)
52. [backupTable](references/doc_3236.md)
53. [bar](references/doc_3597.md)
54. [base64Decode](references/doc_1877.md)
55. [base64Encode](references/doc_7860.md)
56. [beta](references/doc_2893.md)
57. [between](references/doc_5315.md)
58. [bfill!](references/doc_5163.md)
59. [bigarray](references/doc_9333.md)
60. [binsrch](references/doc_1882.md)
61. [bitAnd](references/doc_2310.md)
62. [bitOr](references/doc_2579.md)
63. [bitXor](references/doc_5528.md)
64. [blob](references/doc_890.md)
65. [bondAccrInt](references/doc_3593.md)
66. [bondCalculator](references/doc_2952.md)
67. [bondCashflow](references/doc_289.md)
68. [bondConvexity](references/doc_1194.md)
69. [bondDirtyPrice](references/doc_1849.md)
70. [bondDuration](references/doc_9815.md)
71. [bondFuturesPricer](references/doc_1604.md)
72. [bondInstrumentCalculator](references/doc_5698.md)
73. [bondPricer](references/doc_1851.md)
74. [bondYield](references/doc_1634.md)
75. [bondYieldCurveBuilder](references/doc_9797.md)
76. [bool](references/doc_8859.md)
77. [boxcox](references/doc_3314.md)
78. [brentq](references/doc_7065.md)
79. [brute](references/doc_3842.md)
80. [bucket](references/doc_375.md)
81. [bucketCount](references/doc_2985.md)
82. [businessDay](references/doc_8757.md)
83. [businessMonthBegin](references/doc_731.md)
84. [businessMonthEnd](references/doc_472.md)
85. [businessQuarterBegin](references/doc_5921.md)
86. [businessQuarterEnd](references/doc_889.md)
87. [businessYearBegin](references/doc_3603.md)
88. [businessYearEnd](references/doc_9020.md)
89. [bvls](references/doc_2664.md)
90. [byColumn](references/doc_7197.md)
91. [byRow](references/doc_5227.md)
92. [cacheDS!](references/doc_4284.md)
93. [cacheDSNow](references/doc_4855.md)
94. [cachedTable](references/doc_5286.md)
95. [call](references/doc_9376.md)
96. [callMCPTool](references/doc_3320.md)
97. [cancelConsoleJob](references/doc_2863.md)
98. [cancelJob](references/doc_3576.md)
99. [cancelRecoveryTask](references/doc_5324.md)
100. [cast](references/doc_1838.md)
101. [cbrt](references/doc_907.md)
102. [cdfBeta](references/doc_2190.md)
103. [cdfBinomial](references/doc_2881.md)
104. [cdfChiSquare](references/doc_6341.md)
105. [cdfF](references/doc_5480.md)
106. [cdfGamma](references/doc_8652.md)
107. [cdfKolmogorov](references/doc_1877.md)
108. [cdfNormal](references/doc_5523.md)
109. [cdfPoisson](references/doc_2123.md)
110. [cdfStudent](references/doc_1943.md)
111. [cdfUniform](references/doc_3610.md)
112. [cdfWeibull](references/doc_5001.md)
113. [cdfZipf](references/doc_7491.md)
114. [cds](references/doc_6976.md)
115. [ceil](references/doc_6315.md)
116. [cell](references/doc_3218.md)
117. [cells](references/doc_5400.md)
118. [changePwd](references/doc_7551.md)
119. [char](references/doc_9257.md)
120. [charAt](references/doc_5103.md)
121. [checkBackup](references/doc_5437.md)
122. [chiSquareTest](references/doc_4738.md)
123. [cholesky](references/doc_3051.md)
124. [clear!](references/doc_9293.md)
125. [clearAllCache](references/doc_1062.md)
126. [clearAllIOTDBLatestKeyCache](references/doc_4821.md)
127. [clearAllTSDBSymbolBaseCache](references/doc_3020.md)
128. [clearCachedModules](references/doc_6249.md)
129. [clearComputeNodeCache](references/doc_4942.md)
130. [clearComputeNodeDiskCache](references/doc_9650.md)
131. [clearDSCache!](references/doc_9221.md)
132. [clearDSCacheNow](references/doc_6957.md)
133. [clearTablePersistence](references/doc_527.md)
134. [clip](references/doc_5522.md)
135. [clip!](references/doc_8110.md)
136. [close](references/doc_3795.md)
137. [closeSessions](references/doc_4666.md)
138. [coevent](references/doc_4413.md)
139. [coint](references/doc_4923.md)
140. [col](references/doc_8330.md)
141. [cols](references/doc_1472.md)
142. [columnNames](references/doc_2835.md)
143. [complex](references/doc_4711.md)
144. [compose](references/doc_9113.md)
145. [compress](references/doc_5266.md)
146. [concat](references/doc_1359.md)
147. [concatMatrix](references/doc_9521.md)
148. [condValueAtRisk](references/doc_8018.md)
149. [conditionalFilter](references/doc_6856.md)
150. [conditionalIterate](references/doc_5302.md)
151. [constantDesc](references/doc_3117.md)
152. [contextCount](references/doc_7768.md)
153. [contextSum](references/doc_5411.md)
154. [contextSum2](references/doc_7782.md)
155. [contextby](references/doc_1821.md)
156. [convertEncode](references/doc_2383.md)
157. [convertExcelFormula](references/doc_9972.md)
158. [convertTZ](references/doc_4165.md)
159. [convertibleFixedRateBondDirtyPrice](references/doc_653.md)
160. [copy](references/doc_8982.md)
161. [copyReplicas](references/doc_5936.md)
162. [cos](references/doc_1141.md)
163. [cosh](references/doc_5230.md)
164. [count](references/doc_9307.md)
165. [countNanInf](references/doc_3453.md)
166. [covar](references/doc_1885.md)
167. [covarMatrix](references/doc_7493.md)
168. [crc32](references/doc_7492.md)
169. [createAnomalyDetectionEngine](references/doc_7930.md)
170. [createCrossSectionalEngine](references/doc_2668.md)
171. [createCryptoOrderBookEngine](references/doc_6888.md)
172. [createDimensionTable](references/doc_8050.md)
173. [createDistributedInMemoryTable](references/doc_3793.md)
174. [createIPCInMemoryTable](references/doc_2908.md)
175. [createOrderBookSnapshotEngine](references/doc_8948.md)
176. [createPartitionedTable](references/doc_4130.md)
177. [createRuleEngine](references/doc_6104.md)
178. [createSchema](references/doc_5694.md)
179. [createSessionWindowEngine](references/doc_3860.md)
180. [createStreamDispatchEngine](references/doc_8687.md)
181. [createTable](references/doc_4985.md)
182. [createUser](references/doc_3752.md)
183. [crmwCBond](references/doc_7967.md)
184. [cross](references/doc_6113.md)
185. [cubicHermiteSplineFit](references/doc_8033.md)
186. [cubicSpline](references/doc_9445.md)
187. [cubicSplinePredict](references/doc_1266.md)
188. [cumPositiveStreak](references/doc_8859.md)
189. [cumavg](references/doc_3387.md)
190. [cumbeta](references/doc_4052.md)
191. [cumcount](references/doc_9546.md)
192. [cumcovar](references/doc_5870.md)
193. [cumfirstNot](references/doc_2480.md)
194. [cumlastNot](references/doc_1811.md)
195. [cummax](references/doc_2959.md)
196. [cummdd](references/doc_2506.md)
197. [cummed](references/doc_3262.md)
198. [cummin](references/doc_7760.md)
199. [cumnunique](references/doc_4185.md)
200. [cumpercentile](references/doc_8468.md)
201. [cumprod](references/doc_3882.md)
202. [cumrank](references/doc_5636.md)
203. [cumsum](references/doc_8027.md)
204. [cumsum2](references/doc_8852.md)
205. [cumsum3](references/doc_3240.md)
206. [cumsum4](references/doc_3709.md)
207. [cumvar](references/doc_6261.md)
208. [cumvarp](references/doc_1596.md)
209. [cumwavg](references/doc_6393.md)
210. [cumwsum](references/doc_4352.md)
211. [curvePredict](references/doc_6663.md)
212. [cut](references/doc_7529.md)
213. [cutPoints](references/doc_3300.md)
214. [dailyAlignedBar](references/doc_5028.md)
215. [database](references/doc_8454.md)
216. [dayOfMonth](references/doc_2529.md)
217. [dayOfWeek](references/doc_5525.md)
218. [dayOfYear](references/doc_3732.md)
219. [daysInMonth](references/doc_8702.md)
220. [decimal128](references/doc_4282.md)
221. [decimal32](references/doc_6147.md)
222. [decimal64](references/doc_4575.md)
223. [decimalFormat](references/doc_6496.md)
224. [decimalMultiply](references/doc_956.md)
225. [decodeShortGenomeSeq](references/doc_9691.md)
226. [decompress](references/doc_10.md)
227. [deepCopy](references/doc_8321.md)
228. [defined](references/doc_1440.md)
229. [defs](references/doc_1993.md)
230. [deg2rad](references/doc_9530.md)
231. [deleteReplicas](references/doc_104.md)
232. [deleteScheduledJob](references/doc_3229.md)
233. [deleteUser](references/doc_2043.md)
234. [deltas](references/doc_4478.md)
235. [dema](references/doc_4590.md)
236. [demean](references/doc_1430.md)
237. [denseRank](references/doc_8842.md)
238. [deny](references/doc_4788.md)
239. [derivative](references/doc_3612.md)
240. [det](references/doc_5003.md)
241. [diag](references/doc_9661.md)
242. [dict](references/doc_3189.md)
243. [differentialEvolution](references/doc_6263.md)
244. [digitize](references/doc_8451.md)
245. [disableActivePartition](references/doc_2208.md)
246. [disableQueryMonitor](references/doc_4619.md)
247. [disableResourceTracking](references/doc_6718.md)
248. [disableTSDBAsyncSorting](references/doc_4171.md)
249. [disableTablePersistence](references/doc_4605.md)
250. [distance](references/doc_1102.md)
251. [distinct](references/doc_3289.md)
252. [div](references/doc_9582.md)
253. [dividedDifference](references/doc_2306.md)
254. [dot](references/doc_1931.md)
255. [double](references/doc_8763.md)
256. [drop](references/doc_9525.md)
257. [dropAggregator](references/doc_4054.md)
258. [dropColumns!](references/doc_8161.md)
259. [dropDatabase](references/doc_8239.md)
260. [dropDistributedInMemoryTable](references/doc_6069.md)
261. [dropFunctionView](references/doc_6687.md)
262. [dropIPCInMemoryTable](references/doc_1296.md)
263. [dropMCPPrompt](references/doc_7688.md)
264. [dropMCPTool](references/doc_3803.md)
265. [dropPartition](references/doc_3248.md)
266. [dropSchema](references/doc_355.md)
267. [dropStreamEngine](references/doc_4683.md)
268. [dropStreamTable](references/doc_9693.md)
269. [dropTable](references/doc_2686.md)
270. [dropna](references/doc_6586.md)
271. [dumpHeapSample](references/doc_9493.md)
272. [duration](references/doc_3432.md)
273. [each](references/doc_2801.md)
274. [eachLeft](references/doc_2617.md)
275. [eachPost](references/doc_3033.md)
276. [eachPre](references/doc_6367.md)
277. [eachRight](references/doc_1350.md)
278. [eig](references/doc_7260.md)
279. [elasticNet](references/doc_8883.md)
280. [elasticNetCV](references/doc_5573.md)
281. [ema](references/doc_4081.md)
282. [enableActivePartition](references/doc_3810.md)
283. [enableQueryMonitor](references/doc_5080.md)
284. [enableResourceTracking](references/doc_4105.md)
285. [enableTSDBAsyncSorting](references/doc_9177.md)
286. [enableTableCachePurge](references/doc_7533.md)
287. [enableTablePersistence](references/doc_4898.md)
288. [enableTableShareAndCachePurge](references/doc_6156.md)
289. [enableTableShareAndPersistence](references/doc_9573.md)
290. [encodeShortGenomeSeq](references/doc_2444.md)
291. [endsWith](references/doc_9737.md)
292. [enlist](references/doc_5991.md)
293. [eq](references/doc_5533.md)
294. [eqFloat](references/doc_8747.md)
295. [eqObj](references/doc_6057.md)
296. [eqPercent](references/doc_55.md)
297. [erase!](references/doc_5721.md)
298. [esd](references/doc_3996.md)
299. [euclidean](references/doc_1985.md)
300. [eval](references/doc_1305.md)
301. [ewmCov](references/doc_4381.md)
302. [ewmMean](references/doc_4800.md)
303. [ewmVar](references/doc_8786.md)
304. [exists](references/doc_3345.md)
305. [existsDatabase](references/doc_7864.md)
306. [existsPartition](references/doc_807.md)
307. [existsStreamTable](references/doc_9164.md)
308. [existsSubscriptionTopic](references/doc_193.md)
309. [existsTable](references/doc_7819.md)
310. [extractInstrument](references/doc_1617.md)
311. [extractMktData](references/doc_5757.md)
312. [extractTextSchema](references/doc_8182.md)
313. [eye](references/doc_90.md)
314. [fTest](references/doc_9113.md)
315. [ffill](references/doc_9752.md)
316. [ffill!](references/doc_5296.md)
317. [fflush](references/doc_5040.md)
318. [file](references/doc_7286.md)
319. [files](references/doc_9225.md)
320. [fill!](references/doc_4904.md)
321. [find](references/doc_4511.md)
322. [first](references/doc_4857.md)
323. [firstHit](references/doc_2936.md)
324. [firstNot](references/doc_6952.md)
325. [fixedLengthArrayVector](references/doc_4570.md)
326. [flatten](references/doc_433.md)
327. [flip](references/doc_2998.md)
328. [floatingRateBondDirtyPrice](references/doc_450.md)
329. [floor](references/doc_853.md)
330. [flushComputeNodeMemCache](references/doc_9492.md)
331. [flushOLAPCache](references/doc_1661.md)
332. [flushTSDBCache](references/doc_2843.md)
333. [fmin](references/doc_7913.md)
334. [fminBFGS](references/doc_2853.md)
335. [fminLBFGSB](references/doc_7592.md)
336. [fminNCG](references/doc_1382.md)
337. [fminSLSQP](references/doc_8156.md)
338. [forceTriggerOrderBookSnapshot](references/doc_47.md)
339. [form](references/doc_6619.md)
340. [format](references/doc_3649.md)
341. [fromJson](references/doc_454.md)
342. [fromUTF8](references/doc_7170.md)
343. [funcByName](references/doc_391.md)
344. [fxEuropeanOptionPricer](references/doc_2650.md)
345. [fxForwardPricer](references/doc_2903.md)
346. [fxSwapPricer](references/doc_4707.md)
347. [fxVolatilitySurfaceBuilder](references/doc_8691.md)
348. [fy5253](references/doc_3267.md)
349. [fy5253Quarter](references/doc_1540.md)
350. [garch](references/doc_216.md)
351. [gaussianKde](references/doc_9061.md)
352. [gaussianKdePredict](references/doc_4768.md)
353. [gaussianNB](references/doc_5847.md)
354. [ge](references/doc_3292.md)
355. [gema](references/doc_9230.md)
356. [genShortGenomeSeq](references/doc_7667.md)
357. [getActiveMaster](references/doc_8857.md)
358. [getAggregator](references/doc_6425.md)
359. [getAllClusters](references/doc_9375.md)
360. [getAllDBGranularity](references/doc_1097.md)
361. [getAllDBs](references/doc_1249.md)
362. [getAuthenticatedUsers](references/doc_1329.md)
363. [getBackupList](references/doc_2979.md)
364. [getBackupMeta](references/doc_187.md)
365. [getChunkPath](references/doc_1110.md)
366. [getChunksMeta](references/doc_3156.md)
367. [getClusterDFSDatabases](references/doc_9280.md)
368. [getClusterDFSTables](references/doc_5956.md)
369. [getClusterPerf](references/doc_4159.md)
370. [getClusterVolumeUsage](references/doc_8273.md)
371. [getCompletedQueries](references/doc_5961.md)
372. [getComputeNodeCacheDetails](references/doc_7777.md)
373. [getComputeNodeCachingDelay](references/doc_4964.md)
374. [getConfig](references/doc_1459.md)
375. [getConfigure](references/doc_2939.md)
376. [getConnections](references/doc_3839.md)
377. [getConsoleJobs](references/doc_5857.md)
378. [getCurrentSessionAndUser](references/doc_15.md)
379. [getDFSDatabases](references/doc_6216.md)
380. [getDFSDatabasesByOwner](references/doc_7577.md)
381. [getDatabasesByCluster](references/doc_8398.md)
382. [getDynamicConfig](references/doc_8342.md)
383. [getEnv](references/doc_9130.md)
384. [getHomeDir](references/doc_7854.md)
385. [getInstrumentCalendar](references/doc_9448.md)
386. [getInstrumentCoupon](references/doc_6267.md)
387. [getInstrumentCreditRating](references/doc_5604.md)
388. [getInstrumentCurrency](references/doc_8215.md)
389. [getInstrumentCurrencyPair](references/doc_3363.md)
390. [getInstrumentDayCountConvention](references/doc_1219.md)
391. [getInstrumentDelivery](references/doc_1231.md)
392. [getInstrumentDirection](references/doc_5621.md)
393. [getInstrumentFarDelivery](references/doc_890.md)
394. [getInstrumentFarStrike](references/doc_4489.md)
395. [getInstrumentField](references/doc_3779.md)
396. [getInstrumentFixedDayCountConvention](references/doc_8989.md)
397. [getInstrumentFixedRate](references/doc_1865.md)
398. [getInstrumentFloatingDayCountConvention](references/doc_6250.md)
399. [getInstrumentFrequency](references/doc_6570.md)
400. [getInstrumentIborIndex](references/doc_1552.md)
401. [getInstrumentInstrumentId](references/doc_990.md)
402. [getInstrumentIssuePrice](references/doc_2931.md)
403. [getInstrumentKeys](references/doc_2235.md)
404. [getInstrumentMaturity](references/doc_7703.md)
405. [getInstrumentNearDelivery](references/doc_4091.md)
406. [getInstrumentNearStrike](references/doc_3180.md)
407. [getInstrumentNominal](references/doc_2251.md)
408. [getInstrumentNominalCouponRate](references/doc_2746.md)
409. [getInstrumentNotional](references/doc_8685.md)
410. [getInstrumentPayReceive](references/doc_4575.md)
411. [getInstrumentPayoffType](references/doc_8536.md)
412. [getInstrumentRate](references/doc_333.md)
413. [getInstrumentSettlement](references/doc_3874.md)
414. [getInstrumentSpread](references/doc_4908.md)
415. [getInstrumentStart](references/doc_7787.md)
416. [getInstrumentStrike](references/doc_1140.md)
417. [getInstrumentSubType](references/doc_4593.md)
418. [getInstrumentUnderlying](references/doc_5241.md)
419. [getJobMessage](references/doc_8533.md)
420. [getLeftStream](references/doc_7328.md)
421. [getLoadedPlugins](references/doc_1535.md)
422. [getMCPPrompt](references/doc_7490.md)
423. [getMarketCalendar](references/doc_5452.md)
424. [getMemLimitOfAllTempResults](references/doc_5501.md)
425. [getMemLimitOfQueryResult](references/doc_6624.md)
426. [getNodeAlias](references/doc_620.md)
427. [getNodeHost](references/doc_9677.md)
428. [getNodePort](references/doc_9768.md)
429. [getNodeType](references/doc_9138.md)
430. [getOLAPCacheEngineSize](references/doc_6935.md)
431. [getOLAPCachedSymbolBaseMemSize](references/doc_6554.md)
432. [getOS](references/doc_2911.md)
433. [getOSBit](references/doc_1605.md)
434. [getOauthClientSecret](references/doc_6844.md)
435. [getPKEYMetaData](references/doc_6361.md)
436. [getPerf](references/doc_7193.md)
437. [getPersistenceMeta](references/doc_56.md)
438. [getPrefetchComputeNodeData](references/doc_7054.md)
439. [getReactiveMetrics](references/doc_4312.md)
440. [getRecentJobs](references/doc_9166.md)
441. [getRecentSlaveReplicationInfo](references/doc_1083.md)
442. [getRecoveryWorkerNum](references/doc_8181.md)
443. [getRightStream](references/doc_3735.md)
444. [getRules](references/doc_7856.md)
445. [getRunningQueries](references/doc_5941.md)
446. [getScheduledJobs](references/doc_4223.md)
447. [getSchemasByCluster](references/doc_5542.md)
448. [getSnapshotMsgId](references/doc_560.md)
449. [getStreamEngine](references/doc_312.md)
450. [getStreamEngineList](references/doc_2136.md)
451. [getStreamTableCacheOffset](references/doc_354.md)
452. [getStreamTableFilterColumn](references/doc_4104.md)
453. [getStreamTables](references/doc_4469.md)
454. [getStreamingLeader](references/doc_9657.md)
455. [getSubscriptionTopic](references/doc_8179.md)
456. [getSupportBundle](references/doc_3525.md)
457. [getSystemCpuUsage](references/doc_1470.md)
458. [getSystemLoadAvg](references/doc_8499.md)
459. [getTSDBCachedSymbolBaseMemSize](references/doc_4164.md)
460. [getTSDBMetaData](references/doc_2929.md)
461. [getTableAccessByCluster](references/doc_3805.md)
462. [getTableSchemaByCluster](references/doc_2992.md)
463. [getTables](references/doc_1918.md)
464. [getTablesByCluster](references/doc_7044.md)
465. [getTablesOfAllClusters](references/doc_6595.md)
466. [getTablet](references/doc_8603.md)
467. [getTabletsMeta](references/doc_9765.md)
468. [getTopicProcessedOffset](references/doc_7239.md)
469. [getUnresolvedTxn](references/doc_5611.md)
470. [getUserAccess](references/doc_7833.md)
471. [getUserAccessByCluster](references/doc_505.md)
472. [getUserHardwareUsage](references/doc_3918.md)
473. [getUserList](references/doc_2699.md)
474. [getUserListOfAllClusters](references/doc_8703.md)
475. [getUserTableAccessRecords](references/doc_5651.md)
476. [glm](references/doc_3431.md)
477. [gmd5](references/doc_7354.md)
478. [gmm](references/doc_2072.md)
479. [gram](references/doc_9018.md)
480. [gramSchmidt](references/doc_4500.md)
481. [grant](references/doc_549.md)
482. [gt](references/doc_5873.md)
483. [haStreamTable](references/doc_450.md)
484. [hasNull](references/doc_7039.md)
485. [hashBucket](references/doc_4660.md)
486. [head](references/doc_1407.md)
487. [hex](references/doc_1046.md)
488. [highDouble](references/doc_6120.md)
489. [highLong](references/doc_8936.md)
490. [histogram2d](references/doc_827.md)
491. [hmac](references/doc_5170.md)
492. [hour](references/doc_6301.md)
493. [hourOfDay](references/doc_9223.md)
494. [ifNull](references/doc_9132.md)
495. [ifValid](references/doc_8376.md)
496. [ifirstHit](references/doc_8504.md)
497. [ifirstNot](references/doc_7143.md)
498. [iif](references/doc_6102.md)
499. [ilastNot](references/doc_4960.md)
500. [ilike](references/doc_1968.md)
501. [imax](references/doc_399.md)
502. [imaxLast](references/doc_6811.md)
503. [imin](references/doc_1207.md)
504. [iminLast](references/doc_6428.md)
505. [imr](references/doc_5716.md)
506. [in](references/doc_7463.md)
507. [indexedSeries](references/doc_6858.md)
508. [indexedTable](references/doc_3801.md)
509. [initcap](references/doc_9355.md)
510. [installPlugin](references/doc_7820.md)
511. [instrumentPricer](references/doc_5208.md)
512. [int](references/doc_9486.md)
513. [int128](references/doc_280.md)
514. [integral](references/doc_4400.md)
515. [interpolate](references/doc_9448.md)
516. [intersection](references/doc_6738.md)
517. [invBeta](references/doc_2943.md)
518. [invBinomial](references/doc_1372.md)
519. [invChiSquare](references/doc_5336.md)
520. [invF](references/doc_5138.md)
521. [invGamma](references/doc_6071.md)
522. [invNormal](references/doc_2628.md)
523. [invPoisson](references/doc_6682.md)
524. [invStudent](references/doc_4981.md)
525. [invUniform](references/doc_6927.md)
526. [invWeibull](references/doc_725.md)
527. [inverse](references/doc_1571.md)
528. [ipaddr](references/doc_9336.md)
529. [irCrossCurrencyCurveBuilder](references/doc_8102.md)
530. [irDepositPricer](references/doc_1939.md)
531. [irFixedFloatingSwapPricer](references/doc_2900.md)
532. [irSingleCurrencyCurveBuilder](references/doc_8864.md)
533. [irs](references/doc_516.md)
534. [isAlNum](references/doc_7784.md)
535. [isAlpha](references/doc_2332.md)
536. [isControllerInitialized](references/doc_671.md)
537. [isDataNodeInitialized](references/doc_7715.md)
538. [isDigit](references/doc_6511.md)
539. [isDuplicated](references/doc_1645.md)
540. [isIndexedMatrix](references/doc_2291.md)
541. [isIndexedSeries](references/doc_8320.md)
542. [isLeapYear](references/doc_4077.md)
543. [isLower](references/doc_1217.md)
544. [isMonotonic](references/doc_1364.md)
545. [isMonotonicDecreasing](references/doc_7585.md)
546. [isMonotonicIncreasing](references/doc_2965.md)
547. [isMonthEnd](references/doc_2792.md)
548. [isMonthStart](references/doc_1260.md)
549. [isNanInf](references/doc_1661.md)
550. [isNothing](references/doc_7780.md)
551. [isNull](references/doc_7042.md)
552. [isNumeric](references/doc_7322.md)
553. [isOrderedDict](references/doc_7243.md)
554. [isPeak](references/doc_2424.md)
555. [isQuarterEnd](references/doc_55.md)
556. [isQuarterStart](references/doc_4956.md)
557. [isSorted](references/doc_7968.md)
558. [isSpace](references/doc_936.md)
559. [isTitle](references/doc_7043.md)
560. [isUpper](references/doc_1327.md)
561. [isValid](references/doc_4337.md)
562. [isValley](references/doc_8602.md)
563. [isVoid](references/doc_2666.md)
564. [isYearEnd](references/doc_3642.md)
565. [isYearStart](references/doc_3451.md)
566. [isort](references/doc_1581.md)
567. [isort!](references/doc_8372.md)
568. [isortTop](references/doc_7984.md)
569. [iterate](references/doc_8373.md)
570. [jsonExtract](references/doc_2501.md)
571. [kama](references/doc_8548.md)
572. [kendall](references/doc_8445.md)
573. [kernelRidge](references/doc_1368.md)
574. [keyedStreamTable](references/doc_7151.md)
575. [keyedTable](references/doc_346.md)
576. [keys](references/doc_2841.md)
577. [kmeans](references/doc_1610.md)
578. [knn](references/doc_2316.md)
579. [kroghInterpolate](references/doc_5733.md)
580. [kroghInterpolateFit](references/doc_8252.md)
581. [ksTest](references/doc_5593.md)
582. [kurtosis](references/doc_469.md)
583. [lasso](references/doc_1285.md)
584. [lassoBasic](references/doc_7984.md)
585. [lassoCV](references/doc_1069.md)
586. [last](references/doc_366.md)
587. [lastNot](references/doc_2916.md)
588. [lastWeekOfMonth](references/doc_2025.md)
589. [latestIndexedTable](references/doc_2544.md)
590. [latestKeyedStreamTable](references/doc_341.md)
591. [latestKeyedTable](references/doc_5469.md)
592. [le](references/doc_2187.md)
593. [left](references/doc_2275.md)
594. [lfill](references/doc_5776.md)
595. [lfill!](references/doc_8962.md)
596. [license](references/doc_4279.md)
597. [like](references/doc_6354.md)
598. [linearInterpolateFit](references/doc_6994.md)
599. [linprog](references/doc_2720.md)
600. [listAllMarkets](references/doc_9784.md)
601. [listMCPPrompts](references/doc_8801.md)
602. [listMCPTools](references/doc_7990.md)
603. [listPluginsByCluster](references/doc_7720.md)
604. [listRemotePlugins](references/doc_829.md)
605. [loadBackup](references/doc_7793.md)
606. [loadDistributedInMemoryTable](references/doc_2563.md)
607. [loadIPCInMemoryTable](references/doc_6492.md)
608. [loadModel](references/doc_6286.md)
609. [loadModule](references/doc_4097.md)
610. [loadModuleFromScript](references/doc_407.md)
611. [loadMvccTable](references/doc_7013.md)
612. [loadNpy](references/doc_3161.md)
613. [loadNpz](references/doc_8119.md)
614. [loadPlugin](references/doc_157.md)
615. [loadRecord](references/doc_7421.md)
616. [loadTable](references/doc_9750.md)
617. [loadText](references/doc_6511.md)
618. [loadTextEx](references/doc_3368.md)
619. [loadVocab](references/doc_8767.md)
620. [loc](references/doc_2358.md)
621. [loess](references/doc_9747.md)
622. [long](references/doc_2663.md)
623. [loop](references/doc_9111.md)
624. [lowDouble](references/doc_4066.md)
625. [lowLong](references/doc_8499.md)
626. [lowRange](references/doc_8916.md)
627. [lower](references/doc_3426.md)
628. [lowerBound](references/doc_6023.md)
629. [lpad](references/doc_9502.md)
630. [lshift](references/doc_1179.md)
631. [lt](references/doc_2488.md)
632. [ltrim](references/doc_5805.md)
633. [lu](references/doc_863.md)
634. [mLowRange](references/doc_4089.md)
635. [mTopRange](references/doc_5928.md)
636. [ma](references/doc_9939.md)
637. [mad](references/doc_9280.md)
638. [makeCall](references/doc_2875.md)
639. [makeKey](references/doc_7082.md)
640. [makeSortedKey](references/doc_304.md)
641. [makeUnifiedCall](references/doc_2185.md)
642. [mannWhitneyUTest](references/doc_667.md)
643. [manova](references/doc_391.md)
644. [mask](references/doc_4508.md)
645. [matrix](references/doc_9550.md)
646. [mavg](references/doc_3636.md)
647. [mavgTopN](references/doc_6657.md)
648. [max](references/doc_4436.md)
649. [maxDrawdown](references/doc_5582.md)
650. [maxIgnoreNull](references/doc_911.md)
651. [maxPositiveStreak](references/doc_9091.md)
652. [mbeta](references/doc_8672.md)
653. [mbetaTopN](references/doc_3841.md)
654. [mcount](references/doc_9661.md)
655. [mcovar](references/doc_7001.md)
656. [mcovarTopN](references/doc_9069.md)
657. [md5](references/doc_6762.md)
658. [mdd](references/doc_9504.md)
659. [mean](references/doc_6143.md)
660. [med](references/doc_5793.md)
661. [mem](references/doc_3571.md)
662. [member](references/doc_2101.md)
663. [memberModify!](references/doc_9220.md)
664. [merge](references/doc_3403.md)
665. [mfirst](references/doc_1081.md)
666. [microsecond](references/doc_3540.md)
667. [mifirstNot](references/doc_2797.md)
668. [migrate](references/doc_7615.md)
669. [milastNot](references/doc_4544.md)
670. [millisecond](references/doc_5852.md)
671. [mimax](references/doc_8253.md)
672. [mimaxLast](references/doc_1552.md)
673. [mimin](references/doc_860.md)
674. [miminLast](references/doc_1604.md)
675. [min](references/doc_3682.md)
676. [minIgnoreNull](references/doc_2785.md)
677. [minute](references/doc_399.md)
678. [minuteOfHour](references/doc_8402.md)
679. [mkdir](references/doc_9369.md)
680. [mkurtosis](references/doc_6525.md)
681. [mlast](references/doc_3346.md)
682. [mlastNot](references/doc_3975.md)
683. [mmad](references/doc_632.md)
684. [mmax](references/doc_5243.md)
685. [mmaxPositiveStreak](references/doc_196.md)
686. [mmed](references/doc_3289.md)
687. [mmin](references/doc_7769.md)
688. [mmse](references/doc_5636.md)
689. [mod](references/doc_6754.md)
690. [mode](references/doc_7022.md)
691. [month](references/doc_9546.md)
692. [monthBegin](references/doc_5356.md)
693. [monthEnd](references/doc_454.md)
694. [monthOfYear](references/doc_2090.md)
695. [move](references/doc_9304.md)
696. [moveChunksAcrossVolume](references/doc_3611.md)
697. [moveHotDataToColdVolume](references/doc_6445.md)
698. [moveReplicas](references/doc_821.md)
699. [moving](references/doc_6447.md)
700. [movingTopNIndex](references/doc_5829.md)
701. [movingWindowIndex](references/doc_2525.md)
702. [mpercentile](references/doc_4120.md)
703. [mpercentileTopN](references/doc_431.md)
704. [mprod](references/doc_7663.md)
705. [mr](references/doc_1842.md)
706. [mrank](references/doc_8189.md)
707. [mskew](references/doc_2713.md)
708. [mslr](references/doc_7621.md)
709. [msum](references/doc_2722.md)
710. [msum2](references/doc_9235.md)
711. [msumTopN](references/doc_198.md)
712. [mul](references/doc_9832.md)
713. [multiTableRepartitionDS](references/doc_8907.md)
714. [multinomialNB](references/doc_6426.md)
715. [mutualInfo](references/doc_6774.md)
716. [mvar](references/doc_5376.md)
717. [mvarTopN](references/doc_8.md)
718. [mvarp](references/doc_4867.md)
719. [mvarpTopN](references/doc_1438.md)
720. [mvccTable](references/doc_3972.md)
721. [mwavg](references/doc_1309.md)
722. [mwsum](references/doc_8943.md)
723. [mwsumTopN](references/doc_595.md)
724. [nanInfFill](references/doc_1768.md)
725. [nanosecond](references/doc_6470.md)
726. [ne](references/doc_8690.md)
727. [neg](references/doc_6183.md)
728. [neville](references/doc_7930.md)
729. [next](references/doc_9334.md)
730. [norm](references/doc_1506.md)
731. [normal](references/doc_3659.md)
732. [not](references/doc_5850.md)
733. [now](references/doc_2287.md)
734. [ns](references/doc_8719.md)
735. [nss](references/doc_9184.md)
736. [nssPredict](references/doc_9254.md)
737. [nullCompare](references/doc_1102.md)
738. [nullFill](references/doc_9275.md)
739. [nullFill!](references/doc_2877.md)
740. [nullIf](references/doc_15.md)
741. [nunique](references/doc_7063.md)
742. [objByName](references/doc_3262.md)
743. [objectChecksum](references/doc_6502.md)
744. [objs](references/doc_1885.md)
745. [ols](references/doc_1601.md)
746. [olsEx](references/doc_1706.md)
747. [oneHot](references/doc_6487.md)
748. [ops 运维函数库](references/doc_9338.md)
749. [optionVolPredict](references/doc_4633.md)
750. [or](references/doc_3568.md)
751. [osqp](references/doc_970.md)
752. [pack](references/doc_9490.md)
753. [pair](references/doc_401.md)
754. [panel](references/doc_1858.md)
755. [parseInstrument](references/doc_1157.md)
756. [parseInt](references/doc_1372.md)
757. [parseInteger](references/doc_5102.md)
758. [parseJsonTable](references/doc_3335.md)
759. [parseMktData](references/doc_261.md)
760. [partial](references/doc_9707.md)
761. [pca](references/doc_2225.md)
762. [pcall](references/doc_9250.md)
763. [pchipInterpolateFit](references/doc_1450.md)
764. [pcross](references/doc_8739.md)
765. [peach](references/doc_8589.md)
766. [percentChange](references/doc_1069.md)
767. [percentile](references/doc_9791.md)
768. [percentileRank](references/doc_244.md)
769. [piecewiseLinFit](references/doc_2007.md)
770. [pipeline](references/doc_2421.md)
771. [pivot](references/doc_5890.md)
772. [ploadText](references/doc_2262.md)
773. [ploop](references/doc_9333.md)
774. [plot](references/doc_8883.md)
775. [plotHist](references/doc_7423.md)
776. [pnodeRun](references/doc_85.md)
777. [point](references/doc_7318.md)
778. [poly1d](references/doc_5955.md)
779. [polyFit](references/doc_4113.md)
780. [polyPredict](references/doc_4810.md)
781. [polynomial](references/doc_7145.md)
782. [pop!](references/doc_2920.md)
783. [portfolioPricer](references/doc_4428.md)
784. [pow](references/doc_1747.md)
785. [predict](references/doc_7645.md)
786. [prev](references/doc_7245.md)
787. [prod](references/doc_6000.md)
788. [publishMCPPrompts](references/doc_3531.md)
789. [publishMCPTools](references/doc_3528.md)
790. [purgeCacheEngine](references/doc_7711.md)
791. [push!](references/doc_6905.md)
792. [pwlfPredict](references/doc_3375.md)
793. [qclp](references/doc_8927.md)
794. [qr](references/doc_2650.md)
795. [quadprog](references/doc_4800.md)
796. [quantile](references/doc_648.md)
797. [quantileSeries](references/doc_9126.md)
798. [quarterBegin](references/doc_8020.md)
799. [quarterEnd](references/doc_9871.md)
800. [rad2deg](references/doc_8025.md)
801. [rand](references/doc_7002.md)
802. [randBeta](references/doc_8637.md)
803. [randBinomial](references/doc_6029.md)
804. [randChiSquare](references/doc_5832.md)
805. [randDiscrete](references/doc_577.md)
806. [randF](references/doc_9617.md)
807. [randGamma](references/doc_9058.md)
808. [randMultivariateNormal](references/doc_6398.md)
809. [randNormal](references/doc_4890.md)
810. [randPoisson](references/doc_5738.md)
811. [randStudent](references/doc_2410.md)
812. [randUniform](references/doc_4252.md)
813. [randWeibull](references/doc_9575.md)
814. [randomForestClassifier](references/doc_5479.md)
815. [randomForestRegressor](references/doc_6711.md)
816. [rank](references/doc_4758.md)
817. [ratio](references/doc_9914.md)
818. [ratios](references/doc_4861.md)
819. [rdp](references/doc_5975.md)
820. [read!](references/doc_3093.md)
821. [readBytes](references/doc_8320.md)
822. [readLine](references/doc_7451.md)
823. [readLines](references/doc_9650.md)
824. [readLines!](references/doc_1826.md)
825. [readObject](references/doc_1022.md)
826. [readRecord!](references/doc_9214.md)
827. [rebalanceChunksAmongDataNodes](references/doc_4486.md)
828. [rebalanceChunksWithinDataNode](references/doc_9768.md)
829. [reciprocal](references/doc_4014.md)
830. [reduce](references/doc_7083.md)
831. [refCount](references/doc_5502.md)
832. [regexCount](references/doc_4416.md)
833. [regexFind](references/doc_8673.md)
834. [regexFindStr](references/doc_1354.md)
835. [regexReplace](references/doc_1048.md)
836. [remoteRun](references/doc_1810.md)
837. [remoteRunCompatible](references/doc_6890.md)
838. [remoteRunWithCompression](references/doc_8238.md)
839. [removeHead!](references/doc_8643.md)
840. [removeNode](references/doc_9919.md)
841. [removeTail!](references/doc_4832.md)
842. [removeTopicOffset](references/doc_4897.md)
843. [rename!](references/doc_800.md)
844. [renameSchema](references/doc_6992.md)
845. [renameTable](references/doc_7830.md)
846. [reorderColumns!](references/doc_3618.md)
847. [repartitionDS](references/doc_2530.md)
848. [repeat](references/doc_7471.md)
849. [replace](references/doc_257.md)
850. [replace!](references/doc_6744.md)
851. [replaceColumn!](references/doc_223.md)
852. [replay](references/doc_7504.md)
853. [replayDS](references/doc_6405.md)
854. [repmat](references/doc_8999.md)
855. [resample](references/doc_7941.md)
856. [resetDBDirMeta](references/doc_3503.md)
857. [resetPwd](references/doc_4303.md)
858. [resetRecoveryWorkerNum](references/doc_3153.md)
859. [reshape](references/doc_2577.md)
860. [residual](references/doc_9542.md)
861. [restore](references/doc_684.md)
862. [restoreDB](references/doc_2450.md)
863. [restoreDislocatedTablet](references/doc_9420.md)
864. [restoreSettings](references/doc_3404.md)
865. [restoreTable](references/doc_5672.md)
866. [resumeRecovery](references/doc_5824.md)
867. [reverse](references/doc_7657.md)
868. [revoke](references/doc_1731.md)
869. [ridge](references/doc_1893.md)
870. [ridgeBasic](references/doc_8543.md)
871. [right](references/doc_7509.md)
872. [rm](references/doc_7416.md)
873. [rmdir](references/doc_4983.md)
874. [rms](references/doc_5126.md)
875. [rolling](references/doc_8385.md)
876. [rollingPanel](references/doc_5107.md)
877. [round](references/doc_4367.md)
878. [row](references/doc_7175.md)
879. [rowAlign](references/doc_614.md)
880. [rowAnd](references/doc_4232.md)
881. [rowAt](references/doc_1043.md)
882. [rowAvg](references/doc_867.md)
883. [rowBeta](references/doc_5573.md)
884. [rowCount](references/doc_1493.md)
885. [rowCovar](references/doc_8137.md)
886. [rowDenseRank](references/doc_2445.md)
887. [rowDot](references/doc_4521.md)
888. [rowEuclidean](references/doc_8265.md)
889. [rowGmd5](references/doc_8655.md)
890. [rowImax](references/doc_824.md)
891. [rowImaxLast](references/doc_6610.md)
892. [rowImin](references/doc_1989.md)
893. [rowIminLast](references/doc_2193.md)
894. [rowKurtosis](references/doc_6257.md)
895. [rowMax](references/doc_2178.md)
896. [rowMin](references/doc_6601.md)
897. [rowMove](references/doc_5549.md)
898. [rowNames](references/doc_2297.md)
899. [rowNext](references/doc_9760.md)
900. [rowNo](references/doc_7538.md)
901. [rowOr](references/doc_2253.md)
902. [rowPrev](references/doc_5531.md)
903. [rowProd](references/doc_9889.md)
904. [rowRank](references/doc_3296.md)
905. [rowSize](references/doc_2048.md)
906. [rowSkew](references/doc_8345.md)
907. [rowSum](references/doc_5938.md)
908. [rowSum2](references/doc_8205.md)
909. [rowTanimoto](references/doc_8878.md)
910. [rowVar](references/doc_6065.md)
911. [rowVarp](references/doc_4173.md)
912. [rowWavg](references/doc_3817.md)
913. [rowWsum](references/doc_3590.md)
914. [rowXor](references/doc_458.md)
915. [rows](references/doc_378.md)
916. [rpad](references/doc_556.md)
917. [rpc](references/doc_9005.md)
918. [rshift](references/doc_561.md)
919. [rtrim](references/doc_7671.md)
920. [saveAsNpy](references/doc_276.md)
921. [saveDatabase](references/doc_2234.md)
922. [saveDualPartition](references/doc_5792.md)
923. [saveModel](references/doc_8731.md)
924. [saveModule](references/doc_8465.md)
925. [savePartition](references/doc_8803.md)
926. [saveTable](references/doc_3984.md)
927. [saveText](references/doc_7878.md)
928. [saveTextFile](references/doc_6055.md)
929. [scheduleJob](references/doc_9382.md)
930. [schema](references/doc_2829.md)
931. [schur](references/doc_3087.md)
932. [scramClientFinal](references/doc_3475.md)
933. [scramClientFirst](references/doc_9159.md)
934. [scs](references/doc_2354.md)
935. [searchK](references/doc_5014.md)
936. [seasonalEsd](references/doc_147.md)
937. [second](references/doc_4914.md)
938. [secondOfMinute](references/doc_7691.md)
939. [seek](references/doc_6642.md)
940. [segment](references/doc_7715.md)
941. [segmentby](references/doc_7469.md)
942. [sem](references/doc_9389.md)
943. [semiMonthBegin](references/doc_8909.md)
944. [semiMonthEnd](references/doc_1134.md)
945. [semiannualBegin](references/doc_7910.md)
946. [semiannualEnd](references/doc_9068.md)
947. [seq](references/doc_8518.md)
948. [sessionWindow](references/doc_7418.md)
949. [set](references/doc_7213.md)
950. [setAtomicLevel](references/doc_2321.md)
951. [setColumnComment](references/doc_7067.md)
952. [setComputeNodeCachingDelay](references/doc_5106.md)
953. [setDatabaseForClusterReplication](references/doc_6891.md)
954. [setDatanodeRestartInterval](references/doc_4202.md)
955. [setDynamicConfig](references/doc_836.md)
956. [setIPConnectionLimit](references/doc_1917.md)
957. [setIndexedMatrix!](references/doc_91.md)
958. [setIndexedSeries!](references/doc_4256.md)
959. [setMaxBlockSizeForReservedMemory](references/doc_3072.md)
960. [setMaxConnections](references/doc_8508.md)
961. [setMaxJobParallelism](references/doc_5315.md)
962. [setMaxJobPriority](references/doc_2.md)
963. [setMaxMemSize](references/doc_2697.md)
964. [setMemLimitOfAllTempResults](references/doc_4379.md)
965. [setMemLimitOfQueryResult](references/doc_8979.md)
966. [setMemLimitOfTempResult](references/doc_8425.md)
967. [setOLAPCacheEngineSize](references/doc_8739.md)
968. [setPrefetchComputeNodeData](references/doc_2140.md)
969. [setRandomSeed](references/doc_2795.md)
970. [setReservedMemSize](references/doc_2449.md)
971. [setRetentionPolicy](references/doc_503.md)
972. [setStreamTableFilterColumn](references/doc_9502.md)
973. [setSystem](references/doc_2468.md)
974. [setTSDBCacheEngineSize](references/doc_6917.md)
975. [setTableComment](references/doc_6586.md)
976. [shape](references/doc_8939.md)
977. [shapiroTest](references/doc_8119.md)
978. [shell](references/doc_539.md)
979. [short](references/doc_2462.md)
980. [shuffle](references/doc_1013.md)
981. [shuffle!](references/doc_6452.md)
982. [signbit](references/doc_3244.md)
983. [signum](references/doc_3898.md)
984. [sin](references/doc_4854.md)
985. [sinh](references/doc_9712.md)
986. [size](references/doc_909.md)
987. [skew](references/doc_8179.md)
988. [skipClusterReplicationTask](references/doc_7574.md)
989. [sleep](references/doc_9272.md)
990. [slice](references/doc_6990.md)
991. [sliceByKey](references/doc_1032.md)
992. [sma](references/doc_8589.md)
993. [snippet](references/doc_3364.md)
994. [socp](references/doc_713.md)
995. [solve](references/doc_3977.md)
996. [sort](references/doc_2467.md)
997. [sort!](references/doc_8788.md)
998. [sortBy!](references/doc_1921.md)
999. [spearmanr](references/doc_51.md)
1000. [splev](references/doc_420.md)
1001. [spline](references/doc_3533.md)
1002. [splrep](references/doc_2579.md)
1003. [sqrt](references/doc_6493.md)
1004. [square](references/doc_8442.md)
1005. [startClusterReplication](references/doc_8923.md)
1006. [startDataNode](references/doc_5055.md)
1007. [startHeapSample](references/doc_7233.md)
1008. [startsWith](references/doc_7349.md)
1009. [stl](references/doc_9561.md)
1010. [stopClusterReplication](references/doc_9558.md)
1011. [stopDataNode](references/doc_4056.md)
1012. [stopHeapSample](references/doc_5390.md)
1013. [strReplace](references/doc_1017.md)
1014. [streamEngineParser](references/doc_7794.md)
1015. [streamTable](references/doc_355.md)
1016. [stretch](references/doc_6323.md)
1017. [strip](references/doc_3770.md)
1018. [strlen](references/doc_1158.md)
1019. [strlenu](references/doc_7420.md)
1020. [strpos](references/doc_2233.md)
1021. [sub](references/doc_5656.md)
1022. [subarray](references/doc_9206.md)
1023. [submitJob](references/doc_9461.md)
1024. [submitJobEx](references/doc_7986.md)
1025. [submitJobEx2](references/doc_3804.md)
1026. [subscribeTable](references/doc_3003.md)
1027. [subtuple](references/doc_1796.md)
1028. [sum](references/doc_7384.md)
1029. [sum2](references/doc_7316.md)
1030. [sum3](references/doc_5347.md)
1031. [sum4](references/doc_9815.md)
1032. [sumbars](references/doc_7675.md)
1033. [summary](references/doc_6988.md)
1034. [suspendRecovery](references/doc_9521.md)
1035. [svd](references/doc_2006.md)
1036. [symbol](references/doc_3461.md)
1037. [symbolCode](references/doc_4952.md)
1038. [symmetricDifference](references/doc_6602.md)
1039. [syncDict](references/doc_9445.md)
1040. [syntax](references/doc_7550.md)
1041. [t3](references/doc_5990.md)
1042. [tTest](references/doc_1226.md)
1043. [table](references/doc_4241.md)
1044. [tableInsert](references/doc_834.md)
1045. [tableUpsert](references/doc_7074.md)
1046. [tail](references/doc_1257.md)
1047. [take](references/doc_7848.md)
1048. [talib](references/doc_6622.md)
1049. [talibNull](references/doc_7081.md)
1050. [tan](references/doc_5965.md)
1051. [tanh](references/doc_2936.md)
1052. [tanimoto](references/doc_9985.md)
1053. [tema](references/doc_2483.md)
1054. [temporalAdd](references/doc_4892.md)
1055. [temporalDeltas](references/doc_8585.md)
1056. [temporalDiff](references/doc_6735.md)
1057. [temporalFormat](references/doc_3283.md)
1058. [temporalParse](references/doc_1619.md)
1059. [temporalSeq](references/doc_5171.md)
1060. [tensor](references/doc_245.md)
1061. [textChunkDS](references/doc_5108.md)
1062. [til](references/doc_3974.md)
1063. [tmLowRange](references/doc_7506.md)
1064. [tmTopRange](references/doc_4616.md)
1065. [tmavg](references/doc_1219.md)
1066. [tmbeta](references/doc_1621.md)
1067. [tmcount](references/doc_4769.md)
1068. [tmcovar](references/doc_2931.md)
1069. [tmfirst](references/doc_2925.md)
1070. [tmkurtosis](references/doc_7591.md)
1071. [tmlast](references/doc_1739.md)
1072. [tmmax](references/doc_2597.md)
1073. [tmmed](references/doc_2226.md)
1074. [tmmin](references/doc_2527.md)
1075. [tmove](references/doc_4317.md)
1076. [tmoving](references/doc_1842.md)
1077. [tmpercentile](references/doc_3261.md)
1078. [tmprod](references/doc_5659.md)
1079. [tmrank](references/doc_3368.md)
1080. [tmskew](references/doc_2624.md)
1081. [tmsum](references/doc_1981.md)
1082. [tmsum2](references/doc_4278.md)
1083. [tmvar](references/doc_7536.md)
1084. [tmvarp](references/doc_5818.md)
1085. [tmwavg](references/doc_452.md)
1086. [tmwsum](references/doc_3271.md)
1087. [toCharArray](references/doc_143.md)
1088. [toJson](references/doc_3990.md)
1089. [toUTF8](references/doc_9075.md)
1090. [today](references/doc_3142.md)
1091. [tokenizeBert](references/doc_1608.md)
1092. [topRange](references/doc_8656.md)
1093. [transDS!](references/doc_1005.md)
1094. [transFreq](references/doc_767.md)
1095. [transpose](references/doc_9914.md)
1096. [treasuryConversionFactor](references/doc_8855.md)
1097. [triggerNodeReport](references/doc_9734.md)
1098. [triggerTSDBCompaction](references/doc_5473.md)
1099. [tril](references/doc_2459.md)
1100. [trim](references/doc_3048.md)
1101. [trima](references/doc_393.md)
1102. [triu](references/doc_7353.md)
1103. [trueRange](references/doc_6480.md)
1104. [truncate](references/doc_5542.md)
1105. [tupleSum](references/doc_6812.md)
1106. [twindow](references/doc_4908.md)
1107. [type](references/doc_7186.md)
1108. [typestr](references/doc_1594.md)
1109. [undef](references/doc_9146.md)
1110. [unifiedCall](references/doc_8136.md)
1111. [union](references/doc_4130.md)
1112. [unionAll](references/doc_1461.md)
1113. [unloadVocab](references/doc_9086.md)
1114. [unlockUser](references/doc_4793.md)
1115. [unpack](references/doc_6852.md)
1116. [unpivot](references/doc_9509.md)
1117. [unsubscribeTable](references/doc_7186.md)
1118. [upper](references/doc_1052.md)
1119. [upsert!](references/doc_5823.md)
1120. [uuid](references/doc_518.md)
1121. [valueAtRisk](references/doc_2367.md)
1122. [valueChanged](references/doc_8197.md)
1123. [values](references/doc_7795.md)
1124. [vanillaOption](references/doc_7930.md)
1125. [var](references/doc_2110.md)
1126. [varma](references/doc_7652.md)
1127. [varp](references/doc_3507.md)
1128. [vectorAR](references/doc_7033.md)
1129. [version](references/doc_9262.md)
1130. [volumeBar](references/doc_2460.md)
1131. [warmupComputeNodeCache](references/doc_7031.md)
1132. [warmupStreamEngine](references/doc_1378.md)
1133. [wavg](references/doc_5822.md)
1134. [wc](references/doc_861.md)
1135. [wcovar](references/doc_870.md)
1136. [weekBegin](references/doc_4573.md)
1137. [weekEnd](references/doc_6079.md)
1138. [weekOfMonth](references/doc_3670.md)
1139. [weekOfYear](references/doc_2884.md)
1140. [weekday](references/doc_6305.md)
1141. [wilder](references/doc_6097.md)
1142. [window](references/doc_2687.md)
1143. [winsorize](references/doc_3111.md)
1144. [winsorize!](references/doc_7821.md)
1145. [withNullFill](references/doc_9431.md)
1146. [withdrawMCPPrompts](references/doc_9759.md)
1147. [withdrawMCPTools](references/doc_7628.md)
1148. [wls](references/doc_6627.md)
1149. [wma](references/doc_6087.md)
1150. [write](references/doc_952.md)
1151. [writeBytes](references/doc_911.md)
1152. [writeLine](references/doc_4785.md)
1153. [writeLines](references/doc_4693.md)
1154. [writeObject](references/doc_1959.md)
1155. [writeRecord](references/doc_8559.md)
1156. [wsum](references/doc_1017.md)
1157. [xdb](references/doc_427.md)
1158. [xor](references/doc_4681.md)
1159. [year](references/doc_395.md)
1160. [yearBegin](references/doc_1120.md)
1161. [yearEnd](references/doc_2270.md)
1162. [zTest](references/doc_4141.md)
1163. [zigzag](references/doc_2813.md)
1164. [zscore](references/doc_9323.md)
1165. [函数分类](references/doc_5614.md)
1166. [函数分类](references/doc_4491.md)
1167. [函数参考](references/doc_225.md)
1168. [流计算引擎](references/doc_3500.md)
1169. [滑动窗口系列（m 系列）](references/doc_6914.md)
1170. [系列函数](references/doc_4668.md)
1171. [累计窗口系列（cum 系列）](references/doc_8366.md)

## 函数参考/字符串函数 (5个文档)

1. [split](references/doc_1621.md)
2. [string](references/doc_5622.md)
3. [stringFormat](references/doc_2325.md)
4. [substr](references/doc_6241.md)
5. [substru](references/doc_1193.md)

## 函数参考/数学函数 (42个文档)

1. [abs](references/doc_2790.md)
2. [binaryExpr](references/doc_4331.md)
3. [cdfExp](references/doc_1470.md)
4. [cdfLogistic](references/doc_4564.md)
5. [cleanOutdateLogFiles](references/doc_5727.md)
6. [createCatalog](references/doc_8740.md)
7. [dropCatalog](references/doc_3855.md)
8. [existsCatalog](references/doc_2049.md)
9. [exp](references/doc_5122.md)
10. [exp2](references/doc_1177.md)
11. [expm1](references/doc_3325.md)
12. [expr](references/doc_7258.md)
13. [getAclAuditLog](references/doc_7642.md)
14. [getAllCatalogs](references/doc_585.md)
15. [getAuditLog](references/doc_1625.md)
16. [getCatalogsByCluster](references/doc_7650.md)
17. [getInstrumentExpiry](references/doc_9455.md)
18. [getInstrumentFarExpiry](references/doc_3518.md)
19. [getInstrumentNearExpiry](references/doc_9142.md)
20. [getLicenseExpiration](references/doc_6363.md)
21. [getRedoLogGCStat](references/doc_8267.md)
22. [getSchemaByCatalog](references/doc_6157.md)
23. [imtForceGCRedolog](references/doc_2263.md)
24. [invExp](references/doc_6462.md)
25. [invLogistic](references/doc_5048.md)
26. [isLoggedIn](references/doc_8915.md)
27. [log](references/doc_5756.md)
28. [log10](references/doc_4409.md)
29. [log1p](references/doc_2752.md)
30. [log2](references/doc_545.md)
31. [login](references/doc_4333.md)
32. [logisticRegression](references/doc_7103.md)
33. [logout](references/doc_7196.md)
34. [parseExpr](references/doc_6228.md)
35. [randExp](references/doc_3244.md)
36. [randLogistic](references/doc_7882.md)
37. [renameCatalog](references/doc_3185.md)
38. [setDefaultCatalog](references/doc_6176.md)
39. [setLogLevel](references/doc_3828.md)
40. [unifiedExpr](references/doc_9288.md)
41. [writeLog](references/doc_2237.md)
42. [writeLogLevel](references/doc_506.md)

## 函数参考/时间序列函数 (26个文档)

1. [concatDateTime](references/doc_7485.md)
2. [createDailyTimeSeriesEngine](references/doc_6683.md)
3. [createTimeBucketEngine](references/doc_7405.md)
4. [createTimeSeriesEngine](references/doc_603.md)
5. [date](references/doc_6727.md)
6. [datehour](references/doc_6031.md)
7. [datetime](references/doc_2698.md)
8. [dictUpdate!](references/doc_1387.md)
9. [evalTimer](references/doc_7984.md)
10. [gmtime](references/doc_8329.md)
11. [imtUpdateChunkVersionOnDataNode](references/doc_7630.md)
12. [linearTimeTrend](references/doc_9142.md)
13. [localtime](references/doc_275.md)
14. [nanotime](references/doc_5035.md)
15. [nanotimestamp](references/doc_2136.md)
16. [setChunkLastUpdateTime](references/doc_445.md)
17. [setStreamTableTimestamp](references/doc_6564.md)
18. [setTimeoutTick](references/doc_6322.md)
19. [sqlUpdate](references/doc_5856.md)
20. [time](references/doc_550.md)
21. [timestamp](references/doc_5299.md)
22. [update!](references/doc_4618.md)
23. [updateLicense](references/doc_5427.md)
24. [updateMCPPrompt](references/doc_3301.md)
25. [updateMCPTool](references/doc_5363.md)
26. [updateMarketHoliday](references/doc_1968.md)

## 函数参考/统计函数 (61个文档)

1. [autocorr](references/doc_6151.md)
2. [clearAllIOTDBStaticTableCache](references/doc_6744.md)
3. [corr](references/doc_3986.md)
4. [corrMatrix](references/doc_3466.md)
5. [createDualOwnershipReactiveStateEngine](references/doc_9574.md)
6. [createNarrowReactiveStateEngine](references/doc_4956.md)
7. [createReactiveStateEngine](references/doc_6673.md)
8. [crossStat](references/doc_8784.md)
9. [cumcorr](references/doc_2624.md)
10. [cumstd](references/doc_109.md)
11. [cumstdp](references/doc_8623.md)
12. [ewmCorr](references/doc_111.md)
13. [ewmStd](references/doc_1438.md)
14. [fromStdJson](references/doc_9396.md)
15. [genericStateIterate](references/doc_6532.md)
16. [genericTStateIterate](references/doc_9636.md)
17. [getAggregatorStat](references/doc_1193.md)
18. [getBackupStatus](references/doc_1488.md)
19. [getClusterChunksStatus](references/doc_5915.md)
20. [getClusterStatus](references/doc_3794.md)
21. [getComputeGroupChunksStatus](references/doc_1297.md)
22. [getComputeNodeCacheStat](references/doc_5783.md)
23. [getComputeNodeCacheWarmupJobStatus](references/doc_8146.md)
24. [getJobStat](references/doc_2382.md)
25. [getJobStatus](references/doc_1761.md)
26. [getLevelFileIndexCacheStatus](references/doc_4758.md)
27. [getLocalIOTDBStaticTable](references/doc_5351.md)
28. [getMemoryStat](references/doc_5585.md)
29. [getOLAPCacheEngineStat](references/doc_9469.md)
30. [getPKEYCompactionTaskStatus](references/doc_2801.md)
31. [getQueryStatus](references/doc_8159.md)
32. [getRecoveryTaskStatus](references/doc_8957.md)
33. [getSessionMemoryStat](references/doc_5643.md)
34. [getSlaveReplicationQueueStatus](references/doc_9726.md)
35. [getSlaveReplicationStatus](references/doc_5459.md)
36. [getStreamEngineStat](references/doc_4535.md)
37. [getStreamingSQLStatus](references/doc_1153.md)
38. [getStreamingStat](references/doc_6846.md)
39. [getTSDBCompactionTaskStatus](references/doc_5399.md)
40. [getTSDBDataStat](references/doc_5241.md)
41. [getTSDBTableIndexCacheStatus](references/doc_4134.md)
42. [getTransactionStatus](references/doc_9893.md)
43. [mcorr](references/doc_3270.md)
44. [mcorrTopN](references/doc_5077.md)
45. [mstd](references/doc_2646.md)
46. [mstdTopN](references/doc_6538.md)
47. [mstdp](references/doc_6784.md)
48. [mstdpTopN](references/doc_8493.md)
49. [nextState](references/doc_1015.md)
50. [prevState](references/doc_6013.md)
51. [rowCorr](references/doc_995.md)
52. [rowStd](references/doc_9599.md)
53. [rowStdp](references/doc_8844.md)
54. [stat](references/doc_6841.md)
55. [stateIterate](references/doc_7716.md)
56. [std](references/doc_2497.md)
57. [stdp](references/doc_9279.md)
58. [tmcorr](references/doc_4673.md)
59. [tmstd](references/doc_3967.md)
60. [tmstdp](references/doc_99.md)
61. [toStdJson](references/doc_5532.md)

## 教程与示例 (1个文档)

1. [教程](references/doc_8158.md)

## 数据库核心 (13个文档)

1. [OLAP 存储引擎](references/doc_7837.md)
2. [OLTP 内存存储引擎（非嵌入式版）使用教程](references/doc_6414.md)
3. [TSDB 存储引擎](references/doc_6240.md)
4. [主键存储引擎](references/doc_9706.md)
5. [分布式事务](references/doc_3187.md)
6. [分布式架构](references/doc_6249.md)
7. [分级存储](references/doc_5899.md)
8. [向量存储引擎](references/doc_9470.md)
9. [数据分区](references/doc_9485.md)
10. [数据平衡](references/doc_8252.md)
11. [数据库](references/doc_2718.md)
12. [物联网点位管理引擎](references/doc_4396.md)
13. [高可用](references/doc_3934.md)

## 流数据处理 (22个文档)

1. [Altair 连接 DolphinDB 数据源](references/doc_7220.md)
2. [Orca 实时计算平台](references/doc_1659.md)
3. [Python API 接入数据](references/doc_7284.md)
4. [StreamEngineParser 解析原理](references/doc_7377.md)
5. [会话窗口引擎](references/doc_1649.md)
6. [入门示例](references/doc_761.md)
7. [内置多数据源流式关联引擎](references/doc_3813.md)
8. [功能简介](references/doc_6332.md)
9. [历史数据回放](references/doc_6220.md)
10. [响应式状态引擎](references/doc_1096.md)
11. [复杂事件处理（CEP）引擎](references/doc_742.md)
12. [实时流数据接入](references/doc_3101.md)
13. [异常检测引擎](references/doc_5125.md)
14. [时序聚合引擎](references/doc_7885.md)
15. [横截面引擎](references/doc_7217.md)
16. [流式 SQL](references/doc_3242.md)
17. [流式计算算子](references/doc_9830.md)
18. [流批一体](references/doc_3049.md)
19. [流数据](references/doc_8004.md)
20. [流数据高可用](references/doc_2767.md)
21. [流计算状态监控](references/doc_7423.md)
22. [节点内部订阅](references/doc_710.md)

## 运维管理 (1个文档)

1. [系统运维](references/doc_3896.md)

## 部署与配置 (9个文档)

1. [Linux 系统部署准备](references/doc_5216.md)
2. [单服务器集群部署与升级](references/doc_7984.md)
3. [单节点部署与升级](references/doc_1710.md)
4. [单节点部署与升级 (ARM)](references/doc_5524.md)
5. [基于 Docker 部署 DolphinDB](references/doc_5479.md)
6. [多服务器集群部署与升级](references/doc_9483.md)
7. [如何采集服务器指纹生成 DolphinDB License](references/doc_5208.md)
8. [部署](references/doc_8935.md)
9. [高可用集群部署与升级](references/doc_8250.md)



path: README.md
content: # DolphinDB Skill - 完整技术文档库

> **版本**: 2.0.0 (优化版) | **评分**: 9.5/10 ⭐  
> **DolphinDB版本**: 3.00.4 | **更新时间**: 2026-01-22

一站式DolphinDB时序数据库技术文档与最佳实践指南。包含1493个技术文档 + 3份官方白皮书，涵盖数据库设计、流计算、量化回测等全场景。

---

## 📚 核心资源

### 🎯 官方白皮书 (4557行深度内容)

| 白皮书 | 行数 | 适用场景 |
|--------|------|---------|
| [数据库白皮书](references/whitepapers/database.md) | 1073 | 架构设计、性能优化、生产部署 |
| [流数据白皮书](references/whitepapers/streaming.md) | 2279 | 实时计算、CEP、流式ETL |
| [回测白皮书](references/whitepapers/backtest.md) | 2205 | 量化回测、算法交易、策略研发 |

### 📖 技术文档 (1490篇)

| 分类 | 数量 | 说明 |
|------|------|------|
| 函数参考 | 1171+ | 数学、统计、时序、SQL等 |
| 流数据处理 | 22 | 流表、订阅、引擎 |
| 数据库核心 | 13 | 存储引擎、分区、事务 |
| 部署与配置 | 9 | 集群部署、参数配置 |
| 其他 | 97+ | API、运维、教程等 |

**完整索引**: 见 [CATALOG.md](CATALOG.md) (1536行)

---

### **前置准备（必看）**：

1. 确保已安装 DolphinDB 相关环境，具体环境部署可参考 [部署](https://docs.dolphindb.cn/zh/deploy/deploy_intro.html)；
2. 安装 VS Code 客户端 ；
3. 安装 GitHub Copilot 和 DolphinDB 扩展，具体 DolphinDB 扩展安装可参考 [VS Code 插件](https://docs.dolphindb.cn/zh/db_distr_comp/vscode.html)；

![](./img/1.png)
![](./img/2.png)
4. 克隆本仓库到本地目录：
| **类型**   | **VSCODE**           | Antigravity                                     | **CLAUDE**          |
| :--------- | :------------------- | ----------------------------------------------- | :------------------ |
| 项目 Skill | `.github/skills/`    | <workspace-root>/.agents/skills/<skill-folder>/ | `.claude/skills/`   |
| 个人 Skill | `~/.copilot/skills/` | ~/.gemini/antigravity/skills/<skill-folder>/    | `~/.claude/skills/` |

保证层级目录为：
```
skills/ 
└── dolphindb_skill/    
    ├── assets/    
    ├── ...       
    └── SKILL.md
```

项目路径：适用于团队协作或特定项目开发，将 DolphinDB Skill 放入当前开发项目根目录下的 `.github/skills/` 文件夹中，仅对当前项目生效，不影响其他项目的 AI 代理配置，方便团队共享统一的 Skill 版本。

个人路径：适用于个人日常开发，将 DolphinDB Skill 放入个人用户目录下的 `.copilot/skills/` 文件夹中，全局生效，无论打开哪个 DolphinDB 开发项目，都能调用该 Skill，无需重复配置。

其他 AI Agent 使用 DolphinDB Skill，可以将其配置到对应的目录下，例如配置 Google Antigravity 的Global Skill，可以将其配置到 `~/.gemini/antigravity/skills/<skill-folder>/` 目录下，重启 Google Antigravity 即可直接使用，具体可参考 [Google Antigravity Documentation](https://antigravity.google/docs/skills) 。

#### Step 1：配置 DolphinDB Skill
打开 VS Code，进入 GitHub Copilot 插件设置，找到“Chat: Use Agent Skills”配置项并启用。
![](./img/3.png)

配置完成后，如果 `/dolphindb` 指令可被正常查找到，则证明 DolphinDB Skill 配置成功。

![](./img/4.png)

#### Step 2：3 个高频场景，解锁 AI 辅助开发

温馨提示：以下所有场景的提问前，需添加 `/dolphindb` ，才能成功调用 DolphinDB Skill 

#### **场景 1：自然语言转脚本**

打开 Copilot 聊天视图，输入自然语言指令，比如：

“/dolphindb 帮我写一个创建 TSDB 存储引擎分区表的脚本，采用 VALUE+HASH 组合分区，要求有字段 time, symbol，price，并且生成20条模拟数据，使用 dolphindb 的标准 sql 语句实现”

“/dolphindb 写一个流计算实时 K 线合成的脚本”

Copilot 会生成符合语法规范的完整脚本，可直接复制使用，还能通过内联聊天精准调整。

![](./img/5.png)

#### **场景 2：概念与知识点讲解**

在 Copilot 聊天视图输入提问，比如：

“/dolphindb 解释一下 DolphinDB 的 TSDB 和 OLAP 存储引擎的区别”

“/dolphindb DolphinDB 中时序聚合引擎的用法”

DolphinDB Skill 会结合官方文档内容，用通俗语言拆解知识点+搭配示例，边开发边学习，无需额外查文档。
![](./img/6.png)

#### 场景 3：调试与优化

生成脚本后，若出现语法报错，可直接在聊天界面提问，快速获取针对性解决方案。
![](./img/7.png)

### 为什么值得用？

1. 零成本上手：依托 VS Code+Copilot 熟悉操作，简单配置即可使用；
2. 精准适配：专为 DolphinDB 设计，同步官方文档核心内容；
3. 效率翻倍：节省语法记忆、调试、查文档时间，新手快速入门，资深开发者提效；
4. 边学边练：支持知识点讲解，边开发边夯实基础。

---

## 📖 主要文档说明

| 文件 | 大小 | 用途 |
|------|------|------|
| **SKILL.md** | 12KB | 主文档，包含完整指南、代码示例、工作流 |
| **CATALOG.md** | 64KB | 1493个文档的完整索引，按13类组织 |
| **metadata.json** | 209KB | 元数据，包含所有文档的详细信息 |
| **references/** | ~7.8MB | 所有技术文档和白皮书 |
| **assets/** | - | 图片等资源文件 |

---

## 🔍 快速查找

### 按问题查找

| 问题 | 答案位置 |
|------|---------|
| 如何选择TSDB vs OLAP? | [SKILL.md](SKILL.md) → 存储引擎选择 |
| 如何设计分区策略? | [数据库白皮书](references/whitepapers/database.md) 第2.2节 |
| 流计算引擎有哪些? | [流数据白皮书](references/whitepapers/streaming.md) 第3章 |
| 如何实现高可用? | [doc_3934.md](references/doc_3934.md) |

### 按角色查找

| 角色 | 推荐路径 |
|------|---------|
| **架构师** | 数据库白皮书 → 分布式架构 → SKILL.md工作流 |
| **量化工程师** | 回测白皮书 → SKILL.md代码示例 → CATALOG函数查询 |
| **后端开发** | 流数据白皮书 → SKILL.md流计算示例 → API文档 |
| **数据分析师** | SKILL.md SQL示例 → CATALOG函数参考 |

---

## 💡 v2.0 核心特性

相比v1.x版本，v2.0优化版提供：

✅ **完整文档索引** - CATALOG.md覆盖所有1493个文档  
✅ **3份官方白皮书** - 4557行深度技术内容  
✅ **场景化导航** - 15个常见问题快速定位  
✅ **5大类代码示例** - 可直接运行的完整示例  
✅ **13个细分类别** - 更精准的文档分类  
✅ **版本信息明确** - 标注DolphinDB 3.00.4  

---

## 📊 目录结构

```
dolphindb_skill/
├── README.md                    # 本文件 (快速入门)
├── SKILL.md                     # 主文档 (详细指南)
├── CATALOG.md                   # 文档索引 (1493个文档)
├── metadata.json                # 元数据
├── assets/                      # 资源文件
│   └── images/
└── references/                  # 参考文档
    ├── whitepapers/            # 官方白皮书
    │   ├── database.md         # 数据库白皮书
    │   ├── streaming.md        # 流数据白皮书
    │   ├── backtest.md         # 回测白皮书
    │   └── images/
    └── doc_*.md                # 1490篇技术文档
```

---

## 🔗 相关资源

- **官网**: https://www.dolphindb.com
- **文档中心**: https://docs.dolphindb.cn
- **社区论坛**: https://ask.dolphindb.cn/
- **GitHub**: https://github.com/dolphindb

---

## 📞 技术支持

遇到问题？

1. 先查阅 [SKILL.md](SKILL.md) 常见问题导航
2. 使用 [CATALOG.md](CATALOG.md) 搜索相关文档
3. 访问 [DolphinDB社区](https://ask.dolphindb.cn/)
4. 联系官方技术支持

---

## 📝 更新日志

### v2.0 (2026-01-22)
- ✅ 整合3份官方白皮书 (4557行)
- ✅ 生成完整文档索引 CATALOG.md
- ✅ 新增15个常见问题快速导航
- ✅ 补充5大类可运行代码示例
- ✅ 优化为13个细分类别
- ✅ 更新DolphinDB版本信息至3.00.4

### v1.x (2025-01-20)
- 初始版本，包含1490个技术文档

---

**Skill版本**: 2.0.0 | **DolphinDB版本**: 3.00.4 | **质量评分**: 9.5/10 ⭐  
**维护**: Skill Creator | **许可**: MIT


path: references/doc_10.md
content: # decompress

**URL**: https://docs.dolphindb.cn/zh/funcs/d/decompress.html

**来源**: DolphinDB 官方文档

---

decompress
语法
decompress(X)
详情
对一个压缩后的向量进行解压缩。
参数
X
是一个压缩后的向量。
返回值
返回一个向量。
例子
x=1..100000000
y=compress(x, "delta");

y.typestr();
// output: HUGE COMPRESSED VECTOR

z=decompress(y);
z.size();
// output: 100000000
相关函数：
compress

path: references/doc_1005.md
content: # transDS!

**URL**: https://docs.dolphindb.cn/zh/funcs/t/transDS_.html

**来源**: DolphinDB 官方文档

---

transDS!
语法
transDS!(ds, tranFunc)
详情
将函数应用到数据源。
参数
ds
是数据源或数据源列表。
tranFunc
是一个函数。它的参数必须是一个表。
返回值
无。
例子
下例将分布式表 trades1 的时间列从 TIMESTAMP 类型转换成 NANOTIMESTAMP 类型后插入到分布式表
                trades2中。
db=database("dfs://stock1",VALUE,`A`B`C`D)
n=200000
trade_time=2018.01.02T06:12:03.458+1..n
sym=rand(`A`B`C`D,n)
qty=rand(100.0,n)
price=rand(100.0,n)
t=table(trade_time,sym,qty,price)
trades1=db.createPartitionedTable(t,`trades1,`sym).append!(t);

ds=sqlDS(<select * from trades1>);

def convertNanotimestamp(t){
   return select nanotimestamp(trade_time), sym, qty, price from t
}

ds.transDS!(convertNanotimestamp);

db=database("dfs://stock2",VALUE,`A`B`C`D)
t=table(1:0,`trade_time`sym`qty`price,[NANOTIMESTAMP,SYMBOL,DOUBLE,DOUBLE])
trades2=db.createPartitionedTable(t,`trades2,`sym);

mr(ds,append!{trades2},,,false);

exec count(*) from trades2;
// output
200000

path: references/doc_1013.md
content: # shuffle

**URL**: https://docs.dolphindb.cn/zh/funcs/s/shuffle.html

**来源**: DolphinDB 官方文档

---

shuffle
语法
shuffle(X)
shuffle!
是
shuffle
的原地计算的版本。
详情
对数据重组后，返回一个新的向量或矩阵。
参数
x
可以是向量或矩阵。
返回值
数据重组后，返回一个新的向量或矩阵。
例子
x=(1..6).shuffle();
x;
// output
[1,6,3,5,4,2]

x.shuffle!();
// output
[5,4,1,3,2,6]


x=(1..6).reshape(3:2);
x;
#0
#1
1
4
2
5
3
6
x.shuffle();
#0
#1
5
3
2
1
4
6

path: references/doc_1015.md
content: # nextState

**URL**: https://docs.dolphindb.cn/zh/funcs/n/nextState.html

**来源**: DolphinDB 官方文档

---

nextState
语法
nextState(X)
详情
X
中连续且相同的元素标记为同一状态，空值无状态。每个元素的状态等于其元素值。对于
X
中的每一个元素，返回当前状态的下一个状态。若当前元素为空，则返回下一个邻近状态。
X
是矩阵时，则在矩阵每一列进行上述计算。
参数
X
时间类型，布尔类型或者数值型的向量/矩阵。
返回值
返回一个与输入
X
相同数据类型和形式的对象。
例子
X = [1, 2.2, NULL, 2.2, 2.3, 1, 1.2]
next(X)
// output
[2.2,,2.2,2.3,1,1.2,]

nextState(X)
// output
[2.2,2.2,2.2,2.3,1,1.2,]

X = matrix([1.0, 1.1, 1.0, 0.9], [NULL, 1.3, 2.5, 5.5], [5.5, 4.2, 1.6, 1.8])
nextState(X)
#0
#1
#2
1.1
1.3
4.2
1
2.5
1.6
0.9
5.5
1.8
相关函数：
prevState

path: references/doc_1017.md
content: # wsum

**URL**: https://docs.dolphindb.cn/zh/funcs/w/wsum.html

**来源**: DolphinDB 官方文档

---

wsum
语法
wsum(X, Y)
详情
返回
X
和
Y
的内积。即使
X
和
Y
都是整型，返回结果仍为
                DOUBLE 类型。
参数
X
和
Y
可以是标量、向量、矩阵或表。
返回值
DOUBLE 类型的标量/向量/表。
例子
wsum(7 8 9, 1 2 3);
// output
50
// 7*1 + 8*2 + 9*3 = 50
相关函数：
wavg

path: references/doc_1022.md
content: # readObject

**URL**: https://docs.dolphindb.cn/zh/funcs/r/readObject.html

**来源**: DolphinDB 官方文档

---

readObject
语法
readObject(handle)
详情
可以读取句柄中所有的数据类型，包括标量、向量、矩阵、集合、字典和表。该函数必须要用户登录后才能执行。
参数
handle
是文件句柄。
返回值
返回读取的内容。
例子
a1=10.5
a2=1..10
a3=cross(*,1..5,1..10)
a4=set(`IBM`MSFT`GOOG`YHOO)
a5=dict(a4.keys(),125.6 53.2 702.3 39.7)
a6=table(1 2 3 as id, `Jenny`Tom`Jack as name)
a7=(1 2 3, "hello world!", 25.6)

fout=file("test.bin","w")
fout.writeObject(a1)
fout.writeObject(a2)
fout.writeObject(a3)
fout.writeObject(a4)
fout.writeObject(a5)
fout.writeObject(a6)
fout.writeObject(a7)
fout.close();
上述的脚本把 7 个不同类型的对象写到一个文件中。下述的脚本将这 7 个对象从文件中读取出来，并为每个对象打印一个简短的描述。
fin = file("test.bin")
for(i in 0:7) print typestr fin.readObject()
fin.close();

// output
DOUBLE
FAST INT VECTOR
INT MATRIX
STRING SET
STRING->DOUBLE Dictionary
TABLE
ANY VECTOR

path: references/doc_1032.md
content: # sliceByKey

**URL**: https://docs.dolphindb.cn/zh/funcs/s/sliceByKey.html

**来源**: DolphinDB 官方文档

---

sliceByKey
语法
sliceByKey(table, rowKeys, [colNames], [preserveOrder=false])
详情
从键值表或索引内存表中获取含有索引列指定值（由参数
rowKeys
指定）的行以及指定列（由
colNames
参数指定）的数据。耗时约为相应的 SQL 语句的50%。
如果是键值表，
rowKeys
参数必须含有所有
keyColumns
的值。
如果是索引内存表，可指定前 n 个
keyColumns
的值，若其中有一列指定值为向量，所有指定列的指定值均需为同等长度的向量。
若不指定
colNames
参数，则会输出所有列。
结果的数据结构取决于
colNames
。若
colNames
为标量，返回一个向量；若
colNames
为向量，返回一个内存表。
参数
table
是键值表或索引内存表。
rowKeys
是标量或向量，表示索引列的指定值。
colNames
可选参数，是字符串标量或向量，表示要选择的列的列名。
preserveOrder
可选参数，布尔标量，表示是否按照
rowKeys
中值的顺序返回结果。默认为 false，此时输出顺序可能不同于
rowKeys
的顺序。
返回值
返回结果的数据结构取决于 colNames。若 colNames 为标量，返回一个向量；若 colNames 为向量，返回一个内存表。
例子
t = indexedTable(`sym`side, 10000:0, `sym`side`price`qty, [SYMBOL,CHAR,DOUBLE,INT])
insert into t values(`IBM`MSFT`IBM, ['B','S','S'], 125.27 208.9 125.29, 1000 800 200)
a=sliceByKey(t,"IBM", 'price');

a;
// output
[125.27,125.29]

typestr(a);
// output
FAST DOUBLE VECTOR

a=sliceByKey(t,("IBM",'S'));
a;
sym
side
price
qty
IBM
S
125.29
200
typestr(a);
// output
IN-MEMORY TABLE

t1 = keyedTable(`sym`side, 10000:0, `sym`side`price`qty, [SYMBOL,CHAR,DOUBLE,INT])
insert into t1 values(`IBM`MSFT`IBM, ['B','S','S'], 125.27 208.9 125.29, 1000 800 200)
sliceByKey(t1, [["IBM", "MSFT"], ['B', 'S']]);
sym
side
price
qty
IBM
B
125.27
1000
MSFT
S
208.9
800
指定
preserveOrder
=true，可按索引列的输入顺序返回结果。
sliceByKey(table=t1, rowKeys=[["MSFT", "IBM"], ['S', 'B']], preserveOrder=true);
sym
side
price
qty
MSFT
S
208.9
800
IBM
B
125.27
1000

path: references/doc_1035.md
content: # loadTableBySQL

**URL**: https://docs.dolphindb.cn/zh/funcs/l/loadTableBySQL.html

**来源**: DolphinDB 官方文档

---

loadTableBySQL
语法
loadTableBySQL(sql)
详情
把分区表中满足 SQL 查询的记录行加载到内存中。返回的是分区的内存表，其分区机制与分区表一致。
注：
该函数用于根据
sql
创建分区内存表，存在一些查询限制。因此，在大数据量查询场景下，使用该函数可能会出现内存占用多的情况。建议在这种情况下直接使用 SQL 语句进行查询。
参数
sql
是表示 SQL 查询的元代码。它可以用 WHERE 子句来过滤分区或记录行，也可以用 SELECT
                语句选择包括计算列在内的列，但不能包含 TOP 子句、GROUP BY 子句、 ORDER BY 子句、CONTEXT BY 子句和 LIMIT 子句。
返回值
一张表。
例子
n=1000000
t=table(rand('A'..'Z',n) as sym, 2000.01.01+rand(365,n) as date, 10.0+rand(2.0,n) as price1, 100.0+rand(20.0,n) as price2, rand(10,n) as qty1, rand(100,n) as qty2)

db = database("dfs://tradeDB", VALUE, 'A'..'Z')
trades=db.createPartitionedTable(t,`trades,`sym).append!(t)

sample=select * from loadTableBySQL(<select * from trades where date between 2000.03.01 : 2000.05.01>)
sample=select * from loadTableBySQL(<select sym, date, price1, qty1 from trades where date between 2000.03.01 : 2000.05.01>)

dates = 2000.01.16 2000.02.14 2000.08.01
st = sql(<select sym, date, price1, qty1>, trades, expr(<date>, in, dates))
sample = select * from loadTableBySQL(st)

colNames =`sym`date`qty2`price2
st= sql(sqlCol(colNames), trades)
sample = select * from loadTableBySQL(st)

path: references/doc_104.md
content: # deleteReplicas

**URL**: https://docs.dolphindb.cn/zh/funcs/d/deleteReplicas.html

**来源**: DolphinDB 官方文档

---

deleteReplicas
语法
deleteReplicas(chunkId, nodeAlias)
详情
把节点上的一个或多个 chunk 的副本删除。该命令只能由管理员在控制节点上执行。
参数
chunkId
是字符串标量或向量，表示 chunk 的 ID。
nodeAlias
是一个字符串，表示节点的别名。
返回值
无。
例子
删除 “node1” 上所有 chunk 的副本。
chunkIds=exec chunkId from pnodeRun(getChunksMeta) where node="node1"
deleteReplicas(chunkIds,"node1");

path: references/doc_1043.md
content: # rowAt

**URL**: https://docs.dolphindb.cn/zh/funcs/r/rowAt.html

**来源**: DolphinDB 官方文档

---

rowAt
语法
rowAt(X, [Y])
row 系列函数通用参数说明和计算规则请参考：
rowFunctions
详情
逐行取出
X
中对应索引的元素。
若
Y
是整型向量，
Y
的每个元素表示
X
每行的列索引，逐行取出
X
中对应索引的元素，返回一个与
Y
长度相同的向量。若索引无对应元素或索引超出
X
的有效索引范围，则返回空值。
若
Y
是布尔类型的矩阵或数组向量（或列式元组），则取出
X
对应于
Y
中 true 值的元素，返回一个与
Y
行数相同的数组向量。若
Y
中某一行的所有元素值都是
                        false，则该行返回空值。其中，当 Y 是布尔类型矩阵时，X 只能是矩阵。
若
Y
是整型数组向量（或列式元组），
Y
的每个元素表示
X
每行的列索引，逐行取出
X
中对应索引的元素，返回一个与
Y
维度相同的数组向量（或列式元组）。若索引无对应元素或索引超出
X
的有效索引范围，则返回空值。
若
Y
不指定，
X
必须是布尔类型的矩阵或数组向量（或列式元组）。该函数逐行取出
X
中元素值是 true 的索引。返回一个整型数组向量（或列式元组），其行数和
X
的行数相同。若
X
中某一行的所有元素值都是空值或 false，则该行返回空值。
参数
X
矩阵
、数组向量或列式元组
。
Y
整型向量、布尔型矩阵、整型或布尔型数组向量或列式元组
。
返回值
返回一个与
Y
长度相同的向量。若索引无对应元素或索引超出
X
的有效索引范围，则返回空值。
例子
m = matrix(3.1 4.5 2.2, 4.2 4.3 5.1, 6.2 7.1 2.2, 1.8 6.1 5.3, 7.1 8.4 3.5)
index = 4 0 2
rowAt(m, index)
// output
[7.1,4.5,2.2]

trades = table(10:0,`time`sym`p1`p2`p3`p4`p5`vol1`vol2`vol3`vol4`vol5,[TIMESTAMP,SYMBOL,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,INT,INT,INT,INT,INT])
insert into trades values(2022.01.01T09:00:00, `A, 33.2, 33.8, 33.6, 33.3, 33.1, 200, 180, 180, 220, 200)
insert into trades values(2022.01.01T09:00:00, `A, 33.1, 32.8, 33.2, 34.3, 32.3, 150, 280, 190, 100, 220)
insert into trades values(2022.01.01T09:00:00, `A, 31.2, 32.6, 33.6, 35.3, 34.5, 220, 160, 130, 100, 110)
insert into trades values(2022.01.01T09:00:00, `A, 30.2, 32.5, 33.6, 35.3, 34.1, 200, 180, 150, 140, 120)
insert into trades values(2022.01.01T09:00:00, `A, 33.2, 33.8, 33.6, 33.3, 33.1, 180, 160, 160, 180, 200)
select rowAt(matrix(p1, p2, p3, p4, p5), rowImin(vol1, vol2, vol3, vol4, vol5)) as price1, rowAt(matrix(p1, p2, p3, p4, p5), rowImax(vol1, vol2, vol3, vol4, vol5)) as price2 from trades
表
1
.
查询返回
price1
price2
33.8
33.3
34.3
32.8
35.3
31.2
34.1
30.2
33.8
33.1
index = array(INT[], 0, 10).append!([0 1, 2 4, 3 4 5])
rowAt(m, index)
// output
[[3.1,4.2],[7.1,8.4],[5.3,3.5,]]

x = array(DOUBLE[], 0, 10).append!([3.3 3.6 3.8, 3.7 3.4 3.5, 3.4 3.4 3.5])
index = array(INT[], 0, 10).append!([0 1, 2, 0 2])
rowAt(x, index)
// output
[[3.3,3.6],[3.5],[3.4,3.5]]
2.00.10.2 及以上版本，当
X
是布尔类型矩阵或数组向量时，
Y
可以不指定，此时
rowAt
返回每行中 true 元素的索引。
m = matrix(true false false, false true false, true true false)
R=rowAt(m)
R
// output
[[0,2],[1,2],]
typestr(R)
// output
FAST INT[] VECTOR

m = matrix(3.1 4.5 2.2, 2.2 4.3 5.1, 1.2 7.1 2.2, 1.8 6.1 5.3, 1 4 3)
rowAt(m, m>4)
// output
[,[4.5,4.3,7.1,6.1],[5.1,5.3]]

x = array(DOUBLE[], 0, 10).append!([3.3 3.6 3.8, 3.7 3.4 3.5, 3.4 3.4 3.5])
rowAt(x, x>3.5)
// output
[[3.6,3.8],[3.7],]
对列式元组与数组向量应用
rowAt
：
x = ([1, 2, 3], [4, 5, 6]).setColumnarTuple!()
y = fixedLengthArrayVector([1, 4], [2, 5], [3, 6])

rowAt(x, x > 1)
// output
([2,3],[4,5,6])

rowAt(y, y>1)
// output
[[2,3],[4,5,6]]

path: references/doc_1046.md
content: # hex

**URL**: https://docs.dolphindb.cn/zh/funcs/h/hex.html

**来源**: DolphinDB 官方文档

---

hex
语法
hex(X, [reverse=false])
详情
把如下数据类型转换为十六进制数据显示：
INTEGRAL
FLOAT
COMPLEX
BINARY
参数
X
是一个整型标量或向量。
reverse
是一个布尔值，表示高低位是否互换。默认值是 false。
返回值
STRING 类型的标量或向量，表示数据对应的十六进制数。
例子
hex(16 25);
//output: ["00000010","00000019"]

hex(16 25,true);
//output: ["10000000","19000000"]

hex(compress(1 2 3));
//output: ["00","05","ff","01","04","04","00","00","ff","ff","ff","ff","03","00","00","00","ff","ff","ff","ff","0d","00","00","80","c0","01","00","00","00","02","00","00","00","03","00","00","00"]
a = hex(123.456 3.1415926)
print a
//output: ["405edd2f1a9fbe77","400921fb4d12d84a"]

path: references/doc_1048.md
content: # regexReplace

**URL**: https://docs.dolphindb.cn/zh/funcs/r/regexReplace.html

**来源**: DolphinDB 官方文档

---

regexReplace
语法
regexReplace(str, pattern, replacement,
                [offset])
详情
从
str
的第
offset
个位置开始搜索与
pattern
匹配的字符串，如果找到匹配字符串，则把匹配字符串替换成
replacement
，然后返回替换后的字符串。
参数
str
是一个字符串或字符串向量。
pattern
是一个字符串，表示搜索的模式字符串（
正则表达式
）。模式字符串可以包含字面量字符、元字符或两者的组合。
replacement
是字符串标量，表示替换的字符串。
offset
是一个非负整数，默认值为0。它是一个可选参数，表示从
str
的第
offset
个位置开始搜索。
str
的第一个位置为0。
返回值
STRING 类型标量或向量。
例子
regexReplace("abc234 ff456", "[a-z]", "z");
// output
zzz234 zz456

regexReplace("abc234 ff456", "[a-z]+", "zzz");
// output
zzz234 zzz456

regexReplace("abc234 ff456", "[0-9]+", "zzz");
// output
abczzz ffzzz

path: references/doc_1052.md
content: # upper

**URL**: https://docs.dolphindb.cn/zh/funcs/u/upper.html

**来源**: DolphinDB 官方文档

---

upper
语法
upper(X)
详情
upper
函数把字符串或字符串列表中的所有字符转换为大写。
参数
X
是一个字符串标量或向量。
返回值
字符串标量或向量。
例子
x = `Ibm`C`AapL;
x.upper();
// output: ["IBM","C","AAPL"]

(`Thl).upper();
// output: THL
相关函数：
lower

path: references/doc_1062.md
content: # clearAllCache

**URL**: https://docs.dolphindb.cn/zh/funcs/c/clearAllCache.html

**来源**: DolphinDB 官方文档

---

clearAllCache
语法
clearAllCache()
详情
清除以下缓存数据：
维度表在内存中的缓存
OLAP 引擎分区表中已经载入内存的数据
TSDB 引擎的 Level File 索引的缓存
TSDB 引擎中 SYMBOL 类型的字典编码的缓存
分布式计算中 map-reduce 任务的中间结果
参数
无。
返回值
无。
例子
clearAllCache();

path: references/doc_1063.md
content: # Web 操作手册

**URL**: https://docs.dolphindb.cn/zh/db_distr_comp/db_man/web/intro.html

**来源**: DolphinDB 官方文档

---

Web 操作手册
用户可以在集群管理器的 Web 界面对同一集群中的代理节点、数据节点和计算节点进行管理。
图
1
.
控制节点下的 Web 集群管理器
注：
使用 Web 集群管理器前，请确保浏览器版本满足以下要求：
Chrome/Firefox/Edge 浏览器：版本高于 100
Safari 浏览器：版本高于 16

path: references/doc_1069.md
content: # percentChange

**URL**: https://docs.dolphindb.cn/zh/funcs/p/percentChange.html

**来源**: DolphinDB 官方文档

---

percentChange
语法
percentChange(X,[n])
详情
计算两个元素之间的值变化比例。即，对于
X
中的每一个元素，计算 (X
i
/ X
i-n
) - 1。
若
X
是矩阵，在每列内进行上述计算，返回一个与
X
维度相同的矩阵。
参数
X
是一个向量或矩阵。
n 为可选参数，整型，用于指定计算 X 中两个元素值变化百分比时的元素间隔数，默认值为 1。
在不指定 n 值时，percentChange 计算相邻元素值的变化百分比；
当 n 为大于 1 的整数时，例如，当 X = 3 4 6 9，n = 2 时，计算 X 中 6 和 3 之间、9 和 4
                        之间的值变化百分比，得到的结果为：[,,1,1.25]，即 100% 和 125%。
当 n 为负整数时，例如， X = 3 4 6 9，n = -2 时，计算 X 中 3 和 6 之间、4 和 9
                        之间的值变化百分比，得到的结果为：[-0.5, -0.5555555555555556,,]。
返回值
DOUBLE 类型向量或矩阵。
例子
percentChange([1,2,3]);
//output： [,1,0.5]
percentChange(85 90 95);
//output：[,0.058824,0.055556]
m=matrix(100 105 109 112 108 116, 200 212 208 199 206 210);
m
返回：
#0
#1
100
200
105
212
109
208
112
199
108
206
116
210
percentChange(m);
返回：
#0
#1
0.05
0.06
0.038095238095238
-0.018867924528302
0.027522935779817
-0.043269230769231
-0.035714285714286
0.035175879396985
0.074074074074074
0.019417475728155
以下例子中，X 是一个从 1 到 10 递增的向量。n = 3，即 1 和 4 比较，2 和 5 比较， 3 和 6 比较，以此类推。
X = 1..10;
n = 3;
r = percentChange(X,n);
print r;
//output: [,,,3,1.5,1,0.75,0.6,0.5,0.428571428571429]
以下例子中，X 是一个矩阵。
m=matrix(1 3 2 NULL 6 9 3, 0 8 NULL 7 6 2 8);
n = 3;
result = percentChange(m,n);
result;
返回：
0
1
1
-0.25
3.5
0.14285714285714285
当 n 为负整数时，
x = 3 4 6 9
n = -2
r2= percentChange(x,n)
r2
返回：
0
1
2
3
-0.5
-0.5555555555555556

path: references/doc_1081.md
content: # mfirst

**URL**: https://docs.dolphindb.cn/zh/funcs/m/mfirst.html

**来源**: DolphinDB 官方文档

---

mfirst
语法
mfirst(X, window, [minPeriods])
窗口计算规则请参考：
mFunctions
详情
在给定长度（以元素个数或时间长度衡量）的滑动窗口内计算
X
的第一个元素。
参数
X
是一个向量/矩阵/表/元组（元素为标量或等长向量）/字典。
window
是大于等于 2 的正整型或 DURATION 标量。表示滑动窗口的长度。
注：
在流计算引擎中调用滑动窗口函数时，window 的上限为 102400。
minPeriods
是一个正整数。为滑动窗口中最少包含的观测值数据。
返回值
当
X
是向量时，返回一个向量。
当
X
是矩阵时，返回一个矩阵。
当
X
是表时，对表的每列进行计算，返回相应的结果。
当
X
是元组时，对元组中的每个向量分别计算，返回相应的结果。
例子
index = second(08:20:00)+1..7
x = 2 1 3 NULL 6 5 4
x = index.indexedSeries(x)
mfirst(x,3s)
label
col1
08:20:01
2
08:20:02
2
08:20:03
2
08:20:04
1
08:20:05
3
08:20:06
08:20:07
6
m = matrix(1 5 9 0 2, 9 10 2 NULL 2)
m.rename!((date(2020.09.08)+1..3) join 2020.09.16 join 2020.09.26, `A`B)
m.setIndexedMatrix!()
mfirst(m, 3d)
label
A
B
2020.09.09
1
9
2020.09.10
1
9
2020.09.11
1
9
2020.09.16
0
2020.09.26
2
2
mfirst(m, 1w)
label
A
B
2020.09.09
1
9
2020.09.10
1
9
2020.09.11
1
9
2020.09.16
5
10
2020.09.26
2
2
相关函数：
first
,
last

path: references/doc_1083.md
content: # getRecentSlaveReplicationInfo

**URL**: https://docs.dolphindb.cn/zh/funcs/g/getRecentSlaveReplicationInfo.html

**来源**: DolphinDB 官方文档

---

getRecentSlaveReplicationInfo
语法
getRecentSlaveReplicationInfo()
详情
查看跨集群异步复制进程中，连接到主集群的各从集群最近一次的任务状态。该函数只能由管理员在主集群的控制节点调用。
参数
无
返回值
返回一个表对象，包含以下字段：
connectedController：从集群的 controller 的 ip:port。
allControllersInRaft：若从集群为高可用集群，则将显示 raft 组所有控制节点的 ip:port。
lastFinishedTaskId：最近一次执行完成的异步复制任务 id。
lastPullTime：从集群最近一次连接到主集群拉取异步复制任务的时间。
例子
getRecentSlaveReplicationInfo()
输出返回：
connectedController
allControllersInRaft
lastFinishedTaskId
lastPullTime
192.168.2.2:1111
192.168.2.2:1111,192.168.2.2:1112,192.168.2.2:1113
233
2022.11.11T11:11:11

path: references/doc_109.md
content: # cumstd

**URL**: https://docs.dolphindb.cn/zh/funcs/c/cumstd.html

**来源**: DolphinDB 官方文档

---

cumstd
语法
cumstd(X)
参数说明和窗口计算规则请参考：
累计窗口系列（cum 系列）
详情
计算
X
元素的累计标准差。
返回值
DOUBLE 类型，其数据形式同
X
。
例子
x = [1,2,4,NULL,8];
cumstd(x);
// output
[,0.707107,1.527525,1.527525,3.095696]

m=matrix(0.15 0.08 0.03 -0.14 -0.09, 0.2 -0.12 -0.16 0.08 0.16);
m;
#0
#1
0.15
0.2
0.08
-0.12
0.03
-0.16
-0.14
0.08
-0.09
0.16
cumstd(m);
#0
#1
0.049497474683058
0.226274169979695
0.060277137733417
0.19731531449265
0.123558353285671
0.169705627484771
0.119707978013163
0.16346253393362
相关函数：
std

path: references/doc_1096.md
content: # 响应式状态引擎

**URL**: https://docs.dolphindb.cn/zh/stream/reactive_state_engine.html

**来源**: DolphinDB 官方文档

---

响应式状态引擎
DolphinDB 的响应式状态引擎每输入一条数据引擎都将触发一条结果输出，且针对生产业务中的常见状态函数（滑动窗口函数、累积函数、序列相关函数和 topN
            相关函数等）进行特殊优化，大幅提升了这些函数在响应式状态引擎中的计算效率。响应式状态引擎目前仅支持系统优化过的状态函数。如果 DolphinDB
            用户需要使用自定义函数封装复杂的状态函数，可以用 @state
            进行声明。响应式状态引擎应用广泛，例如金融场景下计算有状态的高频因子、主买成交量占比，以及大小单资金流等；物联网场景下检测传感器数据流中的温度是否在持续上升等。
金融高频因子计算示例
本节通过一个金融高频因子计算的示例，介绍高频因子计算中的挑战。以下的因子表达式以 DolphinDB
                    脚本语言编写，使用了用户自定义函数
sum\_diff
和内置函数
ema
(exponential moving
                    average)。
sum_diff
是一个无状态函数，
ema
是一个有状态的函数，依赖历史数据。更为棘手的是，如以下计算分解图所示，需要使用
ema
函数的多重嵌套。
def
sum_diff(x, y){
return
(x-y)/(x+y)
}

ema(
1000
* sum_diff(ema(price,
20
), ema(price,
40
)),
10
) -  ema(
1000
* sum_diff(ema(price,
20
), ema(price,
40
)),
20
)
面对此类场景，我们需要解决以下几个问题：
投研阶段能否使用历史数据快速为每只股票计算 100~1000 个类似的因子？
实盘阶段能否在每个行情tick数据到来时为每只股票计算 100~1000 个类似的因子？
批处理和流计算的代码实现是否高效？批和流能否统一代码？正确性校验是否便捷？
现有解决方案的优缺点
Python pandas/numpy 目前是研究阶段最常用的高频因子解决方案。pandas
                对历史面板数据处理有非常成熟的解决方案，而且内置了大部分高频因子计算需要用到的算子，可快速开发高频因子。但 pandas
                无论对历史数据计算，还是对实时数据计算的性能都较差。对历史数据计算时，单线程的计算性能也存在较大提升空间，此外，由于 python 的 Global
                interpreter lock 的限制，无法进行并行计算；对实时数据进行计算时，由于 python
                仅支持全量计算，不支持增量计算，所以无法达到实时计算的性能要求。
为生产环境中的性能考虑，很多机构会用 C++
                重新实现研究（历史数据）代码。不过，这种方法需要维护两套代码，开发成本（时间和人力）会大幅增加。此外，还要耗费大量精力确保两套系统的结果完全一致。
Flink 是一种批流统一的解决方案。Flink 支持 SQL 和窗口函数，高频因子用到的基本算子在 Flink 中已经内置实现。因此，简单的因子用 Flink
                实现比较高效，运行性能也较好。但 Flink 最大的问题是无法实现复杂的高频因子计算。如前一章中提到的例子，需要多个窗口函数的嵌套，无法直接用 Flink
                实现。这也正是 DolphinDB 开发响应式状态引擎的动机所在。
响应式状态引擎（Reactive State Engine)
响应式状态引擎（Reactive State Engine）实际上是一个计算黑盒，输入在历史数据上已经验证的 DolphinDB
                因子代码（表达式或函数）以及实时行情数据，输出实时因子值。由于在静态的历史数据集上开发和验证高频因子远比在流数据上开发更为简单，响应式状态引擎显著降低了流式高频因子的开发成本和难度。
def
sum_diff(x, y){
return
(x-y)/(x+y)
}
factor1 = <ema(
1000
* sum_diff(ema(price,
20
), ema(price,
40
)),
10
) -  ema(
1000
* sum_diff(ema(price,
20
), ema(price,
40
)),
20
)>

share streamTable(
1
:
0
, `sym`price, [STRING,DOUBLE])
as
tickStream
result = table(
1000
:
0
, `sym`factor1, [STRING,DOUBLE])
rse = createReactiveStateEngine(name=
"reactiveDemo"
, metrics=factor1, dummyTable=tickStream, outputTable=result, keyColumn=
"sym"
)
subscribeTable(tableName=`tickStream, actionName=
"factors"
, handler=tableInsert{rse})
以上代码在 DolphinDB 中实现前述因子的流式计算。factor1 是前述因子在历史数据上的实现，不做任何改变，直接传递给响应式状态引擎
                    rse，即可实现流式计算。通过订阅函数
subscribeTable
，将流数据表
tickStream
与状态引擎
                rse 进行关联。每一批次实时数据的注入，都会触发状态引擎的计算，并输出因子值到结果表
result
。以下代码产生随机数据，并注入到流数据表。结果与通过
                SQL 语句计算的结果完全相同。
data = table(take(
"A"
,
100
)
as
sym, rand(
10.0
,
100
)
as
price)
tickStream.append!(data)
factor1Hist = select sym, ema(
1000
* sum_diff(ema(price,
20
), ema(price,
40
)),
10
) -  ema(
1000
* sum_diff(ema(price,
20
), ema(price,
40
)),
20
)
as
factor1
from
data context by sym
assert
each(eqObj, result.values(), factor1Hist.values())
工作原理
如上图所示，一个有状态的高频因子计算过程可以分解成有一个有向无环图（DAG）。图中的节点有3种：数据源（如 price）、有状态的算子（如 a, b, d,
                    e）、无状态的算子（如 c 和 result）。从数据源节点开始，按照既定的路径，层层推进，得到最后的因子输出。这非常类似 excel
                    中的单元格链式计算。当一个单元格的数据发生变化时，相关联的单元格依次发生变化。响应式状态引擎的名称也是从这一点引申出来的。
无状态的算子比较简单，使用 DolphinDB 已有的脚本引擎，就可以表示和计算。因此，问题转化为两点：（1）如何解析得到一个优化的
                    DAG，（2）如何优化每个有状态的算子的计算。
解析和优化
DolphinDB 的脚本语言是支持向量化和函数化的多范式编程语言。通过函数的调用关系，不难得到计算步骤的 DAG。在解析的时候，因为输入消息的 schema
                    是已知的，我们可以快速推断出每一个节点的输入数据类型和输出数据类型。输入参数类型确定，函数名称确定，每个状态算子的具体实例就可以创建出来。
每一个算子（有状态和无状态）在 DolphinDB 中都可以转化为一个唯一的字符串序列。据此，我们可以删除重复的算子，提高计算效率。
内置状态函数
状态算子计算时需要用到历史状态。如果每一次计算都使用全量数据，性能不佳。状态函数的优化，也就是增量方式的流式实现非常关键。下列状态函数在 DolphinDB
                        的响应式状态引擎中的实现均得到了优化。目前，状态引擎不允许使用未经优化的状态函数，且需避免使用聚合函数。
累计窗口函数：
cumavg
,
cumsum
,
cumprod
,
cumcount
,
cummin
,
cummax
,
cumvar
,
cumvarp
,
cumstd
,
cumstdp
,
cumcorr
,
cumcovar
,
cumbeta
,
cumwsum
,
cumwavg
,
cumfirstNot
,
cumlastNot
,
cummed
,
cumpercentile
,
cumnunique
,
cumPositiveStreak
,
cummdd
滑动窗口函数：
ema
,
mavg
,
msum
,
mcount
,
mprod
,
mvar
,
mvarp
,
mstd
,
mstdp
,
mskew
,
mkurtosis
,
mmin
,
mmax
,
mimin
,
mimax
,
mmed
,
mpercentile
,
mrank
,
mcorr
,
mcovar
,
mbeta
,
mwsum
,
mwavg
,
mmad
,
mfirst
,
mlast
,
mslr
,
tmove
,
tmfirst
,
tmlast
,
tmsum
,
tmsum2
,
tmavg
,
tmcount
,
tmvar
,
tmvarp
,
tmstd
,
tmstdp
,
tmprod
,
tmskew
,
tmkurtosis
,
tmmin
,
tmmax
,
tmmed
,
tmpercentile
,
tmrank
,
tmcovar
,
tmbeta
,
tmcorr
,
tmwavg
,
tmwsum
,
tmoving
,
moving
,
sma
,
wma
,
dema
,
tema
,
trima
,
linearTimeTrend
,
talib
,
t3
,
ma
,
gema
,
wilder
,
mmaxPositiveStreak
,
movingWindowData
,
tmovingWindowData
序列相关函数：
deltas
,
ratios
,
ffill
,
move
,
prev
,
iterate
,
ewmMean
,
ewmVar
,
ewmStd
,
ewmCov
,
ewmCorr
,
prevState
,
percentChange
topN相关函数：
msumTopN
,
mavgTopN
,
mstdpTopN
,
mstdTopN
,
mvarpTopN
,
mvarTopN
,
mcorrTopN
,
mbetaTopN
,
mcovarTopN
,
mwsumTopN
,
cumsumTopN
,
cumwsumTopN
,
cumvarTopN
,
cumvarpTopN
,
cumstdTopN
,
cumstdpTopN
,
cumcorrTopN
,
cumbetaTopN
,
cumavgTopN
,
cumskewTopN
,
cumkurtosisTopN
,
mskewTopN
,
mkurtosisTopN
,
tmsumTopN
,
tmavgTopN
,
tmstdTopN
,
tmstdpTopN
,
tmvarTopN
,
tmvarpTopN
,
tmskewTopN
,
tmkurtosisTopN
,
tmbetaTopN
,
tmcorrTopN
,
tmcovarTopN
,
tmwsumTopN
高阶函数：
segmentby
(参数
func
暂支持 cumsum, cummax, cummin, cumcount,
                        cumavg, cumstd, cumvar, cumstdp, cumvarp),
moving
,
byColumn
,
accumulate
,
window
其他函数：
talibNull
,
dynamicGroupCumsum
,
dynamicGroupCumcount
,
topRange
,
lowRange
,
trueRange
,
sumbars
特殊函数（仅支持在引擎内使用）：
stateIterate
,
conditionalIterate
,
genericStateIterate
,
genericTStateIterate
注：
talib
作为状态函数时，第一个参数
func
只能是响应式状态引擎支持的状态函数。
自定义状态函数
响应式状态引擎中可使用自定义状态函数。需要注意以下几点：
需在定义前添加声明 "@state"。状态函数只能包含赋值语句和 return 语句。
自
2.00.9
版本起，支持使用 if-else
                            条件语句，且条件只能是标量。
自
2.00.11
版本起，支持使用 for 循环（包含 break, continue
                            语句），请注意不支持嵌套 for 循环，且循环次数须小于 100 次。
状态引擎中可以使用无状态函数或者状态函数。但不允许在无状态函数中嵌套使用状态函数。
若赋值语句的右值是一个多返回值的函数（内置函数或自定义函数），则需要将多个返回值同时赋予多个变量。例如：两个返回值的函数 linearTimeTrend
                        应用于自定义状态函数中，正确写法为：
@state
def forcast2(S, N){
      linearregIntercept, linearregSlope = linearTimeTrend(S, N)
      return (N - 1) * linearregSlope + linearregIntercept
}
如果仅允许使用一个表达式来表示一个因子，会带来很多局限性。首先，在某些情况下，仅使用表达式无法实现一个完整的因子。下面的例子返回线性回归的 alpha，beta
                    和 residual。
@state
def
slr(y, x){
    alpha, beta = mslr(y, x,
12
)
    residual = mavg(y,
12
) - beta * mavg(x,
12
) - alpha
return
alpha, beta, residual
}
其次，很多因子可能会使用共同的中间结果，定义多个因子时，代码会更简洁。自定义函数可以同时返回多个结果。下面的函数
multiFactors
定义了 5 个因子。
@state
def
multiFactors(lowPrice, highPrice, volumeTrade, closePrice, buy_active, sell_active, tradePrice, askPrice1, bidPrice1, askPrice10, agg_vol, agg_amt){
    a = ema(askPrice10,
30
)
    term0 = ema((lowPrice - a) / (ema(highPrice,
30
) - a),
50
)
    term1 = mrank((highPrice - a) / (ema(highPrice,
5
) - a), true,
15
)
    term2 = mcorr(askPrice10, volumeTrade,
10
) * mrank(mstd(closePrice,
20
,
20
), true,
10
)
    buy_vol_ma = mavg(buy_active,
6
)
    sell_vol_ma = mavg(sell_active,
6
)
    zero_free_vol = iif(agg_vol==
0
,
1
, agg_vol)
    stl_prc = ffill(agg_amt \ zero_free_vol \
20
).nullFill(tradePrice)
    buy_prop = stl_prc
	
    spd = askPrice1 - bidPrice1
    spd_ma = round(mavg(iif(spd <
0
,
0
, spd),
6
),
5
)
    term3 = buy_prop * spd_ma
    term4 = iif(spd_ma ==
0
,
0
, buy_prop / spd_ma)
return
term0, term1, term2, term3, term4
}
最后，某些表达式冗长，缺乏可读性。第一节中的因子表达式改为下面的自定义状态函数
factor1
后，计算逻辑简洁明了。
@state
def
factor1(price) {
    a = ema(price,
20
)
    b = ema(price,
40
)
    c =
1000
* sum_diff(a, b)
return
ema(c,
10
) - ema(c,
20
)
}
输出结果过滤
状态引擎会对输入的每一条消息做出计算响应，产生一条记录作为结果。计算的结果在默认情况下都会输出到结果表，也就是说输入 n 个消息，输出 n
                    条记录。如果希望仅输出一部分结果，可以启用过滤条件，只有满足条件的结果才会输出。
下面的例子检查股票价格是否有变化，只有价格变化的记录才会输出。
share streamTable(
1
:
0
, `sym`price, [STRING,DOUBLE])
as
tickStream
result = table(
1000
:
0
, `sym`price, [STRING,DOUBLE])
rse = createReactiveStateEngine(name=
"reactiveFilter"
, metrics =[<price>], dummyTable=tickStream, outputTable=result, keyColumn=
"sym"
, filter=<prev(price) != price>)
subscribeTable(tableName=`tickStream, actionName=
"filter"
, handler=tableInsert{rse})
快照机制
为了满足生产环境业务持续性的需要，DolphinDB 内置的流式计算引擎包括响应式状态引擎均支持快照（snapshot）输出。
响应式状态引擎的快照包括已处理的最后一条消息的 ID
                    以及引擎当前的状态（中间计算结果）。当系统出现异常，重新初始化状态引擎时，可恢复到最后一个快照的状态，并且从已处理的消息的下一条开始订阅。
def
sum_diff(x, y){
return
(x-y)/(x+y)
}
factor1 = <ema(
1000
* sum_diff(ema(price,
20
), ema(price,
40
)),
10
) -  ema(
1000
* sum_diff(ema(price,
20
), ema(price,
40
)),
20
)>

share streamTable(
1
:
0
, `sym`price, [STRING,DOUBLE])
as
tickStream
result = table(
1000
:
0
, `sym`factor1, [STRING,DOUBLE])
rse = createReactiveStateEngine(name=
"reactiveDemo"
, metrics =factor1, dummyTable=tickStream, outputTable=result, keyColumn=
"sym"
, snapshotDir=
"/home/data/snapshot"
, snapshotIntervalInMsgCount=
400000
)
msgId = getSnapshotMsgId(rse)
if
(msgId >=
0
) msgId +=
1
subscribeTable(tableName=`tickStream, actionName=
"factors"
, offset=msgId, handler=appendMsg{rse}, handlerNeedMsgId=true)
响应式状态引擎要启用快照机制，创建时需要指定两个额外的参数：
snapshotDir
：用于指定存储快照的目录。
snapshotIntervalInMsgCount
。用于指定处理多少条消息后产生一个快照。
引擎初始化时，系统会检查快照目录下是否存在一个以引擎名称命名，后缀为 snapshot 的文件。以上面的代码为例，如果存在文件
                    /home/data/snapshot/reactiveDemo.snapshot，则加载这个快照。函数
getSnapshotMsgId
可以获取最近一个快照对应的 msgId。如果不存在快照，返回 -1。
状态引擎要启用快照机制，调用
subscribeTable
函数也需相应的修改：
首先必须指定消息的 offset。
其次，
handler
必须使用
appendMsg
函数。
appendMsg
函数接受两个参数，
msgBody
和
msgId
。
再次，参数
handlerNeedMsgId
必须指定为 true。
并行处理
当需要处理大量消息时，可在 DolphinDB 消息订阅函数
subscribeTable
中指定可选参数
filter
与
hash
，让多个订阅客户端并行处理消息。
参数
filter
用于指定消息过滤逻辑。目前支持三种过滤方式，分别为值过滤，范围过滤和哈希过滤。
参数
hash
可以指定一个哈希值，确定这个订阅由哪个线程来执行。例如，配置参数
subExecutors
为
                            4，用户指定了哈希值 5，那么该订阅的计算任务将由第二个线程来执行。
下面是响应式状态引擎并行计算因子的例子。假设配置参数
subExecutors
= 4，创建 4
                    个状态引擎，每个状态引擎根据流数据表的股票代码的哈希值来订阅不同股票的数据，并且指定不同的订阅线程来处理，最终将结果输出到同一个输出表中。
def
sum_diff(x, y){
return
(x-y)/(x+y)
}
factor1 = <ema(
1000
* sum_diff(ema(price,
20
), ema(price,
40
)),
10
) -  ema(
1000
* sum_diff(ema(price,
20
), ema(price,
40
)),
20
)>

share streamTable(
1
:
0
, `sym`price, [STRING,DOUBLE])
as
tickStream
setStreamTableFilterColumn(tickStream, `sym)
share streamTable(
1000
:
0
, `sym`factor1, [STRING,DOUBLE])
as
resultStream
for
(i
in
0.
.3
){
    rse = createReactiveStateEngine(name=
"reactiveDemo"
+string(i), metrics =factor1, dummyTable=tickStream, outputTable=resultStream, keyColumn=
"sym"
)
    subscribeTable(tableName=`tickStream, actionName=
"sub"
+string(i), handler=tableInsert{rse}, msgAsTable = true, hash = i, filter = (
4
,i))
}

n=
2000000
tmp = table(take(
"A"
+string(
1.
.4000
), n)
as
sym, rand(
10.0
, n)
as
price)
tickStream.append!(tmp)
重要：
如果多个状态引擎使用同一个输出表，则该输出表必须是一个共享表。没有共享的表不是线程安全的，并行写入可能会导致系统崩溃。
流批统一解决方案
金融高频因子的流批统一处理在 DolphinDB 中有两种实现方法。
第一种方法，使用函数或表达式实现金融高频因子，代入不同的计算引擎进行历史数据或流数据的计算。代入 SQL
                        引擎，可以实现对历史数据的计算；代入响应式状态引擎，可以实现对流数据的计算。这在第3章的序言部分已经举例说明。在这种模式下用 DolphinDB
                        脚本语言表示的表达式或函数实际上是对因子语义的一种描述，而不是具体的实现。因子计算的具体实现交由相应的计算引擎来完成，从而实现不同场景下的最佳性能。
第二种方法，历史数据通过回放，转变成流数据，然后使用流数据计算引擎来完成计算。我们仍然以教程开始部分的因子为例，唯一的区别是流数据表
tickStream
的数据源来自于历史数据库的
                        replay。使用这种方法计算历史数据的因子值，效率不高是一个缺点。
def
sum_diff(x, y){
return
(x-y)/(x+y)
}
factor1 = <ema(
1000
* sum_diff(ema(price,
20
), ema(price,
40
)),
10
) -  ema(
1000
* sum_diff(ema(price,
20
), ema(price,
40
)),
20
)>

share streamTable(
1
:
0
, `sym`date`time`price, [STRING,DATE,TIME,DOUBLE])
as
tickStream
result = table(
1000
:
0
, `sym`factor1, [STRING,DOUBLE])
rse = createReactiveStateEngine(name=
"reactiveDemo"
, metrics =factor1, dummyTable=tickStream, outputTable=result, keyColumn=
"sym"
)
subscribeTable(tableName=`tickStream, actionName=
"factors"
, handler=tableInsert{rse})

//从历史数据库dfs://TAQ的trades表中加载一天的数据，回放到流数据表 tickStream 中
inputDS = replayDS(<select sym, date, time, price
from
loadTable(
"dfs://TAQ"
,
"trades"
) where date=
2021.03
.
08
>, `date, `time,
08
:
00
:
00.000
+ (
1.
.10
) *
3600000
)
replay(inputDS, tickStream, `date, `time,
1000
, true,
2
)
性能测试
我们测试了响应式状态引擎计算因子的性能。测试使用模拟数据，并使用
warmupStreamEngine
函数模拟状态引擎已经处理部分数据的情况。测试共包括 20 个不同复杂度度的因子，其中两个自定义状态函数分别返回 3 个和 5
                个因子。为方便测试，计算仅使用单线程处理。
@state
def
slr(y, x){
    alpha, beta = mslr(y, x,
12
)
    residual = mavg(y,
12
) - beta * mavg(x,
12
) - alpha
return
alpha, beta, residual
}
@state
def
multiFactors(lowPrice, highPrice, volumeTrade, closePrice, buy_active, sell_active, tradePrice, askPrice1, bidPrice1, askPrice10, agg_vol, agg_amt){
    a = ema(askPrice10,
30
)
    term0 = ema((lowPrice - a) / (ema(highPrice,
30
) - a),
50
)
    term1 = mrank((highPrice - a) / (ema(highPrice,
5
) - a), true,
15
)
    term2 = mcorr(askPrice10, volumeTrade,
10
) * mrank(mstd(closePrice,
20
,
20
), true,
10
)
    buy_vol_ma = mavg(buy_active,
6
)
    sell_vol_ma = mavg(sell_active,
6
)
    zero_free_vol = iif(agg_vol==
0
,
1
, agg_vol)
    stl_prc = ffill(agg_amt \ zero_free_vol \
20
).nullFill(tradePrice)
    buy_prop = stl_prc
	
    spd = askPrice1 - bidPrice1
    spd_ma = round(mavg(iif(spd <
0
,
0
, spd),
6
),
5
)
    term3 = buy_prop * spd_ma
    term4 = iif(spd_ma ==
0
,
0
, buy_prop / spd_ma)
return
term0, term1, term2, term3, term4
}

metrics = array(ANY,
14
)
metrics[
0
] = <ema(
1000
* sum_diff(ema(close,
20
), ema(close,
40
)),
10
) -  ema(
1000
* sum_diff(ema(close,
20
), ema(close,
40
)),
20
)>
metrics[
1
] = <mslr(high, volume,
8
)[
1
]>
metrics[
2
] = <mcorr(low, high,
11
)>
metrics[
3
] = <mstdp(low,
15
)>
metrics[
4
] = <mbeta(high, value,
63
)>
metrics[
5
] = <mcovar(low, value,
71
)>
metrics[
6
] = <(close/mavg(close,
1.
.6
)-
1
)*
100
>
metrics[
7
] = <mmin(high,
15
)>
metrics[
8
] = <mavg(((high+low)/
2
+(mavg(high,
2
)+mavg(low,
2
))/
2
)*(high-low)/volume,
7
,
2
)>
metrics[
9
] = <mslr(mavg(close,
14
), volume,
63
)[
1
]>
metrics[
10
] = <mcorr(mavg(open,
25
), volume,
71
)>
metrics[
11
] = <mbeta(high, mstdp(close,
8
),
77
)>
metrics[
12
] = <slr(close, volume)>
metrics[
13
] = <multiFactors(low, high, volume, close, numTrade, numTrade, close, value, close, open, volume, numTrade)>

dummy = streamTable(
10000
:
0
, `symbol`market`date`time`quote_type`preclose`open`high`low`close`numTrade`volume`value`position`recvtime,[SYMBOL,SHORT,DATE,TIME,SHORT,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,LONG,DOUBLE,LONG,TIMESTAMP])
def
prepareData(tickNum, batch){
    total = tickNum*batch
    data=table(total:total, `symbol`market`date`time`quote_type`preclose`open`high`low`close`numTrade`volume`value`position`recvtime,[SYMBOL,SHORT,DATE,TIME,SHORT,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,LONG,DOUBLE,LONG,TIMESTAMP])
    data[`market]=rand(
10
, total)
    data[`date]=take(date(now()), total)
    data[`time]=take(time(now()), total)
    data[`symbol]=take(
"A"
+string(
1.
.tickNum), total)
    data[`open]=rand(
100.0
, total)
    data[`high]=rand(
100.0
, total)
    data[`low]=rand(
100.0
, total)
    data[`close]=rand(
100.0
, total)
    data[`numTrade]=rand(
100
, total)
    data[`volume]=rand(
100
, total)
    data[`value]=rand(
100.0
, total)
    data[`recvtime]=take(now(), total)
return
data
}

dropStreamEngine(
"demo1"
)
dropStreamEngine(
"demo2"
)
dropStreamEngine(
"demo3"
)
dropStreamEngine(
"demo4"
)

//
4000
个股票，
20
个因子
hisData = prepareData(
4000
,
100
)
realData = prepareData(
4000
,
1
)
colNames = [
"symbol"
].append!(
"factor"
+string(
0.
.19
))
colTypes = [SYMBOL].append!(take(DOUBLE,
20
))
resultTable = streamTable(
10000
:
0
, colNames, colTypes)
engine1 = createReactiveStateEngine(name=
"demo1"
, metrics=metrics, dummyTable=dummy, outputTable=resultTable, keyColumn=
"symbol"
)
warmupStreamEngine(engine1, hisData)
timer(
10
) engine1.append!(realData)
dropStreamEngine(
"demo1"
)

//
1
个股票，
20
个因子
hisData = prepareData(
1
,
100
)
realData = prepareData(
1
,
1
)
colNames = [
"symbol"
].append!(
"factor"
+string(
0.
.19
))
colTypes = [SYMBOL].append!(take(DOUBLE,
20
))
resultTable = streamTable(
10000
:
0
, colNames, colTypes)
engine2 = createReactiveStateEngine(name=
"demo2"
, metrics=metrics, dummyTable=dummy, outputTable=resultTable, keyColumn=
"symbol"
)
warmupStreamEngine(engine2, hisData)
timer(
10
) engine2.append!(realData)
dropStreamEngine(
"demo2"
)

//
4000
个股票，
1
个因子
hisData = prepareData(
4000
,
100
)
realData = prepareData(
4000
,
1
)
metrics3 = metrics[
0
]
colNames = [
"symbol"
,
"factor0"
]
colTypes = [SYMBOL, DOUBLE]
resultTable = streamTable(
10000
:
0
, colNames, colTypes)
engine3 = createReactiveStateEngine(name=
"demo3"
, metrics=metrics3, dummyTable=dummy, outputTable=resultTable, keyColumn=
"symbol"
)
warmupStreamEngine(engine3, hisData)
timer(
10
) engine3.append!(realData)

//
200
个股票，
20
个因子
hisData = prepareData(
200
,
100
)
realData = prepareData(
200
,
1
)
colNames = [
"symbol"
].append!(
"factor"
+string(
0.
.19
))
colTypes = [SYMBOL].append!(take(DOUBLE,
20
))
resultTable = streamTable(
10000
:
0
, colNames, colTypes)
engine4 = createReactiveStateEngine(name=
"demo4"
, metrics=metrics, dummyTable=dummy, outputTable=resultTable, keyColumn=
"symbol"
)
warmupStreamEngine(engine4, hisData)
timer(
10
) engine4.append!(realData)
我们统计了 10 次的总耗时，取平均值作为单次的耗时。测试使用的服务器 CPU 为 Intel(R) Xeon(R) Silver 4216 CPU @
                2.10GHz。单线程情况下，测试结果如下：
股票个数
因子个数
耗时(单位：ms)
4000
20
6
1
20
0.07
4000
1
0.8
200
20
0.2
多个引擎的流水线处理
DolphinDB
                内置的流计算引擎包括响应式状态引擎，时间序列聚合引擎，横截面引擎和异常检测引擎。这些引擎均实现了数据表（table）的接口，因此多个引擎流水线处理变得异常简单，只要将后一个引擎作为前一个引擎的输出即可。引入流水线处理，可以解决更为复杂的因子计算问题。譬如，因子计算经常需要使用面板数据，完成时间序列和横截面两个维度的计算，只要把响应式状态引擎和横截面两个引擎串联处理即可完成。
下面的例子是 World Quant 101个 Alpha 因子中的 1 号因子公式的流数据实现。
rank
函数是一个横截面操作。
rank
的参数部分用响应式状态引擎实现。
rank
函数本身用横截面引擎实现。横截面引擎作为状态引擎的输出。
Alpha
#001公式：rank(Ts_ArgMax(SignedPower((returns<0?stddev(returns,20):close), 2), 5))-0.5
//创建横截面引擎，计算每个股票的 rank
dummy = table(
1
:
0
, `sym`time`maxIndex, [SYMBOL, TIMESTAMP, DOUBLE])
resultTable = streamTable(
10000
:
0
, `time`sym`factor1, [TIMESTAMP, SYMBOL, DOUBLE])
ccsRank = createCrossSectionalAggregator(name=
"alpha1CCS"
, metrics=<[sym, rank(maxIndex, percent=true) -
0.5
]>,  dummyTable=dummy, outputTable=resultTable,  keyColumn=`sym, triggeringPattern=
'keyCount'
, triggeringInterval=
3000
, useSystemTime=false, timeColumn=`time)
@state
def
wqAlpha1TS(close){
    ret = ratios(close) -
1
v = iif(ret <
0
, mstd(ret,
20
), close)
return
mimax(signum(v)*v*v,
5
)
}

//创建响应式状态引擎，输出到前面的横截面引擎 ccsRank
input = table(
1
:
0
, `sym`time`close, [SYMBOL, TIMESTAMP, DOUBLE])
rse = createReactiveStateEngine(name=
"alpha1"
, metrics=<[time, wqAlpha1TS(close)]>, dummyTable=input, outputTable=ccsRank, keyColumn=
"sym"
)
流水线处理（也称为引擎多级级联）和多个流数据表的级联处理有很大的区别。两者可以完成相同的任务，但是效率上有很大的区别。后者涉及多个流数据表与多次订阅。前者实际上只有一次订阅，所有的计算均在一个线程中依次顺序完成，因而有更好的性能。
上面的例子是由用户来区分哪一部分是横截面操作，哪一部分是时间序列操作以实现多个引擎的流水线。在 1.30.16/2.00.4 及之后的版本中，新增函数
streamEngineParser
，支持将
metrics
自动分解成多个内置流计算引擎的流水线。在
streamEngineParser
中以行函数（
rowRank
，
rowSum
等）表示横截面操作的语义，以
rolling
函数表示时间序列操作，从而系统能够自动识别一个因子中的横截面操作和时间序列操作，进一步自动构建引擎流水线。因此，上述因子可以用
streamEngineParser
更简洁的实现，
metrics
几乎等同于因子的数学公式表达，而不需要考虑不同类型引擎的选择：
@state
def
wqAlpha1TS(close){
	ret = ratios(close) -
1
v = iif(ret <
0
, mstd(ret,
20
), close)
return
mimax(signum(v)*v*v,
5
)
}

//构建计算因子
metrics=<[sym, rowRank(wqAlpha1TS(close), percent=true)-
0.5
]>

streamEngine=streamEngineParser(name=
"alpha1_parser"
, metrics=metrics, dummyTable=input, outputTable=resultTable, keyColumn=`sym, timeColumn=`time, triggeringPattern=
'keyCount'
, triggeringInterval=
3000
)

path: references/doc_1097.md
content: # getAllDBGranularity

**URL**: https://docs.dolphindb.cn/zh/funcs/g/getAllDBGranularity.html

**来源**: DolphinDB 官方文档

---

getAllDBGranularity
语法
getAllDBGranularity()
详情
该函数只能在数据节点上执行，用于列出该节点上所有数据库的分区粒度。
参数
无
返回值
返回结果是一个字典，其中：
key：数据库的名称。
value：分区粒度，结果为 TABLE 或者 DATABASE。详细说明可参考
database
的参数
chunkGranularity
。
例子
getAllDBGranularity()

// output: 
/valuedb->TABLE

path: references/doc_1102.md
content: # nullCompare

**URL**: https://docs.dolphindb.cn/zh/funcs/ho_funcs/nullCompare.html

**来源**: DolphinDB 官方文档

---

nullCompare
语法
nullCompare(func, X, Y)
详情
返回一个布尔值，是表达式 “func(X,Y)” 的结果。涉及 NULL 值的计算结果均为 NULL。该函数不受配置项
                nullAsMinValueForComparison 影响。
参数
func
是<, >, >=, <=运算符，或函数 between,
                        in。
X
和
Y
可以是标量、数据对、向量、矩阵或集合。当
X
和
Y
都是向量或矩阵时，它们的长度或维度必须相同。
注：
X
和
Y
暂不支持以下数据类型：STRING, SYMBOL, IPADDR, UUID,
                BLOB 和I NT128。
返回值
一个布尔值。
例子
配置项
nullAsMinValueForComparison
= true 时，在比较运算中，NULL
                元素取相应数据类型的最小值。若使用 nullCompare，则不受该配置影响，依然取 NULL 值。
NULL < 3
// output
true
nullCompare(<, NULL, 3)
// output
NULL
m1=matrix(1 2 NULL, NULL 8 4, 4 7 2 )
m2 = 1..9$3:3
m1>m2
col1
col2
col3
false
false
false
false
true
false
false
false
false
nullCompare(>,m1,m2)
col1
col2
col3
false
false
false
true
false
false
false
nullCompare(between, 4 5 NULL, 4:9)
// output
[1,1,]

path: references/doc_111.md
content: # ewmCorr

**URL**: https://docs.dolphindb.cn/zh/funcs/e/ewmCorr.html

**来源**: DolphinDB 官方文档

---

ewmCorr
语法
ewmCorr(X, [com], [span], [halfLife], [alpha], [minPeriods=0],
                    [adjust=true], [ignoreNA=false], [other], [bias=false])
详情
返回
X
和
other
的指数加权移动相关系数。该函数必须指定
com
,
span
,
halfLife
,
alpha
四个参数中的一个。
参数
X
是一个数值型向量、矩阵或表。若
X
是表，只对其内数值型和布尔型的列进行计算。
com
是一个大于等于0的数值型标量，表示质心。
span
是一个大于等于1的数值型标量，表示跨度。
halfLife
是一个大于0的数值型标量，表示半衰期。
alpha
是一个(0,1]之间的浮点数，表示平滑系数。
minPeriods
是一个整数，表示窗口中的最小观察数。默认值为0。
adjust
是一个布尔值，表示是否除以开始阶段的衰减调整因子。默认值为 true。
ignoreNA
是一个布尔值，表示计算权重时是否忽略NULL值。默认值为 false。
other
当
X
是向量时，
other
只能是一个与
X
长度相同的数值型向量；当
X
是矩阵时，
other
是一个长度与
X
行数相同的数值型向量，或维度与
X
相同的矩阵；当
X
是表时，
other
是一个长度与
X
行数相同的数值型向量，或维度与
X
相同的表。
bias
是一个布尔值，表示是否校正系统偏差。默认值为 false。
返回值
DOUBLE 类型，数据形式同
X
。
例子
a=[0,1,2,int(),4]
b=[2,4,3,6,5]
ewmCorr(X=a,other=b,com=0.5);
// output
[,1.0000,-0.0533,-0.0533,0.9146]

ewmCorr(X=a,other=b,com=0.5,ignoreNA=true);
// output
[,1.0000,-0.0533,-0.0533,0.8934]

n = 20
colNames = `time`sym`qty`price
colTypes = [TIME,SYMBOL,INT,DOUBLE]
t1 = table(n:0, colNames, colTypes)
insert into t1 values(09:30:00.001,`AAPL,100,56.5)
insert into t1 values(09:30:00.001,`AAPL,200,30.5)
insert into t1 values(09:30:00.001,`DELL,150,35.5)
insert into t1 values(09:30:00.001,`DELL,170,60.5)
insert into t1 values(09:30:00.001,`DELL,130,40.5)
b=[2,4,3,6,5]
ewmCorr(X=t1,other=b,com=0.5);
time
sym
qty
price
09:30:00.001
AAPL
09:30:00.001
AAPL
1.0000
-1.0000
09:30:00.001
DELL
1.0000
-0.8481
09:30:00.001
DELL
0.5536
0.8747
09:30:00.001
DELL
0.3064
0.7050
相关函数：
ewmCov
,
ewmMean
,
ewmStd
,
ewmVar

path: references/doc_1110.md
content: # getChunkPath

**URL**: https://docs.dolphindb.cn/zh/funcs/g/getChunkPath.html

**来源**: DolphinDB 官方文档

---

getChunkPath
语法
getChunkPath(ds)
详情
返回指定数据源代表数据块的路径。
参数
ds
是一个或多个数据源。
返回值
字符串向量。
例子
if(existsDatabase("dfs://valuedb")){
  dropDatabase("dfs://valuedb")
}

db=database("dfs://valuedb", VALUE, 1..10)
n=1000000
t=table(rand(1..10, n) as id, rand(100.0, n) as val)
pt=db.createPartitionedTable(t, `pt, `id).append!(t);
ds=sqlDS(<select * from pt where id in 1..3>)
getChunkPath(ds);

// output
["/valuedb/1/p","/valuedb/2/p","/valuedb/3/p"]

path: references/doc_1120.md
content: # yearBegin

**URL**: https://docs.dolphindb.cn/zh/funcs/y/yearBegin.html

**来源**: DolphinDB 官方文档

---

yearBegin
语法
yearBegin(X, [startingMonth=1], [offset],
                [n=1])
详情
返回
X
所在的以
startingMonth
为起始月份的年份的第一天。
如果指定了
offset
，表示从
offset
开始，结果每隔
n
年更新一次。注意，
offset
和
n
须同时指定，且只有当
n
>1时，
offset
才会生效。
参数
X
可以是 DATE, DATETIME, DATEHOUR, TIMESTAMP 或 NANOTIMESTAMP 类型的标量或向量。
startingMonth
是1到12之间的整数，表示一年的起始月份。默认值是1。
offset
是与
X
类型相同的标量，并且它必须小于等于
X
中的最小值。它是一个可选参数。如果没有指定，
offset
默认为
X
中的最小值。
n
是一个正整数。它是一个可选参数，默认值为1。
返回值
一个 DATE 类型的标量或向量。
例子
yearBegin(2012.06.12, 10);
// output
2011.10.01

yearBegin(2012.06.12, 4);
// output
2012.04.01

yearBegin(2012.06.12);
// output
2012.01.01

yearBegin(2012.06.12, 1, 2009.04.03, 2);
// output
2011.01.01

date=2011.04.25+(1..10)*365
time = take(09:30:00, 10);
sym = take(`MSFT,10)
price= 49.6 29.46 29.52 30.02 174.97 175.23 50.76 50.32 51.29 52.38
qty = 2200 1900 2100 3200 6800 5400 1300 2500 8800 4500
t1 = table(date, time, sym, qty, price);

t1;
date
time
sym
qty
price
2012.04.24
09:30:00
MSFT
2200
49.6
2013.04.24
09:30:00
MSFT
1900
29.46
2014.04.24
09:30:00
MSFT
2100
29.52
2015.04.24
09:30:00
MSFT
3200
30.02
2016.04.23
09:30:00
MSFT
6800
174.97
2017.04.23
09:30:00
MSFT
5400
175.23
2018.04.23
09:30:00
MSFT
1300
50.76
2019.04.23
09:30:00
MSFT
2500
50.32
2020.04.22
09:30:00
MSFT
8800
51.29
2021.04.22
09:30:00
MSFT
4500
52.38
select avg(price),sum(qty) from t1 group by yearBegin(date, 10, 2010.10.01, 2);
yearBegin_date
avg_price
sum_qty
2010.10.01
49.6
2200
2012.10.01
29.49
4000
2014.10.01
102.495
10000
2016.10.01
112.995
6700
2018.10.01
50.805
11300
2020.10.01
52.38
4500
相关函数：
yearEnd
,
businessYearBegin
,
businessYearEnd

path: references/doc_1122.md
content: # at

**URL**: https://docs.dolphindb.cn/zh/funcs/a/at.html

**来源**: DolphinDB 官方文档

---

at
语法
at(X, [index])
详情
只指定一个参数 X：
如果 X 是布尔表达式或向量，函数返回
X
中结果为 true 的元素位置。
如果 X 是整型向量，则函数返回一个向量，该向量是根据 X
                                中每个位置的数值重复该位置的索引得到，其功能相当于
take(til(count(X)), X)
。例如
at(3 0 2)
结果为
[0,0,0,2,2]
。若某个位置的值为非正数，则跳过该位置。
指定两个参数：
如果
index
是布尔表达式，
at
函数返回
X
中
index
为 true 的位置的元素。
at
函数等价于中括号运算符 []。
                                比如，
X.at(X>3)
和
X[X>3]
相同。
如果
index
是向量，以向量中的值作为索引值，寻找
X
中该索引位置的值并返回。
若
X
是函数，
index
为元组，则
index
中每一个元素均作为
X
的参数使用。
如果
index
是数据对，如 a:b, 则表示索引范围为 [a,b)，寻找
X
中该范围的值并返回。
如果
index
是数组向量，对于
index
中的每行元素都作为一个索引值，寻找
X
中对应该索引位置的元素，然后返回一个和
index
结构相同的数组向量。
注：
index
作为索引值或索引范围时，若其值不在 [0, size(
X
) - 1] 内，则超出 [0,
                            size(
X
) - 1] 的值所对应的位置返回空值。
若
X
是函数，
index
为元组，则 index 中每一个元素均作为 X 的参数适用。
参数
如果只指定了一个参数，
X
可以是布尔表达式/向量，或是整型向量。
如果指定了两个参数：
X
可以是一个标量、向量（常规向量/元组
/数组向量
)、矩阵、表、字典、数据对、函数。
index
可以是一个布尔表达式/布尔值、标量、向量（常规向量/元组
/数组向量
)、数据对。
返回值
如果只指定了一个参数，则返回一个向量；如果指定了两个参数，则返回向量、数组向量或矩阵
例子
x = 2 3 -1 0 1
at(x)
// output:[0,0,1,1,1,4]

x=5 7 0 4 2 3
at(x>3)
//output：[0, 1, 3]
// 在位置 0, 1 和 3，x>3 为 true

// 和 x>3 相比
x>3;
//output：[1, 1, 0, 1, 0, 0]

x[x>3]
//output：[5, 7, 4]

x at x>3
//output：[5, 7, 4]

x=5 7 0 0 0 3
at(x==0)
//output：[2, 3, 4]

x[x==0]
//output：[0, 0, 0]

shares=500 1000 1000 600 2000
prices=25.5 97.5  19.2 38.4 101.5
prices[shares>800]
//output：[97.5, 19.2, 101.5]

prices at shares>800
//output: [97.5, 19.2, 101.5]
m=(1..6).reshape(2:3)
m;
0
1
2
1
3
5
2
4
6
at(m>3)
//output：[3,4,5]

m[m>3] // 等价于 m at m>3
返回：
col1
col2
col3
5
4
6
注意区分
index
是向量和元组的两种不同场景：
m at [0,2]  // 选择第 0 列和第 2 列
0
1
1
5
2
6
m at (0,2) // 查找特定行列的元素
//output: 5
m at 0:2 // 选择第 0 列和第 1 列
返回：
0
1
1
3
2
4
index
是数组向量的情况：
a = array(INT[], 0, 10).append!([0 2 3, 0 5, 0 8 8, 9 10])
b =[1, 2, 3]
at(b, a)
//output: [[1,3, ], [1, ], [1, , ], [ , ]]

at(a,a>3)
//output: [,[5],[8,8],[9,10]]
下例中，score 是一个简单元组，包含 2 个元素，60 和 70。第二行中，
at
函数使用
add
函数作为
X
，将 score 中的每个元素作为
add
的入参，并将
at
的计算结果赋予 result。
score = (60, 70);
result = at(add,score)
print result

//output: 130

path: references/doc_1134.md
content: # semiMonthEnd

**URL**: https://docs.dolphindb.cn/zh/funcs/s/semiMonthEnd.html

**来源**: DolphinDB 官方文档

---

semiMonthEnd
语法
semiMonthEnd(X, [dayOfMonth=15], [offset],
                [n=1])
详情
返回
X
所在半月的最后一天。假设
X
为该月的第 d 天：
如果d<
dayOfMonth
，那么
semiMonthBegin
返回
X
所在月份的上一个月的最后一天。
如果d>=
dayOfMonth
，那么
semiMonthBegin
返回X所在月份的第
dayOfMonth
天。
如果指定了
offset
，表示从
offset
开始，结果每隔
n
个半月更新一次。注意，
offset
和
n
须同时指定，且只有当
n>1
时，
offset
才会生效。
参数
X
可以是 DATE, DATEHOUR, DATETIME, TIMESTAMP 或 NANOTIMESTAMP
                类型的标量或向量。
dayOfMonth
是2到27之间的整数。它是一个可选参数，默认值为15。
offset
是与
X
类型相同的标量，并且它必须小于等于
X
中的最小值。它是一个可选参数。如果没有指定，
offset
默认为
X
中的最小值。
n
是一个正整数。它是一个可选参数，默认值为1。
返回值
DATE 类型标量。
例子
semiMonthEnd(2012.06.12);
// output
012.05.31

 
semiMonthEnd(2012.06.24);
// output
012.06.15

 
semiMonthEnd(2012.06.15);
// output
012.06.15

 
semiMonthEnd(2012.06.16, 16);
// output
012.06.16


date=2016.04.07+(1..10)*7
time = take(09:30:00, 10);
sym = take(`MSFT,10)
price= 49.6 29.46 29.52 30.02 174.97 175.23 50.76 50.32 51.29 52.38
qty = 2200 1900 2100 3200 6800 5400 1300 2500 8800 4500
t1 = table(date, time, sym, qty, price);
t1;
date
time
sym
qty
price
2016.04.14
09:30:00
MSFT
2200
49.6
2016.04.21
09:30:00
MSFT
1900
29.46
2016.04.28
09:30:00
MSFT
2100
29.52
2016.05.05
09:30:00
MSFT
3200
30.02
2016.05.12
09:30:00
MSFT
6800
174.97
2016.05.19
09:30:00
MSFT
5400
175.23
2016.05.26
09:30:00
MSFT
1300
50.76
2016.06.02
09:30:00
MSFT
2500
50.32
2016.06.09
09:30:00
MSFT
8800
51.29
2016.06.16
09:30:00
MSFT
4500
52.38
select avg(price),sum(qty) from t1 group by semiMonthEnd(date);
semiMonthEnd_date
avg_price
sum_qty
2016.03.31
49.6
2200
2016.04.15
29.49
4000
2016.04.30
102.495
10000
2016.05.15
112.995
6700
2016.05.31
50.805
11300
2016.06.15
52.38
4500
相关函数：
monthBegin
,
monthEnd
,
semiMonthBegin

path: references/doc_1140.md
content: # getInstrumentStrike

**URL**: https://docs.dolphindb.cn/zh/funcs/g/getinstrumentstrike.html

**来源**: DolphinDB 官方文档

---

getInstrumentStrike
语法
getInstrumentStrike(instrument)
详情
根据输入的金融工具，获取该工具的执行价格。
参数
instrument
INSTRUMENT 类型标量或向量，表示金融工具。
返回值
DOUBLE 类型标量或向量。
例子
forward =  {
   "productType": "Forward",
    "forwardType": "FxForward",
    "version": 0,
    "expiry": 2025.09.24,
    "delivery": 2025.09.26,
    "currencyPair": "USDCNY",
    "direction": "Buy",
    "notional": ["USD", 1E8],
    "strike": 7.2
}
instrument = parseInstrument(forward)

getInstrumentStrike(instrument)
// output: 7.2
相关函数：
parseInstrument
、
getInstrumentField
、
getInstrumentKeys

path: references/doc_1141.md
content: # cos

**URL**: https://docs.dolphindb.cn/zh/funcs/c/cos.html

**来源**: DolphinDB 官方文档

---

cos
语法
cos(X)
详情
返回
X
的余弦。
参数
X
可以是标量、向量或矩阵。
返回值
DOUBLE 类型标量、向量或矩阵。
例子
cos 0 1 2;
// output
[1,0.540302,-0.416147]
相关函数：
asin
,
acos
,
atan
,
sin
,
tan
,
asinh
,
acosh
,
atanh
,
sinh
,
cosh
,
tanh

path: references/doc_1153.md
content: # getStreamingSQLStatus

**URL**: https://docs.dolphindb.cn/zh/funcs/g/getStreamingSQLStatus.html

**来源**: DolphinDB 官方文档

---

getStreamingSQLStatus
语法
getStreamingSQLStatus([queryId])
详情
查看流式 SQL 查询的运行状态。
若指定
queryId
，则返回该查询的状态。
若不指定
queryId
，返回当前用户注册的所有流式 SQL 查询的状态。如果调用者是管理员（admin），则返回所有用户注册的流式 SQL
                    查询的状态。
参数
queryId
可选参数，字符串标量，表示已注册的流式 SQL 查询 ID。
返回值
一个表，包含如下字段：
queryId：流式 SQL 查询的 ID。
user：注册该查询的用户名。
registerTime：注册该查询的时间。
status：当前查询的状态，取值包括：
SQL_REGISTERED：已注册，未运行。
SQL_RUNNING：正常运行中，结果实时更新。
SQL_STOPPED：已暂停。
INTERNAL_ERROR：运行异常。
sqlQuery：流式 SQL 查询的语句。
involvedTables：查询涉及的表。
lastErrorMessage：最近一次错误的信息（如有）。
例子
t=table(1..10 as id,rand(100,10) as val)
share t as st
declareStreamingSQLTable(st)
registerStreamingSQL("select avg(val) from st","sql_avg") 

// 查看流式 SQL 查询的状态
getStreamingSQLStatus("sql_avg")
queryId
user
registerTime
status
sqlQuery
involvedTables
lastErrorMessage
sql_avg
admin
2025.08.09 03:33:40.781
SQL_REGISTERED
select avg(val) from st
st
相关函数：
declareStreamingSQLTable
,
registerStreamingSQL

path: references/doc_1157.md
content: # parseInstrument

**URL**: https://docs.dolphindb.cn/zh/funcs/p/parseInstrument.html

**来源**: DolphinDB 官方文档

---

parseInstrument
语法
parseInstrument(obj)
详情
将输入的金融工具产品描述（
obj
）转换成一个 INSTRUMENT 类型对象（金融工具），用于后续建模和定价。可解析的金融工具详见下文说明。
注意：
parseInstrument
会在序列化或反序列化过程中保留非标准标量或向量字段（即不属于金融工具预定义属性的字段）。
参数
obj
可以是字典、由字典组成的元组、内存表、字符串标量或向量，表示要解析的金融工具描述。注意，如果
obj
指定为表，则该表只能存储单一类型的金融工具。
返回值
一个 INSTRUMENT 类型对象，表示金融工具。
例子
使用字典存储付息债的描述，通过
parseInstrument
解析该字典，以获得该付息债的 INSTRUMENT 类型对象。
bond = {
    "productType": "Cash",
    "assetType": "Bond",
    "bondType": "FixedRateBond",
    "instrumentId": "230205.IB",
    "start": "2023.03.06",
    "maturity": "2033.03.06",
    "issuePrice": 100.0,
    "coupon": 0.0302,
    "calendar": "CFET",
    "frequency": "Annual",
    "dayCountConvention": "ActualActualISDA",
    "subType": "CDB_BOND",
    "issuer": "国家开发银行"
}
parseInstrument(bond)
通过
parseInstrument
解析由字典组成的元组，得到3个债券的 INSTRUMENT 类型对象。
bond1 = {
    "productType": "Cash",
    "assetType": "Bond",
    "bondType": "DiscountBond",
    "instrumentId": "259924.IB",
    "start": 2025.04.17,
    "maturity": 2025.07.17,
    "issuePrice": 99.664,
    "dayCountConvention": "ActualActualISDA",
    "subType": "TREASURY_BOND",
    "issuer": "中华人民共和国财政部"
}

bond2 = {
    "productType": "Cash",
    "assetType": "Bond",
    "bondType": "ZeroCouponBond",
    "instrumentId": "250401.IB",
    "start": 2025.01.09,
    "maturity": 2026.02.05,
    "coupon": 0.0119,
    "dayCountConvention": "ActualActualISDA",
    "subType": "CDB_BOND",
    "issuer": "国家农业发展银行"
}

parseInstrument([bond,bond1,bond2])
使用内存表存储金融工具描述，其每一列代表一个字段。通过
parseInstrument
解析该表，得到 INSTRUMENT
                类型对象。
注意：若某列对应的字段在某个产品中不存在，则在插入该产品时将该列设为 NULL。
create table t (
    productType STRING,
    assetType STRING,
    bondType STRING,
    version INT,
    instrumentId STRING,
    start DATE,
    maturity DATE,
    issuePrice DOUBLE,
    coupon DOUBLE,
    calendar STRING,
    frequency STRING,
    dayCountConvention STRING,
    subType STRING,
    issuer STRING
)
go

insert into t values( "Cash", "Bond", "FixedRateBond", 0, "230205.IB", 2023.03.06, 2033.03.06, 100.0, 0.0302, "CFET", "Annual", "ActualActualISDA", "CDB_BOND", "国家开发银行")
insert into t values( "Cash", "Bond", "DiscountBond", 0, "259924.IB", 2025.04.17, 2025.07.17, 99.664, NULL, NULL, NULL, "ActualActualISDA", "TREASURY_BOND", "中华人民共和国财政部")
insert into t values( "Cash", "Bond", "ZeroCouponBond", 0, "250401.IB", 2025.01.09, 2026.02.05, NULL, 0.0119, NULL, NULL, "ActualActualISDA", "CDB_BOND", "国家农业发展银行")

parseInstrument(t)
使用字符串描述金融工具，通过
parseInstrument
解析该字符串，得到 INSTRUMENT 类型对象。
bond1Str = '{"productType": "Cash","assetType": "Bond","bondType": "FixedRateBond","coupon": 0.0302,"frequency": "Annual","version": 0,"instrumentId": "230205.IB","nominal": 100,"start": "2023.03.06","maturity": "2033.03.06","dayCountConvention": "ActualActualISDA","calendar": "CFET","currency": "CNY","cashflow": [{"paymentDate": "2024.03.06","coupon": 3.026804551238871,"notional": 0,"total": 3.026804551238871},{"paymentDate": "2025.03.06","coupon": 3.01319544876113,"notional": 0,"total": 3.01319544876113},{"paymentDate": "2026.03.06","coupon": 3.02,"notional": 0,"total": 3.02},{"paymentDate": "2027.03.06","coupon": 3.02,"notional": 0,"total": 3.02},{"paymentDate": "2028.03.06","coupon": 3.026804551238871,"notional": 0,"total": 3.026804551238871},{"paymentDate": "2029.03.06","coupon": 3.01319544876113,"notional": 0,"total": 3.01319544876113},{"paymentDate": "2030.03.06","coupon": 3.02,"notional": 0,"total": 3.02},{"paymentDate": "2031.03.06","coupon": 3.02,"notional": 0,"total": 3.02},{"paymentDate": "2032.03.06","coupon": 3.026804551238871,"notional": 0,"total": 3.026804551238871},{"paymentDate": "2033.03.06","coupon": 3.01319544876113,"notional": 100,"total": 103.013195448761123}],"discountCurve": "","spreadCurve": "","subType": "CDB_BOND","issuePrice": 100,"issuer": "国家开发银行"}'

parseInstrument(bondStr)
通过
parseInstrument
解析该字符串向量，得到多个 INSTRUMENT 类型对象。
bond2Str = '{"productType": "Cash","assetType": "Bond","bondType": "DiscountBond","issuePrice": 99.664000000000001,"version": 0,"instrumentId": "259924.IB","nominal": 100,"start": "2025.04.17","maturity": "2025.07.17","dayCountConvention": "ActualActualISDA","calendar": "","currency": "CNY","cashflow": [{"paymentDate": "2025.07.17","coupon": 0,"notional": 100,"total": 100}],"discountCurve": "","spreadCurve": "","subType": "TREASURY_BOND","issuer": "中华人民共和国财政部"}'
bond3Str = '{"productType": "Cash","assetType": "Bond","bondType": "ZeroCouponBond","coupon": 0.0119,"version": 0,"instrumentId": "250401.IB","nominal": 100,"start": "2025.01.09","maturity": "2026.02.05","dayCountConvention": "ActualActualISDA","calendar": "","currency": "CNY","cashflow": [{"paymentDate": "2026.01.09","coupon": 1.190000000000002,"notional": 0,"total": 1.190000000000002},{"paymentDate": "2026.02.05","coupon": 0.088027397260282,"notional": 100,"total": 100.088027397260276}],"discountCurve": "","spreadCurve": "","subType": "CDB_BOND","issuer": "国家农业发展银行"}'

parseInstrument([bond1Str,bond2Str,bond3Str])
金融工具支持与字段要求
INSTRUMENT 为 DophinDB 在 3.00.4 版本上新增的数据类型，用于支持金融工具的存储，为后续各类金融产品的定价与风险计量提供基础。
在金融工具的描述中，需要包含若干关键字段，
parseInstrument
将根据这些字段生成相应的金融工具对象。请注意，"version" 为系统保留字段，为避免冲突，请勿将此名称用于自定义字段。
目前仅支持生成下图分类树中叶节点所示的金融工具类型：
贴现债（DiscountBond）
字段名
类型
描述
是否必填
productType
STRING
固定填 "Cash"
是
assetType
STRING
固定填 "Bond"
是
bondType
STRING
固定填 "DiscountBond"
是
nominal
DOUBLE
名义金额，默认值 100
否
instrumentId
STRING
债券代码，如 "259926.IB"
否
start
DATE
起息日
是
maturity
DATE
到期日
是
dayCountConvention
STRING
日期计数惯例，可选 "ActualActualISDA", "ActualActualISMA",
                                    "Actual365", "Actual360"
是
issuePrice
DOUBLE
发行价格
是
currency
STRING
货币，默认为 "CNY"
否
cashFlow
TABLE
债券现金流表
否
discountCurve
STRING
定价时参考的贴现曲线名称，如 "CNY_TRASURY_BOND"
否
spreadCurve
STRING
定价时参考的利差曲线名称
否
subType
STRING
债券子类型，中国债券可选值为：
"TREASURY_BOND"：国债
"CENTRAL_BANK_BILL"：央行票据
"CDB_BOND"：政策性金融债（国开）
"EIBC_BOND"：政策性金融债（进出口行）
"ADBC_BOND"：政策性金融债（农发行）。
"MTN"：中期票据
"CORP_BOND"：企业债。
"UNSECURED_CORP_BOND"：无担保企业债
"SHORT_FIN_BOND"：短期融资券
"NCD"：同业存单
"LOC_GOV_BOND"：地方政府债
"COMM_BANK_FIN_BOND"：商业银行普通金融债
"BANK_SUB_CAP_BOND"：商业银行二级资本债
"ABS"：资产支持证券
"PPN"：非公开发行债
否
creditRating
STRING
信用等级类型，可选值为："B", "BB", "BBB", "BBB+", "A-", "A", "A+", "AA-",
                                    "AA", "AA+", "AAA-", "AAA", "AAA+"
否
下例定义了一个 DiscountBond 类型的 INSTRUMENT 对象。
bond = {
    "productType": "Cash",
    "assetType": "Bond",
    "bondType": "DiscountBond",
    "instrumentId": "259924.IB",
    "start": 2025.04.17,
    "maturity": 2025.07.17,
    "issuePrice": 99.664,
    "dayCountConvention": "ActualActualISDA"
}
instrument = parseInstrument(bond)
print(instrument)
零息债（ZeroCouponBond）
字段名
类型
描述
是否必填
productType
STRING
固定填 "Cash"
是
assetType
STRING
固定填 "Bond"
是
bondType
STRING
固定填 "ZeroCouponBond"
是
nominal
DOUBLE
名义金额，默认值 100
否
instrumentId
STRING
债券代码，如 "250401.IB"
否
start
DATE
起息日
是
maturity
DATE
到期日
是
coupon
DOUBLE
票面利率，如 0.03 表示 3%
是
frequency
STRING
付息频率
否
dayCountConvention
STRING
日期计数惯例，可选 "ActualActualISDA", "ActualActualISMA",
                                    "Actual365", "Actual360"
是
currency
STRING
货币，默认为 "CNY"
否
cashFlow
TABLE
债券现金流表
否
discountCurve
STRING
定价时参考的贴现曲线名称，如 "CNY_TRASURY_BOND"
否
spreadCurve
STRING
定价时参考的利差曲线名称
否
subType
STRING
债券子类型，中国债券可选值为：
"TREASURY_BOND"：国债
"CENTRAL_BANK_BILL"：央行票据
"CDB_BOND"：政策性金融债（国开）
"EIBC_BOND"：政策性金融债（进出口行）
"ADBC_BOND"：政策性金融债（农发行）。
"MTN"：中期票据
"CORP_BOND"：企业债。
"UNSECURED_CORP_BOND"：无担保企业债
"SHORT_FIN_BOND"：短期融资券
"NCD"：同业存单
"LOC_GOV_BOND"：地方政府债
"COMM_BANK_FIN_BOND"：商业银行普通金融债
"BANK_SUB_CAP_BOND"：商业银行二级资本债
"ABS"：资产支持证券
"PPN"：非公开发行债
否
creditRating
STRING
信用等级类型，可选值为："B", "BB", "BBB", "BBB+", "A-", "A", "A+", "AA-",
                                    "AA", "AA+", "AAA-", "AAA", "AAA+"
否
下例定义了一个 ZeroCouponBond 类型的 INSTRUMENT 对象。
bond = {
    "productType": "Cash",
    "assetType": "Bond",
    "bondType": "ZeroCouponBond",
    "instrumentId": "250401.IB",
    "start": 2025.01.09,
    "maturity": 2026.02.05,
    "coupon": 0.0119,
    "dayCountConvention": "ActualActualISDA"
}
instrument = parseInstrument(bond)
print(instrument)
固定利率债（FixedRateBond）
字段名
类型
描述
是否必填
productType
STRING
固定填 "Cash"
是
assetType
STRING
固定填 "Bond"
是
bondType
STRING
固定填 "FixedRateBond"
是
nominal
DOUBLE
名义金额，默认值 100
否
instrumentId
STRING
债券代码，如 "250401.IB"
否
start
DATE
起息日
是
maturity
DATE
到期日
是
coupon
DOUBLE
票面利率，如0.03表示3%
是
frequency
STRING
付息频率
是
dayCountConvention
STRING
日期计数惯例，可选 "ActualActualISDA", "ActualActualISMA",
                                    "Actual365", "Actual360"
是
currency
STRING
货币，默认为 "CNY"
否
cashFlow
TABLE
债券现金流表
否
discountCurve
STRING
定价时参考的贴现曲线名称，如 "CNY_TRASURY_BOND"
否
spreadCurve
STRING
定价时参考的利差曲线名称
否
subType
STRING
债券子类型，中国债券可选值为：
"TREASURY_BOND"：国债
"CENTRAL_BANK_BILL"：央行票据
"CDB_BOND"：政策性金融债（国开）
"EIBC_BOND"：政策性金融债（进出口行）
"ADBC_BOND"：政策性金融债（农发行）。
"MTN"：中期票据
"CORP_BOND"：企业债。
"UNSECURED_CORP_BOND"：无担保企业债
"SHORT_FIN_BOND"：短期融资券
"NCD"：同业存单
"LOC_GOV_BOND"：地方政府债
"COMM_BANK_FIN_BOND"：商业银行普通金融债
"BANK_SUB_CAP_BOND"：商业银行二级资本债
"ABS"：资产支持证券
"PPN"：非公开发行债
否
creditRating
STRING
信用等级类型，可选值为："B", "BB", "BBB", "BBB+", "A-", "A", "A+", "AA-",
                                    "AA", "AA+", "AAA-", "AAA", "AAA+"
否
下例定义了一个 FixedRateBond 类型的 INSTRUMENT 对象。
bond = {
    "productType": "Cash",
    "assetType": "Bond",
    "bondType": "FixedRateBond",
    "instrumentId": "240021.IB",
    "start": 2024.10.25,
    "maturity": 2025.10.25,
    "issuePrice": 100,
    "coupon": 0.0133,
    "frequency": "Annual",
    "dayCountConvention": "ActualActualISDA"
}
instrument = parseInstrument(bond)
print(instrument)
国债期货（BondFutures）
字段名
类型
描述
是否必填
productType
STRING
固定值为 "Futures"
是
futuresType
STRING
固定值为 "BondFutures"
是
nominal
DOUBLE
名义金额，默认值 100
是
instrumentId
STRING
国债期货代码，如 "T2509"
否
maturity
DATE
到期日
是
settlement
DATE
结算日
是
underlying
字典
固定利率债券结构，表示标的可交割债券
是
nominalCouponRate
DOUBLE
名义票面利率
是
下例定义了一个 BondFutures 类型的 INSTRUMENT 对象。
bond ={
    "productType": "Cash",
    "assetType": "Bond",
    "bondType": "FixedRateBond",
    "instrumentId": "220010.IB",
    "start": 2020.12.25,
    "maturity": 2031.12.25,
    "issuePrice": 100.0,
    "coupon": 0.0149,
    "frequency": "Annual",
    "dayCountConvention": "ActualActualISDA"
}

futures =  {
    "productType": "Futures",
    "futuresType": "BondFutures",
    "instrumentId": "T2509",  //期货代码
    "nominal": 100.0,
    "maturity": "2022.09.09",
    "settlement": "2022.09.11",
    "underlying": bond,
    "nominalCouponRate": 0.03  //与国债期货品种匹配的名义利率，可从中金所获取
}
instrument = parseInstrument(futures)
print(instrument)
存款（Deposit）
字段名
类型
描述
是否必填
productType
STRING
固定填 "Cash"
是
assetType
STRING
固定填 "Deposit"
是
notional
ANY 向量
名义本金，格式如 ["USD", 1.0]。
是
instrumentId
STRING
存款参考利率指数，如 "SHIBOR_3M"
否
start
DATE
起息日
是
maturity
DATE
到期日
是
rate
DOUBLE
存款利率
是
dayCountConvention
STRING
日期计数惯例, 可选 "ActualActualISDA", "ActualActualISMA",
                                    "Actual365", "Actual360"
是
payReceive
STRING
收付标识，"Pay" 表示支付，"Receive" 表示收取
是
disconutCurve
STRING
定价时参考的贴现曲线名称，人民币存款默认为 "CNY_FR_007"
否
calendar
STRING
交易日历
否
下例定义了一个 Deposit 类型的 INSTRUMENT 对象。
deposit =  {
    "productType": "Cash",
    "assetType": "Deposit",
    "start": 2025.05.15,
    "maturity": 2025.08.15,
    "rate": 0.02,
    "dayCountConvention": "Actual360",
    "notional":["CNY", 1E6],
    "payReceive": "Receive"
}
instrument = parseInstrument(deposit)
print(instrument)
利率互换（IrFixedFloatingSwap）
字段名
类型
描述
是否必填
productType
STRING
固定填 "Swap"
是
swapType
STRING
固定填 "IrSwap"
是
irSwapType
STRING
固定填 "IrFixedFloatingSwap"
是
notional
ANY 向量
名义本金，格式如 ["USD", 1.0]
是
instrumentId
STRING
利率互换名称，可填 "CNY_FR_007 , "CNY_SHIBOR_3M"
否
start
DATE
起息日
是
maturity
DATE
到期日
是
fixedRate
DOUBLE
固定端利率
是
calender
STRING
交易日历
是
fixedDayCountConvention
STRING
固定端日期计数惯例，可选 "ActualActualISDA", "ActualActualISMA",
                                    "Actual365", "Actual360"
是
floatingDayCountConvention
STRING
浮动端日期计数惯例，可选 "ActualActualISDA", "ActualActualISMA",
                                    "Actual365", "Actual360"
是
spread
DOUBLE
利差
是
iborIndex
STRING
浮动端参考利率，可选FR_007和SHIBOR_3M
是
frequency
STRING
付息频率
是
payReceive
STRING
收付标识，可选：
"Pay"：本方支付固定利率、接收浮动利率（pay fixed / receive
                                                floating）
"Receive"：本方接收固定利率、支付浮动利率（receive fixed / pay
                                                floating）
是
domesticCurve
STRING
定价时参考的贴现曲线名称
否
foreignCurve
STRING
定价时参考的远期曲线名称
否
下例定义了一个 IrFixedFloatingSwap 类型的 INSTRUMENT 对象。
swap =  {
    "productType": "Swap",
    "swapType": "IrSwap",
    "irSwapType": "IrFixedFloatingSwap",
    "start": 2021.05.15,
    "maturity": 2023.05.15,
    "frequency": "Quarterly",
    "fixedRate": 0.02,
    "calendar": "CFET", 
    "fixedDayCountConvention": "Actual365",
    "floatingDayCountConvention": "Actual360",
    "payReceive": "Pay",
    "iborIndex": "SHIBOR_3M",
    "spread": 0.0005,
    "notional":["CNY", 1E8]
}
instrument = parseInstrument(swap)
print(instrument)
外汇远期（FxForward）
字段名
类型
描述
是否必填
productType
STRING
产品名称，固定值为 "Forward"
是
forwardType
STRING
远期类型，固定值为 "FxForward"
是
notional
ANY 向量
名义本金，格式如 ["USD", 1.0]
是
instrumentId
STRING
金融工具 ID
否
expiry
DATE
到期日
是
delivery
DATE
交割日
是
currencyPair
STRING
货币对，格式如："EURUSD"，"EUR.USD" 或 "EUR/USD"。支持如下货币对：
EURUSD：欧元兑美元
USDCNY：美元兑人民币
EURCNY：欧元兑人民币
GBPCNY：英镑兑人民币
JPYCNY：日元兑人民币
HKDCNY：港币兑人民币
是
direction
STRING
交易方向。可选："Buy"、"Sell"
是
strike
DOUBLE
执行价格
是
domesticCurve
STRING
定价时参考的本币贴现曲线名称
否
foreignCurve
STRING
定价时参考的外币贴现曲线名称
否
下例定义了一个 FxForward 类型的 INSTRUMENT 对象。
forward =  {
   "productType": "Forward",
    "forwardType": "FxForward",
    "expiry": 2025.09.24,
    "delivery": 2025.09.26,
    "currencyPair": "USDCNY",
    "direction": "Buy",
    "notional": ["USD", 1E8],
    "strike": 7.2
}
instrument = parseInstrument(forward)
print(instrument)
外汇掉期（FxSwap）
字段名
类型
描述
是否必填
productType
STRING
产品名称，固定值为 "Swap"
是
swapType
STRING
远期类型，固定值为 "FxSwap"
是
notional
ANY 向量
名义本金，格式如 ["USD", 1.0]
是
currencyPair
STRING
货币对，格式如："EURUSD"，"EUR.USD" 或 "EUR/USD"。支持如下货币对：
EURUSD：欧元兑美元
USDCNY：美元兑人民币
EURCNY：欧元兑人民币
GBPCNY：英镑兑人民币
JPYCNY：日元兑人民币
HKDCNY：港币兑人民币
是
nearExpiry
DATE
近端到期日。
是
nearDelivery
DATE
近端交割日，实际资金交割发生的日期。
是
direction
STRING
交易方向，可选值：
"Buy"：在近端买入外币（买 near），在远端卖出外币（卖 far）。
"Sell"：在近端卖出外币（卖 near），在远端买回外币（买 far）。
是
nearStrike
DOUBLE
近端行权价格
是
farExpiry
DATE
远端到期日
是
farDelivery
DATE
远端交割日，实际发生第二次资金交换的日期
是
farStrike
DOUBLE
远端行权价格
是
domesticCurve
STRING
定价时参考的本币贴现曲线名称
否
foreignCurve
STRING
定价时参考的外币贴现曲线名称
否
下例定义了一个 FxSwap 类型的 INSTRUMENT 对象。
swap = {
    "productType": "Swap",
    "swapType": "FxSwap",
    "currencyPair": "EURUSD",
    "direction": "Buy",
    "notional": ["EUR", 1E6],
    "nearStrike": 1.1,
    "nearExpiry": 2025.12.08,
    "nearDelivery": 2025.12.10,
    "farStrike": 1.2,
    "farExpiry": 2026.06.08,
    "farDelivery": 2026.06.10
}
instrument = parseInstrument(swap)
print(instrument)
外汇欧式期权（FxEuropeanOption）
字段名
类型
描述
是否必填
productType
STRING
固定填 "Option"
是
optionType
STRING
固定填 "EuropeanOption"
是
assetType
STRING
固定填 "FxEuropeanOption"
是
notional
ANY 向量
名义本金，格式如 ["USD", 1.0]
是
instrumentId
STRING
金融工具 ID
否
maturity
DATE
到期日
是
underlying
STRING
货币对，格式如："EURUSD"，"EUR.USD" 或 "EUR/USD"。支持如下货币对：
EURUSD：欧元兑美元
USDCNY：美元兑人民币
EURCNY：欧元兑人民币
GBPCNY：英镑兑人民币
JPYCNY：日元兑人民币
HKDCNY：港币兑人民币
是
direction
STRING
交易方向。可选值为："Buy"、"Sell"。
是
strike
DOUBLE
执行价格。
是
dayCountConvention
STRING
日期计数惯例，可选 "ActualActualISDA", "ActualActualISMA",
                                    "Actual365", "Actual360"
是
payoffType
STRING
收益类型，可选值为 "Call"、 "Put"
是
domesticCurve
STRING
定价时参考的本币贴现曲线名称
否
foreignCurve
STRING
定价时参考的外币贴现曲线名称
否
下例定义了一个 FxEuropeanOption 类型的 INSTRUMENT 对象。
option =  {
    "productType": "Option",
    "optionType": "EuropeanOption",
    "assetType": "FxEuropeanOption",
    "notional": ["EUR", 1000000.0],
    "strike": 1.2,
    "maturity": "2025.10.08",
    "payoffType": "Call",
    "dayCountConvention": "Actual365",
    "underlying": "EURUSD"
}
instrument = parseInstrument(option)
print(instrument)
用户自定义
支持用户自定义金融工具，除 producType 外，所有字段均可自定义。
字段名
类型
描述
是否必填
productType
STRING
固定填 "UserDefined"
是
相关函数：
bondPricer
（债券定价）、
irDepositPricer
（存款定价）、
bondFuturesPricer
（国债期货定价）、
fxForwardPricer
（外汇远期定价）、
fxSwapPricer
（外汇掉期定价）、
irFixedFloatingSwapPricer
（利率互换定价）、
fxEuropeanOptionPricer
（外汇欧式期权定价）

path: references/doc_1158.md
content: # strlen

**URL**: https://docs.dolphindb.cn/zh/funcs/s/strlen.html

**来源**: DolphinDB 官方文档

---

strlen
语法
strlen(X)
详情
获取目标字符串的长度。
参数
X
是目标字符串。它可以是标量或向量。
返回值
INT 类型标量或向量。
例子
strlen('abcdefg');
// output
7

strlen("I am a boy.");
// output
11

strlen(["abc","123456789"]);
// output
[3,9]

path: references/doc_1177.md
content: # exp2

**URL**: https://docs.dolphindb.cn/zh/funcs/e/exp2.html

**来源**: DolphinDB 官方文档

---

exp2
语法
exp2(X)
详情
返回2的
X
次方。
参数
X
可以是标量、数据对、向量、矩阵或表。
返回值
DOUBLE 类型，其数据形式同
X
。
例子
exp2(3);
// output
8

exp2(2 4 NULL 6);
// output
[4,16,,64]

exp2(1..4$2:2);
#0
#1
2
8
4
16

path: references/doc_1179.md
content: # lshift

**URL**: https://docs.dolphindb.cn/zh/funcs/l/lshift.html

**来源**: DolphinDB 官方文档

---

lshift
语法
lshift(X, a)
或
X<<a
详情
lshift
是将
X
按二进制展开后整体往左移动
a
位数。右侧的位数用 0 填充。
参数
X
可以是整数标量、数据对、向量、矩阵或表；
a
是移动的位数。
返回值
返回与 X 形式一致的整型。
例子
lshift(2, 10);
// output
2048

1..10 << 1;
// output
[2,4,6,8,10,12,14,16,18,20]

1..10 << 10;
// output
[1024,2048,3072,4096,5120,6144,7168,8192,9216,10240]

1:10<<10;
// output
1024 : 10240
相关函数：
rshift
.

path: references/doc_1193.md
content: # substru

**URL**: https://docs.dolphindb.cn/zh/funcs/s/substru.html

**来源**: DolphinDB 官方文档

---

substru
语法
substru(X, offset, [length])
详情
从
X
的指定位置开始截取指定长度的字符串。
X
的第一个字符的位置为0。 如果
length
超过了
X
的长度，则到
X
的尾部结束。
参数
X
是 Unicode 编码的字符串。它可以是标量或向量。
offset
是一个非负整数。
length
是一个正整数。
返回值
STRING 类型标量或向量。
例子
substru("这是测试字符串",0,4)
// output
这是测试

substru("这是测试字符串",4,3)
// output
字符

substru("这是测试字符串",2)
// output
测试字符串

substru("这是测试字符串",2,10)
// output
测试字符串
相关函数：
substr

path: references/doc_1194.md
content: # bondConvexity

**URL**: https://docs.dolphindb.cn/zh/funcs/b/bondconvexity.html

**来源**: DolphinDB 官方文档

---

bondConvexity
语法
bondConvexity(start, maturity, issuePrice, coupon,
                    frequency, dayCountConvention, bondType, settlement, price, priceType,
                    [benchmark='Excel'])
别名：fiConvexity
详情
返回面值为 100 的债券的凸性。凸性指债券价格与利率间非线性关系的一种量度，表示为债券价格对利率的二阶导数。
参数
注意：所有输入向量必须等长，输入标量将自动扩展以匹配其它向量的长度。
start
DATE 类型标量或向量，表示债券的起息日。
maturity
与
start
等长的 DATE 类型标量或向量，表示债券的到期日。
issuePrice
与
start
等长的数值型标量或向量，表示债券的发行价格。贴现债需指定真实发行价（通常小于100）；其他债券通常为100。
coupon
数值型标量或向量，表示债券的票面利率。例如 0.03，表示票息为 3%。
frequency
整型或 STRING 类型的标量或向量，表示债券的付息频率。可选值为：
0/“Once”：到期一次还本付息
1/“Annual”：每年付息一次
2/“Semiannual：每半年付息一次
4/“Quarterly”：每季度付息一次
12/“Monthly”：每月付息一次
dayCountConvention
STRING 类型的标量或向量，表示债券的计息日数惯例。可选值为：
"Thirty360US"：US (NASD) 30/360
"ActualActualISMA"：实际/实际（ISMA 规则）
"Actual360"：实际/360
"Actual365"：实际/365
"Thirty360EU"：欧洲 30/360
"ActualActualISDA"：实际/实际（ISDA 规则）
bondType
STRING 类型标量或向量，表示债券的类型。可选值为：
"FixedRate"：固定利率债券，定期按息票利率支付利息。
"Discount"：贴现债券，没有利息支付，以贴现方式发行的债券，期末FV=面值。
"ZeroCoupon"：零息债券，期末一次性支付利息和面值，期末FV=面值+利息。
settlement
DATE 类型标量或向量，表示债券的结算日，即购买日期。
price
数值型标量或向量，表示债券的到期收益率。
priceType
STRING 类型的标量或向量，用于指定债券价格类型。目前仅支持 "YTM"（到期收益率）。
benchmark
可选参数，STRING 类型标量，表示算法参考基准。目前仅支持 “Excel”（excel
                中的算法）。
返回值
DOUBLE 类型标量或向量。
例子
bondConvexity(start=2023.01.01, maturity=2030.12.31, issuePrice=100, coupon=0.05, frequency=1, dayCountConvention="ActualActualISMA", bondType="FixedRate", settlement=2023.04.01, price=0.03, priceType="YTM")
// output: 51.864347713454684
相关函数
：
bondCalculator

path: references/doc_1201.md
content: # 关于 DolphinDB

**URL**: https://docs.dolphindb.cn/zh/about/ddb_intro.html

**来源**: DolphinDB 官方文档

---

关于 DolphinDB
欢迎阅读 DolphinDB 技术文档！
DolphinDB 是一款基于高性能时序数据库，支持复杂分析与流计算的实时计算平台。DolphinDB
            针对数据存储、统计分析、实时计算和机器学习等多种需求，提供高效读写、快速查询、复杂分析、分布式并行计算、低延迟流处理等功能，支持高可用与水平扩展。
如下为 DolphinDB 的系统架构图：
图
1
.
DolphinDB 系统架构图
结合架构图，以下对 DolphinDB 的核心组件进行详细介绍。
分布式架构
自研的
分布式存储机制
，数据有序分散存储在不同的数据节点上，由控制节点统一精准地管理所有分区的元数据信息，包括分区和副本信息、分区版本号等要素，从而确保各节点上分区数据和副本的一致性，以提升集群的容错性和可扩展性。
提供在线和离线扩展方式、支持横向（添加更多节点）和纵向（增加单个节点的资源）的扩展系统、并且提供无缝高效的
数据迁移
和
再平衡
技术。
提供控制节点、数据节点和客户端的
高可用
方案，以确保系统在任何单节点故障下都能提供稳定的服务，从而有力保障业务的连续性。
具备全面灵活的
备份与恢复
机制，以保障数据安全，为业务保驾护航。
提供高容错性的
异步复制
方案，其具有低延迟、高吞吐量的特点，方便实现数据跨节点、跨地域的异步复制，从而增强数据资产的安全性。
多模存储引擎
支持 TSDB、OLAP、
PKEY、
IMOLTP
、VECTORDB
存储引擎。分别满足不同场景需求：
TSDB 引擎
采用 PAX
                            行列混存，提供性能卓越的大数据分析与点查分析。
OLAP 引擎
采用列式存储，与 TSDB
                            引擎相比，更适合用于对时间跨度较长的某些列数据进行聚合计算。
PKEY 引擎
是提供主键唯一性保证的，支持实时更新和高效查询的存储引擎，能够有效满足从 OLTP 数据库的主键表 CDC
                            到 DolphinDB 中进行数据分析的需求。
IMOLTP 引擎
是内存数据库，以行存的形式来组织数据，不仅支持事务，同时通过创建 B+ 树索引
                            (主键索引和二级索引) 的方式来应对高频度、高并发的更新和查询操作，该引擎将所有数据都存储在内存中。
VECTORDB
                            引擎
支持对向量数据创建索引，并实现了快速的近似最近邻搜索，满足对大规模向量数据高效检索和响应的需求。
保证事务
ACID
特性，提供快照级别的隔离机制。
支持多种无损数据
压缩
算法，包括 LZ4,
                    delta-of-delta, zstd, chimp，字典压缩等，压缩率可达 4:1~10:1。
支持
分级存储
，区分热数据和冷数据存储，减少存储成本。
批计算处理
使用内嵌的
分布式文件系统
，不仅简化数据管理流程，还显著增强了分布式计算环境的负载均衡能力，同时提供了强大的容错机制，确保数据的高可用性和计算任务的连续执行。
内置 2000+ 多领域、多种类、多功能的
函数
，覆盖广泛的数据处理需求，并开放接口支持用户自定义函数，帮助用户轻松应对各类复杂应用场景的挑战。
分布式计算框架集成了
pipeline
、
Map-Reduce
和迭代计算等多种计算模型，为用户提供性能最优的一站式多样化数据解决方案。
通过 SQL 语言与函数、表达式的无缝结合，以及
向量化计算
，开拓性地助力用户直接在数据库层面进行复杂的数据分析及运算，从而显著提升数据处理的速度和效率。
充分利用多机多核 CPU 资源，凭借精细的
并行处理
策略与高效的任务调度算法，实现了对海量数据的快速处理。
流数据处理
支持通过流数据表进行
流数据
订阅与发布。
内置
时间序列聚合
、
横截面处理
、
响应式状态处理
、
异常检测
、
会话窗口
、
多表关联
等流式计算引擎，提供
滑动窗口
、
累计窗口
、
统计函数
等算子。用户可通过串联调用计算引擎构建高效强大的计算流水线，或借助流数据引擎解析器（streamEngineParser）自动构建计算流水线，从而满足复杂多变的业务需求。
支持
回放历史数据
，支持 1 对 1，N 对 N，N 对 1
                        三种回放形式。
支持
流批一体
，即将研发环境中基于历史数据建模分析得到的因子或表达式直接应用于生产环境的实时数据中，并保证流计算的结果和批量计算完全一致。该功能可为用户的测试、验证和回溯分析提供极大便利。
支持从多种数据源
接入实时流数据
实时写入 DolphinDB
                        中，并自动处理数据格式转换和同步问题。
内置
CEP 引擎
（Complex Event
                        Processing，复杂事件处理），能够接收实时数据流，定义事件并从事件流中检测特定事件，进而对满足指定规则的事件执行预设的操作。
实现亚毫秒级的延迟，确保实时数据处理的极致性能。
多范式编程语言
DolphinDB 内置图灵完备的编程语言。其支持命令式编程、函数式编程、向量化编程、SQL 编程等
多范式编程语言
，凭借语言简洁灵活、表达能力强的优势，帮助用户实现开发效率的飞跃式提升。
支持
SQL-92 标准
，更在此基础上扩展了如组内计算、透视表等多种功能。同时兼容 Oracle 和 MySQL 等主流 SQL 方言。
良好生态
提供丰富全面的
SDK
生态，包括
Python
，
C++
，
C#
，
Go
，
R
和
JavaScript
等多种主流编程语言。
多种客户端，包括
Web 集群管理器
、
DolphinDB VS Code
、
JAVA GUI
、
Jupyter Notebook
、
DolphinDB 终端
。
多领域、多种类、多方式的
插件
，涵盖数据存取、行情接入、金融相关、消息队列、数值计算、机器学习、网络、云存储、文件等。
提供
模块
化设计，为用户提供便捷的
技术分析指标库
、
指标库
、
因子库
、
因子指标库
、
运维函数库
、
历史数据导入
、
行情数据接入模块
、
多因子风险模型
、
交易日历
等，旨在简化功能代码的调用流程和优化系统维护效率。
集成专属的
DataX
、
Grafana
等第三方工具，可衔接数据传输与可视化等多种解决方案。

path: references/doc_1207.md
content: # imin

**URL**: https://docs.dolphindb.cn/zh/funcs/i/imin.html

**来源**: DolphinDB 官方文档

---

imin
语法
imin(X)
详情
若
X
是向量，返回最小元素的位置。如果有多个相同的最小值，返回左起第一个最小值的位置。与所有其它聚合函数一致，计算时忽略 NULL
                        值。
若
X
为矩阵，计算在每列内部进行，返回一个向量。
若
X
为表，计算在每列内部进行，返回一个表。
参数
X
可以是标量、向量、矩阵或表。
例子
x = 1.2 2 NULL -1 6 -1
imin(x);
// output
3

x = 5 3 1 6 4 1 $ 3:2
imin(x);
// output
[2,2]
m=matrix(1 3 2 4, 4 2 3 1);
m;
#0
#1
1
4
3
2
2
3
4
1
imin(m);
// output
[0,3]
相关函数：
iminLast

path: references/doc_1217.md
content: # isLower

**URL**: https://docs.dolphindb.cn/zh/funcs/i/isLower.html

**来源**: DolphinDB 官方文档

---

isLower
语法
isLower(X)
详情
判断字符串中的字母是否全部为小写。对于空字符串，该函数返回 false。
参数
X
是字符或字符串类型的标量、向量或表。
返回值
当
X
是标量时，返回布尔标量。
当
X
是向量时，返回布尔向量。
当
X
是表时，返回一个表。
例子
isLower("this is string example....wow!!!");
// output: true

isLower("THIS is string example....wow!!!");
// output: false

isLower("123456abc");
// output: true

isLower("123");
// output: false

isLower(["  ",string()]);
// output: [false,false]
相关函数：
isUpper
,
isTitle

path: references/doc_1219.md
content: # tmavg

**URL**: https://docs.dolphindb.cn/zh/funcs/t/tmavg.html

**来源**: DolphinDB 官方文档

---

tmavg
语法
tmavg(T, X, window)
参数说明和窗口计算规则请参考：
tmFunctions
详情
在给定长度（以时间
T
衡量）的滑动窗口内计算
X
元素的平均值。
返回值
DOUBLE 类型向量。
例子
T = 1 1 1 2 5 6
X = 1 4 2 -1 2 4
m = table(T as t,X as x)
select *, tmavg(t, x, 3) from m
t
x
tmavg_t
1
1
1
1
4
2.5
1
2
2.3333
2
-1
1.5
5
2
2
6
4
3
T = 2021.01.02 2021.01.02  2021.01.04  2021.01.05 2021.01.07 2021.01.08
X = 1 4 2 -1 2 4
m = table(T as t,X as x)
select *, tmavg(t, x, 3d) from m
t
x
tmavg_t
2021.01.02
1
1
2021.01.02
4
2.5
2021.01.04
2
2.3333
2021.01.05
-1
0.5
2021.01.07
2
0.5
2021.01.08
4
3
select *, tmavg(t, x, 1w) from m
t
x
tmavg_t
2021.01.02
1
1
2021.01.02
4
2.5
2021.01.04
2
2.3333
2021.01.05
-1
1.5
2021.01.07
2
1.6
2021.01.08
4
2
相关函数：
mavg
,
avg

path: references/doc_1226.md
content: # tTest

**URL**: https://docs.dolphindb.cn/zh/funcs/t/tTest.html

**来源**: DolphinDB 官方文档

---

tTest
语法
tTest(X, [Y], [mu=0.0], [confLevel=0.95], [equalVar=false])
详情
对未知方差的数据进行t检验。
如果没有指定
Y
，对正态分布
X
进行单样本 t 检验；如果指定了
Y
，对独立正态分布
X
和
Y
进行双样本 t 检验。
参数
X
是一个数值向量，表示用于t检验的样本。
Y
是一个数值向量，表示用于独立双样本t检验的另一个样本。它是可选参数。
mu
是一个浮点数，默认值是0。如果没有指定
Y
，
mu
表示
X
的均值的假设值；如果指定了
Y
，
mu
表示
X
,
Y
均值之差的假设值。
confLevel
是0到1之间的浮点数，表示置信区间的置信水平。
equalVar
是一个布尔值，表示
X
,
Y
的方差是否相等。
返回值
返回一个字典，包含以下 key：
stat：一张表，包含三种不同备择假设下的 p 值和置信区间
df：t 分布的自由度
confLevel：置信水平
tValue：t 统计量
例子
单样本 t 检验：
x = norm(10.0, 1.0, 20)
tTest(x, , 10.0);

// output
stat->
alternativeHypothesis        pValue   lowerBound upperBound
---------------------------- -------- ---------- ----------
true mean is not equal to 10 0.499649 9.68582    10.621998
true mean is less than 10    0.750176 -Infinity  10.540616
true mean is greater than 10 0.249824 9.767202   Infinity

df->19
confLevel->0.95
method->One sample t-test
tValue->0.688192
独立同方差双样本 t 检验：
x = norm(10.0, 1.0, 20)
y = norm(4.0, 1.0, 10)
tTest(x, y, 6.0, , true);

// output
stat->
alternativeHypothesis                pValue   lowerBound upperBound
------------------------------------ -------- ---------- ----------
difference of mean is not equal to 6 0.438767 5.539812   7.03262
difference of mean is less than 6    0.780616 -Infinity  6.906078
difference of mean is greater than 6 0.219384 5.666354   Infinity

df->28
confLevel->0.95
method->Two sample t-test
tValue->0.785483
独立不同方差双样本 t 检验：
x = norm(10.0, 1.0, 20)
y = norm(1.0, 2.0, 10)
tTest(x, y, 9.0);

// output
stat->
alternativeHypothesis          pValue   lowerBound upperBound
------------------------------ ----------------- ---------- ----------
true difference of mean is n...0.983376 7.752967   10.271656
true difference of mean is l...0.508312 -Infinity  10.04285
true difference of mean is g...0.491688 7.981773   Infinity

df->12.164434
confLevel->0.95
method->Welch two sample t-test
tValue->0.021269

path: references/doc_1231.md
content: # getInstrumentDelivery

**URL**: https://docs.dolphindb.cn/zh/funcs/g/getinstrumentdelivery.html

**来源**: DolphinDB 官方文档

---

getInstrumentDelivery
语法
getInstrumentDelivery(instrument)
详情
根据输入的金融工具，获取该工具的交割日期（Delivery Date）。
参数
instrument
INSTRUMENT 类型标量或向量，表示金融工具。
返回值
DATE 类型标量或向量。
例子
forward =  {
   "productType": "Forward",
    "forwardType": "FxForward",
    "version": 0,
    "expiry": 2025.09.24,
    "delivery": 2025.09.26,
    "currencyPair": "USDCNY",
    "direction": "Buy",
    "notional": ["USD", 1E8],
    "strike": 7.2
}
ins = parseInstrument(forward)
getInstrumentDelivery(ins)

// output: 2025.09.26
相关函数：
parseInstrument
、
getInstrumentField
、
getInstrumentKeys

path: references/doc_1249.md
content: # getAllDBs

**URL**: https://docs.dolphindb.cn/zh/funcs/g/getAllDBs.html

**来源**: DolphinDB 官方文档

---

getAllDBs
语法
getAllDBs()
详情
获取当前节点上的分布式数据库。
2.00.09 版本起
，
当该函数由管理员或拥有 DB_MANAGE 权限的用户执行时，返回当前节点上所有分布式数据库；
否则，仅返回该用户有 DB_OWNER 权限的数据库。
参数
无
返回值
返回的结果是字典，key 是数据库名称，不包含 dfs://部分，value
                是表名，后面的数字分别是该数据库中表的编号（从1开始）和是否已被删除。
例子
getAllDBs();

path: references/doc_1257.md
content: # tail

**URL**: https://docs.dolphindb.cn/zh/funcs/t/tail.html

**来源**: DolphinDB 官方文档

---

tail
语法
tail(obj, [n=1])
详情
tail
返回向量的最后
n
个元素，或者矩阵的最后
n
列，或者表的最后
n
行。如果
n
没有指定，
n
取默认值 1。
参数
obj
可以是向量、矩阵或表。
n
是一个正整数。
返回值
返回一个与输入
obj
相同数据类型和形式的对象。
例子
x=1..10;
tail(x);
// output
10

tail(x,2);
// output
[9,10]

x=1..10$2:5;
x;
#0
#1
#2
#3
#4
1
3
5
7
9
2
4
6
8
10
x.tail();
// output
[9,10]

tail(x,2);
#0
#1
7
9
8
10
x=table(1..5 as a, 6..10 as b);
x;
a
b
1
6
2
7
3
8
4
9
5
10
tail(x);
// output
b->10
a->5


x.tail(2);
a
b
4
9
5
10
相关函数：
head

path: references/doc_1260.md
content: # isMonthStart

**URL**: https://docs.dolphindb.cn/zh/funcs/i/isMonthStart.html

**来源**: DolphinDB 官方文档

---

isMonthStart
语法
isMonthStart(X)
详情
判断
X
是否为月初第一天。
参数
X
可以是 DATE, DATEHOUR, DATETIME, TIMESTAMP 或 NANOTIMESTAMP
                类型的标量或向量。
返回值
布尔型标量或向量。
例子
isMonthStart(2012.05.01);
// output: true

isMonthStart([2012.05.01,2012.05.02]);
// output: [true,false]
相关函数：
isMonthEnd

path: references/doc_1266.md
content: # cubicSplinePredict

**URL**: https://docs.dolphindb.cn/zh/funcs/c/cubicsplinepredic.html

**来源**: DolphinDB 官方文档

---

cubicSplinePredict
语法
cubicSplinePredict(model, x)
详情
根据
model
给出的三次样条曲线，预测 x 对应的 y。
参数
model
是一个字典，包含两个 key：c 和 x，其中 c 的值是三次样条函数的分段多项式的系数，x 的值是分段多项式的分段点，c 的长度=（x
                的长度-1）*4。c 和 x 的值均不可包含空值。
model
可由
cubicSpline
函数生成。
x
是一个数值型标量或向量要预测的自变量。
返回值
DOUBLE 类型向量。
例子
n = 10
x = 0..(n-1)
y = sin(x)
model = cubicSpline(x, y, bc_type="not-a-knot")

newx = [-0.5, 0.5, 0.7, 1.2, 4.5, 8.9, 9.3]
ret = cubicSplinePredict(model, newx)
返回：
[-0.632383304169291,0.501747281896522,0.658837295715183,0.924963051153032,-0.974025627606784,0.515113155358425,0.03881591118089]

path: references/doc_1278.md
content: # groupby

**URL**: https://docs.dolphindb.cn/zh/funcs/ho_funcs/groupby.html

**来源**: DolphinDB 官方文档

---

groupby
语法
groupby(func, funcArgs, groupingCol)
或
funcArg func:G groupingCol
或
func:G(funcArgs, groupingCol)
详情
对
groupingCol
排序后分组，然后在每个分组中计算
                func(funcArgs)。每组的计算结果可以是标量，向量或字典。该函数的输出结果是一个表，它的行数与分组数相等。
参数
func
是一个函数。
funcArgs
是函数 func 的参数。如果有多个参数，则用元组表示。
groupingCol
表示分组变量。可以是向量，表示一个分组列；也可以是等长向量组成的元组，表示多个分组列。
groupingCol
和
funcArgs
中的每个参数都是相同长度的向量。
注：
对于第二种情况，
func
表示的函数只能有一个参数。
返回值
一张表。
例子
sym=`IBM`IBM`IBM`MS`MS`MS$symbol;
price=172.12 170.32 175.25 26.46 31.45 29.43;
qty=5800 700 9000 6300 2100 5300;
trade_date=2013.05.08 2013.05.06 2013.05.07 2013.05.08 2013.05.06 2013.05.07;
groupby(avg, price, sym);
sym
avg_price
IBM
172.563333
MS
29.113333
price avg :G sym;
sym
avg_price
IBM
172.563333
MS
29.113333
groupby(wavg, [price, qty], sym);
// 计算每个股票标记数量加权后的平均价格
sym
avg_price
IBM
173.856129
MS
28.373869
sym = `C`MS`MS`MS`IBM`IBM`C`C`C$SYMBOL
price= 49.6 29.46 29.52 30.02 174.97 175.23 50.76 50.32 51.29
qty = 2200 1900 2100 3200 6800 5400 1300 2500 8800
timestamp = [09:34:07,09:36:42,09:36:51,09:36:59,09:32:47,09:35:26,09:34:16,09:34:26,09:38:12]

groupby(max, price, [sym,minute(timestamp)])
sym
groupingKey
max_price
C
09:34m
50.76
C
09:38m
51.29
IBM
09:32m
174.97
IBM
09:35m
175.23
MS
09:36m
30.02

path: references/doc_1285.md
content: # lasso

**URL**: https://docs.dolphindb.cn/zh/funcs/l/lasso.html

**来源**: DolphinDB 官方文档

---

lasso
语法
lasso(ds, yColName, xColNames, [alpha=1.0], [intercept=true],
                    [normalize=false], [maxIter=1000], [tolerance=0.0001], [positive=false],
                    [swColName], [checkInput=true])
详情
进行 lasso 回归估计。
最小化以下目标函数：
参数
ds
是内存表或通常用
sqlDS
函数生成的数据源。
yColName
是字符串，表示数据源中因变量的列名。
xColNames
是字符串标量或向量，表示数据源中自变量的列名。
alpha
是浮点数，表示乘以 L1 范数惩罚项的系数。默认值是1.0。
intercept
是布尔值，表示是否回归模型包含截距。默认值为 true。
normalize
是布尔值。默认值为 false。若设为 true，则所有自变量均会进行如下标准化：减去平均值，然后除以 L2 范数。若
intercept
为 false，该参数会被忽略。
maxIter
是正整数，表示最大迭代次数。默认值是1000。
tolerance
是浮点数，表示迭代中止的边界差值。默认值是0.0001。
positive
是布尔值，表示是否强制系数为正数。默认值是 false。
swColName
字符串，表示列名，必须为
ds
中存在的列名。如果未指定该参数，则所有样本的权重都默认为1；如果指定该参数，则将指定的列作为样本的权重。
checkInput
布尔值，表示是否检查输入参数（
yColName
,
xColNames
和
swColName
）的合法性。
若
checkInput
=true（默认值），则会检查这些参数中是否存在无效值（NULL），若存在，则会报错；
若
checkInput
=false，则不检查无效值。
注：
强烈建议开启
checkInput
，以检查输入参数的有效性。如果不开启
checkInput
，则必须确保输入参数中不存在无效值，并且中间计算过程中不会产生无效值，否则可能得到一个无用的模型。
返回值
一个字典，包含以下 key：
modelName：模型名称。
coefficients：模型的回归系数。
intercept：截距。
dual_gap：优化结束时的对偶间隙。
tolerance：迭代中止的边界差值。
iterations：迭代次数。
xColNames：数据源中自变量的列名。
predict：用于预测的函数。
例子
y = [225.720746,-76.195841,63.089878,139.44561,-65.548346,2.037451,22.403987,-0.678415,37.884102,37.308288];
x0 = [2.240893,-0.854096,0.400157,1.454274,-0.977278,-0.205158,0.121675,-0.151357,0.333674,0.410599];
x1 = [0.978738,0.313068,1.764052,0.144044,1.867558,1.494079,0.761038,0.950088,0.443863,-0.103219];
t = table(y, x0, x1);

lasso(t, `y, `x0`x1);
如果 t 是一个 DFS 表，则应使用数据源作为输入：
lasso(sqlDS(<select * from t>), `y, `x0`x1);

path: references/doc_1296.md
content: # dropIPCInMemoryTable

**URL**: https://docs.dolphindb.cn/zh/funcs/d/dropIPCInMemoryTable.html

**来源**: DolphinDB 官方文档

---

dropIPCInMemoryTable
语法
dropIPCInMemoryTable(tableName)
详情
删除跨进程共享内存表。
注：
此函数仅适用于 Linux 系统。
server 关机并不能删除跨进程共享内存表，仍然需要通过
dropIPCInMemoryTable
进行删除。
参数
tableName
字符串，表示跨进程共享内存表的名称。
返回值
一个字符串，表示删除的跨进程共享内存表的名称。
例子
删除函数
createIPCInMemoryTable
例子中创建的表 ipc_table。
dropIPCInMemoryTable(`ipc_table)
// output
ipc_table

path: references/doc_1297.md
content: # getComputeGroupChunksStatus

**URL**: https://docs.dolphindb.cn/zh/funcs/g/getcomputegroupchunksstatus.html

**来源**: DolphinDB 官方文档

---

getComputeGroupChunksStatus
语法
getComputeGroupChunksStatus([computeGroup])
详情
应用于控制节点，获取指定或所有计算组中缓存的所有 chunk （包括 file chunk 和 tablet chunk）的元数据信息。
参数
computeGroup
可选参数，字符串标量，表示计算组名称。
返回值
返回一个表，包含以下列：
chunkId：chunk 的唯一标识
file：分区路径
routedTo：计算节点别名，控制节点会将对该分区的查询调度到此计算节点。
cachedOn：缓存分区的计算节点别名，形式为 alias:[version]，例如：orca2:[29] 表示名为 orca2
                        的计算节点缓存了分区版本号为 29 的数据。
computeGroup：缓存分区的计算组名字。一个分区可能被多个计算组缓存。
size：file chunk 占用磁盘空间，单位为 byte。对于 tablet chunk，返回 0，需要使用 getTabletsMeta
                        来查看它们实际占用的磁盘空间。
version：版本号。
vcLength：版本链长度。
versionChain：版本链。
state：chunk 状态。CONSTRUCTING：正在事务中； RECOVERING：正在 recovery
                        中；COMPLETE：已经处于事务终止状态。
dataNodeReplicas：数据节点上副本的分布信息。
dataNodeReplicaCount：数据节点上副本的数量。
lastUpdated：上一次更新的时间戳。
permission：CHUNK 的权限。CHUNK 的权限分为 READ_ONLY 以及
                        READ_WRITE（默认权限）两类。正在进行迁移的分区，或存储在 s3 的分区权限均为 READ_ONLY。
例子
getComputeGroupChunksStatus()
chunkId
path
routedTo
cachedOn
computeGroup
size
version
vcLength
versionChain
state
dataNodeReplicas
dataNodeReplicaCount
lastUpdated
permission
abec288a-49f7-61b9-464e-56bf134c8340
/Storage_compute_separation_tsdb/20120110/Key19/2
orca3
[NOT CACHED]
orca
0
1
1
1466:0:1:1466 ->
COMPLETE
dnode2:1:0:false:0
1
2024.10.12 17:26:51.757
READ_WRITE
fdb95a8e-72f0-21a7-0443-2cbe02feeca2
/Storage_compute_separation_tsdb/20120229/Key1/2
orca1
[NOT CACHED]
orca
0
1
1
1463:0:1:1463 ->
COMPLETE
dnode3:1:0:false:0
1
2024.10.12 17:26:51.708
READ_WRITE
55020019-8b2c-75a1-3b40-7ad2469abe48
/Storage_compute_separation_tsdb/20120110/Key13/2
orca3
[NOT CACHED]
orca
0
1
1
1458:0:1:1458 ->
COMPLETE
dnode3:1:0:false:0
1
2024.10.12 17:26:51.618
READ_WRITE
96678f5f-6ae5-2b98-9944-5d4370473dee
/Storage_compute_separation_tsdb/20120110/Key7/2
orca2
[NOT CACHED]
orca
0
1
1
1456:0:1:1456 ->
COMPLETE
dnode1:1:0:false:0
1
2024.10.12 17:26:51.583
READ_WRITE

path: references/doc_1305.md
content: # eval

**URL**: https://docs.dolphindb.cn/zh/funcs/e/eval.html

**来源**: DolphinDB 官方文档

---

eval
语法
eval(expr)
详情
解析给定的元代码。
参数
expr
是元代码。
例子
eval(<1+2>);
// output
3

eval(<1+2+3=10>);
// output
0

eval(expr(6,<,8));
// output
1

eval(expr(sum, 1 2 3));
// output
6

a=6; b=9;
eval(expr(<a>,+,<b>));
// output
15

path: references/doc_1309.md
content: # mwavg

**URL**: https://docs.dolphindb.cn/zh/funcs/m/mwavg.html

**来源**: DolphinDB 官方文档

---

mwavg
语法
mwavg(X, Y, window, [minPeriods])
窗口计算规则请参考：
mFunctions
详情
在给定长度（以元素个数或时间长度衡量）的滑动窗口内，以
Y
为权重（权重会自动缩放，使其元素之和为1），计算
X
元素的加权平均。
注：
与
mavg
以 size(
weight
)
                        长度的窗口进行滑动窗口计算不同，
mwavg
的权重
Y
必须和
X
具有相同的长度。
参数
X
是一个向量/矩阵/表/元组（元素为标量或等长向量）/字典。
Y
是一个向量/矩阵/表/元组（元素为标量或等长向量）/字典。
window
是大于等于 2 的正整型或 DURATION 标量。表示滑动窗口的长度。
注：
在流计算引擎中调用滑动窗口函数时，window 的上限为 102400。
minPeriods
是一个正整数。为滑动窗口中最少包含的观测值数据。
返回值
输入为向量时，返回一个与输入等长的 DOUBLE 类型向量。
输入为矩阵时，返回一个与输入矩阵同维度的矩阵，每列分别计算。
输入为表时，返回一个与输入表结构相同的表。
输入为元组时，返回对应的元组结构。
例子
price=2.1 2.2 2.3 2.5 2.6 2.8 2.7 2.5;
volume=10 20 10 40 10 40 10 20;
mwavg(price, volume, 4);
// output: [,,,2.35,2.4125,2.61,2.65,2.6875]

mwavg(price, volume, 4, 2);
// output: [,2.166667,2.2,2.35,2.4125,2.61,2.65,2.6875]
price1 = indexedSeries(date(2020.06.05)+1..8, price)
volume1 = indexedSeries(date(2020.06.05)+1..8, volume)
mwavg(price1,volume1, 4d)
label
col1
2020.06.06
2.1
2020.06.07
2.1667
2020.06.08
2.2
2020.06.09
2.35
2020.06.10
2.4125
2020.06.11
2.61
2020.06.12
2.65
2020.06.13
2.6875
mwavg(price1,volume1, 1w)
label
col1
2020.06.06
2.1
2020.06.07
2.1667
2020.06.08
2.2
2020.06.09
2.35
2020.06.10
2.3788
2020.06.11
2.5077
2020.06.12
2.5214
2020.06.13
2.5467
相关函数：
wavg
,
mavg

path: references/doc_1327.md
content: # isUpper

**URL**: https://docs.dolphindb.cn/zh/funcs/i/isUpper.html

**来源**: DolphinDB 官方文档

---

isUpper
语法
isUpper(X)
详情
判断字符串中的字母是否全部为大写。对于空字符串，该函数返回 false。
参数
X
是字符或字符串类型的标量或向量。
返回值
布尔标量或向量。
例子
isUpper("THIS IS STRING EXAMPLE....WOW!!!");
// output: true

isUpper("THIS is string example....wow!!!");
// output: false

isUpper("123456ABC");
// output: true

isUpper("123");
// output: false

isUpper(["  ",string()]);
// output: [false,false]
相关函数：
isLower
,
isTitle

path: references/doc_1329.md
content: # getAuthenticatedUsers

**URL**: https://docs.dolphindb.cn/zh/funcs/g/getAuthenticatedUsers.html

**来源**: DolphinDB 官方文档

---

getAuthenticatedUsers
语法
getAuthenticatedUsers()
详情
获取所有节点已经登录的用户信息。
参数
无
返回值
返回一个字符串向量，包含所有已登录用户的名称。
例子
getAuthenticatedUsers()
// output
["admin","a1","a3","a2","a4"]

path: references/doc_1350.md
content: # eachRight

**URL**: https://docs.dolphindb.cn/zh/funcs/ho_funcs/eachRight.html

**来源**: DolphinDB 官方文档

---

eachRight
语法
eachRight(func, X, Y,
                    [assembleRule|consistent=false])
func:R(X, Y)
或
X <operator>:R
                    Y
表示不指定
assembleRule
，使用默认值
func:RC(X, Y)
或
X <operator>:RC Y
表示指定
assembleRule
，此例中指定为 C（Consistent）
详情
把 func 应用到
Y
的每个元素上，即依次执行 func(X,Y(i))。
对于向量，Y(i) 为每个元素
对于矩阵，Y(i) 为每一列
对于表，Y(i) 为每一行
对于数组向量，Y(i) 为每一行
对于字典，Y(i) 为字典的每一个 value
如果 func 支持向量操作，并且输入数据是一个向量，为性能考虑，应直接使用向量函数或运算符，不要使用
eachRight
。
参数
func
是一个二元函数。
X
和
Y
可以是向量，矩阵、表
、数组向量
或字典。
assembleRule
可选参数，表示如何将子任务的结果合并为函数最终结果。接受一个整数或字符串作为输入，可选值如下：
0 （或 "D"）：默认值，表示 DolphinDB
                                规则，即根据所有子任务的结果来决定最终输出的数据类型和形式。当所有子结果具有相同的数据类型和形式时，多个标量合并为一个向量、多个向量合并为一个矩阵、多个矩阵合并为一个元组、多个字典合并为一张表；否则将所有子结果合并为一个元组输出。
1（或 "C"）：表示 Consistent
                                规则，即认为所有子结果的数据类型和形式都与第一个子结果相同，根据第一个子结果来选择最终结果的数据类型和形式。如果后续子任务返回的结果与第一个子任务的结果类型不一致，系统会尝试对后续结果进行类型转换。如果转换失败则抛出异常。因此，此规则只可在已知子结果的数据类型及形式一致时指定。此规则可使系统免于逐一缓存并检查每个子任务的计算结果，从而提升性能。
2（或 "U"）：表示 Tuple 规则，系统不再对各子结果的类型和形式一致性进行检查，而是直接将子结果组装成一个元组输出。
3（或 "K"）：表示 kdb+ 规则。与 DolphinDB 规则类似，都会根据所有子结果来决定最终结果形式。主要区别在于，kdb+
                                规则下，只要有任一子任务返回向量，则最终结果必为一个元组；而在 DolphinDB
                                规则下，子任务结果若均为长度相同的向量，则最终结果为一个矩阵。其他情况下，kdb+ 规则的输出与 DolphinDB 规则相同。
注：
自 2.00.15
/3.00.3
版本起，新增了
assembleRule
参数。该参数不仅实现了原
consistent
参数的功能，还提供了更多的结果合并选项。
consistent
是一个布尔值，默认值为 false，相当于
assembleRule
="D"；若为 true，则相当于
assembleRule
="C"。为保持兼容性，用户仍可使用
consistent
参数。如果同时指定
assemble
和
consistent
，将以
consistent
的值为准。
assembleRule
也可在高阶函数对应的函数模式符号后指定，通过字符 D/C/U/K 表示。以
eachPre (:P)
为例，形如
sub:PU(X)
。不指定则使用默认值 D。
返回值
取决于
assembleRule
的值。
例子
eachRight
作用于两个向量：
x = 4 3 2 1
y = 3 0 6;
eachRight(add, x, y);
3
0
6
7
4
10
6
3
9
5
2
8
4
1
7
x pow :R y;
3
0
6
64
1
4096
27
1
729
8
1
64
1
1
1
eachRight
作用于一个矩阵以及一个向量：
x=1..6$2:3;
x;
col1
col2
col3
1
3
5
2
4
6
1 1 ** :R x;
// output
[3,7,11]
eachRight
作用于两个矩阵：
y=6..1$3:2;
y;
col1
col2
6
3
5
2
4
1
eachRight(**, x, y);

// output
(#0
--
41
56
,#0
--
14
20
)
eachRight
作用于一个字典和一个向量：
d=dict(`a`b`c, [[1, 2, 3],[4, 5, 6], [7, 8, 9]])
eachRight(add,10 20 30,d)
// output
a->[11,22,33]
b->[14,25,36]
c->[17,28,39]

path: references/doc_1354.md
content: # regexFindStr

**URL**: https://docs.dolphindb.cn/zh/funcs/r/regexfindstr.html

**来源**: DolphinDB 官方文档

---

regexFindStr
语法
regexFindStr(str, pattern, [onlyFirst=true],
                [offset])
详情
不同于
regexFind
返回满足条件的字符串位置，
regexFindStr
从第
offset
个位置开始搜索，返回
str
中满足正则表达式
pattern
的字符串。
注：
该函数新增于
2.00.11.1版本
。
参数
str
字符串或字符串向量，表示待搜索的对象。
pattern
字符串，表示搜索的模式字符串（正则表达式）。模式字符串可以包含字面量字符、元字符或两者的组合。
onlyFirst
布尔标量，表示是否只返回与正则表达式匹配的第一个子字符串：
默认值为 true，此时针对 str 中的每一个字符串，仅返回第一个满足正则表达式的子字符串；
设置为 false 时，针对 str 中的每一个字符串，返回所有满足正则表达式的非重叠匹配的子字符串。
offset
非负整数，表示从
str
的第
offset
个位置开始搜索。默认值为0，即
str
的第一个位置。
返回值
当
str
为标量，且
onlyFirst
为 true
                        时，若存在满足条件的子字符串，则返回一个字符串标量，否则返回一个空的字符串。
当
str
为标量，且
onlyFirst
为 false
                        时，若存在满足条件的子字符串，则返回一个字符串向量，其元素为所有满足条件的子串。
当
str
为向量，且
onlyFirst
为 true 时，返回一个字符串向量，其中每个元素都是
str
中对应位置元素中第一个匹配正则表达式的子字符串。
当
str
为向量，且
onlyFirst
为 false 时，返回一个元组，其中每个元素都是
str
对应位置元素中所有匹配正则表达式的子字符串的向量。
例子
str
为标量，且
onlyFirst
为 true 时：
regexFindStr('234AA(2)BBB S&P', '([A|B|C|+|-]*)', true)
返回：AA
str
为标量，且
onlyFirst
为
false
时：
regexFindStr('234AA(2)BBB S&P', '([A|B|C|+|-]*)', false)
返回：["AA","BBB"]
str
为向量，且
onlyFirst
为 true 时：
regexFindStr(['234AA(2)BBBS&P', '234AA(2)BBBS&P'], '([A|B|C|+|-]*)', true)
返回：["AA","AA"]
str
为向量，且
onlyFirst
为 false 时：
regexFindStr(['234AA(2)BBBS&P', '234AA(2)BBBS&P'], '([A|B|C|+|-]*)', false)
返回：(["AA","BBB"],["AA","BBB"])

path: references/doc_1359.md
content: # concat

**URL**: https://docs.dolphindb.cn/zh/funcs/c/concat.html

**来源**: DolphinDB 官方文档

---

concat
语法
concat(X, Y)
详情
如果
X
是字符串或字符：
当
X
为空时，若
Y
是空字符串或空字符，该函数返回一个空字符串；若
Y
是非空字符串或非空字符，该函数返回字符串
Y
。
当
X
非空时，无论
Y
是否为空，该函数将
Y
连接到
X
之后，返回新的字符串。
如果
X
是字符串向量或字符向量：
当
X
为空时，无论
Y
是否为空，该函数总是返回一个空字符串。
当
X
非空时，若
Y
是空字符串或空字符，该函数将
X
的每个元素依次连接成一个新的字符串并返回；若
Y
非空，该函数依次连接
X
中每个字符串（字符），并使用
Y
对分隔它们隔，返回新的字符串。
注：
concat
在进行连接之前会将所有参数隐式转换为字符串类型，将空值隐式转换为空字符串。
参数
X
可以是字符串标量/向量、字符标量/向量。
Y
是字符串或字符。
若
X
或
Y
未指定，则它们将被处理为空字符串。
返回值
字符串（STRING）
例子
// 连接两个字符串
concat (`hello, `world);
// output
helloworld

// 返回在 IBM, GOOG 和 APPL 间用 "," 分隔的结果
x = concat(`IBM`GOOG`APPL, ",");
x;
// output
IBM,GOOG,APPL

typestr x;
// output
STRING

size x;
// output
1

concat(string([]),"a")
// output
NULL

concat("55","")
// output
55

// Y 未指定，将 X 的每个元素直接拼接为1个字符串
concat(`a`b`c`d,)
// output
abcd

path: references/doc_1364.md
content: # isMonotonic

**URL**: https://docs.dolphindb.cn/zh/funcs/i/isMonotonic.html

**来源**: DolphinDB 官方文档

---

isMonotonic
是
isMonotonicIncreasing
的别名。

path: references/doc_1368.md
content: # kernelRidge

**URL**: https://docs.dolphindb.cn/zh/funcs/k/kernelRidge.html

**来源**: DolphinDB 官方文档

---

kernelRidge
语法
kernelRidge(ds, yColName, xColNames, [alpha=1.0], [kernel='linear'],
                    [gamma=0], [degree=3], [coef0=1], [swColName])
详情
该函数基于核函数和岭回归的正则化技术，拟合数据间的复杂非线性关系，输出回归预测模型。
目标函数为：
参数
ds
是内存表或由
sqlDS
生成的数据源。
yColName
是字符串，表示数据源中因变量的列名，对应目标函数中的 y 。
xColNames
是字符串标量或向量，表示数据源中自变量的列名。对应目标函数中的 X。
alpha
可选参数，是正数，表示正则化强度。默认值为 1.0。 对应目标函数中的 alpha。
kernel
可选参数，是字符串，表示核函数的类型。对应目标函数中的
Φ
。支持以下核函数：
'linear'：线性核函数
<x, y>
'rbf'：径向基函数核（高斯核）
exp(-gamma * ||x - y||²)
'poly'/'polynomial'：多项式核函数
(gamma * <x, y> +
                    coef0)^degree
'sigmoid'：Sigmoid核函数
tanh(gamma * <x, y> + coef0)
'laplacian'：拉普拉斯核函数
exp(-gamma * ||x - y||₁)
'cosine'：余弦相似度核函数
<x, y> / (||x|| * ||y||)
'additive_chi2'：加性卡方核函数
-∑[(x - y)² / (x + y)]
'chi2'：卡方核函数
exp(-gamma * ∑[(x - y)² / (x + y)])
gamma
可选参数，是数值标量，表示核函数参数。默认值为 0，此时根据特征数自动设置。
degree
可选参数，是数值标量，表示多项式核函数的次数。默认值为 3 。
coef0
可选参数，是数值标量，表示核函数中的常数项系数。默认值为 1.0 。
swColName
可选参数，是字符串，指定
ds
中的一个列名，将该列作为样本权重。默认所有样本的权重都为 1 。
返回值
返回一个字典，包含以下键：
modelName: 字符串标量，表示模型名称，即 kernelRidge 方法对应的模型名为 “kernelRidge”。
coefficients: 数值向量，表示参数向量，对应目标函数中的 w 向量。
xColNames: 字符串向量，表示特征变量列名。
xFit: 数值矩阵，用于存储输入数据源中的自变量。
alpha: 数值标量，与参数中的
alpha
相同。
kernel: 字符串标量，与参数中的
kernel
相同。
gamma: 数值标量，与参数中的
gamma
相同。
degree: 数值标量，与参数中的
degree
相同。
coef0: 数值标量，与参数中的
coef0
相同。
predict: 模型的预测函数。
例子
x1 = [-1.5, 2.3, 4.2, 1.6];
x2 = [-2.2, 3.9, 2.8, 0.5];
sw = [2, 5, 8, 1];
y = [0.0, 0.9, 3.2, 3.1];
t = table(y, x1, x2, sw);

m = kernelRidge(t, `y, `x1`x2, 1, 'laplacian', 0, 3, 1, `sw);
m
/*
modelName->kernelRidge
coefficients->#0                
------------------
-0.061436450468451
0.09192514209272  
2.716894143137368 
1.428547958639275 

xColNames->["x1","x2"]
xFit->#0                #1  
----------------- ----
-1.5              -2.2
2.3               3.9 
4.200000000000001 2.8 
1.6               0.5 

alpha->1
kernel->laplacian
gamma->0.5
degree->3
coef0->1
predict->kernelRidgePredict
*/



x1 = [-1.2, 4.6, 2.4];
x2 = [-1.0, 2.8, -4.7];
t_test = table(x1, x2);
predict(m, t_test);
/*
#0               
-----------------
0.166070925673076
2.34188781136904 
0.095783250622374
*/

path: references/doc_1372.md
content: # parseInt

**URL**: https://docs.dolphindb.cn/zh/funcs/p/parseInt.html

**来源**: DolphinDB 官方文档

---

parseInt
是
parseInteger
的别名。

path: references/doc_1378.md
content: # warmupStreamEngine

**URL**: https://docs.dolphindb.cn/zh/funcs/w/warmupStreamEngine.html

**来源**: DolphinDB 官方文档

---

warmupStreamEngine
语法
warmupStreamEngine(engine, msgs)
详情
把数据写入流数据引擎，但是不输出结果。下一批次数据写入此流数据引擎，可以利用已计算的结果来加速计算。
目前仅支持响应式状态引擎，时间序列聚合引擎和日级时间序列引擎。
参数
engine
是创建流数据引擎时返回的表对象。
msgs
是一个数据表。
返回值
无。
例子
trade=table(1000:0, `date`sym`price`volume, [DATE, SYMBOL, DOUBLE, INT])
n=3000*100
date=take(2021.03.08, n)
sym=take("A"+string(1..3000), n)
price=round(rand(100.0, n), 2)
volume=rand(100, n)
table1 = table(date, sym, price, volume)
outputTable = table(n:0, `sym`factor1, [STRING,DOUBLE])
engine = createReactiveStateEngine("test", <ema(volume, 40)>, table1, outputTable, "sym")
warmupStreamEngine(engine, table1)
date=take(2021.03.09, n)
sym=take("A"+string(1..3000), n)
price=round(rand(100.0, n), 2)
volume=rand(100, n)
table2 = table(date, sym, price, volume)
engine.append!(table2)

path: references/doc_1382.md
content: # fminNCG

**URL**: https://docs.dolphindb.cn/zh/funcs/f/fminncg.html

**来源**: DolphinDB 官方文档

---

fminNCG
语法
fminNCG(func, X0, fprime, fhess, [xtol=1e-5], [maxIter],
                    [c1=1e-4], [c2=0.9])
详情
使用牛顿共轭梯度法（Newton conjugate gradient；也称为截断牛顿法，Truncated Newton
                method）对目标函数进行无约束最小化。本方法适用于解决大型非线性优化问题。
参数
func
函数名，表示需要最小化的目标函数。注意：函数返回值须是数值标量类型。
X0
数值类型的标量或向量，表示使目标函数最小化的参数的初始猜测。
fprime
函数名，表示计算
func
梯度的函数。
fhess
函数名，表示计算
func
的 Hessian 矩阵的函数。
xtol
可选参数，正数值标量，用于判断是否结束迭代的步长衡量值。如果两次迭代间参数变化量的范数小于
xtol*size(X0)
，则认为算法收敛，停止迭代。默认值为 1e-5。
maxIter
可选参数，非负整数标量，表示执行的最大迭代次数。
c1
可选参数，数值标量，值域为(0,1)，
c1
应小于
c2
，表示 Armijo 条件规则的参数。默认值为 1e-4。
c2
可选参数，数值标量，值域为(0,1)，
c2
应大于
c1
，表示曲率条件规则参数。默认值为 0.9。
返回值
返回一个字典，字典有以下成员：
xopt：浮点数向量，使目标函数最小化的参数值。
fopt：浮点数标量，目标函数最小值。fopt=func(xopt)。
iterations：整数标量，优化过程中执行的总迭代数。
fcalls：整数标量，优化过程中的目标函数调用次数。
gcalls：整数标量，优化过程中的梯度函数调用次数。
hcalls：整数标量，优化过程中的计算 Hessian 函数的调用次数。
warnFlag：整数标量，有四个可能值：
0：表示成功执行算法全过程。
1：表示已达最大迭代次数，算法停止执行。
2：表示由于精度损失问题，线搜索失败。
3：表示结果产生 NULL 值。
例子
本例自定义条件，传入参数
f
,
X0
,
fprime
,
fhess
，使用牛顿共轭梯度法找到目标函数
rosen
的最小值。
def rosen(x) { 
	N = size(x);
	return sum(100.0*power(x[1:N]-power(x[0:(N-1)], 2.0), 2.0)+power(1-x[0:(N-1)], 2.0));
}

def rosen_der(x) {
	N = size(x);
	xm = x[1:(N-1)]
	xm_m1 = x[0:(N-2)]
	xm_p1 = x[2:N]
	der = array(double, N)
	der[1:(N-1)] = (200 * (xm - xm_m1*xm_m1) - 400 * (xm_p1 - xm*xm) * xm - 2 * (1 - xm))
	der[0] = -400 * x[0] * (x[1] - x[0]*x[0]) - 2 * (1 - x[0])
	der[N-1] = 200 * (x[N-1] - x[N-2]*x[N-2])
	return der
}

def diag1(x, k) {
	N = size(x)
	m = matrix(type(x), N+1,N+1)
	if (k == 1) {
		for(i in 0:N){
			m[i, i+1] = x[i]
		}
	} else {
		for(i in 0:N){
			m[i+1, i] = x[i]
		}
	}

	return m
}

def rosen_hess(x) {
	N = size(x);
	x1= x[0:(N-1)] * 400
	H = diag1(-x1, 1) - diag1(x1, -1)
	diagonal = array(type(x), N)
	diagonal[0] = 1200 * x[0]*x[0] - 400 * x[1] + 2
	diagonal[N-1] = 200
	diagonal[1:(N-1)] = 202 + 1200 * x[1:(N-1)]*x[1:(N-1)] - 400 * x[2:N]
	H = H + diag(diagonal)
	return H
}

X0 = [4, -2.5]
fminNCG(rosen, X0, rosen_der, rosen_hess)

/* Ouput:（返回顺序可能略有不同）
xopt->[0.999999966120496,0.999999932105584]
fopt->1.149654357653714E-15
iterations->34
fcalls->45
gcalls->45
hcalls->34
warnFlag->0
*/

path: references/doc_1387.md
content: # dictUpdate!

**URL**: https://docs.dolphindb.cn/zh/funcs/d/dictUpdate_.html

**来源**: DolphinDB 官方文档

---

dictUpdate!
语法
dictUpdate!(dictionary, function, keys, parameters,
                    [initFunc=copy])
详情
更新字典中的特定的键的值。
参数
dictionary
是一个字典。
function
是一个函数。
keys
可以是标量或向量，表示对哪些键应用函数。
parameters
和
keys
具有相同长度。应用函数的参数是
parameters
和字典的初始值。
initFunc
是一个一元函数。当更新的键不存在时，执行该函数。只有当字典的值是 ANY 类型时，才能指定该参数。
返回值
无。
例子
x=dict(1 2 3, 1 1 1);
x;
// output
3->1
1->1
2->1

dictUpdate!(x, add, 2 3, 1 2);
// output
3->3
1->1
2->2

x.dictUpdate!(mul, 3 4, 2 4);
// output
4->4
3->6
1->1
2->2

d = dict(`IBM`MSFT, [1 2, 3 4])
msg = table(`IBM`MSFT`GOOG as symbol, 2 3 2 as ap)
d.dictUpdate!(append!, msg.symbol, msg.ap, x->array(x.type(), 0, 512).append!(x))
d;
// output
MSFT->[3,4,3]
GOOG->[2]
IBM->[1,2,2]

path: references/doc_1407.md
content: # head

**URL**: https://docs.dolphindb.cn/zh/funcs/h/head.html

**来源**: DolphinDB 官方文档

---

head
语法
head(X, [n=1])
详情
head
返回向量的前
n
个元素，或矩阵的前
n
列，或表的前
n
行。如果
n
没有指定，
n
取默认值1。
参数
X
可以是向量、矩阵或表。
n
是一个正整数。
返回值
标量、向量、矩阵、字典或表。
例子
x=1..10; head(x);
// output
1

x=1..10$2:5;
x;
#0
#1
#2
#3
#4
1
3
5
7
9
2
4
6
8
10
x.head();
// output
[1,2]

head(x,2);
#0
#1
1
3
2
4
x=table(1..5 as a, 6..10 as b);
x;
a
b
1
6
2
7
3
8
4
9
5
10
head(x);
// output
b->6
a->1

x.head(2);
a
b
1
6
2
7
相关函数：
tail

path: references/doc_143.md
content: # toCharArray

**URL**: https://docs.dolphindb.cn/zh/funcs/t/toCharArray.html

**来源**: DolphinDB 官方文档

---

toCharArray
语法
toCharArray(X)
详情
将字符串拆分字符向量。
参数
X
STRING/BLOB/SYMBOL 类型标量或向量。
返回值
若
X
是标量，返回一个 CHAR 类型向量。
若
X
是向量，返回一个 CHAR 类型数组向量。
例子
str = "It is great!\n"
print str.toCharArray()
// output
['I','t',' ','i','s',' ','g','r','e','a','t','!',10]

str1 = ["A#", "B C", "D\t"]
print str1.toCharArray()
// output
[['A','#'],['B',' ','C'],['D',9]]
将一个包含了 BLOB 类型的数据写入文件，需要使用
toCharArray
进行转换，以保证写入的数据正确。
//将一个向量压缩后，存入一个二进制文件
x=1..100
//BLOB 类型的字符串开头会使用4个字节来标识它的长度
y=blob(compress(x).concat())
dir = WORK_DIR+"/toCharArray.bin"
g = file(dir, "w")
//使用 toCharArray 函数对 BLOB 类型的字符串进行转换，则只会将正确的数据写入文件（头部的4个字节不会写入）
g.write(y.toCharArray())   //实际写入了467个字节
g.close()

// output
dir1 = WORK_DIR+"/toCharArray1.bin"
g1 = file(dir1, "w")
g1.write(y)    //实际写入了471个字节
g1.close()
相关函数：
split

path: references/doc_1430.md
content: # demean

**URL**: https://docs.dolphindb.cn/zh/funcs/d/demean.html

**来源**: DolphinDB 官方文档

---

demean
语法
demean(X)
详情
对一组数据进行去均值化（零均值化）操作，空值不参与计算。
参数
X
数值型标量、向量、矩阵或表。
返回值
返回一个和
X
维度相同的 DOUBLE 类型对象。
若
X
为向量，计算 X - avg(X)；
若
X
为矩阵，则在矩阵每一列进行计算；
若
X
为表，则只对数值列进行计算。
例子
x = 1 NULL 2 3
demean(x)
输出返回：[-1,,0,1]
v = 1 0 1 1 8 2 -4 0
demean(v)
输出返回：[-0.125,-1.125,-0.125,-0.125,6.875,0.875,-5.125,-1.125]

path: references/doc_1438.md
content: # mvarpTopN

**URL**: https://docs.dolphindb.cn/zh/funcs/m/mvarpTopN.html

**来源**: DolphinDB 官方文档

---

mvarpTopN
语法
mvarpTopN(X, S, window, top, [ascending=true],
                    [tiesMethod='oldest'])
参数说明和窗口计算规则请参考：
mTopN
详情
在给定长度（以元素个数衡量）的滑动窗口内，根据
ascending
指定的排序方式将
X
按照
S
进行稳定排序后，取前
top
个元素计算总体方差。
返回值
输入为向量时，返回一个与输入等长的 DOUBLE 类型向量。
输入为矩阵时，返回一个与输入矩阵同维度的矩阵，每列分别计算。
输入为表时，返回一个与输入表结构相同的表。
输入为元组时，返回对应的元组结构。
例子
X = 1..7
S = 0.3 0.5 0.1 0.1 0.5 0.2 0.4
mvarpTopN(X, S, 4, 2)
// output: [0,0.25,1,0.25,0.25,0.25,1]


X = NULL 1 2 3 4 NULL 5
S = 3 5 1 1 5 2 4
mvarpTopN(X, S, 4, 2)
// output: [,0,0,0.25,0.25,0.25,0]

X = matrix(1..5, 6..10)
S = 2022.01.01 2022.02.03 2022.01.23 2022.04.06 2021.12.29
mvarpTopN(X, S, 3, 2)
#0
#1
0
0
0.25
0.25
1
1
0.25
0.25
1
1
X = matrix(1..5, 6..10)
S = matrix(2022.01.01 2022.02.03 2022.01.23 NULL 2021.12.29,NULL 2022.02.03 2022.01.23 2022.04.06 NULL)
mvarpTopN(X, S, 3, 2)
#0
#1
0
0.25
0
1
0.25
0.25
0.25
1
0.25
相关函数：
mvarp

path: references/doc_1440.md
content: # defined

**URL**: https://docs.dolphindb.cn/zh/funcs/d/defined.html

**来源**: DolphinDB 官方文档

---

defined
语法
defined(names, [type=VAR])
详情
返回一个标量/向量，表示
names
中的每个元素是否已被定义。
参数
names
可以是字符串标量或向量，表示对象名。
type
可为 VAR（本地变量），SHARED（共享变量）或 DEF（函数定义）。默认值为 VAR。
例子
x=10
y=20
def f(a){return a+1}
share table(1..3 as x, 4..6 as y) as t1;

defined(["x","y","f",`t1]);
// output
[1,1,0,0]

defined(["x","y","f",`t1], DEF);
// output
[0,0,1,0]

defined(["x","y","f",`t1], SHARED);
// output
[0,0,0,1]

path: references/doc_1450.md
content: # pchipInterpolateFit

**URL**: https://docs.dolphindb.cn/zh/funcs/p/pchipInterpolateFit.html

**来源**: DolphinDB 官方文档

---

pchipInterpolateFit
语法
pchipInterpolateFit(X, Y, [extrapolate=true])
详情
对一组数值向量
X
和
Y
进行分段三次 Hermite 多项式插值（PCHIP）。
参数
X
数值型向量，表示用于插值的点的 x 坐标（自变量）。
X
必须严格递增，且至少包含两个元素。
Y
与
X
等长的数值型向量，表示用于插值的点的 y 坐标（因变量）。
extrapolate
可选参数，布尔标量，表示当预测点超出已知数据范围时是否进行外插。默认为 true。
返回值
一个字典，包含以下键值对：
modelName：字符串“PchipInterpolate”，表示模型名称。
X：DOUBLE 向量，表示输入参数
X
。
extrapolate：BOOL 标量，即输入参数
extrapolate
。
coeffs：数值型向量，表示根据输入数据点拟合得到的多项式系数。
predict：模型的预测函数，可以通过
model.predict(X)
或
predict(model,
                        X)
调用，其中：
model：字典，即当前函数
pchipInterpolateFit
的返回。
X：数值型向量，表示需要求值的点的 x 坐标，
predict
函数将返回在
X
点处的插值结果。
例子
对 x 和 y 进行进行分段三次 Hermite 多项式插值。
def linspace(start, end, num, endpoint=true){
	if(endpoint) return end$DOUBLE\(num-1), start + end$DOUBLE\(num-1)*0..(num-1)
	else return start + end$DOUBLE\(num-1)*0..(num-1)	
}

x_observed = linspace(0.0, 10.0, 11)[1]
y_observed = sin(x_observed)

model = pchipInterpolateFit(x_observed, y_observed)
model;

/* output:
modelName->PchipInterpolate
X->[0,1,2,3,4,5,6,7,8,9,10]
coeffs->#0                 #1                 #2                 #3                
------------------ ------------------ ------------------ ------------------
-0.32911446845195  -0.057707802943105 1.228293256202952  0                 
-0.01011863907468  -0.047589163868426 0.125534244960891  0.841470984807897 
0.708356730424705  -1.476534149190519 0                  0.909297426825682 
0.637878921149598  -0.707803317410469 -0.827998107106924 0.141120008059867 
0.074275580231352  0.053570618892506  -0.329967978479069 -0.756802495307928
-0.571482233207003 1.250991009671215  0                  -0.958924274663138
-0.594663658922633 0.743530436118926  0.787535319721422  -0.279415498198926
-0.174138080617811 0.015904513331029  0.490605215191374  0.656986598718789 
0.434603140426252  -1.011842901807877 0                  0.989358246623382 
0.046813296419378  -0.283076510213506 -0.719876382336998 0.412118485241757 

extrapolate->true
predict->cubicHermiteSplinePredict
*/
相关函数：
predict
cubicHermiteSplineFit

path: references/doc_1459.md
content: # getConfig

**URL**: https://docs.dolphindb.cn/zh/funcs/g/getConfig.html

**来源**: DolphinDB 官方文档

---

getConfig
语法
getConfig([key])
详情
获取系统配置信息。系统内部将配置项按安全级别划分为敏感、标准和不敏感三类。
敏感配置项：clusterReplicationExecutionPassword、s3SecretAccessKey、oauthClientSecret、metricsToken。
不敏感配置项：webLoginRequired、webModules、oauth、oauthWebType、oauthAuthUri、oauthRedirectUri、oauthClientId
、oauthAllowPasswordLoginNodes
。
标准配置项：除上述两类之外的其他配置。
当启用配置访问控制（
enableConfigAccessControl=true
）时，函数仅返回当前用户有权限访问的配置项；若未启用访问控制，则不进行权限验证。
不同用户权限说明
用户角色
不敏感配置
标准配置
敏感配置
未登录用户
可以查看
不能查看
不能查看
普通用户
可以查看
可以查看
不能查看
管理员用户
可以查看
可以查看
不能查看
配置参数详情可查看
参数配置
。
参数
key
是一个字符串，表示配置参数名称，为可选参数。
返回值
若不指定
key
，返回一个字典，包含当前用户有权限读取的所有配置项及其对应值。
若指定
key
若为有效配置参数且用户具有读取权限，返回字符串标量或向量，表示配置值；
若不是配置参数，或是有效配置但用户没有读取权限，则返回空值。

path: references/doc_1461.md
content: # unionAll

**URL**: https://docs.dolphindb.cn/zh/funcs/u/unionAll.html

**来源**: DolphinDB 官方文档

---

unionAll
语法
unionAll(tableA, tableB, [byColName=false])
或
unionAll(tables, [partition=true], [byColName=false])
或
unionAll(tables, tableB)
详情
第一种用法只能将两个表合并成一个表，返回的结果是未分区的内存表。
第二种用法可以多个表合并成一个表。如果
partition
为 false，返回的结果是未分区的内存表；如果
partition
为 true，返回的结果是一个顺序分区的内存表。默认值为 true。
当
byColName
=true 时，各表可有不同数量的列。若某列在某些表中不存在，结果中会以空值填充。
当
byColName
=false 时，各表必须有相同数量的列。
第三种用法是将多个表追加到指定的表，并返回该表。常用于
mr
函数的 finalFunc。
参数
用法一：
tableA
和
tableB
是列数相同的内存表。
用法二：
tables
是一个元组，其中每个元素都是一个表，并且它们具有相同的列数。
partition
是布尔值，表示是否进行顺序分区（SEQ），默认值是
                                true。
byColName
是一个布尔值。若设为
                                true，表示表合并时，依照列名进行，各表中相同列名的列进行合并，缺失的列用空值填充。若设为
                                false，表示表合并时仅基于列顺序，不管列名是否一致。
用法三：
tables
是一个元组，其中每个元素都是一个内存表，并且它们具有相同的列数。
tableB
是一个和
tables
中表列数相同的内存表。
注：
tableA
,
tableB
,
tables
支持以下内存表：table,
                    keyedTable, indexedTable, latestKeyedTable, latestIndexedTable。此外，用法三的
tableB
还可以是一个分区内存表。
返回值
一个表。
例子
用法一：合并两个内存表
t1=table(1 2 3 as id, 11 12 13 as x)
t2=table(4 5 6 as id, 14 15 16 as x)
re=unionAll(t1,t2)
re;
id
x
1
11
2
12
3
13
4
14
5
15
6
16
typestr(re);
// output
IN-MEMORY TABLE
用法二：合并多个内存表
t1=table(1 2 3 as id, 11 12 13 as x)
t2=table(4 5 6 as id, 14 15 16 as x)
t3=table(7 8 as id, 17 18 as x)
re=unionAll([t1,t2,t3])
select * from re;
id
x
1
11
2
12
3
13
4
14
5
15
6
16
7
17
8
18
typestr(re);
// output
SEGMENTED IN-MEMORY TABLE
指定 byColName：
t1=table(1 2 3 as id, 11 12 13 as x)
t2=table(14 15 16 as x, 4 5 6 as id)
unionAll(t1,t2,true);
id
x
1
11
2
12
3
13
4
14
5
15
6
16
t1=table(1 2 3 as id, 11 12 13 as x)
t2=table(14 15 16 as x, 4 5 6 as id)
unionAll(t1,t2);
id
x
1
11
2
12
3
13
14
4
15
5
16
6
上例中可见，若不指定
byColName
（即
byColName
=false），请务必确认各表中列名顺序一致，否则会产生错误结果。
t1=table(1 2 3 as id, 11 12 13 as x, 21 22 23 as y)
t2=table(4 5 6 as id, 14 15 16 as x)
unionAll(t1,t2,true);
id
x
y
1
11
21
2
12
22
3
13
23
4
14
5
15
6
16
t1=table(1 2 3 as id, 11 12 13 as x, 21 22 23 as y)
t2=table(4 5 6 as id, 14 15 16 as x)
unionAll(t1, t2) => The number of columns of the table to insert must be the same as that of the original table.
上例中可见，若各表中列数不一致，必须将
byColName
设为 true。
用法三：将多个内存表合并到分区内存表
def testFunc(data, off){
    return select *, price * (1-off) as `discountPrice from data
}
n = 100
dates = 2021.01.01..2021.12.31
t = table(take(dates, 365 * n).sort() as `date, `sym + take(1..n, 365 * n).sort()$STRING as `sym, round(10 + norm(0, 2, 365 * n), 2) as `price)

db = database("", VALUE, 2021.01.01..2021.12.31)
trade = db.createPartitionedTable(table=t, tableName="trade", partitionColumns=`date).append!(t)
db = database("", RANGE, date(month(dates.first()) .. (month(dates.last()) + 1)))
outputT=table(1:0, `date`sym`price`discountPrice, [DATE,SYMBOL,DOUBLE,DOUBLE])
ports = db.createPartitionedTable(outputT, "ports", `date)
//map reduce
mr(sqlDS(<select * from trade>), testFunc{,0.3},,unionAll{,ports})

select * from ports

path: references/doc_147.md
content: # seasonalEsd

**URL**: https://docs.dolphindb.cn/zh/funcs/s/seasonalEsd.html

**来源**: DolphinDB 官方文档

---

seasonalEsd
语法
seasonalEsd(data, period, [hybrid], [maxAnomalies], [alpha])
详情
使用 S-ESD(Seasonal Extreme Studentized Deviate)
                算法对周期性的时间序列进行异常检测。
参数
data
是一个数值向量，表示时间序列。
period
是一个大于1的整数，表示时间序列的周期。
hybrid
是一个布尔值，表示是否用中位数和绝对中位差代替 Grubb's test 中 zscore
                计算的平均值和标准差。如果
hybrid
为 true，算法更具鲁棒性。默认值为 false。
maxAnomalies
是一个正整数或(0, 0.5)之间的浮点数。默认值为0.1。
如果
maxAnomalies
是正整数，且
maxAnomalies
必须小于
                            data 长度的一半，函数最多检测
maxAnomalies
个异常点。
如果
maxAnomalies
是(0, 0.5)之间的浮点数，函数最多检测
                            int(size(data) *
maxAnomalies
) 个异常点。
alpha
是一个正数，表示显著度。
alpha
越大，数据越有可能被判断为异常点。
返回值
返回结果是包含了异常值的表，该表有两列，index 列记录原始数据中异常值的下标，anoms 列记录异常值。
例子
定时执行一个函数：
n = 100
trend = 6 * sin(1..n \ 200)
seasonal = sin(pi / 6 * 1..n)
residual = rand(1.0, n) - 0.5
data = trend + seasonal + residual
data[20 50 70] += 20;

seasonalEsd(data, 12);
index
anoms
50
22.6365
70
21.141346
20
19.174165
相关函数：
stl
,
esd

path: references/doc_1470.md
content: # getSystemCpuUsage

**URL**: https://docs.dolphindb.cn/zh/funcs/g/getSystemCpuUsage.html

**来源**: DolphinDB 官方文档

---

getSystemCpuUsage
语法
getSystemCpuUsage()
详情
返回当前节点上 DolphinDB 进程实时占用 CPU 的百分比。
注意，若 DolphinDB 进程占用多个 CPU，则返回各个 CPU 占用率的总和。
参数
无
返回值
DOUBLE 标量。
例子
getSystemCpuUsage();

// output: 1.771654

path: references/doc_1472.md
content: # cols

**URL**: https://docs.dolphindb.cn/zh/funcs/c/cols.html

**来源**: DolphinDB 官方文档

---

cols
语法
cols(X)
详情
返回
X
中列的数目。参见相关函数：
rows
。
参数
X
可以是任意数据形式的对象。
返回值
INT 类型标量。
例子
x=1..6$2:3;
x;
#0
#1
#2
1
3
5
2
4
6
cols x;
// output
3

a=table(1..3 as x,`IBM`C`AAPL as y);
a;
x
y
1
IBM
2
C
3
AAPL
cols a;
// output
2

y=1 2 3;
cols(y);
// output
1
// 向量可以被视为一个 n*1 的矩阵

path: references/doc_1488.md
content: # getBackupStatus

**URL**: https://docs.dolphindb.cn/zh/funcs/g/getBackupStatus.html

**来源**: DolphinDB 官方文档

---

getBackupStatus
语法
getBackupStatus([userName])
详情
查看指定用户的 backup/restore 任务。
注：
一次 backup 执行过程产生的任务数与其备份的分区的个数相同。
管理员调用该函数时，若指定了
userName
，则返回指定用户的
                                backup/restore 任务；否则返回所有用户的 backup/restore 任务。
非管理员调用该函数时，只能返回当前用户的 backup/restore 任务。
参数
userName
表示用户名的字符串。
返回值
返回一个表，每一行为一个任务的信息。包含以下字段：
userName：用户名。
type：备份或恢复的类型。
BACKUP_BY_SQL/RESTORE_BY_SQL： 表示使用 SQL
                                元代码方式的备份/恢复。
BACKUP_BY_COPY_FILE/RESTORE_BY_COPY_FILE：表示使用拷贝文件方式的备份/恢复。
startTime：任务开始的时间。
dbName：数据库的路径。
tableName：表的名称。
totalPartitions：待备份/恢复的分区数量。
completedPartitions：完成备份/恢复的分区数量。
percentComplete：任务完成百分比。
endTime：若任务已完成，则返回任务完成的时间，否则返回预估完成时间。
completed ：任务完成状态。若全部完成，则为1，否则为0。
例子
getBackupStatus()
userName
type
startTime
dbName
tableName
totalPartitions
completedPartitions
percentComplete
endTime
completed
u1
BACKUP_BY_COPY_FILE
2022.09.21T17:18:04.264
dfs://valuedb
pt
1
1
100
2022.09.21T17:18:04.269
1
u1
BACKUP_BY_SQL
2022.09.21T17:13:04.344
dfs://valuedb
pt
4
4
100
2022.09.21T17:13:04.413
1
u1
BACKUP_BY_COPY_FILE
2022.09.21T17:18:04.264
dfs://valuedb
pt1
1
1
100
2022.09.21T17:18:04.265
1
admin
BACKUP_BY_COPY_FILE
2022.09.21T16:47:42.798
dfs://valuedb
pt
4
4
100
2022.09.21T16:47:42.859
1
admin
BACKUP_BY_COPY_FILE
2022.09.21T16:37:33.725
dfs://valuedb
pt
4
4
100
2022.09.21T16:37:33.790
1
admin
BACKUP_BY_SQL
2022.09.21T15:10:05.016
dfs://compoDB
pt2
10
10
100
2022.09.21T15:10:05.075
1

path: references/doc_1493.md
content: # rowCount

**URL**: https://docs.dolphindb.cn/zh/funcs/r/rowCount.html

**来源**: DolphinDB 官方文档

---

rowCount
语法
rowCount(args...)
row 系列函数通用参数说明和计算规则请参考：
rowFunctions
详情
逐行进行非空值的统计操作
返回值
返回一个长度与输入参数行数相同的向量。
例子
m=matrix([4.5 2.6 1.5, 1.5 4.8 5.9, 4.9 2.0 NULL]);
rowCount(m);
// output
[3,3,2]

t1=table(1 NULL 3 NULL 5 as x, 6..10 as y);
t2=table(5 NULL 3 NULL 1 as a, 10..6 as b);
rowCount(t1);
// output
[2,1,2,1,2]

rowCount(t1[`x], t2, 1 NULL 2 NULL NULL);
// output
[4,1,4,1,3]

t=table(`AAPL`MS`IBM`IBM`C as sym, [49.6, NULL, 29.52, NULL, 174.97] as price1, [175.23, NULL, 50.32, 51.29, 26.23] as price2);
select sym,rowCount(price1,price2) as count from t;
sym
count
AAPL
2
MS
0
IBM
2
IBM
1
C
2
相关函数：
rowSize
,
count

path: references/doc_15.md
content: # nullIf

**URL**: https://docs.dolphindb.cn/zh/funcs/n/nullIf.html

**来源**: DolphinDB 官方文档

---

nullIf
语法
nullIf(X, Y)
参数
X
和
Y
可以是标量或向量，也可以是返回标量或向量的表达式。
详情
若
X
和
Y
都是标量，比较
X
和
Y
的类型和值是否相同，若相同返回 NULL 值，否则返回 X。
若
X
和
Y
是等长的向量，则将
X
和
Y
的元素一一进行上述比较。
若
X
和
Y
一个是标量一个是向量，则将标量和向量中的元素一一进行上述比较。
例子
t = table(`APPL`IBM`AMZN`IBM`APPL`AMZN as sym, 10.1 11.2 11.3 12 10.6 10.8 as val)
select nullIf(sym, `AMZN) from t
输出返回：
nullIf_sym
APPL
IBM
IBM
APPL
select * from t where nullIf(sym, `AMZN)!=NULL
输出返回：
sym
val
APPL
10.1
IBM
11.2
IBM
12
APPL
10.6

path: references/doc_1506.md
content: # norm

**URL**: https://docs.dolphindb.cn/zh/funcs/n/norm.html

**来源**: DolphinDB 官方文档

---

norm
语法
norm(mean, std, count)
详情
返回一个长度（维度）为
count
的向量（矩阵），服从期望值为
mean
，标准差为
std
的正态分布。
参数
mean
数值型标量，表示正态分布的期望值。
std
数值型标量，表示正态分布的标准差。
count
整型标量或数据对。若为标量，表示输出向量的长度；若为数据对，表示输出矩阵的维度。
返回值
DOUBLE 类型向量或矩阵。
例子
norm(2.0,0.1,3);
// output
[2.026602,1.988621,2.101107]

mean norm(3,1,10000);
// output
3.007866


std norm(3,1,10000);
// output
0.995806

// 生成随机矩阵
norm(0, 1, 3:2)
col1
col2
-0.5399
-0.8475
-1.0029
1.811
-0.0485
-0.4339

path: references/doc_1523.md
content: # having

**URL**: https://docs.dolphindb.cn/zh/progr/sql/having.html

**来源**: DolphinDB 官方文档

---

having
having子句总是跟在group by或者context by后，用来将结果进行过滤，只返回满足指定条件组结果。
如果having用在group by后，having只可与聚合函数一起使用，结果为符合聚合函数条件的每组产生一条记录。
如果having用在context by后，并且只与聚合函数一起使用，结果是符合聚合函数条件的分组，每组记录与输入数据中记录数一致。
如果having用在context by后，与非聚合函数一起使用，结果是符合指定条件的分组。
例子
sym = `C`MS`MS`MS`IBM`IBM`C`C`C$SYMBOL
price= 49.6 29.46 29.52 30.02 174.97 175.23 50.76 50.32 51.29
qty = 2200 1900 2100 3200 6800 5400 1300 2500 8800
timestamp = [09:34:07,09:36:42,09:36:51,09:36:59,09:32:47,09:35:26,09:34:16,09:34:26,09:38:12]
t1 = table(timestamp, sym, qty, price);

t1;
timestamp
sym
qty
price
09:34:07
C
2200
49.6
09:36:42
MS
1900
29.46
09:36:51
MS
2100
29.52
09:36:59
MS
3200
30.02
09:32:47
IBM
6800
174.97
09:35:26
IBM
5400
175.23
09:34:16
C
1300
50.76
09:34:26
C
2500
50.32
09:38:12
C
8800
51.29
select sum(qty) as totalqty from t1 group by sym having sum(qty)>10000;
sym
totalqty
C
14800
IBM
12200
select * from t1 context by sym having count(sym)>2 and sum(qty)>10000;
timestamp
sym
qty
price
09:34:07
C
2200
49.6
09:34:16
C
1300
50.76
09:34:26
C
2500
50.32
09:38:12
C
8800
51.29
select * from t1 context by sym having rank(qty)>1;
timestamp
sym
qty
price
09:34:26
C
2500
50.32
09:38:12
C
8800
51.29
09:36:59
MS
3200
30.02
select * from t1 context by sym having rank(qty)>1 and sum(qty)>10000;
timestamp
sym
qty
price
09:34:26
C
2500
50.32
09:38:12
C
8800
51.29
在select语句中，对符合having条件的记录进行计算：
select *, min(qty) from t1 context by sym having rank(qty)>1;
timestamp
sym
qty
price
min_qty
09:34:26
C
2500
50.32
1300
09:38:12
C
8800
51.29
1300
09:36:59
MS
3200
30.02
1900
top语句可以与context by语句和having语句一起使用。
select top 2 * from t1 context by sym having sum(qty)>8000;
timestamp
sym
qty
price
09:34:07
C
2200
49.6
09:34:16
C
1300
50.76
09:32:47
IBM
6800
174.97
09:35:26
IBM
5400
175.23

path: references/doc_1535.md
content: # getLoadedPlugins

**URL**: https://docs.dolphindb.cn/zh/funcs/g/getloadedplugins.html

**来源**: DolphinDB 官方文档

---

getLoadedPlugins
语法
getLoadedPlugins()
详情
获取当前节点已加载的插件列表。
参数
无
返回值
一张表，包含以下字段：
plugin：STRING，插件名称。
version：STRING，插件的版本（
PluginXXX.txt
文件的版本）
user：STRING，加载该插件的用户名称。
time：TIMESTAMP，加载该插件的时间。
例子
login("admin","123456")
loadPlugin("zip")
login("user1","123456")
loadPlugin("httpclient")

getLoadedPlugins()
返回结果：
plugin
version
user
time
zip
3.00.1
admin
2024.09.01T10:00:01.000
httpClient
3.00.1
user1
2024.09.01T10:00:02.000

path: references/doc_1540.md
content: # fy5253Quarter

**URL**: https://docs.dolphindb.cn/zh/funcs/f/fy5253Quarter.html

**来源**: DolphinDB 官方文档

---

fy5253Quarter
语法
fy5253Quarter(X, [weekday=0], [startingMonth=1],
                    [qtrWithExtraWeek=1], [nearest=true], [offset], [n=1])
详情
采用52-53周财年（4-4-5历），该函数返回X所在财政季度的起始日期。
如果
nearest
=true，表示将最接近
startingMonth
最后一天的
weekday
的日期作为财政年度的起始日期。
如果
nearest
=false，表示将
startingMonth
中最后一个
weekday
的日期作为财政年度的起始日期。
如果指定了
offset
，表示从
offset
开始，结果每隔
n
个季度更新一次。注意，只有当
n
>1 时，
offset
才会生效。
参数
X
可以是 DATE, DATETIME, TIMESTAMP 或 NANOTIMESTAMP
                类型的标量或向量。
weekday
是0到6之间的整数，表示星期编号。0表示星期一，1表示星期二，... ，6表示星期日。默认值为0。
startingMonth
是1到12之间的整数，表示一年的起始月份。默认值是1。
qtrWithExtraWeek
是1到4之间的整数。如果有闰季（一般一个季度有13周，闰季有14周），它表示闰季所在的季度。
nearest
是一个布尔值。默认值为 true。
offset
是与
X
类型相同的标量，并且它必须小于等于
X
中的最小值。它是一个可选参数。如果没有指定，
offset
默认为
X
中的最小值。
n
是一个正整数。它是一个可选参数，默认值为1。
返回值
DATE 类型标量或向量。
例子
fy5253Quarter(2019.12.01,0,1,1,true);
// output
2019.11.04

fy5253Quarter(2019.12.01,0,1,4,true);
// output
2019.10.28
// 2019年的财年起始日期是2019.01.28，2020年的财年起始日期是2020.02.03，两者相差53周，说明有一个闰季。qtrWithExtraWeek=1表示第一个季度为闰季，它包含14周，因此2019.12.01所在季度的起始日期为2019.11.01；qtrWithExtraWeek=4表示第4个季度为闰季，它包含14周，因此2019.12.01所在季度的起始日期是2019.10.28。

date=2016.01.12 2016.02.25 2016.05.12 2016.06.28 2016.07.10 2016.08.18 2016.09.02 2016.10.16 2016.11.26 2016.12.30
time = [09:34:07,09:36:42,09:36:51,09:36:59,09:32:47,09:35:26,09:34:16,09:34:26,09:38:12,09:38:13]
sym = take(`MSFT,10)
price= 49.6 29.46 29.52 30.02 174.97 175.23 50.76 50.32 51.29 52.38
qty = 2200 1900 2100 3200 6800 5400 1300 2500 8800 4500
t1 = table(date, time, sym, qty, price);

select avg(price),sum(qty) from t1 group by fy5253Quarter(date,0,1,1,true,2016.01.01,2);
fy5253Quarter_date
avg_price
sum_qty
2015.11.02
39.53
4100
2016.05.02
85.136667
21300
2016.10.31
51.835
13300
相关函数：
fy5253

path: references/doc_1547.md
content: # createGroup

**URL**: https://docs.dolphindb.cn/zh/funcs/c/createGroup.html

**来源**: DolphinDB 官方文档

---

createGroup
语法
createGroup(groupId, [userIds])
详情
创建组。
组中的用户必须是已经创建了的用户。
注：
该函数只能由管理员在控制节点、数据节点和计算节点运行。
参数
groupId
是表示组名的字符串。只能包含字母、数字、下划线（_）、或短横线（-），且必须以字母开头，长度不得超过 30 个字符。
userId
是表示组成员的字符串标量或向量。
返回值
无。
例子
创建组 "production"，并且把用户 "JohnSmith" 添加到该组。
createGroup(`production, `JohnSmith);

path: references/doc_1552.md
content: # mimaxLast

**URL**: https://docs.dolphindb.cn/zh/funcs/m/mimaxlast.html

**来源**: DolphinDB 官方文档

---

mimaxLast
语法
mimaxLast(X, window, [minPeriods])
详情
在给定长度（以元素个数或时间长度衡量）的滑动窗口内计算
X
中最大元素的位置。如果窗口内存在多个相同的最大值，则返回右起第一个最大值的位置。与所有其它聚合函数一致，计算时忽略 NULL 值。
参数
X
是一个向量/矩阵/表/元组（元素为标量或等长向量）/字典。
window
是大于等于 2 的正整型或 DURATION 标量。表示滑动窗口的长度。
注：
在流计算引擎中调用滑动窗口函数时，window 的上限为 102400。
minPeriods
是一个正整数。为滑动窗口中最少包含的观测值数据。
返回值
当
X
是向量时，返回一个整型向量，长度与输入向量相同。
当
X
是矩阵时，返回一个整型矩阵，形状与输入矩阵相同。
当
X
是表时，对表的每列进行计算，返回相应的结果。
当
X
是元组时，对元组中的每个向量分别计算，返回相应的结果。
例子
x = 1.2 2 NULL -1 6 -1
mimaxLast(x,3);
// output: [,,1,0,2,1]

m=matrix(3 2 4 4 2, 1 4 2 4 3);
mimaxLast(m,3)
#0
#1
2
1
2
2
1
1
t=table(3 3 2 as c1, 1 4 4 as c2)
mimaxLast(t,3)
#0
#1
1
2
x = [NULL, 2, NULL, NULL, 3.2]
date = [0, 1, 3,  8, 9] + 2020.01.01
X = indexedSeries(date, x) 
mimaxLast(X, 3d)
#0
2020.01.01
-1
2020.01.02
1
2020.01.04
0
2020.01.09
-1
2020.01.10
1
相关函数：
mimax

path: references/doc_157.md
content: # loadPlugin

**URL**: https://docs.dolphindb.cn/zh/funcs/l/loadPlugin.html

**来源**: DolphinDB 官方文档

---

loadPlugin
语法
loadPlugin(filepath)
详情
加载 DolphinDB 插件。该函数必须要用户登录后才能执行。
注：
在产品体验阶段，如果未自行创建用户或管理员账号，可以使用 DolphinDB
                                提供的初始管理员账号（admin）及密码（123456）。在生产环境中，务必使用具备中等以上安全强度的用户或管理员密码。
加载前请确保有对应插件的使用权限。收费插件需要另行购买。
来自 DolphinDB 插件市场的插件在使用
installPlugin
命令安装后，会在
<server路径>/plugins/<插件名称>
路径下生成一个命名方式为
                "Plugin" + "插件名称"的 txt 格式的插件描述文件和相关的二进制文件（Windows 版本下为 .dll，Linux 版本下为 .so）。例如，安装在
                Windows 版本 DolphinDB server 2.00.10 的 odbc 插件描述文件存储于：
../DolphinDB_Win64_V2.
00.10
/server/plugins/odbc/PluginODBC.txt
该文件包含以下内容：
odbc,libPluginODBC.dll,2.00.10
odbcQuery,query,system,2,5,0
odbcConnect,connect,system,1,2,0
odbcClose,close,system,1,1,0
odbcExecute,execute,system,2,2,0
odbcAppend,append,system,3,5,0
该文件格式如下：
第一行：插件名称、lib 文件、版本号，用 “,” 分隔；
其他行用于描述该插件提供的函数，依次包含以下信息：lib 文件中的某个函数的名称、对应的 DolphinDB 函数的名称、函数的类型（operator
                        表示运算符，system 表示系统函数）、函数所需的最小参数个数、函数所需的最大参数个数、是否为聚合函数（1 表示聚合函数，0
                        表示非聚合函数）、是否为序列函数（1表示序列函数，0表示非序列函数）。
参数
filepath
是文本文件的绝对路径。例如：
/home/DolphinDB_Linux64_V2.00.10/server/plugins/mysql/PluginMySQL.txt
。
自2.00.11版本起，
可以将其指定为插件名（大小写敏感）。系统会根据插件名称和配置项
pluginDir
拼接出插件的加载路径。
返回值
无。
例子
加载来自插件市场的插件
以在 Windows 操作系统上安装 MQTT 插件为例，加载方法有两种：
使用插件描述文件的绝对路径加载插件：
installPlugin("mqtt") 
loadPlugin("D:/TEST/DolphinDB_Win64_V2.00.10/server/plugins/mqtt/PluginMQTT.txt")
注：
在 Windows
                    操作系统中使用绝对路径加载插件时，务必确保路径中使用"/"代替"\"。
或指定插件名称：
installPlugin("mqtt") 
loadPlugin("mqtt")
加载自行编译的插件
以 DolphinDB Linux 版本的 odbc 插件为例，其描述文件 odbc.txt 内容如下：
odbc,libPluginODBC.so,2.00.10
odbcQuery,query,system,2,5,0
odbcConnect,connect,system,1,2,0
odbcClose,close,system,1,1,0
odbcExecute,execute,system,2,2,0
odbcAppend,append,system,3,5,0
odbc 插件提供了 5 个函数：
query
,
connect
,
close
,
execute
和
append
，需要加载插件后才能使用。下面的例子介绍了如何加载 odbc 插件，并调用 odbc 插件提供的函数。
loadPlugin("/home/DolphinDB/server/plugins/odbc/odbc.txt")
//或者通过插件名进行加载
loadPlugin("odbc")
use odbc
ConnStr="Driver=MySQL;Data Source=odbc_test;Server=127.0.0.1;Uid=root;[REDACTED_SECRET];Database=odbc_test"
conn=connect(connStr)      // 创建 MySQL 连接

t=query(conn,"select * from test")
close(conn)

path: references/doc_1571.md
content: # inverse

**URL**: https://docs.dolphindb.cn/zh/funcs/i/inverse.html

**来源**: DolphinDB 官方文档

---

inverse
语法
inverse(X)
详情
如果
X
可逆，返回矩阵
X
的逆矩阵。
参数
X
是一个矩阵。
返回值
如果
X
可逆，返回矩阵
X
的逆矩阵。否则报错。
例子
x=1..4$2:2;
x;
#0
#1
1
3
2
4
x.inverse();
#0
#1
-2
1.5
1
-0.5

path: references/doc_1581.md
content: # isort

**URL**: https://docs.dolphindb.cn/zh/funcs/i/isort.html

**来源**: DolphinDB 官方文档

---

isort
语法
isort(X, [ascending=true])
详情
和
sort!
返回一个排序后的数组不同，
isort
返回排序后的每个元素在原始向量中的索引。
X[isort X] 等价于 sort(X)。
参数
X
是一个向量或一个由多个等长向量组成的元组。
ascending
是布尔值标量或向量，表示按升序排序还是按降序排序。默认值为 true（按升序排序）。
返回值
一个整型向量，表示排序后的每个元素在原始向量中的索引。
例子
x = 4 1 3 2;
y = isort(x);
y;
// output: [1,3,2,0]
// 对于排序后的 x: [1 2 3 4]，第一个元素 1 在原始的 x 中的位置是 1，第二个元素 2 在原始 x 中的位置是 3，... 以此类推。
x[y];
// output: [1,2,3,4]
// 等价于 sort(x)

z=isort(x, false);
z;
// output: [0,2,3,1]
x[z];
// output: [4,3,2,1]

x=2 2 1 1
y=2 1 1 2
isort([x,y]);
// output: [2,3,1,0]
isort([x,y],[0,0]);
// output: [0,1,3,2]
基于表的单列排序：
t2 = table(4 2 3 1 as x, 9 6 7 3 as y);
t2;
x
y
4
9
2
6
3
7
1
3
t2[isort(t2.x)];
x
y
1
3
2
6
3
7
4
9
t2[isort(t2.x, false)];
x
y
4
9
3
7
2
6
1
3
基于表的多列排序：
a=5 5 5 3 3 8 7 7;
b=`MSFT`GOOG`IBM`YHOO`X`YHOO`C`ORCL;
t=table(a,b);
t;
a
b
5
MSFT
5
GOOG
5
IBM
3
YHOO
3
X
8
YHOO
7
C
7
ORCL
t[isort([a,b], false true)];
// 先基于 a 降序排序，再基于 b 升序排序
a
b
8
YHOO
7
C
7
ORCL
5
GOOG
5
IBM
5
MSFT
3
X
3
YHOO
t[isort([a,b], false)];
// 等价于 t[isort([a,b], false false)];
a
b
8
YHOO
7
ORCL
7
C
5
MSFT
5
IBM
5
GOOG
3
YHOO
3
X

path: references/doc_1594.md
content: # typestr

**URL**: https://docs.dolphindb.cn/zh/funcs/t/typestr.html

**来源**: DolphinDB 官方文档

---

typestr
语法
typestr(X)
详情
返回一个表明
X
的数据类型的字符串。详细信息参见
数据类型
。
参数
X
可以是系统支持的任意数据类型。
返回值
STRING 类型标量。

path: references/doc_1596.md
content: # cumvarp

**URL**: https://docs.dolphindb.cn/zh/funcs/c/cumvarp.html

**来源**: DolphinDB 官方文档

---

cumvarp
语法
cumvarp(X)
参数说明和窗口计算规则请参考：
累计窗口系列（cum 系列）
详情
计算
X
元素的累计总体方差。
返回值
DOUBLE 类型，其数据形式同
X
。
例子
cumvarp(1 2 3 NULL 4);
// output
[ , 0.25, 0.666666666666667, 0.666666666666667, 1.25]

m=matrix(1.1 3 5.0 7.5 9.2, 1 4.3 7.1 10.6 13.5);
m;
col1
col2
1.1
1
3
4.3
5
7.1
7.5
10.6
9.2
13.5
cumvarp(m);
col1
col2
0
0
0.9025
2.7225
2.5356
6.2156
5.6425
12.5025
8.5944
19.612
相关函数：
var

path: references/doc_1601.md
content: # ols

**URL**: https://docs.dolphindb.cn/zh/funcs/o/ols.html

**来源**: DolphinDB 官方文档

---

ols
语法
ols(Y, X, [intercept=true], [mode=0]
, [method="default"], [usePinv=true]
)
详情
返回对
X
和
Y
计算普通最小二乘回归的结果。需要注意的是，该函数会将
X
和
Y
中的空值替换为0后进行计算。
参数
Y
是因变量；
X
是自变量。
Y
是一个向量；
X
是一个向量、元组、矩阵或表。当
X
是矩阵时，如果行数等于
Y
的长度，
X
的每一列都是一个因子；如果行数不等于
Y
的长度，并且如果列数等于
Y
的长度，
X
的每一行都是一个因子。
intercept
是一个布尔变量，表示是否包含回归中的截距。默认值是 true。当它为 true 时，系统自动给
X
添加一列 "1"
                以生成截距。
mode
是一个整数，默认值为 0，可取以下 3 个值
0：输出一个系数估计向量
1：输出一个具有系数估计，标准差，t 统计量和 p 值的表
2：输出一个具有 ANOVA（方差分析）、RegressionStat（回归统计）、Cofficient（系数）和
                        Residual（残差）的字典，具体含义见下表：
键 ANOVA 对应值：
Source of Variance
自由度（Degree of freedom）
平方和（Sum of Square）
均方差（Mean of square）
F统计量
Significance
Regression（回归）
变量个数（p）
回归平方和（SSR）
回归均方差（MSR=SSR/R）
MSR 对 MSE 的比值
显著性，即统计出的 P 值
Residual（残差）
残差自由度（n-p-1）
残差平方和（SSE）
残差均方差（MSE=MSE/E）
Total
样本自由度
不包括常数项（n-1）
总离差平方和（SST）
键 RegressionStat 对应值：
item
统计值
R2
R 决定系数，描述回归曲线对真实数据点拟合程度的统计量。范围在 [0,1]之间，越接近1
                                ，说明对y的解释能力越强，拟合越好。
AdjustedR2
经自由度修正后的决定系数，通过样本数量与模型数量对 R-squared 进行修正。
StdError
回归残差标准误差，残差经自由度修正后的标准差。
Observations
观察样本个数。
键 Coefficient 对应值：
元素
说明
factor
自变量名称
beta
回归系数估计值
stdError
回归系数标准误差。
tstat
T统计值，衡量系数的统计显著性。
键 Residual 对应每一个预测值和实际值之间的残差。
method
是一个字符串，表示求解最小二乘问题采用的方法。
默认值为“default”，表示采用构造系数矩阵和逆矩阵的方式求解；
设置为“svd”，采用奇异值分解的方式。
usePinv
一个布尔值，表示计算过程中求矩阵的逆时，是否求矩阵的伪逆。
默认值为 true，表示求矩阵的伪逆，奇异矩阵必须指定为 true。
若为 false，表示求矩阵的逆，只适用于非奇异矩阵。
返回值
返回值形式由
mode
参数决定：
mode
=0：返回一个系数估计向量
mode
=1：返回一个表，包含系数估计，标准差，t 统计量和 p 值。
mode
=2：返回一个字典，包含 ANOVA（方差分析）、RegressionStat（回归统计）、Cofficient（系数）和
                    Residual（残差）。
例子
x1=1 3 5 7 11 16 23
x2=2 8 11 34 56 54 100
y=0.1 4.2 5.6 8.8 22.1 35.6 77.2;

ols(y, x1);
// output
[-9.912821,3.378632]

ols(y, (x1,x2));
// output
[-9.494813,2.806426,0.13147]
ols(y, (x1,x2), 1, 1);
factor
beta
stdError
tstat
pvalue
intercept
-9.494813
5.233168
-1.814353
0.143818
x1
2.806426
1.830782
1.532911
0.20007
x2
0.13147
0.409081
0.321379
0.764015
ols(y, (x1,x2), 1, 2);
// output
Coefficient->
factor    beta      stdError tstat     pvalue
--------- --------- -------- --------- --------
intercept -9.494813 5.233168 -1.814353 0.143818
x1        2.806426  1.830782 1.532911  0.20007
x2        0.13147   0.409081 0.321379  0.764015

Residual->[6.525447,4.223774,-0.383487,-5.820153,-6.638199,-6.907387,9.000005]
RegressionStat->
item         statistics
------------ ----------
R2           0.940241
AdjustedR2   0.910361
StdError     8.173444
Observations 7

ANOVA->
Breakdown  DF SS          MS          F         Significance
---------- -- ----------- ----------- --------- ------------
Regression 2  4204.416396 2102.208198 31.467739 0.003571
Residual   4  267.220747  66.805187
Total      6  4471.637143
x=matrix(1 4 8 2 3, 1 4 2 3 8, 1 5 1 1 5);
x;
#0
#1
#2
1
1
1
4
4
5
8
2
1
2
3
1
3
8
5
ols(1..5, x);
// output
[1.156537,0.105505,0.91055,-0.697821]

ols(1..5, x.transpose());
// output
[1.156537,0.105505,0.91055,-0.697821]
// 系统会调整因变量和自变量的维数，以便进行回归
x = table([13.9782,13.4688,13.4336,12.9642,12.7905,13.4771,13.0423,12.6588,13.8933,13.9006] as col0, [195.3904,181.4090,180.4627,168.0723,163.5973,181.6342,170.1017,160.2477,193.0241,193.2270] as col1, [2731.2089,2443.3656,2424.2715,2178.9356,2092.4947,2447.9167,2218.5185,2028.5594,2681.7456,2685.9754] as col2)
y = [-0.4002,-0.8004,-0.2002,-1.0002,-0.2001,-0.5001,-0.2501,0.0000,0.0000,0.0000]

ols(y, x, true, 0, "default")
[2.968166,13.023638,-2.016390,0.076485]

ols(y, x, true, 0, "svd")
[3266.457957,-722.195120,53.157806,-1.302769]
x1=1 1 1
x2=2 2 2
y = 1 1 1
ols(y, (x1, x2))
// output：[0.16666666666666669	0.16666666666666669	0.33333333333333326]
ols(y, (x1, x2), usePinv=false) 
// ERR: The input matrix is singular and cannot be inverted.
由于在求解过程中，参与求逆的矩阵是奇异的，因此 usePinv=false 时报错。
相关函数：
olsEx
,
bvls

path: references/doc_1604.md
content: # miminLast

**URL**: https://docs.dolphindb.cn/zh/funcs/m/miminlast.html

**来源**: DolphinDB 官方文档

---

miminLast
语法
miminLast(X, window, [minPeriods])
窗口计算规则请参考:
滑动窗口系列（m 系列）
详情
在给定长度（以元素个数衡量或时间长度）的滑动窗口内计算
X
中最小元素的位置。如果窗口内存在多个相同的最小值，则返回右起第一个最小值的位置。与所有其它聚合函数一致，计算时忽略 NULL 值。
参数
X
是一个向量/矩阵/表/元组（元素为标量或等长向量）/字典。
window
是大于等于 2 的正整型或 DURATION 标量。表示滑动窗口的长度。
注：
在流计算引擎中调用滑动窗口函数时，window 的上限为 102400。
minPeriods
是一个正整数。为滑动窗口中最少包含的观测值数据。
返回值
当
X
是向量时，返回一个整型向量，长度与输入向量相同。
当
X
是矩阵时，返回一个整型矩阵，形状与输入矩阵相同。
当
X
是表时，对表的每列进行计算，返回相应的结果。
当
X
是元组时，对元组中的每个向量分别计算，返回相应的结果。
例子
x = 1.2 2 NULL -1 6 -1
miminLast(x,3)
// output: [,,0,2,1,2]

m=matrix(3 2 2 4 2, 1 4 2 1 3);
miminLast(m,3)
#0
#1
2
0
1
2
2
1
t=table(3 2 2 as c1, 1 1 4 as c2)
miminLast(t,3)
#0
#1
2
1
x = [NULL, 2, NULL, NULL, 3.2]
date = [0, 1, 3,  8, 9] + 2020.01.01
X = indexedSeries(date, x) 
miminLast(X, 3d)
#0
2020.01.01
-1
2020.01.02
1
2020.01.04
0
2020.01.09
-1
2020.01.10
1
相关函数：
mimin

path: references/doc_1605.md
content: # getOSBit

**URL**: https://docs.dolphindb.cn/zh/funcs/g/getOSBit.html

**来源**: DolphinDB 官方文档

---

getOSBit
语法
getOSBit()
详情
查询 DolphinDB server 所在操作系统的位数。
参数
无
返回值
INT 类型标量。
例子
getOSBit();

// output: 64

path: references/doc_1608.md
content: # tokenizeBert

**URL**: https://docs.dolphindb.cn/zh/funcs/t/tokenizeBert.html

**来源**: DolphinDB 官方文档

---

tokenizeBert
语法
tokenizeBert(text, vocabName, [addSpecialTokens=true])
详情
应用指定词库对输入文本
text
进行分词。本函数使用 WordPiece 分词算法，适用于 BERT（Bidirectional Encoder
                Representations from Transformers） 模型。
参数
text
LITERAL 类型标量，待分词的字符串。
vocabName
字符串标量，指定用于分词的词库。
addSpecialTokens
可选参数，布尔值，表示是否要在文本的首尾添加特殊 token。目前仅支持在开头加入
[CLS]
，在结尾加入
[SEP]
。默认为 true。
返回值
返回一个表，包含以下三列：
tokens: 分词后的 token 列表。
input_ids: 对应的 token ID 列表。
attention_mask: 目前仅返回值为 1 的掩码，用于模型输入。
例子
loadVocab("/home/data/vocab.txt", "vocab1")
tokenizeBert("apple ```\n—— abcd1234", "vocab1", true)
相关函数：
loadVocab
,
unloadVocab

path: references/doc_1621.md
content: # tmbeta

**URL**: https://docs.dolphindb.cn/zh/funcs/t/tmbeta.html

**来源**: DolphinDB 官方文档

---

tmbeta
语法
tmbeta(T, Y, X, window)
参数说明和窗口计算规则请参考：
tmFunctions
详情
在给定长度（以时间长度衡量）的移动窗口中，计算
Y
在
X
上的回归系数的最小二乘估计。
返回值
DOUBLE 类型向量。
例子
T = 1 1 1 2 5 6
X = 1 4 2 -1 2 4
Y = 2 5 -3 6 9 1
m = table(T as t,X as x, Y as y)
select *, tmbeta(t, y, x, 3) from m
t
x
y
tmbeta_t
1
1
2
1
4
5
1
1
2
-3
1.4286
2
-1
6
-0.3846
5
2
9
6
4
1
-4
T = 2021.01.02 2021.01.02  2021.01.04  2021.01.05 2021.01.07 2021.01.08
X = 1 4 2 -1 2 4
Y = 2 5 -3 6 9 1
m = table(T as t,X as x, Y as y)
select *, tmbeta(t, y, x, 3d) from m
t
x
y
tmbeta_t
2021.01.02
1
2
2021.01.02
4
5
1
2021.01.04
2
-3
1.4286
2021.01.05
-1
6
-3
2021.01.07
2
9
1
2021.01.08
4
1
-4
select *, tmbeta(t, y, x, 1w) from m
t
x
y
tmbeta_t
2021.01.02
1
2
2021.01.02
4
5
1
2021.01.04
2
-3
1.4286
2021.01.05
-1
6
-0.3846
2021.01.07
2
9
-0.1818
2021.01.08
4
1
-0.4444
相关函数：
mbeta
,
beta

path: references/doc_1661.md
content: # isNanInf

**URL**: https://docs.dolphindb.cn/zh/funcs/i/isNanInf.html

**来源**: DolphinDB 官方文档

---

isNanInf
语法
isNanInf(X, [includeNull=false])
详情
检测
X
中的每一个元素是否为 NaN 或 Inf。若
includeNull
设为 true，NULL
                值会被视为 Nan 或 Inf，默认为 false。
参数
X
是 DOUBLE 类型的标量/向量/矩阵。
includeNull
是一个布尔值。
返回值
返回布尔类型，数据形式同 X。
相关函数：
countNanInf

Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: error ()