什么是列式存储数据库?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是列式存储数据库?相关的知识,希望对你有一定的参考价值。

列式数据库是以列相关存储架构进行数据存储的数据库,主要适合与批量数据处理和即席查询。
GBase 8a 分析型数据库的独特列存储格式,对每列数据再细分为“数据包”。这样可以达到很高的可扩展性:无论一个表有多大,数据库只操作相关的数据包,性能不会随着数据量的增加而下降。通过以数据包为单位进行 I/O 操作提升数据吞吐量,从而进一步提高I/O效率。

由于采用列存储技术,还可以实现高效的透明压缩。
参考技术A 列式数据库是以列相关存储架构进行数据存储的数据库,主要适合于批量数据处理和即时查询。相对应的是行式数据库,数据以行相关的存储体系架构进行空间分配,主要适合于小批量的数据处理,常用于联机事务型数据处理。简介 列式数据库是以列...

[1]Clickhouse列式存储的明日之星: 概述和安装

概述

ClickHouse 是一个列式存储库,可以用于online analytical processing (OLAP),其可以用来快速生成报表,属于NoSQL的一种。什么是列式存储,比如下面的数据,在传统的SQL数据库里面,比如Oracle,MySQL,PostgreSQL,其是用下面的这种方式存储,其查询的时候是一行一行扫描遍历的,这就是为什么对有些字段建立了索引后,其效率会大大提高的原因,因为其相当于字典前面的索引,大大提高了行扫描的效率。

但是,上面的存储结果在有些情况下,效率是很低的,比如有一亿条上面类似的数据,如果要统计GoodEvent的总数是多少,那么就要扫描一亿记录;效率大大降低;这在一些报表和统计场景下是不可接受的;所以后面就出现了列式存储,同样的数据,其存储方式是按列进行归类的。

把其同类型的数据放在一起。这样在统计某些信息的时候,效率大大提高!

经过实际的测试,Clickhouse比其他同类产品的速度快100-1000倍;目前市面的列式存储的数据库产品有:

  • Vertica
  • Paraccel (Actian Matrix and Amazon Redshift),
  • Sybase IQ
  • Exasol
  • Infobright
  • InfiniDB
  • MonetDB (VectorWise and Actian Vector)
  • LucidDB
  • SAP HANA
  • Google Dremel
  • Google PowerDrill
  • Druid
  • kdb+.

其官方网站为https://clickhouse.com;ClickHouse是一款开源软件,开源协议是Apache-2.0 License;其Github的地址为https://github.com/ClickHouse/ClickHouse,是基于C/C++写的,从目前Github上面的热度来看,其已经有21.1k点赞;相对来说已经非常多了!目前到2021年为止已经估值20亿美金。

安装

Clickhouse的安装相对来说比较简单。下面以CentOs操作系统为例

sudo yum install yum-utils
sudo rpm --import https://repo.clickhouse.com/CLICKHOUSE-KEY.GPG
sudo yum-config-manager --add-repo https://repo.clickhouse.com/rpm/clickhouse.repo
sudo yum install clickhouse-server clickhouse-client

sudo /etc/init.d/clickhouse-server start
clickhouse-client

执行完最后一条命令的时候,其会进入客户端控制台,默认端口是9000

之后,可以执行SQL语句,比如显示当前里面有哪些数据库

iZ2zed2xwj1m0dde6h89oxZ :) show databases

SHOW DATABASES

Query id: a281968c-bb99-4ab7-b69b-55d0e6f5ad2d

┌─name───────────────┐
│ INFORMATION_SCHEMA │
│ default            │
│ information_schema │
│ system             │
└────────────────────┘

4 rows in set. Elapsed: 0.002 sec.

其语法参考文档为: https://clickhouse.com/docs/en/sql-reference/statements/create/database/

后记

这篇文章就暂时到这里,接下来会详细描述,其SQL语句的一些语法,请继续关注!

以上是关于什么是列式存储数据库?的主要内容,如果未能解决你的问题,请参考以下文章

什么是列式数据库?

什么是行式数据库,什么是列式数据库

彻底理解大数据的列式存储

彻底理解大数据的列式存储

HBase 真的是列式数据库吗?

几张图看懂列式存储(转)