dolphindb流表操作

流计算是将系统产生的持续增长的动态数据进行实时的收集、清洗、统计、入库。dolphindb的流计算框架支持数据的发布、订阅、预处理、实时内存计算、复杂指标的滚动窗口计算等功能。流计算框架也采用发布-订阅-消费的模式。流数据首先注入流表,通过流数据表来发布数据,数据节点或第三方应用可以通过dolphindb脚本或者API来订阅流表。

1、流数据表定义

流数据表是一种特殊的流表,能够支持同时读写,但是不能修改或者删除记录、所以用于应该用在事实数据不可以修改的场景当中。

2、流数据表的创建

创建流表方法

streamTable(capacity:size, colNames, colTypes)

但是不要以为创建了流表就万事大吉了,使用streaTable创建出来的流表只是一个单纯的内存表,而且只在当前session当中有效,如果想要使其他的session能够使用这个流表,那么请使用以下命令

share(table, sharedName, [database], [dbName], [partitionColumn])

如果需要当前share的流表需要作为一个数据源被外界的API所订阅到,还需要在配置文件,也就是dolphindb.cfg文件中添加以下配置:

maxPubConnections>0

这个表示信息发布节点最多可连接多少订阅节点

subPort=【port】;

如果有多个订阅节点,应该 给不同的订阅节点配置不同的端口

3、流表持久化

  需要制定该配置

persistenceDir

持久化流表的命令

//创建流表
login(`admin,`123456);

t=loadTable("dfs://DATABASE",`TABLENAME)
colname=schema(t).colDefs.name
coltype=schema(t).colDefs.typeString
st=streamTable(100:0, colname,coltype);
enableTableShareAndPersistence(st,`TABLENAME,true,true,100000,60)

该命令把流数据表共享,并把它持久化到硬盘上

此时的配置是当数据量大于10w的时候前面5w的数据会被从内存当中清除,写到磁盘中

4、注入流表 

流表的注入可以使用INSERT语句

insert into trades_stream values(subarray(time,range), subarray(sym,range), 10+ rand(100, blockSize), subarray(price,range))

也可以使用append!()

t_left.append!(result2)

也可以直接是replay回放直接写到流表中

replay(rds1 , TS1_FIXEDINCOME, `DateTime, `DateTime, r_rate);

5、流表的删除

dropStreamTable(`Trade)

有订阅的情况下是无法取消订阅的,需要执行以下命令:

unsubscribeTable(,"TS1_FI","javaStreamingApi")

先删除订阅,再使用dropstreamtable

 

 

 

关于dolphin的流表还有很多的应用,我这篇文章由于时间的原因先写到这里,接下来再讲我实际应用过程中所遇到的问题,避免大家同样由于不熟悉走弯路

 

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值