什么是数据湖?
数据湖是一个安全的集中式存储库,它以数据原始形式和可用于分析的形式存储所有数据,并提供弹性容量和吞吐能力,支持多种计算与处理分析引擎直接对数据进行访问。它允许用户进行不同类型的分析,从大数据处理、实时分析、交互查询、全文检索到机器学习,以指导用户做出更好的决策。经调研主流云厂商均提供了数据湖解决方案,由云上的多款产品灵活组合而成。数据湖解决方案主要应用场景如下:
解决存储原始数据而无法监督的问题,避免数据沼泽的出现。
解决计算存储资源增速不同,资源扩容难以同时保证计算和存储资源的高利用的场景。
解决大批量数据的并行写入、百亿规模级以上的行数据的存储与查询、资源需要弹性扩展的场景。
解决组织中多种角色(数据科学家、数据开发人员和业务分析师)分析、查询和通过机器学习等探索数据的问题。
数据湖与数据仓库
数据湖和数据仓库都是将要分析的所有数据汇总在一起, 但是数据湖和数据仓库之间存在明显的区别,对比如下表所示:
市场分析
整体分析
为解决数据孤岛、应对日益增长的数据量、获取更深入的数据见解等,数据湖市场规模预计将从2019年的79亿美元增长到2024年的201亿美元,复合年增长率(CAGR)为20.6%。
细分市场
按组织规模划分,大型企业在预测期间将拥有更大的市场规模
从组织规模来看,大型企业和中小企业是使用数据湖解决方案的两个主要领域。其中,大型企业是数据湖市场中占比较大的用户,这是由于企业生成的海量数据以及对存储/管理和分析该数据的软件/技术的需求不断增加。通常,大型企业具有庞大的企业网络并产生大量的数据,数据湖解决方案使这些企业可以获得廉价的存储解决方案,并对处理后的数据提供快速可靠访问方式,这帮助企业组织数据并产生有用的见解。但是,由于中小型企业因成本、可扩展性和敏捷性而热衷于采用基于云的数据湖解决方案。
按行业划分,医疗保健和生命科学领域在预测期内将以最高复合年增长率增长
数据湖市场按照行业可划分为9类,分别是银行、金融服务和保险(BFSI)、电信和信息技术(IT)、零售和电子商务、医疗保健和生命科学、制造、能源和公用事业、媒体和娱乐,政府和其他机构(旅行、运输、物流以及教育)。其中,由于在专营各种药物的大型医院中存在大量患者,医疗保健和生命科学领域预计将在预测期内快速增长。这些组织实施数据湖解决方案,可以增强整体患者体验。这些解决方案还可以为医疗保健和生命科学组织提供了经济高效且可扩展结构,用于收集和处理大量不同类型的数据。
按区域划分,北美在预测期内将保持最大的市场规模
北美是全球数据湖市场中最主要的收入来源。由于跨行业(尤其是BFSI)的先进技术使用率很高,该地区的市场规模很大。与传统的数据仓库解决方案相比,Data Lake解决方案提供了更灵活、可扩展且更便宜的数据存储解决方案,并提供了改进的分析能力。北美的许多数据湖解决方案提供商都在尝试通过将先进的大数据和分析技术与其现有的数据湖解决方案相集成的方式进行试验。数据湖市场中主要的北美供应商是Microsoft(美国),Teradata(美国),Oracle(美国),Cloudera(美国),AWS(美国),IBM(美国),Informatica(美国),SAS研究所(美国),Zaloni(美国),Koverse(美国),HPE(美国),Cazena(美国),Google(美国),Infoworks.io(美国),Snowflake(美国)和Dremio(美国)。
竞争对手分析
架构分析
AWS
AWS数据湖解决方案以S3作为数据湖唯一存储,提供一系列周边服务,具体如下所示:
首先通过Lake Formation识别 S3 、NoSQL、关系型数据库中存储的现有数据,并将数据移动到 S3 数据湖中。
通过Glue跨数据源创建统一的元数据存储库、抓取数据源以发现Schema,并维护元数据版本
Athena结合Glue的数据目录对数据湖中的数据进行交互查询
QuikSight、Tableau等通过SQL clients查询Athena做数据展示
综上,AWS数据湖方案成熟度高,特别是元数据管理、权限管理上考虑充分,打通了异构数据源与各类计算引擎的上下游关系,让数据能够自由“移动”起来。在流计算和机器学习上,AWS的解决方案也比较完善。流计算方面AWS推出了专门的流计算组件Kinesis,Kinesis中的Kinesis data Firehose服务可以创建一个完全被托管的数据分发服务,通过Kinesis data Stream实时处理的数据,可以借助Firehose方便的写入S3中,并支持相应的格式转换,如将JSON转换成Parquet格式。AWS整个方案最牛的地方还在与Kinesis可以访问GLUE中的元数据,这一点充分体现了AWS数据湖解决方案在生态上的完备性。同样,在机器学习方面,AWS提供了SageMaker服务,SageMaker可以读取S3中的训练数据,并将训练好的模型回写至S3中。但是,有一点需要指出的是,在AWS的数据湖解决方案中,流计算和机器学习并不是固定捆绑的,只是作为计算能力扩展,能方便的集成。
Azure
Azure 数据湖是微软基于Azure公有云提供的数据湖工具集,以Azure Data Lake Storage Gen2为中心提供相关配套服务。
Azure的数据湖解决方案包括数据湖存储、接口层、资源调度与计算引擎层。
存储层是基于Azure object Storage构建的,依然是对结构化、半结构化和非结构化数据提供支撑。
接口层为WebHDFS,比较特别的是在Azure object Storage实现了HDFS的接口,Azure把这个能力称为“数据湖存储上的多协议存取”。
在资源调度上,Azure基于YARN实现。计算引擎上,Azure提供了U-SQL、hadoop和Spark等多种处理引擎。
Azure的特别之处是基于visual studio提供给了客户开发的支持。
1)开发工具的支持,与visual studio的深度集成;Azure推荐使用U-SQL作为数据湖分析应用的开发语言。Visual studio为U-SQL提供了完备的开发环境;同时,为了降低分布式数据湖系统开发的复杂性,visual studio基于项目进行封装,在进行U-SQL开发时,可以创建“U-SQL database project”,在此类项目中,利用visual studio,可以很方便的进行编码与调试,同时,也提供向导,将开发好的U-SQL脚本发布到生成环境。U-SQL支持Python、R进行扩展,满足定制开发需求。
2)多计算引擎的适配: SQL, Apache Hadoop和Apache Spark。这里的hadoop包括Azure提供的HDInsight(Azure托管的Hadoop服务),Spark包括Azure Databricks。
3)多种不同引擎任务之间的自动转换能力。微软推荐U-SQL为数据湖的缺省开发工具,并提供各类转换工具,支持U-SQL脚本与Hive、Spark(HDSight&databricks)、Azure Data Factory data Flow之间的转化。
阿里云
阿里云数据湖以对象存储OSS、MaxCompute、表格存储OTS作为数据湖存储,提供相关配套服务。
华为云
华为云数据湖以对象存储作为数据湖存储,提供相关配套服务。下图根据华为产品介绍整理。
华为的数据湖解决方案比较完整,DLI最大的特色是在于分析引擎的完备性,包括基于SQL的交互式分析以及基于Spark、Flink的处理引擎。在核心存储引擎上,DLI依然通过内置的OBS来提供,最近新发布的CarbonData也在数据湖解决方案中频繁被提到。为了更好的支持数据开发、数据治理、质量管理等功能,华为云提供了DAYU平台作为数据湖治理运营方法论的落地实现。
总结
AWS、Azure、阿里云和华为云等公有云厂商在数据湖方面的布局均比较完善。其中,AWS数据湖范围中各产品定义和功能较单一,且各产品间可进行松耦合方式衔接,相较于阿里云和华为云的产品形态可以组合出更灵活的数据湖解决方案。
数据湖市场带来的机会,值得期待~~
参考资料
Campbell, Chris. "Top Five Differences between DataWarehouses and Data Lakes". Blue-Granite.com. Retrieved 19 May 2017.
Weaver, Lance. "Why Companies are Jumping into Data Lakes". blog.equinox.com. Retrieved 19 May 2017.
"A smarter way to jump into data lakes". McKinsey. 1 August 2017.
https://www.marketsandmarkets.com/PressReleases/data-lakes.asp