1. 首页 > 头条

用于大数据分析的大规模可扩展存储 什么是数据湖

​译者 |李睿

审校 |孙淑娟

2011年,时任商业智能开发商Pentaho公司首席技术官的James Dixon创造了“数据湖”这一术语。他将数据湖与当时流行的数据集市的典型信息孤岛进行了对比:如果将数据集市视为销售瓶装水的商店(经过清洁和包装处理以便于饮用),那么数据湖就是处于更自然状态的大片水体。数据湖的内容从一个源头流入,填满湖泊。采用数据湖,用户可以来检查、潜入或采集样本。

从那时起,数据湖技术不断发展,现在正在与数据仓库争夺大数据存储和分析的市场份额。各种工具和产品支持数据湖中更快的SQL查询,而全球三个主要云计算提供商都提供了数据湖存储和分析。甚至还推出了将治理、安全性和分析与成本更低的存储结合起来的数据湖屋的概念。本文将深入探讨数据湖是什么、如何使用数据湖以及如何确保数据湖不会成为数据沼泽。

对数据湖的解释

数据湖本质上是一个单一的数据存储库,它保存用户的所有数据,直到准备好进行分析,或者可能只保存不适合数据仓库的数据。通常情况下,数据湖以其原生文件格式存储数据,但可以将数据转换为另一种格式以提高分析效率。拥有数据湖的目标是从数据中提取业务或其他分析的价值数据。

数据湖可以托管二进制数据(例如图像和视频)、非结构化数据(例如PDF文档)和半结构化数据(例如CSV和JSON文件)以及结构化数据(通常来自关系数据库)。结构化数据对分析更有用,但半结构化数据可以很容易地导入结构化形式中。非结构化数据通常可以使用智能自动化转换为结构化数据。

数据湖vs数据仓库

问题不在于是否需要数据湖或数据仓库。很可能两者都需要,但其目的不同,也可以将它们组合起来。首先了解数据湖和数据仓库之间的主要区别:

什么是数据集市?

数据集市是仅限于来自单个部门或业务单位数据的分析数据库,这与数据仓库相反。数据仓库将企业的所有关系数据组合成适合分析的形式,而数据集市通过仅包含与部门相关的数据来提供有效的分析。因此,它们本质上是孤立的。有人声称孤岛无关紧要,因为业务部门不需要排除的数据。在现实生活中,这通常很重要——总有一些企业高管需要基于来自多个业务部门的组合数据的报告。这就是目前看到有很多数据湖和数据仓库而很少看到数据集市的原因之一。

数据湖上更快的SQL查询

当企业将原始数据存储在数据池中时,在数据工程师或数据科学家对数据进行处理之前,这些数据可能对业务分析师毫无用处。除了过滤和数据转换之外,数据湖还需要数据目录、数据安全性和模式定义。对于没有这些功能的数据湖来说,就是数据沼泽。

幸运的是,有很多工具可以帮助过滤和组织数据湖中的数据。例如,企业可以通过创建ORC格式的Hive元存储来满足对模式的需求。在设置完成之后,元存储通过Presto等大规模并行SQL引擎支持快速SQL查询(优化的行-列格式是一种压缩的列存储,针对Hive进行了优化,并与Presto配合使用)。

ApacheSpark是另一个大规模并行SQL引擎。虽然它可以使用ORC格式,但它更适用于另一种压缩的列式存储Parquet。Spark可以对Parquet文件执行垂直和水平分区,生成只需要读取必要数据,并可以跳过不相关数据的查询计划。

数据湖屋

Spark和MLflow背后的Databricks公司提供了他们所谓的数据湖屋(Data Lakehouse)。根据Databricks公司的介绍,数据湖屋结合了数据仓库和数据湖的最佳特性:数据湖屋将数据仓库和数据湖统一在一个简单的平台中,以处理其所有数据、分析和人工智能用例。它建立在开放且可靠的数据基础之上,可以有效处理所有数据类型,并在其所有数据和云平台上应用一种通用的安全和治理方法。

Databricks公司开源发布的DeltaLake通过直接为数据湖中的数据保证了可靠性和高性能,这构成了数据湖屋的基础。Databricks Lakehouse平台还包括Unity Catalog,它为数据和人工智能提供细粒度的治理。Databricks声称其数据湖库的性价比是数据仓库的12倍。

内部部署和公共云中的数据湖

从历史上看,数据湖是使用Apache Hadoop计算机集群和HDFS(Hadoop分布式文件系统)在内部部署设施实施的。Hadoop集群曾经是Cloudera、Hortonworks等公司的主要业务,而Cloudera与Hortonworks在2018年合并。

改变的是云计算服务,特别是超大规模公共云供应商AWS、微软Azure和谷歌云平台(GCP)。这三个主要云计算提供商都提供数据湖存储产品:Amazon S3和Amazon EMR(以前称为Amazon Elastic Map Reduce)、Azure>数据湖的分析和机器学习

在此之前讨论了使用Presto和ApacheSpark在数据湖上进行更快的SQL查询。SQL只是分析数据的一种方法,尽管它非常重要并且通常是第一步。此外,考虑采用Power BI、Tableau或Qlik等商业智能工具;Jupyter、Zeppelin或Sparknotebooks;, scikit-learn、SparkML或KNIME等机器学习技术;TensorFlow或PyTorch等深度学习技术。

超大规模云计算供应商拥有自己的分析和机器学习工具,用户可以连接到他们的数据湖。

Amazon Athena使用Presto和Hive对AmazonS3中的数据执行SQL查询。Amazon EMR是一个基于云计算的大数据平台,用于使用Apache Spark、Apache Hive和Presto等开源分析框架运行大规模分布式数据处理作业、交互式SQL查询和机器学习应用程序。Amazon SageMaker是一项完全托管的服务,用于构建、训练和部署机器学习模型。

Azure>Google云存储提供与许多强大的谷歌云服务的原生集成,例如BigQuery(数据仓库)、Dataproc(Hadoop生态系统)、Dataflow(无服务器流式分析)、视频智能API、Cloud Vision API和人工智能平台。

总之,用户可以非常灵活地选择合适的工具来分析其数据。

结论

自从进入Hadoop集群和MapReduce时代以来,数据湖变得更加有用。由于内存和大规模并行处理以及基于Hive的模式,Presto和ApacheSpark提供比MapReduce更快的SQL处理。与内部部署的计算机集群相比,基于云计算的数据湖更易于创建、管理和扩展。而云计算数据湖也将与广泛的分析和人工智能工具紧密集成。

原文标题:

本网站的文章部分内容可能来源于网络和网友发布,仅供大家学习与参考,如有侵权,请联系站长进行删除处理,不代表本网站立场,转载者并注明出处:https://www.jmbhsh.com/toutiao/36606.html

联系我们

QQ号:***

微信号:***

工作日:9:30-18:30,节假日休息