新闻

官宣!@DolphinDB 物联网

2023.08.25

与互联网场景数据相比,物联网的数据写入和读取有着不一样的特征。

  • 设备按照固定的周期或特定触发的条件持续不断地产生带有时间戳的时序数据。
  • 数据是结构化的,数据模型相对固定,变化频率较低。
  • 高频写入、低频读取,读取数据时按时间范围筛选。
  • 数据时效性较强,数据价值与时间成反比,具有明显的冷热特征。

因此,大规模物联网时序数据的存储,在高并发写入、高效的数据查询分析、低成本的数据存储,和简单便捷的生态协同等方面都提出了较高要求。

为了更好地支持时序数据的存储分析,各种时序数据库(TimeSeries Database)应运而生,时序数据库可以基于时间区间进行聚合分析和高效检索,实现对时序数据的快速写入、持久化、多纬度的查询等功能。

DophinDB 物联网公众号现已正式开始运营!

作为一款高性能的分布式数据库,DophinDB 有如下特点:

  • 支持事务 ACID;
  • 支持高可用:自研分布式文件系统,支持元数据、原始数据和客户端高可用;
  • 兼容标准 SQL 语句、支持 MySQL、Oracle 等 SQL 方言;
  • 支持流计算:支持流数据的发布订阅,内置流计算引擎,支持流数据高可用、流计算引擎高可用;
  • 内置脚本语言:DolphinDB 语言是图灵完备的脚本语言,与 Python 语法相似,支持向量化编程、SQL 编程、命令式编程、函数式编程、元编程、远程调用编程 (RPC) 等多种编程范式;
  • 通用的分布式计算框架:DolphinDB 内置 Map-Reduce 通用分布式计算框架,用户通过脚本可实现高效的分布式算法。
  • 丰富的函数库:内置1600+函数,涵盖了数据库运维、SQL 引擎、权限管理、任务管理 、流计算、窗口计算、统计计算、分布式计算、机器学习等方面;
  • 多模:支持时间序列模型和传统关系型数据模型。
  • 存算分离架构:数据节点负责数据写入和数据存储,计算节点负责计算任务。
  • 弹性扩展:支持不停机扩展集群节点与资源。
  • 生态兼容性良好:丰富的 API 生态和插件生态。

一、DolphinDB 在物联网场景优势明显

DolphinDB 拥有一套完整的体系架构,其核心为一个分布式集群系统,内置分布式文件系统、分布式计算、分布式数据库、流计算引擎和脚本语言模块。各个模块相互独立,又紧密配合,可以一站式提供分布式文件系统、分布式计算、内存数据库、消息队列、流计算等功能。因此,用户可以直接在数据库中进行复杂的编程和运算。

DolphinDB 这种融合的架构设计,可以提供综合的解决方案,具有高性能和低维护成本的优势。用户无需使用来自不同供应商的多个系统,只需要部署 DolphinDB,就可以实现快速开发,极大地降低大数据管理和分析系统的综合成本。


01.大幅提升数据插入和查询性能

物联网的数据是结构化的,因此 DolphinDB 采取的是结构化存储,而不是流行的 KV 存储。物联网场景里,每个数据采集点的数据源是唯一的,数据是时序的,而且用户关心的往往是一个时间段,而不是某个特殊时间点的数据。基于这些特点,DolphinDB 支持在创建数据库表时指定排序列,同一个排序列对应的数据在一个分区内部按顺序紧密排列在一起,结合 DolphinDB 更好的存储算法,在查询单个设备一个时间段的数据时,查询性能就有数量级的提升。

02.大幅降低硬件或云服务成本

数据插入查询性能的大幅度提升可以极大减少系统所需要的计算资源。另外一方面,物联网采集的物理量的值是随时间改变的,但正常情况下,是渐变的,因此 DolphinDB 采取列式存储,将同一个物理量在多个时间点采集的值连续存放,这样能成倍地提高压缩效率。而且 DolphinDB 针对不同的数据类型采取不同的压缩方法,比如LZ4、delta of delta、字典压缩等等,这样更进一步地提高压缩率。

03.大幅简化大数据系统架构

DolphinDB 提供了大数据处理所需要的数据库、缓存、消息队列、流式计算等系列功能。使用 DolphinDB ,在物联网大数据平台中可以考虑抛弃掉 Kafka、HDFS、HBase、Spark、Flink 和 Redis 等组件,大幅简化大数据平台的设计,降低研发成本,而且系统将更加健壮,数据的一致性更有保证。

04.强大的数据分析能力

DolphinDB 拥有强大的函数库,目前包含1600多个内置函数,适用于多种数据类型(数值、时间、字符串)、数据结构(向量、矩阵、集合、字典、表)和系统调用(文件、数据库、分布式计算),函数类别包括:数学函数、统计函数、逻辑函数、字符串函数、时间函数、数据操作函数、窗口函数、连接函数、高阶函数、元编程/分布式计算函数、文件/路径函数、数据库函数、流计算函数、系统管理函数、批处理作业函数、定时任务函数、性能监控函数和用户权限管理函数。

DolphinDB 的大部分函数可以用在 SQL 语句中,可完成多种聚合计算和滑动窗口计算,例如平均值、加权平均、最小二乘回归的系数估计、相关性、计数、协方差、最大最小值、中位数、百分位数、标准差、方差、求和、加权求和、求积、排序等窗口函数,通常用于分区排序、动态 group by、求 top N、累积计算等应用。

05.较低的运维管理和学习成本

DolphinDB 从流行的 Python 和 SQL 语言汲取了灵感,设计了大数据处理脚本语言。DolphinDB 编程语言功能齐全,表达能力非常强大,支持命令式编程、向量化编程、函数化编程、SQL 编程、远程过程调用编程(RPC)和元编程等多种编程范式。使用起来就像使用 Python + SQL,基本不需要学习成本。且支持C/C++、Java、Python 和 Go 等各种语言开发接口,支持 JDBC,支持 RESTful 接口,便于开发。

06.与第三方工具无缝集成

目前 DolphinDB 在数据采集侧,已经支持 Telegraf、Kafka、MQTT、OPC 等常用的工具。在应用侧,已经支持 Grafana 可视化工具以及一些BI工具。因为 DolphinDB 支持 JDBC 接口,很容易实现与第三方工具的接口,可以预见,更多的工具将会被无缝集成。

对于运维监测场景,不用写任何代码,只要将开源的 Telegraf、Grafana 与 DolphinDB 配置好,就可以迅速搭建一个高效的运维监测平台。

二、融合架构提供综合解决方案