Token导航 LogoToken导航

Agent Skill · 效率

dolphindb-basic(海豚数据库基础)

dolphindb-basic 用于补充效率相关能力,适合在 OpenClaw 中需要让 Agent 承接效率相关任务时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

dolphindb-basic 是效率类 Agent Skill,可用宿主为 OpenClaw,通过ClawHub获取,权限为只读;许可证为 MIT-0,第三方扫描有提醒项,按安装量在效率类的 21,003 个 Skill 里排第 10,931。

总安装 4,872周安装 199GitHub Stars 公开资料未说明下载 1,560核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
MIT-0
版本
1.4.0

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:dolphindb-basic(海豚数据库基础)
来源仓库:https://github.com/ugpoor/dolphindb-basic
安装命令:
openclaw skills install dolphindb-basic
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install dolphindb-basic

这个 Skill 是做什么的

效率类 Skill 把重复的整理、汇总、转换工作交给助手完成,减少手工复制粘贴。

支持DolphinDB数据库的基本创建、插入、查询、更新和删除操作,涵盖分布式和内存表管理。

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 OpenClaw;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 openclaw skills install dolphindb-basic;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它标注为只读,先用只读任务试一次,确认行为符合预期再扩大使用范围。

常见问题

6 条

dolphindb-basic 怎么安装?

在终端执行 openclaw skills install dolphindb-basic。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

dolphindb-basic 支持哪些 AI 工具?

公开资料标注支持 OpenClaw。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

dolphindb-basic 需要什么权限?

权限级别是只读。该 Skill 主要提供规则、说明或参考内容,本身偏只读;真正读写文件、联网或执行命令仍取决于宿主 Agent 的任务。

dolphindb-basic 是免费的吗?

来源标注的许可证是 MIT-0。本站不代收任何费用,也不托管安装包;能否商用、要不要署名,以许可证原文为准。

dolphindb-basic 用的人多吗?

公开数据是累计安装 4,872 次,近一周安装 199 次,下载 1,560 次。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

dolphindb-basic 安全吗?

第三方扫描有提醒项,说明存在需要人工确认的行为。安装前请打开源码看清它读了什么、联网到哪里。

值得选的地方和要先想清楚的地方

值得选的地方

  • 专注 OpenClaw 一种宿主,触发方式和使用习惯不用来回切换。
  • 许可证明确为 MIT-0,商用和分发边界好判断。
  • 标注为只读权限,试用阶段不容易误改本地文件。

先想清楚的地方

  • 第三方扫描存在提醒项或未通过项,需要人工逐条确认。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 OpenClaw,想直接扩展它能力的人。
  • 需要处理效率类任务、又不想每次都手写提示词的人。
  • 只想先试试效果、不希望它改动本地文件的人。

不太适合

  • 需要厂商级技术支持和 SLA 的生产系统。

效率类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
github

GitHub 代码协作 · OpenClaw

7,632,918545需要联网MIT-0通过
nano-pdf

Nano PDF 文档 · OpenClaw

4,249,476231需要联网MIT-0通过
auto-updater

自动更新程序 · OpenClaw

2,964,063386操作浏览器MIT-0通过
video-frames

视频帧 · OpenClaw

2,621,304112需要联网MIT-0通过
gemini

Gemini 助手 · OpenClaw

2,547,39648需要联网MIT-0有提醒
dolphindb-basic

海豚数据库基础 · 本页

4,872—只读MIT-0有提醒

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

DolphinDB 基础操作技能 v1.2.3

🚨 强制流程:使用前必须加载环境

无论在何种场景下调用此技能(单独运行或被引用),必须先执行环境检测:

# 方法 1: 在技能目录内运行(推荐)
cd ~/.jvs/.openclaw/workspace/skills/<skill-name>
source ../dolphindb-skills/scripts/dolphin_wrapper.sh

# 方法 2: 在任何位置运行(推荐)
source ~/.jvs/.openclaw/workspace/skills/dolphindb-skills/scripts/dolphin_global.sh

# 方法 3: 手动检测
python3 ~/.jvs/.openclaw/workspace/skills/dolphindb-skills/scripts/init_dolphindb_env.py

验证环境:

$DOLPHINDB_PYTHON_BIN -c "import dolphindb; print(dolphindb.__version__)"

