apache数据库
Apache IoTDB概述
官网定义:Apache IoTDB(物联网数据库)是一体化收集、存储、管理与分析物联网时序数据的软件系统。Apache IoTDB采用轻量式架构,具有高性能和丰富的功能,并与Apache Hadoop、Spark和Flink等进行了深度集成,可以满足工业物联网领域的海量数据存储、高速数据读取和复杂数据分析需求。
至此我们了解到Apache IoTDB(物联网数据库)是为时间序列数据设计的集成数据管理引擎。
它为用户提供:
- 提供数据收集,存储和分析一体化服务
- 体量轻、性能高、易使用,完美对接Hadoop与Spark生态
- 可以满足大规模数据存储,高速数据提取和复杂数据分析,因此适用于工业物联网应用中海量时间序列数据高速写入和复杂分析查询的需求
Apache IoTDB最初由清华大学软件学院团队开发。Apache 软件基金会于宣布 Apache IoTDB 毕业成为 Apache 顶级项目!
IoTDB 是一个用于管理大量时间序列数据的数据库,它采用了列式存储、数据编码、预计算和索引技术,具有类 SQL 的接口,可支持每秒每节点写入数百万数据点,可以秒级获得超过数万亿个数据点的查询结果。它还可以很容易地与 Apache Hadoop、MapReduce 和 Apache Spark 集成以进行分析。
Apache IoTDB的架构概述
Apache IoTDB 套件由若干个组件构成,共同形成“数据收集-数据写入-数据存储-数据查询-数据可视化-数据分析”等一系列功能。
在上图中,用户可以通过 JDBC 将来自设备上传感器采集的时序数据、服务器负载和 CPU 内存等系统状态数据、消息队列中的时序数据、应用程序的时序数据或者其他数据库中的时序数据导入到本地或者远程的 IoTDB 中。用户还可以将上述数据直接写成本地(或位于 HDFS 上)的 TsFile 文件。
- 可以将 TsFile 文件写入到 HDFS 上,进而实现在 Hadoop 或 Spark 的数据处理平台上的诸如异常检测、机器学习等数据处理任务。
- 对于写入到 HDFS 或者本地的 TsFile 文件,可以利用 TsFile-Hadoop 或 TsFile-Spark 连接器允许 Hadoop 或 Spark 进行数据处理。
- 对于分析的结果,可以写回成 TsFile 文件。
IoTDB 和 TsFile 还提供了相应的客户端工具,满足用户查看和写入数据的 SQL 形式、脚本形式和图形化形式等多种需求。
IoTDB 主要功能特点
灵活的部署方式
- 云端一键部署。
- 终端解压即用。
- 终端-云端无缝连接(数据云端同步工具)。
高效的时间序列数据读写
- 支持百万级低功耗强连接设备数据接入(海量)。
- 支持智能网联设备数据高速读写(高速)。
- 以及同时具备上述特点的混合负载。
完美对接开源生态环境
- 支持开源数据分析生态系统:Hadoop、Spark、Flink。
- 支持开源可视化工具对接:Grafana。
IoTDB 模块
从IoTDB的源码,我们可以得知IoTDB项目目前包含30个模块。现对IoTDB所有的模块进行大致分类,可划分为Client,IoTDB Engine(JDBC,Server,TsFile),Grafana,Distribution 以及各种生态的连接器这几类。
Client模块介绍
- cli:基于Java的客户端接口。
- client-cpp:基于C++的客户端接口。
- client-py:基于Python的客户端接口。
IoTDB Engine模块介绍
- server:对应框架中的IoTDB Engine。
- session:它是高效写入的基石,对应框架中的Native API。
- jdbc:传统的 JDBC 连接调用方式,对应框架中的JDBC。
- tsfile:这是整个数据库的一个特色所在,传统的数据库如果使用 Spark 做离线分析,或者 ETL 都需要通过数据库进程对外读取,而 IoTDB 可以直接迁移文件,省去了来回转换类型的开销。在Storage中TsFile 提供了两种读写模式,一种基于 HDFS,一种基于本地文件。框架中的TsFile。