写点什么

Basho 公司开源了它的时序数据库产品 Riak TS 1.3

  • 2016-07-25
  • 本文字数:2863 字

    阅读完需:约 9 分钟

Basho 科技公司发布了Riak TS 1.3 的开源版本。Riak TS 是专门面向时序数据处理的产品。它支持时序数据的快速写入和查询。此外,Riak TS 的特性还包括:支持数据聚集和算术运算操作,通过Spark 连接器与Apache Spark 的集成,对Java、Erlang 和Python 等语言的客户端支持,基于标准SQL 的查询系统。Riak TS 1.3 EE(企业版)是基于支持多集群复制的开源版本而构建。在它的发行说明中,给出了其所有特性的完整列表。

针对本次发布,InfoQ 择机访谈了Basho 公司的CTO,Dave McCrory 先生。

InfoQ:您能对 Riak 产品套装,尤其是 Riak TS 产品,做一个概要介绍吗?套装产品的开发将依然延续彼此独立的方式吗?

McCrory: Riak 产品家族都是围绕着 Riak 内核构建的,Riak 内核是过去七年中 Basho 公司一直致力于开发的开源集群解决方案。

Riak KV 产品构建于 Riak 内核之上,提供了一种高弹性、高可用的键值数据库。Riak KV 产品当前正在持续改进中,专注于数据正确性、预防数据损失和破坏等特性。

Riak TS 产品源于 Riak KV 数据库,是一种为时序数据仓库而专门构建的产品。其中集成了 Riak KV 产品的所有强大功能,并使用这些功能去解决用户在处理时序数据中所遇到的问题。我们在该产品中确实地实现了哪些特性呢?这里我列出了其中的一部分:

  • 数据的快速写入路径;
  • 为数据桶建立模式;
  • 查询规划及查询子系统;
  • 对虚拟节点的并行数据抽取;
  • 灵活的复合键值;

InfoQ:Riak TS 产品的开发已持续近 18 个月了,你能介绍一下这个开发经历吗?

McCrory: 在早期,我们看到客户用 Riak KV 产品去保存时序数据。当我们审视其中的需求时,发现为使这样的系统顺利运行,需要做很多的产品定制工作。我们也查看了时序数据库产品的市场情况,当时只见到了寥寥可数的几个解决方案,并且所有这些解决方案的质量都不足以承担企业级的生产工作负荷。已有的时序数据解决方案或者是缺乏可扩展集群或弹性,或者是管理和操作非常繁琐。所有这些使得它们成为糟糕的选择。

为讨论解决这个问题的创意,我们进而开了一次架构会议。最终,我们的一个工程师提出了一个有意思的创意,即使用量子(时间范围)将数据围绕哈希环分布,并基于此创意构建了一个看上去运行良好的概念验证原型。依此我们开始了 Riak TS 产品的开发过程,力图去解决许多时序数据处理中更加困难的问题。

开发过程中还有其它一些限制需要处理,包括对性能的需求。譬如要在八台机器组成的集群中支持每秒百万级别数据点的性能。为实现该性能需求,需要对从涌入集群中直至磁盘存储过程中的数据流进行描述分析,并返回数据读取的路径信息。当我们开始注意这个问题时,我们就认识到需要有一个专注于性能问题的专门团队。这样,我们就成立了性能团队。

性能团队力图找出项目中效率低下的部分,这些部分很大程度上是在项目早期的开发中产生的,它们是紧随着对如何做端到端程序概要分析的学习过程。这样可给出一组问题,重点去解决这些问题就能为性能提高的工作带来最大的回报。其中我们所发现的一个重要问题是,我们正在做多重的解码编码,这消耗了 CPU 周期,并增加了许多延迟,这样我们就开始去消除这些问题。

同时我们也寻求在无需依赖于二级索引的条件下,迅速响应各种时序数据查询的方法。因为时序数据具有内在的结构,我们于是着眼于对数据构建模式。该做法也为我们实现查询引擎和查询语言等开启了大门。最终我们决定使用 SQL 查询语言,而非像其它供应商那样选择自定义的 SQL,因为我们发现那样会使得事情更加复杂。相比较于从所有包含数据的节点或从整个集群中所有的节点请求数据的方法,我们仅从拥有指定数据的节点集中请求数据。这种实现必须去重构查询解析器和查询规划器,这种做法被证实是具有挑战性的。但是该方法所给出的弹性和性能指标说明了一切。

InfoQ:除了在物联网中的使用案例之外,还有哪些使用 Tiak TS 产品的好的案例?

McCrory: 一些顾客和潜在客户已全面使用该产品去解决与时间相关的数据问题。这些问题包括信息报告和审计、分数和下注记录、度量信息的存储等。几乎每个星期我都能听到一些 Riak TS 产品的新应用。

InfoQ:Basho 公司是 Riak TS 产品的最大贡献者吗?还有哪些公司对此也有贡献?代码开源的目标是什么?

McCrory: Basho 公司当然是 Riak TS 的首要贡献者,主要原因在于为了实现时序解决方案的构建,必须由我们自己去实现许多增改。我们当前正就如何一起构建 Riak TS 的一系列功能的问题与一些公司会谈,以解决在时序数据处理领域中一些更广泛的问题。