# 或使用包装器命令
dolphin_python -c "import dolphindb; print(dolphindb.__version__)"

重要: 详见 dolphindb-skills/USAGE_GUIDE.md


🚨 强制流程:使用前必须加载环境

无论在何种场景下调用此技能(单独运行或被引用),必须先执行环境检测:

# 方法 1: 在技能目录内运行(推荐)
cd ~/.jvs/.openclaw/workspace/skills/dolphindb-basic
source ../dolphindb-skills/scripts/dolphin_wrapper.sh

# 方法 2: 在任何位置运行(推荐)
source ~/.jvs/.openclaw/workspace/skills/dolphindb-skills/scripts/dolphin_global.sh

# 方法 3: 手动检测
python3 ~/.jvs/.openclaw/workspace/skills/dolphindb-skills/scripts/init_dolphindb_env.py

验证环境:

# 验证 SDK 已安装
$DOLPHINDB_PYTHON_BIN -c "import dolphindb; print(dolphindb.__version__)"

# 或使用包装器命令
dolphin_python -c "import dolphindb; print(dolphindb.__version__)"

统一调用接口:

dolphin_python script.py    # 运行 Python 脚本
dolphin_pip install pkg     # 安装包

重要: 详见 dolphindb-skills/USAGE_GUIDE.md

重要:所有 DolphinDB 脚本在 Python 中的调用方式

import dolphindb as ddb

# 1. 建立连接
s = ddb.session()
s.connect(host="localhost", port=8848, userid="admin", password="123456")

# 2. 执行 DolphinDB 脚本(所有数据库操作都通过 s.run())
result = s.run('''
    // DolphinDB 脚本
    select * from loadTable("dfs://mydb.mytable")
    where date = 2024.01.01
''')

# 3. 转换为 pandas DataFrame(可选)
df = result.toDF()

# 4. 关闭连接
s.close()

描述

提供 DolphinDB 数据库的基础增删改查(CRUD)操作能力,包括建库建表、数据插入、查询、更新、删除等核心功能。

触发条件

当用户提到以下关键词时触发此技能:

  • "DolphinDB 建库"、"创建数据库"、"建表"
  • "DolphinDB 插入数据"、"写入数据"
  • "DolphinDB 查询"、"SELECT"
  • "DolphinDB 更新"、"修改数据"
  • "DolphinDB 删除"、"DROP"
  • "DolphinDB CRUD"、"基本操作"
  • "分布式数据库"、"内存表"、"分区表"

能力范围

1. 创建数据库

  • 分布式数据库(VALUE、RANGE、HASH、LIST、COMPO 分区)
  • 内存数据库(高性能临时数据存储)
  • 配置存储引擎(TSDB、OLAP、PKEY 等)
  • 两种创建方法:CREATE DATABASE 语句 和 database() 函数

2. 创建表

  • 创建分布式表(分区表、维度表)
  • 创建内存表(普通表、索引表、键值表、流表等)
  • 设置排序列和分区列

3. 插入数据

  • 使用 INSERT INTO 语句
  • 使用 append! 函数
  • 使用 tableInsert 函数
  • 批量插入优化

4. 查询数据

  • 基础 SQL 查询
  • 条件过滤
  • 聚合查询
  • 分区裁剪优化

5. 更新数据

  • UPDATE 语句
  • 条件更新
  • 批量更新

6. 删除数据

  • DELETE 语句
  • DROP 表/数据库
  • 删除分区

详细使用示例

一、创建数据库(两种方法)

方法 1:使用 CREATE DATABASE 语句
import dolphindb as ddb

s = ddb.session()
s.connect(host="localhost", port=8848, userid="admin", password="123456")

# 1.1 创建分布式数据库 - VALUE 分区
s.run('''
    CREATE DATABASE "dfs://valuedb" 
    PARTITIONED BY VALUE(2023.01.01..2023.12.31),
    ENGINE="TSDB"
''')

# 1.2 创建分布式数据库 - HASH 分区
s.run('''
    CREATE DATABASE "dfs://hashdb"
    PARTITIONED BY HASH([SYMBOL, 10]),
    ENGINE="OLAP"
''')

