《大数据湖最佳实践》读书笔记

本书论述了数据湖基础知识,如基本架构、与数仓的对比、数据存储、元数据处理、数据访问控制等,读完能够让你对数据湖技术有一个概述性的认知。

笔记按章节整理如下:
《大数据湖最佳实践》读书笔记_第1张图片

一 数据湖概述

  • 数据湖的演化成熟度:数据水洼、数据池、数据湖、数据洋。陷入数据黑洞的数据沼泽。

  • 规划数据湖:针对不同人群的数据服务层以及对应的数据权限访问控制,原始区、产品区、工作区、敏感区

  • 数据查找:在减少数据冗余的同时能够让使用者快速查找到自己需要的数据,保持数据完整性,建立数据索引目录,类似于Hadoop NameNode

基于云的数据湖搭建优势

  • 动态扩展方便,弹性计算易于应对短暂峰值计算(如双十一订单处理)
  • 维护简单
  • 节约成本

二 历史背景

数据分析的历史背景ROLAP-》OLAP

数仓常见生态

  • ETL、ELT
  • MPP(大规模并行处理)
  • 维度表(实体)与事实表(实体的活动事件)
  • 维度建模:kimball工具、维度一致性、维度整合与拆分、维度层次
  • 缓慢变化维的处理:覆盖、插入行、插入列
  • 列式存储、数据联邦、数据虚拟化工具(实体表与视图)

数据组织与管理

  • 数据质量管理工具与规则:针对标量、字段、记录、数据集、跨数据集等不同数据粒度进行数据规则限定以保证摄入数据符合预期。而在涉及到缺失值时亦会用到数据剖析技术以进行数据可用性分析
  • MDM主数据管理:实体数据清单如客户、订单实体,在数据合并时要确保两边数据实体属性相统一
  • 数据建模工具:针对OLTP和OLAP两种典型场景进行不同方向的建模分析,如OLTP的外键约束(引用完整性)、OLAP的反范式设计
  • 元数据仓库运用场景:数据资产搜索、数据血缘(数据朔源)、影响分析
  • 数据治理工具:记录数据用途和血缘,定义访问管理、文档或元数据和生命周期管理策略。

数据消费

  • 分析师运用不同的数据分析工具如BI、报表对数据进行分析运用。
  • 常见的统计、预测模型(如机器学习算法)分析

三 大数据与数据科学概述

Hadoop生态体系及其在数据湖中的运用

  • Hdfs、Hive、Hbase
  • Schema on read
  • 数据安全:Ranger(Apache)、Sentry*
  • 数据采集:Sqoop、Flume
  • 数据治理:Atlas、Navigators

机器学习

  • 可信数据集的重要性
  • 算法模型可解释性
  • 变更管理:数据预测漂移检测与模型变更

四 建立数据湖

基于Hadoop体系建立数据湖的好处

  • Hadoop有一套得天独厚的数据处理生态体系:从数据存储、计算、治理、任务调度都有原生契合的工具组件。
  • 成本低廉
  • 模块化
  • 极具拓展性
  • 松散Schema耦合

问题解决

  • 数据水洼扩散导致数据孤岛
  • 建立中心化数据湖

注意点

  • 充分利用Hadoop大数据体系优势,同时结合当下新兴适用技术
  • 充分利用数据科学理念

策略

  • 迁移已有数据到数据湖
  • 为新项目建立数据湖
  • 建立数据治理中心
  • 注意在不同的阶段选择适用的策略

五 数据仓库与数据湖

数仓的基本功能及其局限性

  • 以高性能分析目的数据组织
  • 以一致性方式分析多源数据
  • 保持历史分析准确性:缓慢渐变维的维护(拉链表)
  • ETL中数据定义整合
  • 多源数据整合
  • 数仓作为历史数据库丢失了许多细节,而考虑到不同的数据粒度又增加了数据管理成本

迁移到数据湖及其演化

  • 利用快照方式维护缓慢渐变维,支持灵活Schema
  • 数据湖包含比数据仓库更多、更原始的数据
  • Lambda架构适用于数据湖不同场景的数据分析
  • 数据湖数据亦可作为数仓、业务数据存储、实时运用程序的数据源
  • 数据湖可提供比数仓更加灵活、多样化的服务

六 自助服务优化

  • 传统数仓模型方式下分析师需要向IT传达业务逻辑,从需求分析、开发,再到最终报表出炉需经历漫长项目周期,时效性受限。而自助服务将IT瓶颈从中移除。

业务分析过程及其注意点

  • 数据查找与理解

    • 企业数据归档
    • 没人理解所有数据而导致了部落知识,需要众包部落知识并提供给每个人,同时自动为数据集添加注释
    • 数据质量问题:(参照)完整性,ID唯一性,数据类型、区间、格式合理性等
    • 数据血缘:起源、处理过程追溯。业务级、数据集(技术、转换)、字段级血缘。Filter、Join、Function。
    • 数据监管:DMA、DBA
  • 数据预置

    • 获得数据使用权限或物理数据获取
    • 建立数据目录,让需要的用户申请访问,届时检查对应权限组
  • 预处理

    • 记录数据处理环节的每一过程并使其运用于数据血缘管理
    • Trifacta数据预处理工具
  • 分析与可视化

    • 新的数据分析工作流下,IT从门卫向店主的角色转变。
    • IT需要开发的是各种具有可让分析师定制化的数据服务工具,将各种服务进行以封装、使得业务开发变得简单到非IT人员(分析师)也可以自行定制数据分析服务。回想一下2019年阿里系的面试,他们做的各种UI其实就是在提供这种服务。
  • 在自助服务下,关键业务依旧由IT遵循严格的数仓模型开发,但一些非关键业务由分析师自行灵活DIY。

