• 《大数据分析-数据仓库项目实战》--阅读笔记


    本文是《大数据分析-数据仓库项目实战》阅读笔记。 内容全部摘抄于本书。
    算入门教材、文中有大量软件的安装步骤、对技术细节未过多涉及。

    前言描述

    大数据时代,需要考虑数据的采集、存储、计算处理等方式。

    数据仓库建模方式:确定业务过程、声明粒度、确定维度、确定事实

    采集:Flume、kafka、Sqoop
    存储:MySQL、Hadoop、HBase
    计算:Hive、Tez
    查询:Presto、Druid、Kylin
    可视化:Superset
    任务单调动:Azkaban
    元数据管理:Atlas
    脚本:Shell


    第1章 大数据与数据库概论

    大数据生态圈

    一切行为几乎都可以用数据来描述
    在这里插入图片描述

    数据采集过程的调整:

    1. 数据源多种多样
    2. 数据量大且变化快
    3. 如何保障数据采集的可靠性
    4. 如何避免采集重复的数据
    5. 如何保证采集的数据的质量

    现在主流的数据采集传输工具: Sqoop、Flume、DataX

    目前广泛数据仓库分层: 大致分为原始数据层、明细数据层、汇总数据层和应用数据层

    数据仓库概论

    数据仓库:Data Warehouse (简称:DW、DWH)

    数据仓库的特点:面向主题、数据是集成、不可更新、随着时间不断变化

    第2章 项目需求描述

    在数据仓库领域有一个概念叫Ad hoc queries,中文一般翻译为“即席查询”。即席查询是指那些用户在使用系统时,根据自己当时的需求定义的查询

    系统功能结构: 数据采集、数据仓库平台、数据可视化和即席查询
    在这里插入图片描述
    数据采集:对数据进行清洗、转义、分类、重组、合并、拆分、统计。对数据进行合理分层。

    系统流程图

    在这里插入图片描述

    数据采集模块(断点续传、实现数据消费 “at least once”)

    数据仓库需求之分层

    ODS:operation data store 原始数据层
    DWD: Data warehouse Detail,明细数据层。(对ODS层数据进行清洗,去处空值、脏数据、超过极限范围的数据)
    DWS:Data warehouse Service (轻度汇总、一般聚集到以用户当日、设备当日等)
    DWT:Data warehouse topic:主题数据层。 (对DWS层的进一步聚合)
    ADS:application Data store: 数据应用层

    需求实现

    电商平台的数据分析(关注点: 活跃用户量、转化、留存、复购、GMV成交金额; 以及三大关键思路:商品运营、用户运营和产品运营)

    技术选型

    Flume: 高可用、高可靠、分布式的海量数据收集系统,可以从多种数据源系统采集、聚集和移动大量的数据并集中存储。
    Kafka:提供容错存储、高实时性的分布式消息队列平台。 可以应用和处理系统见高实时性和高可靠性的。(实时性流式计算)
    Sqoop: 用于关系型数据库与HDFS之间的传输数据
    HDFS:是hadoop的分布式文件系统。
    Hive:是基于Hadoop的数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供SQL查询功能
    即席查询:Presto基于内存计算、Druid优秀懂得时序数据处理引擎、Kylin基于预Cub创建计算

    第3章 项目环境准备

    远程终端管理: PuTTY、SecureCRT

    第4章 用户行为数据采集模块

    Flume组建: Flume整体上是 Source-Channel-Sink的三层,其中Source层完成对日志的收集、将日志封装成event传入Channel层,Channel层提供队列的功能,对Source层传入的数据提供简单的缓存从哪个,Sink层取出Channel层的数据,将数据送入存储文件系统中。

    Fulme的ETL拦截器和日志类型区分拦截器

    各种软件安装, 略。

    第5章 业务数据采集模块

    Sqoop是一个用于将关系型数据库和Hadoop中的数据进行转义的工具,可以将一个关系型数据库(MySQL、Oracle)中的数据导入hadoop(HDFS、Hive、HBASE),也可以反过来

    数据同步策略:

    1. 每日全量同步
    2. 每日新增同步
    3. 每日新增和变化同步
    4. 拉链表 (对新增以及变化进行定期合并,增加一个时间段)

    第6章 数据仓库搭建模块

    数据仓库(Data warehouse)是一个面向主题(Subject oriented)、集成(Integrate)、相对稳定(No-Volatile)、反映历史变化(Time Variant)的数据集合

    使用范式的目的:减少数据冗余、尽量让每个数据只出现一次、保证数据的一致性

    在维度建模的基础上: 有三种模型:星型模型、雪花模型、与星座模型。
    星型模型: 当所有维度表都直接连接到事实表上,这个图就像星星一样。
    雪花模型: 当有一张或者多张维度表没有直接连接到事实表上,而通过其他维度表连接到事实表上时。是对星型模型的扩展。 去处了数据冗余,比较靠近第三范式,但无法遵守,原因是成本太高

    数据仓库搭建环境

    Hive是一款用类SQL语句来协助读、写、管理那些存储在分布式存储系统上的大数据集的数据仓库软件。 Hive可以将SQL语句解析成MapReduce程序。

    MySQL HA: 基于Keepalive的的MySQL的HA。Keepalived是基于VRRP的一款高可用软件。

    其中Hive内置了对JSON解析操作的函数

    UDF: user-defined function 用户自定义函数

    对导入的数据注意分区存储,避免全局扫描

    拉链表:是维护历史状态以及最新状态数据的一种表,用于记录每条信息的生命周期

    第7章 数据可视化模块

    superset 是一个开源的、现代化的、轻量级的BI分析工具、能够对接多种数据源、拥有丰富的图标展示形式、支持自定义仪表盘,拥有友好的用户界面,十分易用

    Superset 是Python编写的web应用

    第8章 即席查询模块

    分别以Presto、druid、Kylin

    Presto: 是facebook推出的一个开源的分布式SQL查询引擎,数据规模支持GB和TP,主要用于处理秒级查询的场景

    Presto: 是基于内存的,减少了IO,它能链接多个数据源进行连表查询。虽然能处理PB级的海量数据,但Presto并不能把PB级的数据都放在内存中进行计算

    Druid: 是一个高性能的实时分析数据库,它在PB级数据处理,毫秒级查询,数据实时处理方面,比传统的OLAP系统有显著的性能提升。

    列式存储、可扩展的分布式、大规模并行查询

    Kylin:分布式分析引擎,在亚秒内查询巨大的Hive表

    总结

    粗略的对整个大数据的部分技术做了一个简单的了解。对其中的具体实现并未逐步操作(实际上并不需要)、整体的方案更加偏向离线计算分析、对实时计算的部分基本没有、算是一本入门科普教材。

    注意:本文中描述了大量软件的安装过程,如果想进行实际操作的可以跟着操作,步骤详细。

    整体的内容围绕下面两幅图展开的:
    在这里插入图片描述

    在这里插入图片描述

  • 相关阅读:
    redis缓存三大问题及内存满了该怎么办
    三道动态规划题-最长的有效括号、组合总和I、组合总和II
    一文带你快速搭建框架(最全MyBatis笔记)
    echarts画电压线
    无线耳机哪款佩戴舒适?佩戴最舒适的骨传导蓝牙耳机
    使用cpolar优化树莓派上的网页(2)
    二、爬虫-爬取肯德基在北京的店铺地址
    java毕业设计人人小说系统(附源码、数据库)
    Scala函数定义与使用
    【无标题】
  • 原文地址:https://blog.csdn.net/qq_31156277/article/details/127945393