数据存储Apache IoTDB、ROOT-framework、Linkis、gmq介绍

以下为你介绍的数据存储软件都可用在Linux系统上:Apache IoTDB(时序数据管理引擎)、ROOT-framework(欧洲核子研究中心-数据处理框架)、Linkis(大数据中间件)、gmq(基于 golang 和 redis 实现的简易队列)。

1、Apache IoTDB(时序数据管理引擎)

数据存储Apache IoTDB、ROOT-framework、Linkis、gmq介绍

IoTDB是针对时间序列数据收集、存储与分析一体化的数据管理引擎。它具有体量轻、性能高、易使用的特点,完美对接Hadoop与Spark生态,适用于工业物联网应用中海量时间序列数据高速写入和复杂分析查询的需求。

主要功能与特点:

IoTDB具有以下特点:

1]、灵活的部署方式

云端一键部署

终端解压即用

终端-云端无缝连接(数据云端同步工具)

2]、低硬件成本的存储解决方案

高压缩比的磁盘存储(10亿数据点硬盘成本低于1.4元)

3]、目录结构的时间序列组织管理方式

支持复杂结构的智能网联设备的时间序列组织

支持大量同类物联网设备的时间序列组织

可用模糊方式对海量复杂的时间序列目录结构进行检索

4]、高通量的时间序列数据读写

支持百万级低功耗强连接设备数据接入(海量)

支持智能网联设备数据高速读写(高速)

以及同时具备上述特点的混合负载

5]、面向时间序列的丰富查询语义

跨设备、跨传感器的时间序列时间对齐

面向时序数据特征的计算(频域变换,0.8.0版本不支持)

提供面向时间维度的丰富聚合函数支持

6]、极低的学习门槛

支持类SQL的数据操作

提供JDBC的编程接口

完善的导入导出工具(0.8.0版本不支持)

7]、完美对接开源生态环境

支持开源数据分析生态系统:Hadoop、Spark

支持开源可视化工具对接:Grafana

下载地址:https://iotdb.apache.org/

2、ROOT-framework(欧洲核子研究中心-数据处理框架)

ROOT 是一个模块化的科学软件工具包,它是一个数据处理框架,提供了大数据处理、统计分析、可视化和存储所需的所有功能,主要使用 C++ 编写而成,同时可集成 Python 和 R 等其它语言。

数据存储Apache IoTDB、ROOT-framework、Linkis、gmq介绍

ROOT 诞生于欧洲核子研究中心,这是全球高能物理研究的中心。每天有成千上万的物理学家使用 ROOT 分析他们的数据或进行模拟。

数据存储Apache IoTDB、ROOT-framework、Linkis、gmq介绍

特性:

存储数据,可以将数据(和任何 C++ 对象)以压缩二进制形式保存在 ROOT 文件中。对象格式也保存在同一文件中:ROOT 文件是自描述的。即使在描述数据模型的源文件不可用的情况下,ROOT 文件中包含的信息也总是可读的。ROOT 提供了一种数据结构树,它对于快速访问大量数据非常强大,比访问普通文件快几个数量级。

访问数据,保存到一个或多个 ROOT 文件中的数据可以从 PC、Web 和大型文件交换系统中访问。分布在多个文件上的 ROOT 树可以作为唯一对象链接和访问,从而允许循环遍历大量数据。

挖掘数据,ROOT 提供了强大的数学和统计工具来处理数据。C++ 应用和并行处理的能力可用于任何类型的数据操作。数据也可以在任何统计分布之后生成并建模,从而可以模拟复杂系统。

发布结果,可以使用直方图、散点图与拟合函数显示结果。只需点击几下鼠标即可实时调整 ROOT 图表。发布数据可以保存成 PDF 格式。

以交互方式运行或构建自己的应用,可以将 Cling C++ 解释器用于交互式会话并编写宏,也可以编译程序以全速运行。在这两种情况下,还可以创建图形用户界面。

在其它语言中使用 ROOT,ROOT 提供了一组绑定,可以与 Python、R 和 Mathematica 等现有语言无缝集成。

下载地址:https://root.cern.ch/

3、Linkis(大数据中间件)

