OLTP、OLAP和列式存储数据库

1.OLTP 和 OLAP

1)OLTP:On-Line Transaction Processing联机事务处理过程(OLTP),也称为面向交易的处理过程,其基本特征是前台接收的用户数据可以立即传送到计算中心进行处理,并在很短的时间内给出处理结果,是对用户操作快速响应的方式之一。

2)OLAP:On-Line Analytical Processing,OLAP技术主要通过多维的方式来对数据进行分析、查询和生成报表,它不同于传统的OLTP处理应用。OLTP应用主要是用来完成用户的事务处理,如民航订票系统和银行的储蓄系统等,通常要进行大量的更新操作,同时对响应的时间要求比较高。而OLAP系统的应用主要是对用户当前的及历史数据进行分析,扶助领导决策,其典型的应拥有对银行信用卡风险的分析与预测和公司市场营销策略的制定等,主要是进行大量的查询操作,对时间的要求不太严格。

3)OLTP和OLAP的侧重点:OLTP 系统强调数据库内存效率,强调内存各种指标的命令率,强调绑定变量,强调并发操作;
OLAP 系统则强调数据分析,强调SQL执行市场,强调磁盘I/O,强调分区等;OLTP会有事务的概念,而OLAP则没有。

4)数据仓库。只是一个概念,数据的仓库。搭建数据仓库的技术方案可以是关系型数据库,也可以是列存储。为了通俗理解,可以把数据仓库和OLAP看作一个东西。 
5)商业智能BI。本质还是依赖于数据仓库做支持的,没有数据存储,没有大量数据,无法统计、无法分析。

2.列式存储服务器

1)行式存储按一行一行进行存储数据,列式存储服务器按一列一列存储数据,具体数据结构如下图所示:

OLTP、OLAP和列式存储数据库_第1张图片

2)列式存储和行式存储的优势在于:

  优点 缺点
行式存储 1)数据被保存在一起;
2)INSERT/UPDATE容易
1)选择(Selection)时即使只涉及某几列,所有数据也都会被读取
列式存储 1)查询时只有涉及到的列会被读取;
2)投影(projection)很高效;
3)任何列都能作为索引
1)选择完成时,被选择的列要重新组装;
2)INSERT/UPDATE比较麻烦

 

3)著名的列式存储数据库为:

(1)惠普公司的Vertica
(2)oracle公司Oracle Warehouse Builder的
(3)sybase公司的Sybase IQ/SAPIQ
(4)mysql公司出的Infobright。
(5)Greenplum公司的Greenplum
(6)华为的Carbondata
(7)百度研发给内部使用的palo。
(8)腾讯Hermes
(9)Druid:广告分析,互联网广告系统监控、度量和网络监控。开源免费。
(10)俄罗斯的yandex公司为自己内部统计需要研发的clickhouse。yandex为俄罗斯的"百度"、"百度统计"业务。2016年6月份才开源发布出来。这个文档全,对php语言支持好。性能不弱于百度的palo。

你可能感兴趣的:(数据库)