一、回顾几个定义
- 数据仓库:数据仓库是一种存储体系结构,用于保存从多个数据源中提取的数据,包括企业内的操作和事务数据存储以及部门数据集市。数据仓库将数据组合成一个聚合的摘要形式,适合企业范围的数据分析和根据业务需要定制的报告。
- 数据湖:数据湖是一个存储库,它以本地格式保存大量原始或精炼的数据,以便按需访问。这个术语有时与Apache Hadoop对象存储相关联,但数据科学家越来越多地使用Data Lake这个术语来描述具有未定义的模式和数据需求的任何大型数据湖。分析人员仅在查询数据时定义这些参数。
- 数据沼泽:数据沼泽是一个设计糟糕、文档不充分或维护不善的数据湖。这些缺陷损害了检索数据的能力,用户无法有效地分析和利用数据。即使数据存在,如果没有上下文元数据,数据沼泽也无法检索它。
数据湖的概念已经存在了几年了。它最初引起了一些争议,并被贴上了营销炒作的标签。数据湖这个术语并不是任何传统数据存储体系结构的一部分,因此供应商可以自由地使用它来表示许多不同的东西。
数据存储术语,如流、池、库和云,在数据科学中广泛使用。不可避免地,人们开始绘制与自然水生态系统相似的图形,所以现在我们也有了数据湖和数据沼泽。
类比对于解释概念是很好的,但是总是有把类比进行得太远直到失败的危险。如果你是一个新进入这个领域的人,并且不知道这一切的真正含义,类比也会使术语变得混乱。然而,随着数据湖概念逐渐被接受,有人试图定义一个体系结构来形式化这些概念。
二、看看一个有趣的类比
Super Market有过道和架子,员工们可以在上面分类整齐地存放食品。你可以很容易地选择和购买你想要的商品。Super Market类似于一个数据库,它将数据资产存储在表的行和列中,以便于检索。
Super Market库存来自多个来源和供应商,到达时间不同,按日期销售也不同。类似地,数据可以在不同时间来自多个数据源。数据也可能变得陈旧,就像商品一样。就像许多从Super Market买来的材料放在三明治里一样,信息是特定环境中编目数据的集合。换句话说,三明治类似于信息。
整个蔬菜类似于非结构化数据;切块蔬菜类似于结构化数据。(为了使这个类比有效,我假设所有的蔬菜都是非结构化的。)
现在,假设您当地的三明治店从这家Super Market挑选和购买食材,清洁和清洗食材,将它们切割成三明治使用,然后将它们分开放置——就像在使用数据进行分析之前对数据进行清理、结构化和规范化一样。
当你想吃三明治时,你就去三明治店。三明治店也可以有不同的柜台,在那里你可以得到三明治,包装或沙拉-类似于数据集市和数据仓库。就像柜台是三明治店的一个子集一样,数据集市也是数据仓库的一个子集。数据集市对应于单个部门,而数据仓库对应于整个企业。
在三明治店,你看菜单,决定你想要什么样的三明治,然后,你点了它。三明治制造商使用相同的重复过程来制作每一个三明治;事实上,你可以找到一些已经制作好并包装好的三明治,以便立即食用。三明治店类似于商业智能(BI)工具与数据仓库集成的菜单。分析还使用重复的过程来生成报告,并为用户提供一些可立即使用的罐装报告。
大多数人喜欢定制三明治,要求改变配料的数量,改变装饰,或者省略一些配料。同样,使用BI工具,您可以通过选择特定数据自定义报表。就像您可以通过指定三明治制造商的成分来创建自己的三明治一样,您也可以通过在BI菜单中指定数据和算法来创建自定义分析报告。
现在,假设你是一名食品检查员,想确保用来准备三明治的食品没有被污染。此外,您还需要确保用于食品制备(包括清洗、清洁和切割)的过程是一致的,并且是在卫生条件下完成的。在这种情况下,您需要审核用于食品制备的流程,并定期检查食品制备区域。
类似地,审计人员需要访问原始数据,以验证在数据准备过程中没有由于转录、清理、格式化和规范化而对数据造成污染。与三明治店的Super Market不同,您可以复制和克隆数据。因此,对于法规遵从性和审核,存储原始数据是可能的。
最初,Data Lake是指存储原始数据和非结构化数据(如文本、图像、音频和视频)的数据库。然而,如前所述,供应商对数据湖有其他定义。
继续这个类比,想象一下一个挑剔的消费者对三明治柜台上容器里的配料的来源和新鲜度表示怀疑。消费者可能还想把三明治店里没有的蔬菜或肉类放进他们的三明治里。三明治店肯定不会允许消费者在柜台后面自己准备三明治,所以消费者别无选择,只能去Super Market购买食材,在自己的厨房里做三明治。通常,专业分析师和数据科学家希望访问原始数据,而不是存储在数据仓库中的已准备好的汇总数据:他们希望从源获取最新数据,以确保其有效性和相关性。他们还可能希望看到数据的到达速度,这可能会在准备过程中受到掩蔽。如果分析人员希望看到数据仓库中未考虑的其他数据,他们将希望直接访问原始数据库。数据湖不直接访问源数据,而是保留原始数据库的克隆以满足此类访问需要,并对新的分析进行沙箱处理。
有时,一个美食三明治制造商可能会坚持从农场主那里而不是从Super Market买新鲜的配料。在这种情况下,美食三明治制造商必须复制Super Market农产品购买者的功能,这类似于来自物联网(IoT)设备的实时数据。在这种情况下,数据湖必须对此类实时数据流执行提取、转换、加载(ETL)功能。
最后,想象一下一家破旧的三明治店。柜台上的集装箱没有标签。蔬菜和肉类随意地相互溢出,甚至连三明治制造商也不确定最后一个容器里到底是什么类型的肉。顾客可能会走出去,因为他们不确定他们要吃什么样的三明治。这类似于数据沼泽,它是一个维护不善的数据湖。这些数据就像一块神秘的肉,没有人能证实其中一些数据的来历。好的数据是不可访问的,因为数据沼泽没有适当地记录(或者更糟的是,错误地记录)元数据标签,或者某些数据的格式是集成工具无法读取或无法通过查询检索的。
三、为什么我们真的需要数据湖
您现在知道,我们需要数据湖有以下几个原因:
- 作为用于法规遵从性和审核目的的原始数据存储库(例如,音频和视频录制、文档扫描以及文本和日志文件)
- 作为数据科学家和分析人员访问结构化和非结构化数据进行验证和沙箱新分析模型的平台
- 作为一个平台,集成来自运营或交易系统的实时数据,以及越来越多来自物联网设备的传感器数据
数据仓库提供的聚合和摘要数据足够大多数BI用户使用。数据湖的用户可以是审计人员、专业分析师和数据科学家。企业选择创建数据湖还有什么其他令人信服的原因?因此,值得研究数据湖与数据仓库的区别。
数据仓库和数据湖有什么区别?
数据仓库是一种成熟而安全的技术,具有正式的体系结构。它们存储完全处理和结构化的数据,这些数据受数据治理过程的约束。数据仓库将数据合并成一个聚合的摘要表单,以便在执行数据写入操作时使用企业范围的数据并写入元数据和架构定义。数据仓库通常有固定的配置;它们是高度结构化的,因此灵活性和敏捷性较差。在存储之前处理所有数据会产生成本,而大容量存储相对来说成本更高。
相比之下,数据湖是一种较新的技术,具有不断发展的体系结构。数据湖以任何形式存储原始数据,包括结构化和非结构化数据,以及任何格式的数据,包括文本、音频、视频和图像。按照定义,数据湖不受数据治理的约束,但专家们一致认为,良好的数据管理对于防止数据湖变成数据沼泽至关重要。数据湖在数据读取操作期间创建模式。数据湖的结构较少,而且更灵活;它们比数据仓库提供更好的灵活性。在数据检索之前,不需要进行任何处理,数据湖通过设计使用廉价的存储。
尽管数据湖有其优势,但在安全性、治理和管理方面仍有一些需要改进的地方。但是,房间里有一头大象是一个引人注目的焦点。
机器学习与深度学习
数据湖越来越多的应用于机器学习和深入学习技术的数据挖掘和分析。对于传统的搜索和分析来说,软件审计是一个成熟的领域,但对于用于数据挖掘和分析的机器学习和深度学习技术来说,它还处于初级阶段。
语音抄写、光学字符识别、图像和视频识别等,目前普遍采用机器学习或深度学习技术。数据科学家需要访问原始的、非结构化的数据,以训练这些系统执行系统验证并确保审计跟踪。类似地,深度学习执行数据挖掘等任务,以查找维度和时间序列数据之间的模式和关系。
另一个深度学习应用程序是提取查询无法检索的以前无法访问的数据。这类数据称为暗数据,在数据挖掘和分析应用中,机器学习和深度学习的出现是转向数据湖架构的一个非常有说服力的原因。
四、数据湖的几个好处
- 简单的数据收集和接收:企业中的所有数据源都会进入数据湖。因此,数据湖成为存储在本地服务器或云服务器中的结构化和非结构化数据的无缝访问点。因此,整个无固定格式存储的数据收集很容易被数据分析工具接收。此外,数据湖可以以多种文件格式存储多种格式的数据,如文本、音频、视频和图像。这种灵活性简化了遗留数据存储的集成。
- 对实时数据源的支持:数据湖支持实时和高速数据流的ETL功能,这允许来自物联网设备的传感器数据与数据湖内的其他数据源聚合。
- 更快的数据准备:分析师和数据科学家不必花费时间直接访问多个数据源,而且可以更轻松地搜索、查找和访问数据,从而加快数据准备和重用过程。数据库还跟踪和确认数据路径,这有助于确保数据是可信的,并为数据驱动的决策生成及时的BI。
- 更好的可伸缩性和灵活性:数据湖可以利用分布式文件系统进行存储,因此具有高度的可伸缩性。使用开源技术也降低了存储成本。数据湖的结构不那么严格,因此具有更好的灵活性,从而带来更好的灵活性。数据科学家可以在数据湖内创建沙盒,以开发和测试新的分析模型。
- 人工智能高级分析:获取原始数据、创建沙盒的能力以及重新配置的灵活性,使数据湖成为快速开发和使用高级分析模型的强大平台。数据湖非常适合使用机器学习和深度学习来执行数据挖掘和数据分析等任务以及提取非结构化数据。
数据湖的发展更多的是技术的融合而不是演化而来。数据仓库是从它们的前身关系数据库进化而来的,但我们不能说数据湖和数据仓库也是如此。
数据湖汇集了多种技术,包括数据仓库、实时和高速数据流技术、数据挖掘、深度学习、分布式存储和其他技术。然而,有一种感觉是,在专业数据科学家或分析师中,数据湖的用户群体有限。另一个常见的误解是将数据湖概念与特定的支持技术(如Hadoop)联系起来。
不过,数据湖概念比任何一种底层技术都有更大的潜力,而且随着供应商添加特性和功能,它正在不断发展。潜在增长领域包括:
- 架构标准化和互操作性
- 数据湖的治理和管理
- 整体数据安全
与大多数不断发展的技术一样,供应商和业务驱动者之间的竞争也在推动这一障碍。数据湖在数据存储技术中获得广泛接受只是时间问题。
六、数据湖的典型应用
数据湖的一些特性使它们非常适合医疗、银行等行业应用。
1、医疗保健与生命科学
数据湖可以帮助解决电子病历(EMR)的互操作性问题。授权使用电子病历的目的是让医生能够跨多个系统访问患者医疗记录,并在提供者之间方便地转换患者护理。实际上,这些记录中的许多——包括保险索赔和临床数据——要么不可互操作,要么不以机器可读数据的形式存在。数据湖在检索之前以任何格式存储记录。所以,病人的病历可能还包括手写的医生笔记、医学影像等。数据湖还具有从实时数据流中提取和存储数据的能力,这是由于医疗设备遥测和物联网在医疗保健中的应用日益广泛。
2、银行和金融
银行和金融业通常处理多个数据源。它还处理高速交易数据,从股市到信用卡,以及其他银行交易。银行和金融机构定期存储法律和其他文件,以满足法规遵从性和审计要求。数据湖非常适合存储这些混合数据格式,并以数字方式存储遗留数据以便于检索。数据湖作为一个灵活的平台,可以吸收多个数据流,以便在这个垂直行业中大量使用分析。
七、总结
如果设计和实现得当,数据湖是存储大量多格式数据而不是数据竖井的强大方法。它们减少了数据接收和转换的时间和成本,从而使数据能够及时地提供给用户。它们还允许使用成本较低的分布式存储。数据湖在架构上尚未成熟,目前供应商产品之间缺乏标准化。数据湖仍在不断发展和添加新功能,以改进访问控制、安全、数据管理、治理等功能。用于数据挖掘和分析的机器学习和深度学习技术的出现,带来了对一个平台的需求,该平台提供对原始数据的简单访问,以培训这些系统,进行系统验证,并确保审计跟踪。数据湖很好的满足了这一需求。深度学习还允许访问数据湖中以前摄取的遗留数据,这些数据湖通过标准的查询机制才能访问。