数据湖 数据孤岛 数据沼泽

数据仓库

据仓库是一种存储架构,旨在保存从多个数据源提取的数据,这些数据源包括操作数据存储、事务数据存储,以及企业内的部门数据集市。数据仓库将数据组合为一种聚合、摘要形式,适合于进行企业级数据分析以及针对业务需求定制报告

数据孤岛

数据孤岛在企业信息化中,还有很多类似的描述,如"数据的污染"等比较形象的说法,专业人士把数据孤岛分为物理性和逻辑性两种。物理性的数据孤岛指的是,数据在不同部门相互独立存储,独立维护,彼此间相互孤立,形成了物理上的孤岛。

数据湖

数据湖是一种存储库,它以原生格式保存大量原始数据或细化的数据,以供按需访问。数据科学家越来越多地开始使用数据湖这个词来描述任何具有不明确的模式和数据需求的大型数据池。分析师仅在查询数据时定义这些参数。

AWS的定义,数据湖是一个集中式存储库,允许您以任意规模存储所有结构化和非结构化数据。您可以按原样存储数据(无需先对数据进行结构化处理),并运行不同类型的分析 – 从控制面板和可视化到大数据处理、实时分析和机器学习,以指导做出更好的决策。

aws-datalake-diagram-simplified

数据沼泽

数据沼泽是一种设计不良、未充分归档或未有效维护的数据湖。这些缺陷损害了检索数据的能力用户无法有效地分析和利用数据。尽管数据已经存在,但如果没有上下文元数据,数据沼泽就无法检索数据

 

数据湖和数据沼泽

数据湖概念已存在多年。它最初引起了一些争议,而且被贴上了营销炒作的标签。术语数据湖不是任何传统数据存储架构的一部分,所以供应商可以自由地使用它来表示许多不同的事物。

数据存储术语,比如流、池、储备库,在数据科学中也得到广泛使用。不可避免地,人们开始将其与天然水生态系统进行类比,所以现在我们还有了数据湖数据沼泽

类比对解释概念很有帮助,但始终存在着过度类比导致失败的危险。如果您是该领域的新人,不知道该术语的真实含义,类比还会让该术语变得混乱。但是,随着数据湖的概念慢慢被人们接受,一些人已经开始尝试定义一个架构来规范化这些概念。

尽管如此,我将使用另一种类比来解释这些概念。边栏给出了该术语的标准定义;后面的类比从概念上解释了它们。我的类比基于制作三明治(我为自己辩解一下,我是在午饭前写的这篇文章,而且我很饿)。我从一家食品杂货店开始类比,我们大部分人都是在食品杂货店购买三明治制作材料的。

一种简单类比

一个食品杂货店的员工在过道和货架上按类别分类和整齐地存放食品杂货。您可以轻松地选择和购买您想要的食品杂货。食品杂货店类似于将数据资产存储在表行和列中以方便检索的数据库。

商店存放的食品杂货是在不同时间从许多来源和供货商送来的,而且具有不同的保质期。类似地,数据可能在不同时间从多个数据源传入。数据也可能变得过时,就像食品杂货一样。像来自食品杂货店的组成三明治的许多原料一样,信息是在一个特定上下文中编目的数据集合。换言之,三明治类似于信息。

完整的绿色蔬菜类似于非结构化数据,切成小块的绿色蔬菜类似于结构化数据。(为了有效地类比,我假设完整的蔬菜是非结构化数据。)

现在,假设当地的三明治店从这家食品杂货店选择和购买食品杂货,清理并清洗食品杂货,将它们切碎以供在三明治中使用,并将它们分开存放 — 就像在用于分析之前对数据执行清理、结构化和规范化。

当您想吃一个三明治时,您会前往三明治店。三明治店还可以用不同的柜台来提供三明治、包裹物或色拉 — 类似于数据集市和数据仓库。就像一个柜台是三明治店的子集一样,数据集市是数据仓库的子集。一个数据集市对应于一个部门,而一个数据仓库对应于整个企业。

在三明治店,您会查看菜单并决定想要购买哪种三明治;然后订购它。三明治制作者按照相同的重复流程制作每个三明治;实际上,您可以找到一些已做好的、打包好的、可以立即享用的三明治。三明治店类似于与数据仓库相集成的商业智能 (BI) 工具的菜单。分析工具也使用重复性流程来生成报告,为用户提供一些封装好的报告供立即使用。

大部分人喜欢定制他们的三明治,要求更改原料份量,更改配菜,或者不放某些原料。类似地,通过 BI 工具,您可以选择特定数据来定制报告。就像可以向三明治制作者指定原料来制作自己的三明治那样,您也可以在 BI 菜单中指定数据和算法来创建定制分析报告。

现在,设想您是一位食品检查员,希望确保为制作三明治而准备的所有食品杂货都是未受污染的。另外,您还想确保用于准备食品的流程(包括清洗、清理和切块)是一致的,而且是在合格的卫生条件下执行的。在这种情况下,您需要对用于准备食品的流程进行审核,并定期检查食品准备区。