对于代码开源的目标,我们相信对于分布式系统中的创新性方法、创意和领导力等问题,我们有许多可以贡献给开源社区的东西,我们也希望能与更好的解决方案合作。当将借助于开源代码作为产品实现路径时,几乎总是会加速你的实现过程的。我们在自家软件的开源上具有很悠久的历史,也在创造更好的解决方案过程中得到了社区的支持。

InfoQ:Apache Spark 连接器是使用 Riak TS 解决大数据问题中的一个重要组件,我说的没错吧?你能介绍一下这个连接器,以及它与其它 Apache Spark 的 NoSQL 连接器相比究竟如何?

McCrory: 自 Apache Spark 进入大数据分析行业以来,在我们所接触的大多数客户中,它都当然是行业翘首。当然我们的使用 Riak TS 的大数据解决方案的客户中,也有一些并没有使用 Apache Spark 的案例。这些案例都是不需要复杂分析、集群学习及其它一些 Apache Spark 所提供的特性的。这意味着,我们的大数据客户中的大多数是使用具有 Spark 连接器的 Riak TS 和 Apache Spark 的。

我们开发 Riak 的 Spark 连接器已经有一段时间了,当前该功能的实现已经历了至少三轮测试。我们所做的事情之一是,允许 Spark 连接器使用我们所开发的并行抽取特性。通过这个实现方法,我们具有了同时从所有节点并行地拉取所有的请求数据的能力。这加速了数据到 Spark 的加载,并且当借助于 Apache Spark 和 Spark 连接器时,通过我们所实现的写性能提高功能,使得 Riak TS 成为的一个优秀的解决方案。

InfoQ:你能提供包括 HTTP API 安全支持和聚焦于物联网在内的 Riak TS 产品的路线图吗?

McCrory: 我们期望在即将推出的 Riak TS 1.4 版中具有 HTTP API 安全等一些特性,其中包括:更全面的 SQL 命令支持、初步的结果流支持及其它一些功能。

使 Riak TS 聚焦于物联网的核心问题,是我们如何提供非常易于操作和使用的时序数据库。通过聚焦于物联网数据,我们看到了对于持续小规模数据块的越来越高的数据通量的需求。我们将继续性能优化,并与其它互补的技术对接。当前我们正在探寻的领域是数据可视化,即我们如何能使 Riak TS 与在开源领域和工业界十分流行的可视化解决方案合作或一起工作。通常,采集和存储所有这些物联网数据的关键在于如何去识别所需采取的动作。

入门指南材料可以在 Basho 文档中获取。

查看英文原文: Basho Open Sources Time Series Database Riak TS 1.3


感谢张龙对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-07-25 19:002942
用户头像

发布了 227 篇内容, 共 74.2 次阅读, 收获喜欢 28 次。

关注

评论

发布
暂无评论
发现更多内容

CnosDB 涅槃重生:弃用Go, 全面拥抱Rust

CnosDB

rust 物联网 时序数据库 开源社区 Go 语言

闭会算法好题之2020ICPC澳门站签到A题

KEY.L

7月月更

100 条 Linux vim 命令备忘单,收藏起来随时备用!

wljslmz

vim Linux 运维、 7月月更

现实世界的快与慢

耳东@Erdong

随笔杂谈 7月月更

Node.js基础入门

bo

前端 Node 7月月更

前端值得一看的ArkUI框架进度指示器

坚果

开源 HarmonyOS OpenHarmony Open Harmony 7月月更

zookeeper-zookeeper的应用场景

zarmnosaj

7月月更

linux中的内部命令和外部命令

工程师日月

Linux 7月月更

jQuery 基础动画

Jason199

js JQuery框架 7月月更

如何设计自动化测试case?

老张

自动化测试

AWS Support Plan

冯亮

云计算 DevOps AWS 云计算架构师

TOGAF中的本手和妙手

涛哥 数字产品和业务架构

企业架构 TOGAF

数据要素

奔向架构师

数据资产 7月月更

【算法社区】十大排序算法详解

小明Java问道之路

数据结构 算法 排序 排序算法 7月月更

微服务间的通信协议和消息格式

穿过生命散发芬芳

7月月更 微服务通信

云原生指南之什么是云原生基础架构

宇宙之一粟

云原生 7月月更

使用pytorch自己构建网络模型实战

秃头小苏

PyTorch 7月月更

分享5个Vue开发小技巧

程序员海军

Vue 7月月更

SDL键盘事件

柒号华仔

7月月更

Docker安装Redis!!!(含每一步详细图解)实战

宁在春

redis Docker 7月月更

数据结构与算法之树与二叉树(理论篇)

未见花闻

7月月更

【愚公系列】2022年07月 Java教学课程 06-常量

愚公搬代码

7月月更

DeFi 2.0的LaaS协议Elephant,重振DeFi赛道发展的关键

鳄鱼视界

Iptables的基本原理

阿泽🧸

iptables 7月月更

使用 PixCap 和 ReadyPlayerMe 快速制作3D 模型动画

devpoint

3D 7月月更 pixcap readyplayerme

【深度】新派LaaS协议Elephant:重振DeFi赛道发展的关键

股市老人

【MySql项目实战优化】复杂触发器案例分享

安逸的咸鱼

MySQL 实战 7月月更

在线随机抛硬币正反面统计工具

入门小站

工具

在线XML转JSON工具

入门小站

工具

Spring全家通之SpringMVC如何传递参数以及返回值的类型

Java学术趴

7月月更

Basho公司开源了它的时序数据库产品Riak TS 1.3_大数据_Rags Srinivas_InfoQ精选文章