四种分布式数据库介绍


许多分布式系统有效地使用专用存储,例如:

  • 时间序列
  • blob存储
  • 图形数据库
  • 空间数据库

下面是对它们的简要介绍:

时间序列
时间序列是与特定时间相关的大量数据的专门存储。 它们经过优化,可以测量数据随时间的变化并执行统计计算。 它们对于监控目的非常有用。

时间序列的典型用例包括:

  • ·监测系统中有多个同时发生事件的部件
  • ·在具有多个设备的物联网系统中收集遥测数据
  • ·处理金融数据(股票、加密货币)

流行的实现是InfluxDB和Prometheus。


Blob存储
用于存储和检索大量非结构化数据的专用存储。 Blob实际上是二进制大对象的首字母缩写。 图像、视频、大量文本数据和编译代码都是此类对象的示例。

这些数据库非常复杂,并且针对可用性和持久性进行了优化。 从用户的角度来看,它们看起来像键值存储,因为数据是通过键访问的。

Google云存储、Amazon S3和Azure blob存储都是流行的实现。

图数据库
用于存储具有许多关系的数据的专用存储器。 数据按照图数据模型存储,实体和实体之间有关系。 在这些图上执行查询看起来就像遍历一个图。

在关系数据库上执行相同的查询将更加复杂和昂贵。 实际上,表之间的连接数量会很高。

最流行的图数据库实现是Neo4j及其查询语言Cypher。

空间数据库
用于存储空间数据(如地图上的位置)的专用存储。 它们依赖于k-d树或四叉树等空间索引,可以高效地执行空间相关查询。 四叉树是最简单的,在概念上类似于网格。

外部网格矩形表示根,包含所有可能的空间位置。 每个矩形递归地分为4个,一个象限代表一个节点的子节点。 分割在位置数少于特定数量的象限中停止。

因此,具有许多位置的地理区域被划分为更多的象限。 使用四叉树的空间查询是高效的,需要以4为底的对数时间。

具有良好地理空间支持的数据库有PostgreSQL、MongoDB和ElasticSearch。