类似地,审核人员需要访问原始数据,验证数据准备流程中的数据没有由于转录、清理、格式化和规范化而受到污染。不同于三明治店中的食品杂货的情形,您可以复制和克隆数据。所以为了实现合规和执行审核,可以存储原始数据。

最初,数据湖指的是保存原始数据和非结构化数据(比如文本、图像、音频和视频)的数据储备库。但是,前面已经提到过,供应商为数据湖提供了其他定义。

继续前面的类比,设想一位挑剔的顾客对三明治柜台的容器中的原料来源和新鲜度产生怀疑。顾客可能还想在三明治中加点这家三明治店里没有的蔬菜或肉类。三明治店肯定不允许顾客到柜台后面准备自己的三明治,所以顾客没有选择,只能前往食品杂货店购买食品杂货并在自己的厨房中制作三明治。通常,专业分析师和数据科学家希望访问原始数据,而不是存储在数据仓库中的已准备好的聚合摘要数据:他们更愿意从来源获取最新的数据,以确保它的有效性和相关性。他们可能还希望看到数据的传入速度,这可能受准备过程中的屏蔽操作的影响。如果分析师希望看到数据仓库中未考虑的其他数据,他们可能想要直接访问原始数据库。数据湖不会直接访问原始数据,它保留原始数据库的克隆版本来满足这些访问需求,并在沙箱中执行新分析。

有时,一位美味三明治制作者可能会坚持从农民那里而不是食品杂货店获取新鲜的原料。在这种情况下,这位美味三明治制作者必须复制食品杂货店采购者的功能,这类似于来自物联网 (IoT) 设备等来源的实时数据。在这种情况下,数据湖必须对这些实时数据流执行提取、转换、加载 (ETL) 功能。

最后,设想一家低档的三明治店。柜台上的容器没有标签。蔬菜和肉胡乱混在一起,甚至三明治制作者也不确定最后一个容器中存放了哪种肉。客户可能会离开,因为他们不确定会获得哪种三明治。这类似于一个数据沼泽,也就是一种未得到有效维护的数据湖。数据就像无法辨识的肉,没有人可以确认一些数据的血统。用户无法访问有用的数据,因为数据沼泽没有适当地对元数据标签进行归档(或者更糟的是错误地进行了归档),或者一些数据的格式无法被集成的工具读取或被查询检索。

为什么我们真的需要数据湖?

您现在已知道我们需要数据湖有多种原因:

  • 用作原始数据存储库来满足合规和审核用途(例如录音和录像、文档扫描、文本和日志文件)
  • 作为一个平台,供数据科学家和分析师访问结构化和非结构化数据来进行验证,并在沙箱中运行新的分析模型
  • 作为一个平台,集成来自操作或事务系统的实时数据,并越来越多地集成来自 IoT 设备的传感器数据

数据仓库提供的聚合和摘要数据对大部分 BI 用户已足够。数据湖的用户可以是审核人员、专业分析师和数据科学家(占少数)。有什么其他令人信服的让企业选择创建数据湖的原因?因此,了解数据湖与数据仓库有何不同是值得的。

数据仓库与数据湖之间有何区别?

数据仓库是一种具有正式架构的成熟的、安全的技术。它们存储经过全面处理的结构化数据,以便完成数据治理流程。数据仓库将数据组合为一种聚合、摘要形式,以在企业范围内使用,并在执行数据写入操作时写入元数据和模式定义。数据仓库通常拥有固定的配置;它们是高度结构化的,因此不太灵活和敏捷。数据仓库成本与在存储前处理所有数据相关,而且大容量存储的费用相对较高。

相较而言,数据湖是较新的技术,拥有不断演变的架构数据湖存储任何形式(包括结构化和非结构化)和任何格式(包括文本、音频、视频和图像)的原始数据。根据定义,数据湖不会接受数据治理,但专家们都认为良好的数据管理对预防数据湖转变为数据沼泽不可或缺。数据湖在数据读取期间创建模式。与数据仓库相比,数据湖缺乏结构性,而且更灵活;它们还提供了更高的敏捷性。在检索数据之前无需执行任何处理,而且数据湖特意使用了便宜的存储。

尽管有这些优势,但数据湖在安全、治理和管理方面仍需要完善。但是,它还有一个重要优势,这也是一个富有吸引力的驱动因素。

机器学习和深度学习都是驱动因素

在采用数据湖的原因中,讨论最少但或许最有吸引力的是数据挖掘和分析中越来越多地开始采用机器学习和深度学习技术。传统搜索和分析方面的软件审核是一个成熟领域,但用于数据挖掘和分析的机器学习和深度学习技术的软件审核还处于起步阶段。

语音转录、光学字符识别、图像和视频识别等等,现在经常使用机器学习或深度学习技术。数据科学家需要访问原始的非结构化数据来训练这些系统,以便执行系统验证,并确保审计跟踪。类似地,深度学习执行数据挖掘等任务来查找维度与时序数据之间的模式和关系。

另一种深度学习应用是提取以前无法访问的、无法通过查询来检索的数据。这些数据称为暗数据,是本系列下一期的主题。在数据挖掘和分析应用中,机器学习和深度学习的出现是迁移到数据湖架构的一个非常有吸引力的理由。