Linkis是一个打通了多个计算存储引擎如:Spark、Flink、Hive、Python和HBase等,对外提供统一REST/WS/JDBC接口,提交执行SQL、Pyspark、HiveQL、Scala等脚本的数据中间件。

Linkis基于微服务架构,提供了金融级多租户隔离、资源管控、权限隔离等企业级特性,支持统一变量、UDF、函数、用户资源文件管理,具备高并发、高性能、高可用的大数据作业/请求全生命周期管理能力。

核心特点:

统一作业执行服务:一个分布式的REST/WebSocket服务,用于接收用户提交的各种脚本请求。

目前支持的计算引擎有:Spark、Python、TiSpark、Hive和Shell等。

支持的脚本语言有:SparkSQL、Spark Scala、Pyspark、R、Python、HQL和Shell等。

资源管理服务:支持实时管控每个系统和用户的资源使用情况,限制系统和用户的资源使用量和并发数,并提供实时的资源动态图表,方便查看和管理系统和用户的资源。

目前已支持的资源类型:Yarn队列资源、服务器(CPU和内存)、用户并发个数等。

应用管理服务:管理所有系统的所有用户应用,包括离线批量应用、交互式查询应用和实时流式应用,为离线和交互式应用提供强大的复用能力,并提供应用全生命周期管理,自动释放用户多余的空闲应用。

统一存储服务:通用的IO架构,能快速对接各种存储系统,提供统一调用入口,支持所有常用格式数据,集成度高,简单易用。

统一上下文服务:统一用户和系统资源文件(JAR、ZIP、Properties等),用户、系统、计算引擎的参数和变量统一管理,一处设置,处处自动引用。

物料库:系统和用户级物料管理,可分享和流转,支持全生命周期自动管理。

元数据服务:实时的库表结构和分区情况展示。

与类似系统的对比:

数据存储Apache IoTDB、ROOT-framework、Linkis、gmq介绍

架构:

数据存储Apache IoTDB、ROOT-framework、Linkis、gmq介绍

下载地址:https://gitee.com/WeBank/Linkis

4、gmq(基于 golang 和 redis 实现的简易队列)

数据存储Apache IoTDB、ROOT-framework、Linkis、gmq介绍

以上就是gmq 流程图。

gmq是基于redis提供的特性,使用go语言开发的一个简单易用的队列。

gmq不是简单按照有赞延迟队列的设计实现功能,在它的基础上,做了一些修改和优化,主要如下:

1]、功能上:

多种任务模式,不单单只是延迟队列,例如:延迟队列,普通队列,优先级队列。

2]、架构上:

添加job由dispatcher调度分配各个bucket,而不是由timer。

每个bucket维护一个timer,而不是所有bucket一个timer。

timer每次扫描bucket到期job时,会一次性返回多个到期job,而不是每次只返回一个job。

timer的扫描时钟由bucket中下个job到期时间决定,而不是每秒扫描一次。

安装运行:

1]、源码运行:

配置文件位于gmq/conf.ini,可以根据自己项目需求修改配置:

cd $GOPATH/src # 进入gopath/src目录

git clone https://github.com/wuzhc/gmq.git

cd gmq

go get -u -v github.com/kardianos/govendor # 如果有就不需要安装了

govendor sync -v # 如果很慢,可能需要翻墙

go run main.go start

2]、执行文件运行:

cd $GOPATH/src/gmq

# 编译成可执行文件

go build 

# 启动

./gmq start

# 停止

./gmq stop

# 守护进程模式启动,不输出日志到console

nohup ./gmq start >/dev/null 2>&1  &

# 守护进程模式下查看日志输出(配置文件conf.ini需要设置target_type=file,filename=gmq.log)

tail -f gmq.log

未来计划:

支持安全传输层协议(TLS)。

除了json外,可支持protobuf序列化。

web监控工具提供消息追踪功能。

增加分布式部署方案。

增加数据统计收集器。

可持久化到磁盘。

支持http协议。

增加调试和分析 pprof。

下载地址:https://github.com/wuzhc/gmq

注明

以上就是数据存储Apache IoTDB、ROOT-framework、Linkis、gmq的介绍内容,这些数据存储软件都能使用在Linux操作系统中。

栏目相关文章