七 数据湖架构

数据规划与分区

  • 原始区:通常用于保存采集的原始数据(Landing),也称为临时区。通常存放在文件系统。一般专业人员才能访问。
  • 产品区:由原始区经过简单数据预处理,其可用于各项目组直接取用,此处数据一般不发生变更,若有变更也是由工作区摄入而后回写到产品区。此处通常有较好的文档说明和元数据管理
  • 工作区:也称开发、项目区,大多数数据分析发生在这里,通常反映了组织架构。因为保存了大量的数据中间结果,此处的文档往往不完善,同时其也是最大的一个区。
  • 敏感区:由于监管或业务需求而创建,仅有授权人员才可访问,涉及到PII Column数据还需要加密(脱敏),参考DataMask。注意Join key为PII时需要采用相同的加密策略确保得到相同加密结果。

多数据湖

  • 由于受监管、组织壁垒、可预测性等划分限制,需要将不同区域、来源、分析目的的数据分放在不同的数据湖里,从而导致了多数据湖。
  • 在条件允许的情况下,合并多数据湖可以减少数据冗余和数据管理成本。

云上数据湖

  • 云上数据湖可以获得更加灵活弹性的计算,1000台机器用2小时和10台机器用200个小时的价格是一样的。以更低的成本、更高的效率应对峰值数据计算
  • 缺点:数据计算需求较为稳定,数据机密性、安全性要求较高的情况下不建议使用云。私有云或可考虑?

虚拟数据湖

  • 数据联邦:以视图的方式提供一个统一的接口,摄取、处理来自不同系统的数据。以目前的技术,大数据场景下几乎不可能实现
  • 大数据虚拟化:创建一个庞大的数据目录,可将来自不同源的数据物理复制到数据湖中进行处理,而后生成Hdfs文件。相对于数据联邦,多了数据复制。
  • 消除冗余:数据冗余与完整性往往互相对立,而是用虚拟数据湖的逻辑目录方式有可能解决这一问题;数据在需要时才会导入到数据湖。根据数据目录可以准确识别各个数据集市的功能,对一些不再需要的、可合并的数据集进行下线。

八 数据湖元数据

数据组织问题

  • 数据湖中存在大量数据,若是没有对这些数据进行很好地分类编排,数据的取用困难,很容易形成数据沼泽。而面对百万级以上的数据,人工编排成本高昂且难于实现。自动化数据打标、目录编排就变得尤为重要。
  • 凭借元数据需要了解到数据概况
  • 分析师需要知道数据来源

技术元数据

  • 数据剖析:一种数据模型可以有多种表结构描述方式,清晰的表结构定义及字段命名尤为重要
  • 剖析结构数据:如何无损的解析Json、Xml这种具有层次结构的数据?

业务元数据

  • 词汇表
  • 分类法:运用门类纲的自上而下分类法,在针对大众分类方式中,同一种类别在不同的团队、行业角色中可能具有不同的名词,可以按照不同的领域创建标签。如此一个数据湖中可能针对一份数据集有着多个标签。
  • 实体论:类似于ER图,表述了实体及其互相之间的关系,如拥有、一一对应、属于等等

数据标签

  • 自动编目:利用Alation、Informatica、Waterline Data等工具结合机器学习进行自动打标,必要时由人工进行审核。上述工具可爬取Hadoop集群和关系数据库数据,进而为每一个字段建立指纹信息(名称、内容、剖析信息)
  • 核心数据进行人工打标

九 数据访问控制

数据湖数据存储特性

  • 数据变更相对频繁
  • 数据平滑导入:通常数据的导入不会做太多的处理,而是原样存储
  • 敏感数据处理:个人信息(PII)之类的数据需要进行加密保护
  • 数据挖掘的探索性:在预测性数据研究中,数据分析人员有时并无法准确知道哪些数据是自己需要的,故而急需完善数据目录的支持

授权与访问控制

  • 人工授权访问:数据往往分门别类放置,其应该让需要的人有权限进行访问。项目运用中常常使用权限组管理,如项目ID,需要的人员可以通过申请权限组账号登录许可,从而获取对应数据目录树下所有数据的访问权限。而海量数据下,人工处理成本高昂,且很难保证数据集中敏感数据得到了相应处理。
  • 数据标签控制:由于上述人工授权的高成本及高风险性,衍生了基于标签的横向数据访问控制;数据入湖未分类之前进入隔离区,而后由人工设置标签策略运用于Cloudera Navigator或Apache Ranger,进而实现基于标签的数据访问控制。而人工检测PII数据是困难的,故引入自动化敏感数据扫描,如运用Informatic、Waterline Data和Dataguise等工具自动对导入数据进行扫描并添加标签。

数据脱敏与主权

  • 为了能够针对访问敏感数据,需要对其进行适当加密,如透明加密、显式加密
  • 透明加密:写入磁盘时自动加密,读取时自动解密。可防止有人绕过权限控制直接访问磁盘数据。
  • 显式加密:看到的数据也为密文
  • 数据主权与法规:有的国家不允许机构将本国数据复制、存储到别国。

自助服务访问管理与数据预制

  • 数据拥有者将数据描述信息发布到数据目录中,分析运用人员进行检索,并在需要的时候提交数据访问申请,再由数据拥有者和相关管理人员审核通过后授予访问权限。
  • 因为上述数据访问申请者需要的可能只是数据表在某段时间的某些列,故将所需数据暴露即可,通常采用视图的方式减少数据复制带来的额外存储成本。
  • 一般而言,无额外操作的情况下,访问权限申请到期后自动关闭。

你可能感兴趣的:(Bigdata,数据湖)