墨天轮国产数据库沙龙 | 胡津铭:时序数据库DolphinDB,从量化金融到万物互联

本文主要是介绍墨天轮国产数据库沙龙 | 胡津铭:时序数据库DolphinDB,从量化金融到万物互联,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

分享嘉宾:胡津铭 DolphinDB研发副总监 整理:墨天轮社区

导读

DolphinDB是高性能分布式时序数据库,集成了功能强大的编程语言和高容量高速度的流数据分析系统,为海量结构化数据的快速存储、检索、分析及计算提供一站式解决方案。

时序数据库的主要应用场景

我今天分享的主题是“时序数据库:从量化金融到万物互联”,因为在我看来这是时序数据库最主要的两个应用场景:量化金融与物联网。

 图1 时序数据库的主要应用场景

1、在量化金融中的应用

在这里举一个典型的金融数据示例,如下图所示stock ID即股票ID,bid price是现在股票的买入价格,Ask price是股票的即时卖价,然后time是这条数据产生的时间。

 图2 金融数据示例

第一个场景是实时查询,能够查询所有的股票在这一时间段内的数据,其中关键点在于能查看到某一特定的股票,与特定的时间范围内的数据,即对单个时间序列做到实时查询。

第二个场景是数据分析,如图上所示,可以计算股票代码为Apple的这只股票在2月23号这一天的这个moving average的数据,即对单个时间序列做数据分析。

那第三个场景是策略回测,比如在评估量化金融已开发出来的策略,应用在历史数据上能够获得多少利润后,决定是否上线策略。最后便是实时计算的场景,根据市场上的信息,对比现在的股票与其相关联的股票价格分别是多少,基于这些信息,决定是否要买卖。

2、在物联网中的应用

下图为物联网的数据示例,deviceID为设备ID,传感器同时测温度、压强压力两个指标,并有对应的时间戳。

 图3 物联网数据示例

在物联网中的时序数据库的第一个应用场景是设备监控,它能够查询一个设备在某一个时间段(点)上的数据情况。第二个应用场景是历史统计,能够查询某一个(类)设备在过去一年内的平均值、最大最小值。

第三个应用场景是反向控制,根据物联网产生的数据及时给出决策,并反过来控制传感器实行什么样的操作,或者控制其他的设备去实行什么样的操作。

  • 简单的控制逻辑:若某设备监控到的温度持续高于阈值,则自动采取对应的措施
  • 复杂的控制逻辑:若根据某些复杂的算法(如机器学习)计算得出某片区域的现状不合常理,则自动采取对应的措施

DolphinDB的产品特性

1、DolphinDB支持事务

不支持事务的数据库会出现什么样的后果?

 图4 不支持事务的时序数据库示例

如图所示,以股票交易为例,Google与Apple的股票数据已经成功存储在了Node1中,但是由于网络延迟,Oracle的实时股票数据无法存储在Node2 中。当数据库不支持事务时,便会无法查询到google的最新股票价格,对应地便会基于不准确的数据做出错误决策,导致严重的后果。

因此,在时序数据库中必须要有事务的支持以满足量化金融与物联网行业的应用需求。

2、强大的分析能力

时序数据库在存下数据之后,最终的目的是挖掘出数据中的价值,这就需要数据库提供强大的分析能力。

DolphinDB提供了一门编程语言,可以方便地进行自定义计算;还提供了1000多个内置的分析函数供使用。

3、高效的存储引擎

DolphinDB的高效存储引擎体现在

  • 基于LSMT,提供高效的点查询能力
  • 千万级设备,10ms以内
  • 高效的历史数据分析能力
  • PB级数据,秒级计算响应
  • 自动去重

 图5 DolphinDB 高效的存储引擎

4、流数据处理架构

DolphinDB内置的流数据框架支持流数据的发布、订阅、预处理、实时内存计算、复杂指标的滚动窗口计算等,是一个运行高效,使用便捷的流数据处理框架。

其中流数据模块采用发布-订阅-消费的模式。流数据首先注入流数据表中,通过流数据表来发布数据,数据节点或者第三方的应用可以通过DolphinDB脚本或API来订阅及消费流数据。

 图6 DolphinDB 流数据处理架构

5、批流一体

批流一体是指用一摸一样的代码实现批计算和流计算的逻辑,即可以实现批计算的历史分析,也能够进行实时计算,帮助降低运维成本。

 图7 DolphinDB 实现批流一体

6、内置流计算引擎

DolphinDB内置流计算引擎包含时间序列聚合引擎、响应式状态引擎、横截面引擎、会话窗口引擎、异常检测引擎,帮助降低开发成本。

 图8 DolphinDB 内置流计算引擎

关于DolphinDB

1、DB-Engines 中的 DolphinDB

DolphinDB为企业IT人员、业务人员与决策者提供数据管理与分析应用一站式解决方案实现内部协作与融合,贯通企业数据应用链条,充分利用数据价值。

在世界数据库流行度排行榜DB-Engines中可以看到,DolphinDB位于时序数据库榜单第十,也是国内唯一一家入围前十的时序数据库产品,并且流行度也在不断攀升。

 图9 DolphinDB 在DB-Engines 中的流行度

2、DolphinDB 代表客户

DolphinDB为金融、工业物联网、电力、能源、交通等各行业客户提供优质服务。

 图10 DolphinDB 代表客户