# 1.3 创建分布式数据库 - 复合分区(COMPO)
s.run('''
    CREATE DATABASE "dfs://compodb"
    PARTITIONED BY VALUE(2020.01.01..2021.01.01), HASH([SYMBOL, 25])
''')

s.close()
方法 2:使用 database() 函数
import dolphindb as ddb

s = ddb.session()
s.connect(host="localhost", port=8848, userid="admin", password="123456")

# 2.1 创建分布式数据库 - VALUE 分区
db = s.run('''
    db = database(
        directory="dfs://valuedb", 
        partitionType=VALUE, 
        partitionScheme=2023.01.01..2023.12.31, 
        engine='TSDB'
    )
''')

# 2.2 创建分布式数据库 - HASH 分区
s.run('''
    db = database(
        directory="dfs://hashdb", 
        partitionType=HASH, 
        partitionScheme=[SYMBOL, 10], 
        engine='OLAP'
    )
''')

# 2.3 创建内存数据库(directory 为空)
s.run('''
    mdb = database(
        directory="", 
        partitionType=VALUE, 
        partitionScheme=1..10
    )
''')

s.close()
两种方法的区别
特性CREATE DATABASE 语句database() 函数
返回值无返回值返回数据库句柄 (dbHandle)
使用场景仅创建数据库创建并立即获取句柄
灵活性适合脚本批量创建适合编程方式操作
复合分区支持支持(需先创建子分区)

二、创建内存数据库

内存数据库将数据直接存储在内存中,具有更快的访问速度和更低的延迟。

import dolphindb as ddb

s = ddb.session()
s.connect(host="localhost", port=8848, userid="admin", password="123456")

# 方法 1:使用 database() 函数创建
s.run('''
    mdb = database(directory="", partitionType=VALUE, partitionScheme=1..10)
''')

# 方法 2:创建内存分区表(自动创建内存数据库)
s.run('''
    mt = table(1:0, `id`sym`val, [INT,SYMBOL,DOUBLE])
''')

# 方法 3:创建内存分区表(带分区)
s.run('''
    mdb = database("", VALUE, 1..10)
    schema = table(1:0, `id`sym`val, [INT,SYMBOL,DOUBLE])
    mpt = mdb.createPartitionedTable(schema, `mpt, `id)
''')

s.close()

内存数据库适用场景:

  • 临时数据处理
  • 高速缓存
  • 实时计算中间结果
  • 测试和开发环境

三、创建表

3.1 创建分布式表(分区表)
import dolphindb as ddb

s = ddb.session()
s.connect(host="localhost", port=8848, userid="admin", password="123456")

# 获取已创建的数据库句柄
s.run('db = database("dfs://valuedb")')

# 方法 1:使用 CREATE TABLE 语句
s.run('''
    CREATE TABLE "dfs://valuedb"."stock_data"(
        date DATE,
        time TIME,
        sym SYMBOL,
        price DOUBLE,
        volume LONG
    )
    PARTITIONED BY date,
    sortColumns=`sym`time
''')

# 方法 2:使用 createPartitionedTable() 函数
s.run('''
    schema = table(1:0, `date`time`sym`price`volume, [DATE,TIME,SYMBOL,DOUBLE,LONG])
    pt = createPartitionedTable(
        dbHandle=db, 
        table=schema, 
        tableName=`stock_data, 
        partitionColumns=`date, 
        sortColumns=`sym`time
    )
''')

s.close()
3.2 创建维度表
import dolphindb as ddb

s = ddb.session()
s.connect(host="localhost", port=8848, userid="admin", password="123456")

s.run('db = database("dfs://valuedb")')

# 方法 1:使用 CREATE TABLE 语句
s.run('''
    CREATE TABLE "dfs://valuedb"."instruments"(
        sym SYMBOL,
        name STRING,
        industry STRING,
        market SYMBOL
    )
    sortColumns=`sym
''')

# 方法 2:使用 createDimensionTable() 函数
s.run('''
    schema = table(1:0, `sym`name`industry`market, [SYMBOL,STRING,STRING,SYMBOL])
    dt = createDimensionTable(
        dbHandle=db, 
        table=schema, 
        tableName=`instruments, 
        sortColumns=`sym
    )
''')

s.close()
3.3 创建内存表
import dolphindb as ddb

