什么是列式数据库?
列式数据库用于数据库管理系统 ( DBMS ),它有助于将数据存储在列而不是行中。它负责加快返回特定查询所需的时间。它还负责极大地提高磁盘 I/O 性能。它有助于数据分析和数据仓库。列式数据库的主要动机也是有效地读写数据。以下是列式数据库的一些示例,例如 Monet DB、Apache Cassandra、SAP Hana、Amazon Redshift。
列式数据库 VS 行式数据库:
列式和行式数据库都是用于处理大数据分析和数据仓库的几种方法。但他们的方法彼此不同。
例如:
- 行数据库:“客户 1:姓名、地址、位置。”(每条新记录的字段存储在一个长行中)。
- 列式数据库:“客户 1:姓名、地址、位置。”(每个字段都有自己的一组列)。
例子:
这是一个具有四列和三行的简单数据库表的示例。ID Number Last Name First Name Bonus 534782 Miller Ginny 6000 585523 Parker Peter 8000 479148 Stacy Gwen 2000
在列式 DBMS 中,存储的数据采用以下格式:
534782, 585523, 479148; Miller, Parker, Stacy; Ginny, Peter, Gwen; 6000, 8000, 2000.
在面向行的 DBMS 中,存储的数据采用以下格式:
534782, Miller, Ginny, 6000; 585523, Parker, Peter, 8000; 479148, Stacy, Gwen, 2000.
何时使用列式数据库:
- 只涉及几列的查询。
- 压缩,但仅限列。
- 针对大量数据的集群查询。
列式数据库的优点:
- 列式数据库可以用于不同的任务,例如当与大数据相关的应用程序发挥作用时,面向列的数据库在这种情况下会受到更大的关注。
- 列式数据库中的数据具有高度可压缩的性质,并且具有不同的操作,如(AVG)、(MIN,MAX),这些都是压缩所允许的。
- 效率和速度:在列式数据库中执行分析查询的速度更快。
- 自索引:基于列的 DBMS 的另一个好处是自索引,与包含相同数据的关系数据库管理系统相比,它使用的磁盘空间更少。
列式数据库的局限性:
- 对于加载增量数据,与面向列的数据库相比,传统数据库更相关。
- 对于在线事务处理 (OLTP) 应用程序,面向行的数据库比列式数据库更合适。