Riak TS 不应该是一个没有 NoSQL 的数据库吗?

Posted

技术标签:

【中文标题】Riak TS 不应该是一个没有 NoSQL 的数据库吗?【英文标题】:Riak TS should not be a no NoSQL database? 【发布时间】:2018-05-07 12:42:10 【问题描述】:

为什么当 Riak TS 需要预定义的表架构时,它被视为 NoSQL 数据库?这个架构甚至无法更改!来源:documentation

我想有些人可能会认为,当Riak TS建立在Riak KV之上时,它就是一个NoSQL数据库,但是每一行都映射到一个键值对并没有带来NoSQL的优势。如果 Riak TS 不是无模式的,我认为它不应该被视为 NoSQL 数据库。

我理解错了吗?为什么官方认为它是 NoSQL?

【问题讨论】:

【参考方案1】:

SQL 不仅仅是关于拥有一个表模式。首先,支持的查询语言只是 SQL 的一小部分。然后,Riak TS 没有提供您期望从其他传统 SQL 数据库获得的东西,例如 ACID、事务等。此外,它不是真正的普通数据库,因为您无法更新值。

因此将其定义为“关系数据库”或“SQL 数据库”是没有意义的。但是将其定义为“NoSQL DB”并没有真正的意义 :) 我认为最好的定义是“TimeSeries 分布式 DB”

【讨论】:

但是Riak 为什么要这么做呢?其他 TimeSeries DB 要么提供 ACID,要么可以具有灵活的架构……Riak TS 对它们没有任何优势 @MacakM 我认为您没有遵循 RiakT 的优势,包括速度和非常大数据集的大规模可扩展性。主要/预期用例不需要 ACID 事务或灵活的模式,但公平地说,如果 Basho 存在的时间更长,其中一些功能可能最终会进入 RiakTS。顺便说一句,我写了一篇关于 TS 数据建模的文章,读起来可能很有趣:github.com/cvitter/Riak-TS-Data-Modeling 我可以看到 Riak TS 与关系数据库相比的优势......但与其他时间序列数据库(如 InfluxDB 或 Timescale)相比,我看不到优势 InfluxDB 开源不能在多个机器上扩展。企业版的规模不会超过几个盒子。时间刻度不会在一个以上的盒子上进行缩放。 Riak TS 最多可扩展到 100 个盒子(理论上),实际可扩展到 50 个(除非您的网络非常快)

以上是关于Riak TS 不应该是一个没有 NoSQL 的数据库吗?的主要内容,如果未能解决你的问题,请参考以下文章

NOSQL 数据库的四大类型

NOSQL 数据库的四大类型

英国国家医保系统用NoSQL替代甲骨文

MongoDB、Riak 和 HyperTable(或 HBase)的内存需求/利用率

NoSQL与MemcachedRedisMongoDB概述

[NOSQL] Redis介绍