s = ddb.session()
s.connect(host="localhost", port=8848, userid="admin", password="123456")

# 方法 1:使用 CREATE LOCAL TEMPORARY TABLE 语句
s.run('''
    CREATE LOCAL TEMPORARY TABLE t(
        col1 INT,
        col2 DOUBLE,
        col3 STRING
    )
''')

# 方法 2:使用 table() 函数创建空表
s.run('t = table(1:0, `col1`col2`col3, [INT,DOUBLE,STRING])')

# 方法 3:使用 table() 函数创建含数据的表
s.run('t = table(1 2 3 as col1, 1.1 2.2 3.3 as col2, `A`B`C as col3)')

# 方法 4:创建流数据表
s.run('''
    share streamTable(10000:0, `time`sym`price`volume, [TIMESTAMP,SYMBOL,DOUBLE,LONG]) as tickStream
''')

s.close()

四、插入数据

import dolphindb as ddb

s = ddb.session()
s.connect(host="localhost", port=8848, userid="admin", password="123456")

# 方法 1:INSERT INTO 语句 - 插入所有列
s.run('INSERT INTO stock_data VALUES (2024.01.01, 09:30:00, `AAPL, 150.5, 1000000)')

# 方法 2:INSERT INTO 语句 - 插入指定列
s.run('INSERT INTO stock_data (date, sym, price) VALUES (2024.01.01, `AAPL, 150.5)')

# 方法 3:INSERT INTO 语句 - 插入多行(逐行定义)
s.run('''
    INSERT INTO stock_data VALUES 
        (2024.01.01, 09:30:00, `AAPL, 150.5, 1000000),
        (2024.01.01, 09:31:00, `GOOG, 2800.3, 500000)
''')

# 方法 4:INSERT INTO 语句 - 插入多行(按列定义)
s.run('''
    INSERT INTO stock_data VALUES (
        [2024.01.01, 2024.01.01],
        [09:30:00, 09:31:00],
        [`AAPL, `GOOG],
        [150.5, 2800.3],
        [1000000, 500000]
    )
''')

# 方法 5:append! 函数 - 追加整个表
s.run('''
    tmp = table(
        take(2024.01.01..2024.01.10, 100) as date,
        take(09:30:00, 100) as time,
        rand(`AAPL`GOOG`MSFT, 100) as sym,
        rand(100.0, 100) as price,
        rand(1000000, 100) as volume
    )
    append!(stock_data, tmp)
''')

# 方法 6:tableInsert() 函数 - 返回插入行数
count = s.run('count = tableInsert(stock_data, tmp)')

s.close()

五、查询数据

import dolphindb as ddb

s = ddb.session()
s.connect(host="localhost", port=8848, userid="admin", password="123456")

# 1. 基础查询
result = s.run('select * from stock_data where date=2024.01.01')

# 2. 条件过滤
result = s.run('''
    select sym, price from stock_data 
    where date between 2024.01.01:2024.01.31 
    and price > 100
''')

# 3. 聚合查询
result = s.run('''
    select sym, 
        avg(price) as avg_price, 
        sum(volume) as total_volume,
        count(*) as trade_count
    from stock_data 
    where date between 2024.01.01:2024.01.31 
    group by sym
''')

# 4. 分区裁剪(自动优化)
result = s.run('select * from stock_data where date=2024.01.01 and sym=`AAPL')

# 5. 连接查询
result = s.run('''
    select s.sym, s.price, i.name, i.industry
    from stock_data as s
    left join instruments as i on s.sym = i.sym
    where s.date=2024.01.01
''')

# 6. 时间窗口聚合
result = s.run('''
    select sym, 
        first(price) as open,
        max(price) as high,
        min(price) as low,
        last(price) as close,
        sum(volume) as volume
    from stock_data
    where time between 09:30:00:10:00:00
    group by sym, time_bar(60000, time) as minute
''')

# 转换为 pandas DataFrame
df = result.toDF()

s.close()

六、更新数据

import dolphindb as ddb

s = ddb.session()
s.connect(host="localhost", port=8848, userid="admin", password="123456")

# 1. 条件更新
s.run('UPDATE stock_data SET price = price * 1.01 WHERE date=2024.01.01 and sym=`AAPL')

