DolphinDB流数据教程
DolphinDB内置的流数据框架支持流数据发布、订阅、流数据预处理、实时内存计算、复杂指标的滚动窗口计算等,是一个运行高效,使用便捷的流数据处理框架。
与其它流数据系统相比,DolphinDB database 流数据处理系统的优点在于:
- 吞吐量大,低延迟
- 与时序数据库及数据仓库集成,一站式解决方案
- 天然具备流表对偶性,支持SQL语句数据注入和查询分析
本教程包含以下内容:
- DolphinDB流数据框架及概念
- 使用DolphinDB流数据
- 使用Java API来订阅DolphinDB流数据
- 监控流数据运行状态
- 流数据性能调优
- 与开源系统Grafana结合使用
1. DolphinDB流数据框架及概念
流数据框架对流数据的管理和应用是基于发布-订阅-消费的模式,通过流数据表来发布数据,数据节点或者第三方的应用可以通过DolphinDB脚本或者 API来订阅消费流数据。
上图展示了DolphinDB的流数据处理框架。把实时数据注入到发布节点流数据表后,发布的数据可以同时供多方订阅消费:
- 可由数据仓库订阅并保存,作为分析系统与报表系统的数据源。
- 可以由聚合引擎订阅,进行聚合计算,并将聚合结果输出到流数据表。聚合结果既可以由Grafana等流数据展示平台展示,也可以作为数据源再次发布出去,供二次订阅做事件处理。
- 也可由API订阅,例如第三方的Java应用程序可以通过Java API订阅流数据,应用到业务系统中。
1.1 实时流数据表
DolphinDB实时流数据表可以作为发布和订阅流数据的载体,发布一条消息等价于往流数据表插入一条记录,同时它也可以通过SQL来进行查询和分析。
1.2 发布和订阅
DolphinDB的流数据框架使用了经典的订阅发布模式。每当有新的流数据写入时,发布方会通知所有的订阅方去处理新的流数据。数据节点通过subscribeTable函数来订阅发布的流数据。
1.3 实时聚合引擎
实时聚合引擎指的是专门用于处理流数据实时计算和分析的模块。DolphinDB提供createStreamAggregator函数用于持续地对流数据做实时聚合计算,并且将计算结果持续输出到指定的数据表中,具体如何使用聚合引擎可以参考流数据聚合引擎教程。
2. 使用DolphinDB流数据
要开启DolphinDB支持流数据功能的模块,需要对DolphinDB数据节点增加配置项。
对于发布节点需要的配置项:
maxPubConnections:发布信息节点能够连接的大节点数。如果maxPubConnections>0,节点可以作为信息发布节点。默认值为0。
persisitenceDir:共享的流数据表保存的路径。如果需要保存流数据表,必须指定该参数。
persistenceWorkerNum:负责以异步模式保存流数据表的工作线程数。默认值为0。
maxPersistenceQueueDepth:异步保存流数据表时,允许的大消息队列深度。
maxMsgNumPerBlock:当服务器发布或组合消息时,消息块中的大记录数。
maxPubQueueDepthPerSite:发布节点可容许的大消息队列深度。
相关文章