数据湖的优势

数据湖有众多优势:

  • 轻松地收集和摄入数据:企业中的所有数据源都可以送入数据湖中。因此,数据湖成为了存储在企业内部服务器或云服务器中的结构化和非结构化数据的无缝访问点。通过数据分析工具可以轻松地获得整个无孤岛的数据集合。此外,数据湖可以用多种文件格式存储多种格式的数据,比如文本、音频、视频和图像。这种灵活性简化了旧有数据存储的集成。
  • 支持实时数据源:数据湖支持对实时和高速数据流执行 ETL 功能,这有助于将来自 IoT 设备的传感器数据与其他数据源一起融合到数据湖中。
  • 更快地准备数据:分析师和数据科学家不需要花时间直接访问多个来源,可以更轻松地搜索、查找和访问数据,这加速了数据准备和重用流程。数据湖还会跟踪和确认数据血统,这有助于确保数据值得信任,还会快速生成可用于数据驱动的决策的 BI。
  • 更好的可扩展性和敏捷性:数据湖可以利用分布式文件系统来存储数据,因此具有很高的扩展能力。开源技术的使用还降低了存储成本。数据湖的结构没那么严格,因此天生具有更高的灵活性,从而提高了敏捷性。数据科学家可以在数据湖内创建沙箱来开发和测试新的分析模型。
  • 具有人工智能的高级分析:访问原始数据,创建沙箱的能力,以及重新配置的灵活性,这些使得数据湖成为了一个快速开发和使用高级分析模型的强大平台。数据湖非常适合使用机器学习和深度学习来执行各种任务,比如数据挖掘和数据分析,以及提取非结构化数据。

数据湖的演变

与其说数据湖在演变,不如说是一种技术融合。数据仓库是从其前身(关系数据库)演化而来,迈出了革命性的一步,但对于数据湖和数据仓库,我们不能这么说。

数据湖汇集了各种技术,包括数据仓库、实时和高速数据流技术、数据挖掘、深度学习、分布式存储和其他技术。但是,人们感觉数据湖在专业数据科学家或分析师中拥有有限的用户群。另一种常见的误解是,将数据湖概念与一种特定的支持技术(比如 Hadoop)联系起来。

数据湖概念拥有比任何一种基础技术更大的潜力,而且还在不断演化,供应商也在不断在添加特性和功能。潜在的增长领域包括:

  • 架构标准化和互操作性
  • 数据治理、管理和综合处理
  • 整体数据安全性

与大部分不断演化的技术一样,供应商之间的竞争和业务驱动因素扩大了应用边界。数据湖在诸多数据存储技术中获得广泛接受只是时间问题。

数据湖的应用

数据湖的一些特性使它们非常适合某些应用。本节将解释其中两种应用。

医疗和生命科学

数据湖可以帮助解决电子医疗记录 (EMR) 的互操作性问题。联邦任务的意图是,通过使用 EMR,让医生能够访问跨多个系统的患者医疗记录,并在各个医院之间轻松地交接患者护理。在实际中,许多记录(包括保险索赔和临床数据)要么无法互操作,要么具有机器不可读的数据格式。在检索前,数据湖会存储任何格式的记录。所以,患者记录可能也包含医生手写的笔记、医学图像等。随着医疗领域中越来越多地开始使用医学设备遥测和 IoT,数据湖还能够从实时数据流中提取和存储数据。

银行和金融

银行和金融业通常会处理多个数据源。它也会处理高速的交易数据(从股票市场到信用卡)和其他银行交易。银行和金融机构经常存储法律和其他文档,以满足合规性和审核需求。数据湖非常适合存储这些混合数据格式,并以数字方式存储旧有数据,以方便检索。数据湖充当着一个敏捷平台来摄入多个数据流,以供这个行业垂直领域中的大量分析工具进行使用。

结束语

只要正确地设计和实现,数据湖是存储大量的多格式数据而不需要孤岛的一种强大方法。它们减少了数据摄取和转换的时间和成本,从而使用户可以及时获得数据。它们还允许使用更低成本的分布式存储。数据湖在架构上还不成熟,而且各个供应商产品之间目前缺乏标准化。数据湖仍在不断演化和增添新的功能,以改善访问控制、安全性、数据管理、综合处理等特性。随着用于数据挖掘和分析的机器学习和深度学习技术的出现,需要引入一个平台,提供对原始数据的轻松访问,以便训练这些系统,从而实现系统验证,并确保审计跟踪。数据湖是这一需求的巧妙解决方案。深度学习还支持访问以前摄入到数据湖中的旧有数据,这些数据无法通过标准查询机制进行访问。这种所谓的“暗数据”是本系列第 3 部分介绍的主题。

 

参考:

https://www.ibm.com/developerworks/cn/analytics/library/ba-data-becomes-knowledge-2/index.html

https://aws.amazon.com/cn/big-data/datalakes-and-analytics/what-is-a-data-lake/?nc1=h_ls


更多精彩内容