【.com快译】一般来说,如果你需要数据库,可以使用大牌数据库之一:MySQL/MariaDB、PostgreSQL、SQLite、MongoDB,然后开始工作。但有时一刀切的方法并不适合所有情况。主流数据库有时不能支持你的使用场景,你需要寻找更专业的数据库。本文介绍了9个非主流数据库,从内存分析、键值存储到时间序列系统。短语DuckDB“SQLOLAP系统”通常会让人联想到用于处理数据或庞大的数据仓库集群的单体系统。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这样的原生图形数据库一样。FoundationDBFoundationDB是Apple领导的一个开源项目,FoundationDB是一个“多模式”数据库,它在内部将数据存储为键值对(实际上是NoSQL模型),但可以组织成关系表、图形、文档和许多其他数据结构。ACID事务保证数据完整性,水平扩展和复制功能都可以直接使用。但是FoundationDB的设计有一些严格的限制:键、值和事务有严格的大小限制,事务有严格的时间限制。HarperDBHarperDB的目标是提供单一数据库来处理企业中的结构化和非结构化数据——介于FoundationDB等多模式数据库和数据仓库或OLAP解决方案之间。摄取的数据已经过重复数据删除,可通过您选择的界面进行查询:SQL、NoSQL、Excel等。Tableau或PowerBI等BI解决方案可以直接与HarperDB集成,无需提取或处理数据。提供企业版和社区版。KeyDB尽管Redis的流行和强大,内存中的键值存储因其线程性能和易用性而受到批评。KeyDB与Redis协议兼容,因此可以作为Redis的临时替代品。但是KeyDB在底层做了一些优秀的改进,主要是针对网络I/O操作的多线程和查询解析。Redis的下一个版本Redis6也计划包含线程I/O,但现在可以使用KeyDB。M3DBM3DB是优步内部工程团队开发的产品。这个分布式时间序列数据库用于Uber的指标平台(实际上是作为Prometheus的数据存储)。M3DB借鉴了ApacheCassandra和Facebook项目“Gorilla”的思想,支持任意时间精度、乱序插入以及可配置的复制和读取一致性。但是,开发人员特别指出,M3DB可能并不适合所有时序数据库用例。例如,M3DB不能在给定时间窗口(默认为2小时)之外乱序插入数据,并且它主要针对存储和检索64位浮点数而不是其他类型的数据进行了优化。RediSQL的名字暗示了Redis内存键值存储和SQL查询能力的融合,这是RediSQL的本质——具体来说,是嵌入在SQLite数据库中的Redis模块。数据透明地存储在Redis中,因此Redis处理持久化和内存处理。每个数据库都与一个Redis键相关联,因此您可以在一个Redis实例上拥有多个SQL数据库。针对这些数据库的查询是标准SQL,通过标准RedisAPI传递。您还可以在RediSQL中创建和准备语句(实际上是存储过程)以加快查询执行速度。提供商业版和开源版。RQLiteSQLite是一个奇迹:一个快速、超级可靠的嵌入式开源数据库。当您在单用户应用程序中需要数据库时,SQLite是一个很好的默认选择,但SQLite实例仅限于一个节点。RQLite创建了一个基于SQLite的分布式数据库系统。很容易设置多个节点,并且使用Raft共识算法在这些节点之间自动复制数据。RQLite还提供节点之间的加密和发现服务,可以轻松自动添加节点。但RQLite也有几个缺点:写入速度不如SQLite,只能安全使用确定性的SQL函数(即保证在每个节点上产生相同结果的函数)。UmbraDB如今大多数高端数据库都具有某种内存中功能,即使它涉及表固定(如SQLServer)之类的东西。UmbraDB是一个分析数据库,可以作为PostgreSQL的直接替代品运行,旨在尽可能多地使用内存处理。如果不是,它会使用一种新颖的可变大小页面机制从存储系统中分页数据。长时间运行的查询针对使用LLVM的执行进行了优化。原标题:值得一看的9个另类数据库,作者:SerdarYegulalp
