DolphinDB脚本语言的混合范式编程

2022-03-28 00:00:00 数据 函数 分布式 节点 计算

开发大数据应用,不仅需要一个能支撑海量数据的分布式数据库,一个能高效利用多核多节点的分布式计算框架,更需要一门能与分布式数据库和分布式计算有机融合,高性能易扩展,表达能力强,满足快速开发和建模需要的编程语言。DolphinDB从流行的SQL和Python语言汲取了灵感,设计了大数据处理脚本语言。本教程讲解如何通过混合范式编程,快速开发大数据分析的应用。从中你也可以了解DolpinDB的编程语言(以下简称DolphinDB)如何与数据库和分布式计算融合。


1. 向量化编程

向量化编程是DolphinDB中基本的编程范式。DolphinDB中绝大部分函数支持向量作为函数的输入参数。根据函数的返回值的不同,函数可分为两种:一种是聚合函数(aggregate function),返回标量(scalar);另一种是向量函数,返回与输入向量等长的向量。

向量化操作有三个主要优点:

  • 代码简洁
  • 大幅降低脚本语言的解释成本
  • 可对很多算法进行优化

时间序列数据通常可以用一个向量来表示,用于数据分析的列式数据库的每一个列也都可以用向量来表示。DolphinDB作为一个内存计算引擎或者作为一个分析型的数据仓库,在进行时间序列数据分析时,特别适合使用向量化编程。

以两个长度为一千万的向量相加作为一个简单例子。用命令式编程的for语句,不仅语句冗长,而且耗时是向量化编程的百倍以上。

n = 10000000
a = rand(1.0, n)
b = rand(1.0, n)

//采用for语句编程:
c = array(DOUBLE, n)
for(i in 0 : n)
    c[i] = a[i] + b[i]
    
//采用向量化编程:
c = a + b

相关文章