- 简介
DolphinDB不仅可作为分布式数据仓库或者内存数据库来使用,而且自带丰富的计算工具,可作为一个研究工具或研究平台来使用。DolphinDB对时间序列数据的处理特别友好,非常适合量化金融、物联网等领域的海量数据分析。例如在量化金融领域的交易信号研究,策略回测,交易成本分析,股票相关性研究,都可以用DolphinDB系统快速的解决。
DolphinDB作为一个研究工具的优势具体体现在以下8大功能:
(1)快速的数据清洗
数据清洗是数据分析实践中最重要也是最耗时的一环。DolphinDB的脚本语言支持多范式编程,包括命令式编程、向量化编程、函数化编程、SQL编程、RPC编程以及元编程,表达能力强,代码简洁,可快速实现对包含缺省值的数据处理,面板数据的处理,数据表的透视,多个数据表的常规连接和非同步连接。对于字符串和日期类型的数据,系统提供了大量的内置函数以方便处理。大部分解决方案可以通过SQL语句和自定义函数来完成。处理海量数据时,DolphinDB提供了非常高效的分布式解决方案。
(2)高效的数据导入
数据分析时经常需要集成多个数据源。DolphinDB内置对文本文件,HDF5以及ODBC数据源的数据导入。导入工具能自动识别源数据的字段类型,包括对各种日期和时间类型的识别,也可以按照用户指定的数据类型进行导入。DolphinDB支持数据的并行导入,具有非常高的效率。以文本文件导入为例,速度是pandas的10倍多。
(3)交互式分析
研究是一个不断试错和求真的过程。交互式分析可以大大提高研发的效率。DolphinDB采用列式存储,充分利用内存,对时间序列数据进行大量优化,分区机制灵活高效,性能超越MPP数据仓库一个数量级。即便面对TB级的数据,仍可实现毫秒级的低延时,非常适合交互式的数据分析。
(4)库内分析
DolphinDB不仅仅是一个分布式时序数据库,它还自带强大的计算功能。除了数据检索和处理,DolphinDB还内置基本的数据分析和建模功能,包括机器学习中常用的回归、分类等功能模块。特别值得一提的是,很多计算可以直接在分布式数据库中完成。并行计算和分布式计算不仅加快了运算过程,而且让数据科学家免去了将海量数据从一个系统转移到另一个系统的麻烦。
(5)丰富的编程接口
研究往往会用到多种数据分析和建模工具。DolphinDB提供了Java,C#,Python,R,JSON等编程语言的接口。DolphinDB也提供了Excel的插件,支持Excel和DolphinDB之间的双向数据交换。
(6)易用易维护
DolphinDB从一开始就是为数据科学家和数据分析师设计的。系统简单易用,即使没有专职IT团队的协助,数据科学家也可以独立完成工作。DolphinDB的工作语言是即写即用的脚本语言。在一个节点上编写的自定义函数或脚本,无需编译、打包和部署,即可在整个集群中使用。这些都有利于提高研发人员的工作效率。DolphinDB虽然包含了数据仓库,内存数据库,分布式文件系统,分布式计算框架,流计算框架等多种功能,但核心系统非常轻型,只有一个约20兆的可执行程序,复制到指定目录即可使用。DolphinDB可以根据数据规模的大小,部署在单个笔记本和台式机上,或者本地和云端的集群,支持Windows和Linux操作系统。
(7)研究与生产环境通用代码
研究通常是在离线数据集上进行。在生产环境中,由于效率要求或者数据集的变化,往往需要重写代码。譬如有些量化金融团队,会使用Matlab或Python做研究,然后用C++重写交易系统的代码。DolphinDB除了支持离线计算,也提供了一个很高性能的实时(流)计算框架。用户在研究环节的写的部分代码,可以在生产环境中使用,无需修改。
(8)集成开发工具
DolphinDB自带的Java GUI是一个功能强大的集成开发工具(IDE),可以用于组织一个大型研究项目的代码。IDE支持交互式的代码运行。用户可以方便的观察和比较内存中的变量以及数据表(包括分布式数据表)中的数据,查找问题。IDE支持图形化的数据显示,让实验结果更加直观,易于理解。IDE的编辑器支持函数名称和函数参数的自动提示,可以降低数据分析人员的学习成本。
2 官方文档
appendForJoin — DolphinDB 2.0 documentationhttps://dolphindb.cn/cn/help/FunctionsandCommands/FunctionReferences/a/appendForJoin.html