数据湖的概念
什么是数据湖? 数据湖是一个存储各类数据的大型仓库.本质上来讲,数据湖是数据仓库基于大数据技术的一种实现方式.与传统的,基于关系型数据库技术实现的数据仓库,数据湖再以下几个方面更优秀:
支持海量数据,得益于分布式存储,数据湖可支持海量数据
支持多类数据,数据湖在同时支持结构化数据,半结构化数据与非结构化数据
运算速度快,分布式运算,计算能力可横向扩展.
但同时数据湖也面临如下挑战:
技术实现复杂: 对半结构化,非结构化数据进行处理,需要依赖更复杂的技术,如:图像识别,自然语言处理等
数据整合难度加大:接收的数据来源更为广泛,其中标准不一,需要进行数据整合.
价值密度低:数据的价值隐藏于海量的数据中,单条数据价值较低,需要经过大规模计算才能提取到有价值的数据
湖中数据分类
数据组织形式
结构化数据
结构化数据也称作行数据,是由二维表结构来逻辑表达和实现的数据,严格地遵循数据格式与长度规范.
半结构化数据
具有一定的结构性,但不符合关系模型或其他数据表中的数据,但可以通过标签进行标记,便于程序识别,拆分.典型的半结构化数据为JSON,XML
非结构化数据
数据结构不规则,不完整.最典型的数据为自然语言.
数据属性
模拟信号数据
来源于各类传感器,特点是数据量大,重复较多,数据意义依赖于附属信息:
数据来源 数据标准 数据产生频率 数据量 入湖的日期与时间
如温度监测数据,数值范围较窄,其含义依赖于监测日期,监测地点,单位(摄氏/华氏)等信息.
由于模拟信号数据较多,我们通常通过以下方式进行缩减
- 切除 : 删除无意义数据,如凌晨车流信息
- 去重 : 去除重复值
- 压缩 : 通过对数据进行压缩,减少数据体积
- 舍入 : 通过舍入,减少数值位数
- 编码 : 使用较短编码,替代较长的真实值,如使用01替代北京市
- 聚类 : 对数据进行聚类,只保留聚类结果,删除原始数据.
应用程序数据
数据来源于应用程序特点是,数据价值密度高,数据量较小,数据表达清晰.
应用程序数据多来源于关系型数据库,其主要工作为数据整合,其主要工作内容为:
- 统一数据单位:对于金额字段,部分系统单位为元,部分系统单位为分,需要统一处理
-
统一数据格式:对于日期类型,不同系统不同,如(YYYY-MM-DD, YYYY/MM/DD ,DD/MM/YY)
- 统一数据标记:不同系统中,对同一含义的数据,采用不同的名称,如支付渠道: PAY_TYPE, PAY_CHANNEL,PAY_METHOD
文本数据
多与一个应用程序关联,分析难度较高,分析频率较低,且对数据技术要求较高. 其难点为:
元素提取
拼写转换
简称/代称识别
类别辨认
日期标准化
数据池
为将数据分类,在数据湖内部,建立不同的数据池. 在数据湖中,将数据池分为三层
-
初始数据池 接受原始数据,并在本层完成数据整合
-
专用数据池 数据长期存储于此,数据分析也在此层
-
归档数据池 保存不常被分析,但可能被用到的数据,通常在数据生命周期的最后,将数据移入到归档数据池.
数据池组成
-
数据池描述:包含数据池的内容,来源
-
数据池目标:描述数据吃的作用
-
数据池元数据:描述数据值内部数据结构,数据特征
-
数据池元过程:描述数据转换,整合信息.
-
数据池转换标准:描述数据应如何进行转换与整合.
-
数据池中的数据
数据湖与商业智能
数据湖面临的挑战
虽然数据湖能带来种种的好处,但仍有自身的不足:
-
数据整合愈发艰难:
企业将所有应用数据存储于数据湖中,数据的整合,变得愈发艰难,数据整合需要各个应用数据架构师共同完成,也需要花费大量的沟通成本.
-
数据安全问题:
数据湖中的数据具有分享性,一个业务系统的数据可被多个部门共享,这样就带来了潜在的数据安全问题.
-
计算能力仍是瓶颈
数据湖中,数据量大,涉及的应用多,统算频繁,需要强大的计算能力作为支撑.