一:采集项目&数据仓库项目的区别

  1. 从功能角度:

    1. 采集:以数据为主,传输为主;
    2. 数仓:以数据的计算为主,同时也能存储数据;
  2. 从技术角度:

    1. 采集:flume、kafka、datax、maxwell
    2. 数仓:mysql、hdfs、spark、flink、mr、hive

二:数据库和数据仓库的区别

  1. 从名称上区分:

    1. 数据库:database(基础、核心的数据)
    2. 数据仓库:data warehouse(货栈、大商店、小卖店),注重于对外提供服务
  2. 从数据的来源区分:

    1. 数据库:企业中基础核心的业务数据
    2. 数据仓库:数据库中的数据
  3. 从数据存储的角度区分:

    1. 数据库:核心作用是查找业务数据
      1. 如何存储有利于查询:行式存储(底层使用索引),不能存储海量数据;
    1. 数据仓库:统计分析数据
      1. 如何存储有利于统计、分析:列式存储,可以存储海量数据;
  4. 从数据的价值区分:

    1. 数据库:保障全企业、全业务的正常运行;
    2. 数据仓库:将数据的统计的结果为企业的经营决策提供数据支撑;
      1. 数据仓库不是数据流转的终点,需要将统计的结果通过可视化呈现;

三:数据流转的过程

    1. 用户
    2. 业务服务器
    3. 数据存储:行为数据库(文件)
    4. 数据的统计分析:数据仓库
    5. 数据可视化

四:数据统计分析的基本步骤

  1. 确定数据源;

  2. 加工数据;(可以过滤、补全、脱敏等)

  3. 统计数据;

  4. 分析数据;

    1. spark on hive;(spark 解析 sql)
    2. hive on spark;(hive 解析 sql)

五:数据仓库-架构

如果将数据库(MySQL)直接作为数据仓库的数据源,存在的问题:

  1. 业务数据库的数据存储为行式存储,而数据仓库的数据要求为列式存储;

    1. 数据不能直接对接:行式数据转换为列式数据
  2. 业务数据库中存储的数据不是海量数据,但数据仓库要求为海量数据;

    1. 数据不能直接对接:数据量不够
  3. 数据库不是为数据仓库服务的

    1. 数据仓库在对接数据库数据时,会对数据库的性能造成影响;
    2. 数据仓库应该设计一个自己的数据源;
      1. 同步数据库数据,为了代替和补充数据库;
      2. 汇总数据库数据(海量数据)

六:数据采集和数据仓库-架构

数据仓库中的数据源需要从数据库中周期性(以天为单位)同步;一般情况下,这个同步的过程,称之为“采集”;

数据采集的时候,如果想要将数据同步到数据仓库的数据源,那么就必须知道业务数据库的表结构;那么采集项目和数据仓库项目就存在耦合性,因此需要解耦合,解耦合的核心就在于增加中间件;数据源为文件或者表,因此最好的中间件就是HDFS;

img

img