如果您也是金融领域、或者物联网领域并对时序数据感兴趣,欢迎您来尝试DolphinDB,我们 为海量数据(特别是时间序列数据)的快速存储、检索、计算及分析提供一站式解决方案。

以上就是我今天的分享内容,谢谢大家!

更多精彩内容,欢迎大家观看现场视频回放与会议资料

  • 视频回放:https://www.modb.pro/video/6117
  • 会议资料:https://www.modb.pro/doc/56838

  • 查看原文:https://www.modb.pro/db/336226
  • 查看【国产数据库沙龙】往期生态工具、图数据库专场文章、视频回放资源:https://www.modb.pro/topic/157860

墨天轮,围绕数据人的学习成长提供一站式的全面服务,打造集新闻资讯、在线问答、活动直播、在线课程、文档阅览、资源下载、知识分享及在线运维为一体的统一平台,持续促进数据领域的知识传播和技术创新。

关注官方公众号: 墨天轮、 墨天轮平台、墨天轮成长营、数据库国产化 、数据库资讯

这篇关于墨天轮国产数据库沙龙 | 胡津铭:时序数据库DolphinDB,从量化金融到万物互联的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/169643

相关文章

数据库oracle用户密码过期查询及解决方案

《数据库oracle用户密码过期查询及解决方案》:本文主要介绍如何处理ORACLE数据库用户密码过期和修改密码期限的问题,包括创建用户、赋予权限、修改密码、解锁用户和设置密码期限,文中通过代码介绍... 目录前言一、创建用户、赋予权限、修改密码、解锁用户和设置期限二、查询用户密码期限和过期后的修改1.查询用

mysql数据库分区的使用

《mysql数据库分区的使用》MySQL分区技术通过将大表分割成多个较小片段,提高查询性能、管理效率和数据存储效率,本文就来介绍一下mysql数据库分区的使用,感兴趣的可以了解一下... 目录【一】分区的基本概念【1】物理存储与逻辑分割【2】查询性能提升【3】数据管理与维护【4】扩展性与并行处理【二】分区的

IDEA如何切换数据库版本mysql5或mysql8

《IDEA如何切换数据库版本mysql5或mysql8》本文介绍了如何将IntelliJIDEA从MySQL5切换到MySQL8的详细步骤,包括下载MySQL8、安装、配置、停止旧服务、启动新服务以及... 目录问题描述解决方案第一步第二步第三步第四步第五步总结问题描述最近想开发一个新应用,想使用mysq

Oracle数据库使用 listagg去重删除重复数据的方法汇总

《Oracle数据库使用listagg去重删除重复数据的方法汇总》文章介绍了在Oracle数据库中使用LISTAGG和XMLAGG函数进行字符串聚合并去重的方法,包括去重聚合、使用XML解析和CLO... 目录案例表第一种:使用wm_concat() + distinct去重聚合第二种:使用listagg,

Java读取InfluxDB数据库的方法详解

《Java读取InfluxDB数据库的方法详解》本文介绍基于Java语言,读取InfluxDB数据库的方法,包括读取InfluxDB的所有数据库,以及指定数据库中的measurement、field、... 首先,创建一个Java项目,用于撰写代码。接下来,配置所需要的依赖;这里我们就选择可用于与Infl

详谈redis跟数据库的数据同步问题

《详谈redis跟数据库的数据同步问题》文章讨论了在Redis和数据库数据一致性问题上的解决方案,主要比较了先更新Redis缓存再更新数据库和先更新数据库再更新Redis缓存两种方案,文章指出,删除R... 目录一、Redis 数据库数据一致性的解决方案1.1、更新Redis缓存、删除Redis缓存的区别二

oracle数据库索引失效的问题及解决

《oracle数据库索引失效的问题及解决》本文总结了在Oracle数据库中索引失效的一些常见场景,包括使用isnull、isnotnull、!=、、、函数处理、like前置%查询以及范围索引和等值索引... 目录oracle数据库索引失效问题场景环境索引失效情况及验证结论一结论二结论三结论四结论五总结ora

C#实现文件读写到SQLite数据库

《C#实现文件读写到SQLite数据库》这篇文章主要为大家详细介绍了使用C#将文件读写到SQLite数据库的几种方法,文中的示例代码讲解详细,感兴趣的小伙伴可以参考一下... 目录1. 使用 BLOB 存储文件2. 存储文件路径3. 分块存储文件《文件读写到SQLite数据库China编程的方法》博客中,介绍了文

Android数据库Room的实际使用过程总结

《Android数据库Room的实际使用过程总结》这篇文章主要给大家介绍了关于Android数据库Room的实际使用过程,详细介绍了如何创建实体类、数据访问对象(DAO)和数据库抽象类,需要的朋友可以... 目录前言一、Room的基本使用1.项目配置2.创建实体类(Entity)3.创建数据访问对象(DAO

SQL Server数据库磁盘满了的解决办法

《SQLServer数据库磁盘满了的解决办法》系统再正常运行,我还在操作中,突然发现接口报错,后续所有接口都报错了,一查日志发现说是数据库磁盘满了,所以本文记录了SQLServer数据库磁盘满了的解... 目录问题解决方法删除数据库日志设置数据库日志大小问题今http://www.chinasem.cn天发