con un clic
ddb-data-discovery
DolphinDB 数据发现与预处理专家技能。提供从全库扫描、表结构透视到数据清洗与内存共享的完整工作流脚本。
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Menú
DolphinDB 数据发现与预处理专家技能。提供从全库扫描、表结构透视到数据清洗与内存共享的完整工作流脚本。
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Basado en la clasificación ocupacional SOC
DolphinDB FICC 定价技能。用于构造 FICC Instrument、MarketData、曲线/曲面、调用专用 pricer 或 instrumentPricer,并校验债券、利率、外汇、商品期货期权、权益期权等资产定价脚本。
使用 xdb + remoteRun 在 DolphinDB 节点间拉取数据并落地到目标节点,适用于跨节点数据同步和建模前置数据准备。
DolphinDB 专家数据分析技能。涵盖从数据聚合、收益率建模到假设检验的标准化工作流脚本。
DolphinDB 部署与升级技能,覆盖单节点部署、共享服务器安全改造,以及三机高可用集群部署。
金融数据可视化通用技能。按“单图入参 + 图表编排指南”组织,支持参数化生成任意业务报告,不在脚本中写死业务名称。
专注于 DolphinDB 脚本执行的技能。当用户提到“执行 DolphinDB 脚本”、“运行 .dos 文件”或“在 Python 中执行 DDB 代码”时,触发此技能。提供一个基于 Python 的执行环境,支持持久化会话(Persistent Session),让用户能够分步骤执行代码并保留变量定义。
| name | ddb-data-discovery |
| description | DolphinDB 数据发现与预处理专家技能。提供从全库扫描、表结构透视到数据清洗与内存共享的完整工作流脚本。 |
| license | MIT |
| metadata | {"author":"ddb-user","version":"3.0.0","tags":["etl","exploration","cleaning","metadata","dolphindb","data-quality"]} |
本技能是一套经过实战验证的 DolphinDB 操作指南。所有脚本和语法都来自在真实集群上的实际执行和纠错,而非凭空编写。
操作 DolphinDB 时,最高效的方式是遵循这个流程:
全库扫描 → 锁定目标表 → 看Schema → 采样 → 数据画像 → 质量检查 → 清洗/分析
每一步都写成 .dos 文件后执行,不要在 -c 参数中直接敲复杂代码(PowerShell 会吃引号)。
ddb-data-discovery/
├── scripts/
│ ├── 01_exploration.dos # [全库扫描] getDFSDatabases + getDFSTables
│ ├── 02_structure.dos # [结构透视] schema().colDefs + partitionSchema
│ ├── 03_queries.dos # [数据画像] 采样、统计、exec vs select
│ ├── 04_cleaning.dos # [质量检查] NULL统计、重复检测、基础清洗
│ └── 05_sharing.dos # [分析示例] context by、pivot by 等高级查询
└── reference/
└── METHODOLOGY.md # 📖 详细使用指南:语法速查 + 踩坑记录 + deepwiki查文档技巧
getDFSDatabases() // 列出所有 DFS 数据库
getDFSTables() // 列出所有 DFS 表 (全路径)
getDFSTablesByDatabase("dfs://minute_factor") // 列出指定库的表 ✅ 推荐
⚠️ 踩坑:
getDFSTables不接受参数!要按库筛选必须用getDFSTablesByDatabase()。
t = loadTable("dfs://minute_factor", "stock_minute_1m") // 直接传路径+表名, 最简
schema_info = t.schema() // 返回一个 dict,包含多个 key
schema_info.colDefs // 列定义: name, typeString, typeInt, comment
schema_info.partitionSchema // 分区方案
schema_info.partitionColumnName // 分区列名 (数组)
schema_info.partitionTypeName // 分区类型: RANGE, HASH, VALUE, LIST, COMPO
schema_info.engineType // 存储引擎: TSDB, OLAP
schema_info.sortColumns // TSDB 的排序列
select count(*) from t // 返回表 (table)
exec count(*) from t // 返回标量 (scalar) 或向量 (vector)
exec distinct ts_code from t // 返回去重后的向量
// ❌ 错误: select count(distinct ts_code) from t → "Cannot nest aggregate function"
// ✅ 正确: 用子查询或 exec
exec count(*) from (select distinct ts_code from t)
// 或
size(exec distinct ts_code from t)
// context by: 分组但不聚合,把窗口函数结果填回每一行
select ts_code, trade_time, close,
close \ prev(close) - 1 as minute_ret
from t context by ts_code
// group by + having: 标准分组聚合
select count(*) as cnt from t group by ts_code having count(*) > 100
// limit: 放在 group by 或 order by 后面
select * from t order by trade_time limit 10
// 也可以用 top N(放在 select 后面)
select top 10 * from t
// 单列
select count(*) from t where isNull(pre_close)
// 全列批量统计
select count(*) as total,
sum(iif(isNull(open), 1, 0)) as null_open,
sum(iif(isNull(pre_close), 1, 0)) as null_pre_close
from t
当你遇到不确定的函数名或语法时,可以到 DolphinDB 官方文档的 DeepWiki 索引进行搜索:
https://deepwiki.com/search/_7a7f1325-7754-4fb1-920b-b482e1a37c5d?mode=fast&q=你的关键词
最佳搜索技巧:
getDFSTables、getDFSTablesByDatabase、loadTablehttps://deepwiki.com/tradercjz/documentationhttps://deepwiki.com/tradercjz/documentation/2-database-featureshttps://deepwiki.com/tradercjz/documentation/2.1-distributed-computing-and-partitioninghttps://docs.dolphindb.cn/zh/funcs/funcs_intro.html| 场景 | 错误写法 | 正确写法 | 说明 |
|---|---|---|---|
| 列出指定库的表 | getDFSTables("dfs://db") | getDFSTablesByDatabase("dfs://db") | getDFSTables 不接参数 |
| 去重计数 | count(distinct col) | exec count(*) from (select distinct col from t) | DDB 不支持嵌套聚合 |
| 全库扫描 | getChunksMeta() | getDFSDatabases() + getDFSTables() | getChunksMeta 太慢 |
| PowerShell 引号 | execute.py -c "loadTable('dfs://xx', 'yy')" | 写成 .dos 文件再执行 | PS 会吃掉内层引号 |
| 脚本无返回值 | 最后一行是 x = 1 | 最后一行写 x 或写 select ... | 赋值语句不返回结果 |
| 整数除法 | close / prev(close) | close \ prev(close) | \ 是浮点除法, / 是整数除法 |
| string→symbol | symbol(varName) | symbol([varName])[0] 或 `literal | symbol()要求向量输入 |
execute-dlang 技能已可用或者有内置的 ddb 执行工具.dos 文件,修改 dbPath 和 tableName01 → 02 → 03 → 04 → 05,每步都产出结论再进下一步# 示例(替换为你的连接信息)
uv run .github/skills/execute-dlang/scripts/ddb_runner/execute.py ^
.github/skills/ddb-data-discovery/scripts/01_exploration.dos ^
--host ip --port port --user admin --password xxxxx