译者|李锐点评|孙淑娟2011年,时任商业智能开发商PentahoCTO的JamesDixon创造了“数据湖”一词。他将数据湖与当时流行的数据集市的典型信息孤岛进行了对比:如果将数据集市想象成一家出售瓶装水(经过清洗和包装以便于饮用)的商店,那么数据湖就处于一个多自然状态大水体。数据湖的内容从一个来源流入,填满了湖。有了数据湖,用户可以来检查、潜入或收集样本。从那时起,数据湖技术不断发展,现在正在与数据仓库竞争大数据存储和分析的市场份额。各种工具和产品支持数据湖中更快的SQL查询,而全球三大云计算提供商都提供数据湖存储和分析。甚至还有将治理、安全和分析与低成本存储相结合的数据湖屋概念。本文将深入探讨什么是数据湖、如何使用它以及如何确保它不会变成数据沼泽。数据湖解释数据湖本质上是一个单一的数据存储库,它保存用户的所有数据,直到它准备好进行分析,或者可能只保存不适合数据仓库的数据。通常,数据湖以其本机文件格式存储数据,但可以将数据转换为另一种格式以进行更有效的分析。拥有数据湖的目标是从数据中提取价值以用于业务或其他分析。数据湖可以托管二进制数据(如图像和视频)、非结构化数据(如PDF文档)和半结构化数据(如CSV和JSON文件),以及结构化数据(通常来自关系数据库)。结构化数据对分析更有用,但半结构化数据可以很容易地导入结构化形式。通常可以使用智能自动化将非结构化数据转换为结构化数据。数据湖与数据仓库问题不在于您需要数据湖还是数据仓库。很可能两者都需要,但出于不同的目的,也可以将它们结合起来。首先了解数据湖和数据仓库之间的主要区别:数据源:数据湖的典型数据源包括日志文件、来自点击流的数据、社交媒体帖子和来自联网设备的数据。数据仓库通常存储从事务数据库、业务线应用程序和操作数据库中提取的数据以供分析。Schema策略:分析时通常会应用数据湖的数据库Schema,称为读Schema。企业数据仓库的数据库模式通常在数据存储创建之前设计,并在数据导入时应用于数据,称为写入模式。存储基础设施:数据仓库通常使用大量昂贵的内存和SSD硬盘来快速提供查询结果。数据湖通常存储在使用廉价机械硬盘的计算机集群上。数据仓库和数据湖都使用大规模并行处理(MPP)来加速SQL查询。原始数据与整理数据:数据仓库中的数据应该整理到可以将数据仓库视为企业的“单一事实来源”的程度。数据湖中的数据可能经过整理,也可能未经过整理:数据湖通常从原始数据开始,然后可以对其进行过滤和转换以进行分析。谁使用它:数据仓库用户通常是业务分析师。数据湖用户通常是数据科学家或数据工程师,至少在最初是这样。组织好数据后,业务分析师就可以访问它。分析类型:数据仓库的典型分析包括商业智能、批量报告和可视化。对于数据湖,典型的分析包括机器学习、预测分析、数据发现和数据剖析。什么是数据集市?数据集市是一种分析数据库,仅限于来自单个部门或业务单位的数据,而不是数据仓库。数据仓库将企业的所有关系数据组合成适合分析的形式,而数据集市通过仅包含与部门相关的数据来提供高效的分析。因此,它们在本质上是孤立的。有些人声称孤岛无关紧要,因为业务部门不需要被排除在外的数据。在现实生活中,这通常很重要——总会有业务主管需要基于来自多个业务部门的综合数据的报告。这就是您现在看到很多数据湖和数据仓库而很少有数据集市的原因之一。数据湖上更快的SQL查询当企业将原始数据存储在数据湖中时,数据可能对业务分析师毫无用处,直到数据工程师或数据科学家对其进行处理。除了过滤和数据转换之外,数据湖还需要数据目录、数据安全和模式定义。没有这些功能的数据湖就是数据沼泽。幸运的是,有许多工具可以帮助过滤和组织数据湖中的数据。例如,企业可以通过创建ORC格式的Hive元存储来满足对模式的需求。设置完成后,元存储通过大规模并行SQL引擎(例如Presto)支持快速SQL查询(优化的行列格式是一种针对Hive优化的压缩列存储,可与Presto配合使用)。ApacheSpark是另一个大规模并行SQL引擎。虽然它可以使用ORC格式,但它更适合另一种压缩列式存储Parquet。Spark可以对Parquet文件进行垂直和水平分区,生成只需要读取必要数据而可以跳过不相关数据的查询计划。Databricks是Spark和MLflow背后的公司,提供他们所谓的DataLakehouse。根据Databricks的说法,DataLakeHouse结合了数据仓库和数据湖的最佳功能:DataLakeHouse将数据仓库和数据湖统一在一个简单的平台中,以处理所有数据、分析和人工智能用例。它建立在开放和可靠的数据基础之上,可以有效地处理所有数据类型,并在其所有数据和云平台上应用通用的安全和治理方法。Databricks开源的DeltaLake直接为数据湖中的数据保证了可靠性和高性能,构成了数据湖屋的基础。DatabricksLakehouse平台还包括UnityCatalog,它为数据和AI提供细粒度的治理。Databricks声称其数据湖库的成本效益是数据仓库的12倍。本地和公共云中的数据湖从历史上看,数据湖是使用ApacheHadoop计算机集群和HDFS(Hadoop分布式文件系统)在本地实施的。Hadoop集群曾经是Cloudera和Hortonworks等公司的主营业务,2018年Cloudera和Hortonworks合并,发生变化的是云计算服务,尤其是超大规模公有云提供商AWS、MicrosoftAzure和谷歌云平台(GCP)。三大云计算提供商都提供数据湖存储产品:AmazonS3和AmazonEMR(以前称为AmazonElasticMapReduce)、AzureDataLakeStore(ADLS)和GoogleCloudStorage(GCS)。这三者还提供数据摄取、数据处理、分析和机器学习服务。创建、管理和扩展云数据湖比在数据中心管理Hadoop集群更容易和更快。代价是云中的长期运营费用最终会更高。数据湖的分析和机器学习之前讨论了使用Presto和ApacheSpark对数据湖进行更快的SQL查询。SQL只是分析数据的一种方法,尽管它非常重要,而且通常是第一步。此外,考虑商业智能工具,如Power BI、Tableau或Qlik;Jupyter、Zeppelin或Spark笔记本;机器学习技术,如scikit-learn、SparkML或KNIME;深度学习技术,如TensorFlow或PyTorch。超大规模云提供商拥有自己的分析和机器学习工具,用户可以将这些工具连接到他们的数据湖。AmazonAthena使用Presto和Hive对AmazonS3中的数据执行SQL查询。AmazonEMR是一个基于云的大数据平台,用于使用ApacheSpark、ApacheHive和Presto等开源分析框架运行大规模分布式数据处理作业、交互式SQL查询和机器学习应用程序。AmazonSageMaker是一项完全托管的服务,用于构建、培训和部署机器学习模型。AzureDataLakeAnalytics(ADLA)是传统的按需分析作业服务,简化大数据,使用U-SQL,即SQL+C#。ADLA正在被AzureSynapseAnalytics取代,AzureSynapseAnalytics是一种无限分析服务,结合了数据集成、企业数据仓库和大数据分析。它使用户可以根据自己的条件自由查询数据,无论是使用无服务器选项还是大规模的专用选项。Synapse结合了数据湖、企业数据仓库和运营数据查询功能,可自动从ADLA和数据仓库迁移数据和代码。Synapse与Azure机器学习、Azure认知服务和PowerBI深度集成。GoogleCloudStorage提供与许多强大的GoogleCloud服务的原生集成,例如BigQuery(数据仓库)、Dataproc(Hadoop生态系统)、Dataflow(无服务器流分析)、VideoIntelligenceAPI、CloudVisionAPI和AIPlatform。总之,用户可以非常灵活地选择合适的工具来分析他们的数据。结论自Hadoop集群和MapReduce时代以来,数据湖变得更加有用。由于内存中和大规模并行处理以及基于Hive的模式,Presto和ApacheSpark提供比MapReduce更快的SQL处理。与本地计算机集群相比,基于云的数据湖更易于创建、管理和扩展。云计算数据湖也将与广泛的分析和人工智能工具紧密集成。原标题:什么是数据湖?用于大数据分析的大规模可扩展存储,作者:MartinHeller