# 2. 批量更新
s.run('update stock_data set volume = volume * 2 where time < 10:00:00')

# 3. 使用表达式更新
s.run('''
    update stock_data set 
        price = price * (1 + rand(0.01, size(stock_data))),
        volume = volume * 2
    where date=2024.01.01
''')

s.close()

七、删除数据

import dolphindb as ddb

s = ddb.session()
s.connect(host="localhost", port=8848, userid="admin", password="123456")

# 1. 删除符合条件的数据
s.run('DELETE FROM stock_data WHERE date < 2024.01.01')

# 2. 删除表
s.run('DROP TABLE "dfs://valuedb".stock_data')

# 3. 删除数据库
s.run('DROP DATABASE "dfs://valuedb"')

# 4. 删除分区
s.run('dropPartition("dfs://valuedb", `stock_data, 2024.01.01)')

# 5. 检查数据库/表是否存在
s.run('''
    if(existsDatabase("dfs://valuedb")) dropDatabase("dfs://valuedb")
    if(existsTable("dfs://valuedb", `stock_data)) dropTable("dfs://valuedb", `stock_data)
''')

s.close()

注意事项

权限要求

  • 创建分布式数据库: 需要 DB_OWNER 权限
  • 创建分区表: 需要 DBOBJ_CREATE 和 DB_MANAGE 权限
  • 默认管理员账号: admin / 123456
  • 查看权限: getUserAccess() 函数

分区设计最佳实践

  • 分区大小: 建议每个分区 100MB-1GB
  • 分区类型选择:

- VALUE: 适合离散值(如日期、类别) - RANGE: 适合连续值范围 - HASH: 适合均匀分布数据 - LIST: 适合预定义列表 - COMPO: 多维度组合(最多 3 维)

  • 量化金融场景: 常用时间(DATE)和产品标识(SYMBOL)作为分区维度

数据插入限制

  • STRING 类型: 单条不超过 64KB(超出部分截断)
  • BLOB 类型: 单条不超过 64MB(超出部分截断)
  • SYMBOL 类型: 单条不超过 255B(超出时报错)
  • VALUE 分区: STRING/SYMBOL 列不能包含空格、`\

、\ 、\ `

事务原子性

  • TRANS 级别: 全部分区成功或全部失败(强一致性)
  • CHUNK 级别: 允许部分分区写入,冲突时重试(高可用性)

存储引擎选择

  • TSDB: 时序数据,支持高效时间范围查询
  • OLAP: 分析型数据,适合复杂聚合查询
  • PKEY: 主键查询场景

参考文档

  • DolphinDB 官网: https://www.dolphindb.cn/
  • DolphinDB 文档中心: https://docs.dolphindb.cn/zh/
  • 建库建表: https://docs.dolphindb.cn/zh/db_distr_comp/db_oper/create_db_tb.html
  • 插入数据: https://docs.dolphindb.cn/zh/db_distr_comp/db_oper/insert_data.html
  • 查询数据: https://docs.dolphindb.cn/zh/db_distr_comp/db_oper/queries.html
  • 更新数据: https://docs.dolphindb.cn/zh/db_distr_comp/mod_data.html
  • 删除数据: https://docs.dolphindb.cn/zh/db_distr_comp/db_oper/drop_db_tb.html
  • 数据库配置: https://docs.dolphindb.cn/zh/db_distr_comp/cfg/function_configuration.html
  • 存储引擎: https://docs.dolphindb.cn/zh/db_distr_comp/db/tsdb.html

相关技能

  • dolphindb-skills: 技能套件索引(含环境检测)
  • dolphindb-quant-finance: 量化金融场景(因子计算、策略回测、绩效归因)
  • dolphindb-streaming: 流式计算(实时因子、实时行情、实时风控)
  • dolphindb-docker: Docker 容器化部署

平台分布

OpenClaw

77.76%
按下载量换算1,213

安全审计

VirusTotal

可疑

ClawScan

可疑

Static analysis

通过

权限和风险

只读

该 Skill 主要提供规则、说明或参考内容,本身偏只读;真正读写文件、联网或执行命令仍取决于宿主 Agent 的任务。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在提醒或未通过项,安装前请自行复核。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills