值得一看的 9 个另类数据库

总的来说,如果您需要数据库,则可以使用其中的一个大名鼎鼎的数据库MySQL / MariaDB 、 PostgreSQL 、 SQLite和MongoDB ,然后开始工作。 但是有时候,“一刀切”的方法并不能完全适用。 时不时地,您的用例会落在bartools之间,您需要寻求更专业的东西。 这是九个非常规数据库,它们从内存分析到键值存储和时间序列系统都在运行。

DuckDB

“SQL OLAP系统”这个词通常让人联想到数据处理的庞然大物或庞大的数据仓库集群。DuckDB之于分析数据库,就像SQLlite之于MySQL和PostgreSQL。它的设计目的不是与成熟的OLAP解决方案在相同的范围内运行,而是为本地数据集提供快速的内存分析处理。

DuckDB的许多特性与较大的OLAP产品类似,即使规模较小。数据存储为列而不是行,查询处理是向量化的,以充分利用CPU缓存。您不会发现太多像Tableau这样的报告解决方案的本地连接方式,但是手动滚动这样的解决方案应该不难。除了用于c++的绑定之外,DuckDB还原生连接到两种最常见的用于分析的编程环境:Python和R。

EdgeDB

“边缘”是图形数据库中使用的术语,用于指代高度连接的数据集的两个实体或节点之间的连接或关系(例如,客户与订单之间,或订单与产品之间,等等)。 EdgeDB使用PostgreSQL核心及其提供的所有属性(例如ACID事务和工业强度可靠性)来构建其制造商称之为具有强大字段类型和类似SQL的查询语言的“对象关系数据库” 。

因此,EdgeDB结合了类似NoSQL的易用性和即时性,图形数据库的关系建模能力以及SQL的保证和一致性。 即使EdgeDB并不是正式的文档数据库,您也可以使用它以这种方式存储数据。 您可以使用GraphQL查询语言轻松地从EdgeDB检索数据,就像使用本机图形数据库(例如Neo4j)一样 。

FoundationDB

由Apple牵头的开源项目FoundationDB是一个“多模型”数据库,该数据库在内部将数据存储为键值对(本质上是NoSQL模型),但可以组织为关系表、图形、文档和许多其他数据结构。 ACID事务可确保数据完整性,并且水平扩展和复制都可以立即使用。 但是,FoundationDB的设计有一些严格的限制:键、值和事务都有严格的大小限制,事务也有严格的时间限制。

HarperDB

HarperDB的目标是提供一个单一数据库,用于处理企业中的结构化和非结构化数据-在诸如FoundationDB的多模型数据库与数据仓库或OLAP解决方案之间的某个位置。 通过选择的界面(SQL、NoSQL、Excel等)对已摄取的数据进行重复数据删除,以供查询使用。Tableau或Power BI等BI解决方案可以直接与HarperDB集成,而无需提取或处理数据。 企业版和社区版均可用。

KeyDB

内存键值存储像Redis一样流行和强大,但由于线程性能和易用性不足而受到批评。 KeyDB与Redis协议兼容,因此可以用作嵌入式替代。 但是KeyDB进行了一些漂亮的后台改进,主要是用于网络I / O操作和查询解析的多线程。 Redis下一版本的计划Redis 6也包括线程I / O,但KeyDB现在可用。

M3DB

M3DB是Uber内部工程团队的产品,是一个分布式时间序列数据库,用于Uber的指标平台(本质上是Prometheus的数据存储)。 M3DB借鉴了Apache Cassandra和Facebook项目“ Gorilla ”的想法,从而实现了任意时间精度,无序插入以及可配置的复制和读取一致性级别。 但是, 创建者注意到 M3DB可能不适合所有时间序列数据库用例。 例如,M3DB不能在给定的时间范围内(默认值为两个小时)乱序插入数据,并且它主要针对存储和检索64位浮点数而不是其他类型的数据进行了优化。

RediSQL

该名称意味着Redis内存键值存储和SQL查询功能的融合,而这正是RediSQL的含义 ,特别是嵌入SQLite数据库的Redis模块。 数据透明地存储在Redis中,因此Redis处理持久性和内存中处理。 每个数据库都与一个Redis密钥相关联,因此您可以在一个Redis实例上拥有多个SQL数据库。 对这些数据库的查询是通过标准Redis API传递的标准SQL。 您还可以在RediSQL中创建和预编译语句(本质上是存储过程),以加快查询执行速度。 商业和开源版本均可用。

RQLite

SQLite是一个小小的奇迹:闪电般的速度和超可靠的可嵌入式开源数据库。 每当在单用户应用程序中需要数据库时,SQLite都是一个很好的默认选择,但是SQLite实例仅限于一个节点。

RQLite基于SQLite来创建分布式数据库系统。 设置多个节点很容易,并且使用Raft共识算法在这些节点之间自动复制数据。 RQLite还提供节点之间的加密以及发现服务,该服务使自动添加节点变得容易。 但是RQLite也有一些缺点:写速度比SQLite慢,并且只有确定性的SQL函数 (即保证在每个节点上产生相同结果的函数)才可以安全使用。

UmbraDB

如今,大多数高端数据库都具有某种内存中功能,即使它涉及诸如表固定(例如SQL Server )之类的功能。 UmbraDB是一个分析数据库,可以替代PostgreSQL进行运行,旨在尽可能使用内存中处理。 如果无法做到这一点,它将使用一种新颖的可变大小页面机制从存储中分页数据。 长时间运行的查询针对LLVM执行进行了优化。

原文链接: https://www.infoworld.com/article/3533410/9-offbeat-databases-worth-a-look.html

你可能感兴趣的:(值得一看的 9 个另类数据库)