乐趣区

关于java:clickhouse专栏数据库数据仓库之间的区别与联系

从本篇文章开始,笔者打算写一个系列的《clickhouse 专栏》,其全称是Click Stream,Data WareHouse,简称 ClickHouse。从其全称中的“Data WareHouse”,咱们能够看出 clickhouse 的定位是数据仓库。那么“数据仓库”和“数据库”有什么区别呢?了解这点这很重要,了解了二者的区别,你就能够正确的将 clickhouse 用到其适合的利用场景。

一、OLTP 与 OLAP

在了解 ” 数据仓库 ” 与“数据库”的区别之前,咱们须要先阐明两个术语,即:OLTP 与 OLAP。

  • OLTP(on-line transaction processing)联机事务处理:通常指的是面向传统应用服务的关系型数据库,用户通过 web 界面操作实时“增删改查”数据库外面的数据。蕴含外围的根本的事务处理逻辑,用户对于性能的要求很高,用户点击界面之后,响应工夫最低要求在 5 秒之内(通常 3 秒以内),同时须要反对比拟高的用户并发度。OLTP 的数据操作通常面向的是 1 条或几条大量数据,比方:用户下单操作该用户的购物车、领取记录、积分记录等大量数据。
  • OLAP(On-Line Analytical Processing)联机剖析解决:面向的利用次要是执行简单的数据分析操作,侧重于决策撑持,通过图形报表展示直观易动的数据分析后果。对于响应工夫的要求绝对宽松,数据分析过程通常不反对用户高并发,但数据分析的后果反对用户的高并发拜访。OLAP 面向的通常是批量数据操作,数据按批次进行导入、剖析等操作,OLAP 零碎通常联合 ETL(抽取(extract)、转换(transform)、加载(load))零碎进行应用。

了解下面的两个数据,剩下的就简略多了,数据库通常面向 OLTP 操作,数据仓库通常面向 OLAP 操作。OLTP 侧重于保留及变更数据的以后状态,而数据仓库侧重于保留数据的历史存档。比方:用户银行转账,OLTP 数据库侧重于治理用户以后账户里的残余金额,和转账过程对方账户金额入账的数据一致性;而 OLAP 数据仓库侧重于记录谁进行了转账、转了多少钱、钱转到了哪里。历史上该用户习惯在什么工夫转账,月初还是月末?一个月转账几次?

二、数据仓库的特点

上面的是数据仓库的几个典型特点:

  • 关注于记录数据变动的过程,而不是数据以后的状态。
  • 读多写少
  • 大宽表
  • 数据批量操作,不更新或很少更新
  • 不反对事务

有的工作教训绝对少的敌人看了这几条会说:“这哪是什么特点,这都是毛病啊!”。不更新或很少更新,读多写少都是场景限度,大宽表毁坏数据库设计范式,不反对事务那还叫什么数据库?其实不然,在 OLAP 的场景下,这些恰好是它为了保障数据分析的性能所进行非凡设计的特点。我给大家举几个例子:

  • 比方:某云厂商按周期采集服务器的运行指标,比方:内存使用率、CPU 使用率等等。这些指标都是批量采集、批量入库的,一旦入库就不会再去批改。通常也不会将内存指标建设一张表、CPU 使用率建一张表,而是对于同一机房的服务器建一张表,这张表以工夫维度蕴含各种指标。比方:查问内存使用率 >80,CPU 使用率 >70 的服务器的时候,就不会两表关联查问了,查问一张宽表就能够了,数据分析的性能飞跃式晋升。不反对事务,通常 OLAP 零碎不反对事务,因为事务会在肯定水平上影响数据操作的性能。数据入库之后,须要针对这些指标一直地进行剖析、开掘,即:读多写少,基本上就批量写一次后续都是读数据操作。
  • 又比方:股票实时交易数据,关注于记录数据变动的过程,而不是数据以后的状态。所有股票的所有历史数据一旦进入数据仓库之后,就不会产生批改。能够进行股票量化交易剖析。
  • 又比方:用户商品点击量数据、用户操作行为数据、用户网页浏览时长数据等等,这些数据都是对用户进行剖析所须要的数据,一旦入库不会批改。能够进行用户交易志愿行为剖析。

其实还有很多这种类型的数据,这种数据的特点就是:数据量大、产生之后不会发生变化(那一个工夫刻度的数据就不会发生变化)。因而,数据仓库通常面向的是吞吐量大的历史数据进行存档、不会在做更新删除操作的这种数据场景,数据存档之后通常只面向数据查问剖析。

三、数据库与数据仓库联合应用

通常一个较大型的应用服务零碎,既有数据库,也有数据仓库。数据库面向用户进行联机事务处理,解决用户界面的实时操作。数据仓库的数据面向决策管理层,提供数据及图形报表,提供变动多样的数据分析决策。

上图是一个典型的数据库与数据仓库同时存在的应用服务场景

  • 互联网用户通过应用服务产生用户行为,对数据库进行 OLTP 操作
  • 应用服务把用户的操作的行为发送给音讯队列,音讯队列将数据导入数据仓库
  • 数据库的数据能够通过 ETL 抽取、解决、转换、整合到数据仓库
  • 决策分析零碎次要面向数据仓库进行数据分析,数据分析后果能够回馈到数据库,通过应用服务面向互联网用户提供数据分析后果查看能力
  • 决策分析零碎同时对应用服务的决策管理者,提供数据分析决策撑持能力

举荐浏览

限于博文篇幅,更多精彩内容我就不一一列举了,举荐浏览
《原创精品视频及配套文档:springboot- 已录制 97 节(收费)》
等等等等

退出移动版