浅谈数据湖

Posted by 道行尚浅 on September 23, 2019

数据湖的概念

什么是数据湖? 数据湖是一个存储各类数据的大型仓库.本质上来讲,数据湖是数据仓库基于大数据技术的一种实现方式.与传统的,基于关系型数据库技术实现的数据仓库,数据湖再以下几个方面更优秀:

支持海量数据,得益于分布式存储,数据湖可支持海量数据

支持多类数据,数据湖在同时支持结构化数据,半结构化数据与非结构化数据

运算速度快,分布式运算,计算能力可横向扩展.

但同时数据湖也面临如下挑战:

技术实现复杂: 对半结构化,非结构化数据进行处理,需要依赖更复杂的技术,如:图像识别,自然语言处理等

数据整合难度加大:接收的数据来源更为广泛,其中标准不一,需要进行数据整合.

价值密度低:数据的价值隐藏于海量的数据中,单条数据价值较低,需要经过大规模计算才能提取到有价值的数据

湖中数据分类

数据组织形式

结构化数据

结构化数据也称作行数据,是由二维表结构来逻辑表达和实现的数据,严格地遵循数据格式与长度规范.

半结构化数据

具有一定的结构性,但不符合关系模型或其他数据表中的数据,但可以通过标签进行标记,便于程序识别,拆分.典型的半结构化数据为JSON,XML

非结构化数据

数据结构不规则,不完整.最典型的数据为自然语言.

数据属性

模拟信号数据

来源于各类传感器,特点是数据量大,重复较多,数据意义依赖于附属信息:

数据来源 数据标准 数据产生频率 数据量 入湖的日期与时间

如温度监测数据,数值范围较窄,其含义依赖于监测日期,监测地点,单位(摄氏/华氏)等信息.

由于模拟信号数据较多,我们通常通过以下方式进行缩减

  • 切除 : 删除无意义数据,如凌晨车流信息
  • 去重 : 去除重复值
  • 压缩 : 通过对数据进行压缩,减少数据体积
  • 舍入 : 通过舍入,减少数值位数
  • 编码 : 使用较短编码,替代较长的真实值,如使用01替代北京市
  • 聚类 : 对数据进行聚类,只保留聚类结果,删除原始数据.

应用程序数据

数据来源于应用程序特点是,数据价值密度高,数据量较小,数据表达清晰.

应用程序数据多来源于关系型数据库,其主要工作为数据整合,其主要工作内容为:

  • 统一数据单位:对于金额字段,部分系统单位为元,部分系统单位为分,需要统一处理
  • 统一数据格式:对于日期类型,不同系统不同,如(YYYY-MM-DD, YYYY/MM/DD ,DD/MM/YY)

  • 统一数据标记:不同系统中,对同一含义的数据,采用不同的名称,如支付渠道: PAY_TYPE, PAY_CHANNEL,PAY_METHOD

文本数据

多与一个应用程序关联,分析难度较高,分析频率较低,且对数据技术要求较高. 其难点为:

元素提取

拼写转换

简称/代称识别

类别辨认

日期标准化

数据池

为将数据分类,在数据湖内部,建立不同的数据池. 在数据湖中,将数据池分为三层

  • 初始数据池 接受原始数据,并在本层完成数据整合

  • 专用数据池 数据长期存储于此,数据分析也在此层

  • 归档数据池 保存不常被分析,但可能被用到的数据,通常在数据生命周期的最后,将数据移入到归档数据池.

数据池组成

  • 数据池描述:包含数据池的内容,来源

  • 数据池目标:描述数据吃的作用

  • 数据池元数据:描述数据值内部数据结构,数据特征

  • 数据池元过程:描述数据转换,整合信息.

  • 数据池转换标准:描述数据应如何进行转换与整合.

  • 数据池中的数据

数据湖与商业智能

数据湖面临的挑战

虽然数据湖能带来种种的好处,但仍有自身的不足:

  • 数据整合愈发艰难:

    企业将所有应用数据存储于数据湖中,数据的整合,变得愈发艰难,数据整合需要各个应用数据架构师共同完成,也需要花费大量的沟通成本.

  • 数据安全问题:

    数据湖中的数据具有分享性,一个业务系统的数据可被多个部门共享,这样就带来了潜在的数据安全问题.

  • 计算能力仍是瓶颈

    数据湖中,数据量大,涉及的应用多,统算频繁,需要强大的计算能力作为支撑.