关于数据库的类型
我自己总结了一下数据库服务的区别。
虽然我对AWS服务的了解还不够深入,但我将其作为备忘录写成了一篇文章。
如果你想在想起数据库的区别时参考一下,请阅读此文。
数据库的类型 (Databases’ classifications/types)
数据库类型可以大致分为两种。
一种是通过定义数据之间的关系来使用的关系型数据库。
另一种是没有数据之间关系的数据库,使用键值对(Key, value)的NoSQL数据库(非关系型数据库)。
无SQL的类型
NoSQL有四种类型,
NoSQL有四种类型可供选择。
关于各种类型的数据库
关系数据库
- 概要
企業用的数据库,基本上是关系型数据库。
可通过SQL进行数据操作。
- アーキテクチャ
在数据模型中定义了表之间的关系。
- 利用ケース
会计数据等业务结构化数据 huà
数据仓库 (DWH)
- 概要
使用结构化数据的企业分析数据库。
专注于数据读取和汇总的BI数据分析数据库。
预先设计所要读取的数据结构,经过加工后储存利用文的数据。
注重响应速度,数据提取和汇总快,但更新和事务较慢。
* 架构
将数据进行分区,并从多个磁盘中读取
- 利用データ
将会计数据和其他业务结构化数据进行加工,以便进行商业智能分析。包括KPI测量、竞争对手分析、访问分析等。
分布式数据库和数据湖
- 概要
将大数据和物联网数据积累起来,以实现快速处理的数据库和存储组合。
专注于数据提取。
分布式存储数据,适用于大数据的快速处理。
- アーキテクチャ
SQL类似的查询操作是可行的
没有INSERT、UPDATE或DELETE操作
也没有事务支持
只能通过批量加载数据或全部删除来进行数据写入
- 利用データ
大数据
KVS:键值对存储模式
- 概要
通过简单的数据结构,实现了高速处理的数据库。
- アーキテクチャ
以牺牲强大的整合性为代价,采用结果为导向的整合性
采用面向分布式数据模型和查询
不支持事务、聚合、JOIN等操作
- 利用データ
大規模的網站後端數據(包括使用者會話、使用者屬性、預先計算的資料快取)
訊息傳遞系統的數據
需要大量寫入的物聯網感測器數據
宽型衣领
- 概要
宽列是一种可以对键进行大规模注册的列型数据库,并且可以执行分布式且简单的操作以提高执行速度。为了在获取数据时不需要进行数据合并,尽可能地将多个数据保留在同一行中。
-
- アーキテクチャ
-
- 結果結合性を採用
-
- キースペース、カラムファミリ、ロウ、カラムの入れ子構造
-
- SQLライクなデータ操作が可能
-
- データの更新は挿入による上書き
- 利用データ
社交媒体数据的地理位置数据存储
实时分析
数据挖掘处理
文件数据库
- 概要
可以使用基于文档的数据库来混合保存各种数据结构的文档。
- アーキテクチャ
将JSON/CML用作数据模型
适合小规模数据的同步汇总处理,但不适合批处理
可进行类似SQL的数据操作,比KVS更丰富的查询使操作更容易
通过Sharding实现数据库的分散化
- 利用データ
半结构化数据(XML/JSON)
大规模网络日志补全等
在线游戏数据
目录管理
内存数据网格
- 概要
在多台服务器的内存上分散管理大量数据,可以实现毫秒级的快速相应处理。
- アーキテクチャ
通过将数据存放在内存中,实现快速数据访问。
通过在多个服务器上进行数据分布式管理。
- 利用データ
在金融交易处理数据中实现毫秒以下的响应时间。
全搜索引擎×分散式数据库
- 概要
使用全文搜索引擎,与分布式数据库协同构建搜索数据库,提取相关度较高的数据并返回。
- アーキテクチャ
Elasticsearch是用于全文搜索的库。它利用了Apache Lucene作为数据存储。它具有高度灵活性和速度的分析能力,可以轻松构建分析、存储和可视化环境。
- 利用データ
半结构化数据(XML/JSON)
高可用全文搜索引擎
在网站内进行数据搜索
实时可视化设备注册状态和发布状态等实时搜索要求/搜索行为的可视化
图数据库
- 概要
在专注于图形运算的数据库中,利用数据之间的连接方式进行搜索和可视化。
- アーキテクチャ
由于采用了图形数据结构,无法像关系型数据库那样进行横向扩展。
随着记录数量的增加,搜索所需的时间和难度也增加。
它保证了ACID特性,并且能够简单地表达对象之间的关联。
- 利用データ
最短路径探索
金融交易的欺诈检测
借助社交网络的关系计算
分散的在线事务处理
- 概要
全球分散且统一合成的数据库。
- アーキテクチャ
关系型数据库和非关系型数据库具备分布式可扩展性,实现高可用性、高性能的事务和强制合成。
- 利用データ
大规模的业务数据处理
Amazon aurora
汇总
如果数据结构简单且易于使用,可以使用NoSQL的键值存储(KVS),宽列存储和文档数据库。
如果需要复杂的数据库处理,则可以使用关系型数据库(RDB)或图数据库。
如果想要专注于搜索功能,则可以使用ElasticSearch。
如果想要将其用作数据仓库(DWH),可以使用Redshift。
如果想要将其用作数据湖,则可以使用S3。