存在的意义

数据库 架构 MPP 数据仓库mpp_分库分表


传统的数据仓库和大数据仓库

传统数据仓库由关系型数据库组成MPP(大规模并行处理)集群
缺点:
存储位置不透明:通过Hash确定物理存储位置,查询任务在所有节点都执行
扩展性有限:不同库之间交互对网络压力很大,分库分表也有上限,分库分表越多性能就越差。分布式事务实现会导致扩展性下降
热点问题/单点瓶颈:分库分表后,可能发生热点数据都在同一节点情况下。改节点容易发生宕机和超时等异常情况

大数据仓库
利用大数据天然的扩展性,完成海量数据的存放。
多副本存储可以解决单点问题,调度和计算拆分,数据共享,单节点可以局部运行
将SQL转为大数据计算引擎任务,完成数据分析
困难:
SQL支持率,分布式事务支持

数据库 架构 MPP 数据仓库mpp_数据_02


数据库 架构 MPP 数据仓库mpp_数据_03


数据库 架构 MPP 数据仓库mpp_数据_04

数据仓库架构

架构

数据库 架构 MPP 数据仓库mpp_分库分表_05


ETL

数据库 架构 MPP 数据仓库mpp_数据仓库_06


数据库 架构 MPP 数据仓库mpp_数据库 架构 MPP_07


数据库 架构 MPP 数据仓库mpp_数据库 架构 MPP_08


ETL 工具

结构化数据工具:Sqoop,Kettle,Datastage,Informatica,Kafka
非/半结构化数据工具:Flume,Logstash

数据库 架构 MPP 数据仓库mpp_分库分表_09


数据库 架构 MPP 数据仓库mpp_数据库 架构 MPP_10


数据库 架构 MPP 数据仓库mpp_数据仓库_11


数据库 架构 MPP 数据仓库mpp_分库分表_12

建模

数据库 架构 MPP 数据仓库mpp_数据库 架构 MPP_13


数据库 架构 MPP 数据仓库mpp_分库分表_14


ROLAP

数据库 架构 MPP 数据仓库mpp_数据库 架构 MPP_15


数据库 架构 MPP 数据仓库mpp_数据库 架构 MPP_16


数据库 架构 MPP 数据仓库mpp_数据仓库_17


数据库 架构 MPP 数据仓库mpp_数据_18


数据库 架构 MPP 数据仓库mpp_数据_19


数据库 架构 MPP 数据仓库mpp_分库分表_20


MOLAP

数据库 架构 MPP 数据仓库mpp_分库分表_21


常见的MOLAP产品:Kylin,Druid多维分析

数据库 架构 MPP 数据仓库mpp_数据_22


数据库 架构 MPP 数据仓库mpp_数据仓库_23


数据库 架构 MPP 数据仓库mpp_数据_24


数据库 架构 MPP 数据仓库mpp_数据_25

表类型

数据库 架构 MPP 数据仓库mpp_分库分表_26


数据库 架构 MPP 数据仓库mpp_数据库 架构 MPP_27


具体事实表

数据库 架构 MPP 数据仓库mpp_数据_28


数据库 架构 MPP 数据仓库mpp_数据_29


数据库 架构 MPP 数据仓库mpp_数据仓库_30


累积快照事实表实现方式

数据库 架构 MPP 数据仓库mpp_数据仓库_31


数据库 架构 MPP 数据仓库mpp_数据_32

方式三更实用,减少冗余数据的情况

ETL策略

数据库 架构 MPP 数据仓库mpp_数据_33

案例

简单架构例子

数据库 架构 MPP 数据仓库mpp_分库分表_34

数据库 架构 MPP 数据仓库mpp_数据库 架构 MPP_35