根据市场研究公司 Research and Markets 调研发现,全球数据湖市场规模预计从 2019 年的 79 亿美元,到 2024 年增长至 201 亿美元,并在预测期间内以 20.6% 的年复合增长率(CAGR)增长。
回过头来看,数据湖的诞生归功于 Pentaho 创始人 James Dixon,它通常被定义为以原始数据格式存储的数据系统或数据库,但往往是以非结构化文件和对象内容多样的数据存储库的形式组成,并需要对其进行业务分析。
为此,不少人认为对象存储正在成为数据湖的首选平台,主要原因是:
- 对象存储支持在云上提供廉价的存储服务,具备持久且几乎无限容量的存储;
- 实现了计算和存储的分离,可以独立扩展任何一个。
然而,对象存储存在的一些问题也会限制着数据湖的使用。今天,我们来一探究竟看看这对 CP 背后还面临什么问题。
结构化数据与非结构化数据
由于数据湖聚合了来自各种来源的数据——例如来自 ERP 系统的业务数据;来自电子商务数据库的客户数据、时间序列数据、事件流和来自文档存储库的文件等等, 因此数据湖可以快速达到 PB 级,甚至更多的容量。这意味着,我们正在处理的数据量已经超出了传统数据库技术的范围,例如关系数据库管理系统(RDBMS),该系统最初设计用于处理结构化数据。这就是为什么类似 Hadoop 分布式文件系统(HDFS)这样的新存储解决方案已经成为一种更为灵活、可扩展的方式来管理结构化和非结构化数据的原因之一。
HDFS 作为一种数据湖存储解决方案被广泛使用,与 Hadoop 生态系统中的工具息息相关,如 MapReduce、Spark、Hive、Hbase 等。在 Hadoop和 HDFS 被广泛采用的同时,市场上也出现了一些最近开发的分析工具,比如 Splunk、Vertica、Elastic,用于分析数据湖中的大量数据。
数据分析是为了找到为组织提供相关和有益见解而诞生的。以电子商务为例,我们可以发现大数据分析能识别出某些产品在一年中不同时期的销售成功差异。对于这种类型的应用程序,HDFS 也有它的优点和缺点,就像其他任何技术一样。HDFS 其中一个主要限制是,当它扩展时,计算和存储资源是紧密耦合的,因为文件系统和应用程序托管在同一台机器上。同时随着计算能力的增长,内存也在增长。这样对于一些计算密集型应用程序来说,这可能会让成本有所增加。
目前,一些商业供应商已经优化了 HDFS 的原始开源实现,但最终出现了新的数据存储解决方案,从根本上提高了可伸缩性和灵活性。
数据来源多样化
为了能够全面分析和实现海量数据存储中丰富的信息和见解,组织既依赖分析工具,也依赖存储数据的存储库,后者可以说是最重要的组成部分。存储库必须以恰到好处的性能处理来自多个源的数据,并且能够支持同时增加容量和性能,以便应用程序、工具和用户可以广泛地使用数据。如上述所说,数据库和文件系统(包括 HDFS)在数据仓库和数据湖实现中扮演着重要的角色。同时,对象存储还可以作为本地数据湖和云对象存储服务的存储库。
确实,对象存储为数据湖提供了基础优势。首先,对象存储中的数据处理是高度灵活的。尤其是,它不需要像在 RDBMS 中那样,定义要存储的数据“模式”。在 RDBMS 中,复杂查询的表的结构和表之间的关系都必须预先定义。对象存储系统可以存储所有类型的文件,无需预定义,并且对数据量没有限制。
在访问方面,越来越多的分析应用程序正在利用 Amazon S3 API,例如 Splunk SmartStore 和 Vertica 的 Eon 模式。Hadoop 生态系统工具,如 Apache SPARK 也能够通过 Hadoop 兼容文件系统(HCFS)访问对象存储。实际上,这是通过 S3 协议直接支持的。随着时间的推移,基于对象存储的数据湖存储库可以利用的工具数量将会增加。
此外,许多现代对象存储系统还支持独立的容量和性能扩展,从而消除了前面描述的 HDFS 的刚性/耦合模型。许多分析工具供应商已经在他们的产品中采用了这种模型,以获得这种效率优势,例如 Splunk SmartStore 和 Microfocus Vertica EON 模式支持 S3 对象存储。以大型 MapReduce 工作负载为例,用户可以将计算层升级为 MapReduce 应用的性能主机,独立扩展对象存储的容量和吞吐量。对于数据湖来说,这是在大型分析项目中使用对象存储的一个关键好处,因为计算和存储资源可以相互独立地扩展。
这就消除了同步扩张的必要性,从而保证了明显的成本优势。独立扩展的能力为随需应变的数据分析提供了正确的计算性能,这可以显著降低数据湖解决方案的总体成本。
对象存储的不可变性
无论是哪一种对象存储,包括 S3、GCS 和 Azure Blob 存储,都具备同一个特点——不可变。这就意味着,一旦文件写入对象存储,就永远无法编辑。用户只能硬删除旧文件,并创建一个新文件,或者在逻辑上删除旧文件并创建一个新文件(版本控制)。
若使用 S3 作为 RDBMS 源且频繁刷新数据的数据平台时,这会导致为每个表创建大量冗长的小文件。插入、更新和删除操作随着时间的推移而堆积如山,尝试导出表的当前状态将变得耗费大量时间和计算。大多数数据科学家都不愿意完成这个复杂的任务,而是要求直接访问源系统,这就违背了使用数据湖的初衷。
如何让存储灵活起来?
相较于对象存储的不可变性,文件存储就显得灵活了许多。文件存储由来已久,它主要负责两件事:组织数据和向用户表示数据。这也让它拥有了一个优势,允许用户通过一些独特的标识符(如名称、位置或 URL)请求文件,这些标识符可以通过特定的数据传输协议与存储系统通信,从而形成从上到下导航的分层文件结构,实现让用户以文件和文件夹的形式随时查看和访问数据,且能够在提供高吞吐和高 IOPS 的同时,支持文件的随机读写和在线修改。
同时,文件存储通常由共享文件系统(如 NFS 和 CIFS/SMB)代表,支持由多个服务器通过 IP 网络访问,以及通过用户和组权限在文件、目录和导出级别控制访问,并且可用于存储多个用户和机器、应用程序二进制文件、数据库、容器、虚拟机所需的文件等等。因此,当互联网、物联网、云计算、大数据等技术带来海量数据的时候,不少人寄希望于分布式文件存储的高性能、高效率、高灵活性的特点来处理海量数据。
作为高性能文件存储的领导者,焱融科技核心产品 YRCloudFile 凭借其卓越的性能、灵活的水平扩展能力,决定了它在存储领域中的重要地位。
焱融 YRCloudFile 基于先进的集群,为用户构建了一站式存储服务,极大地满足了各行各业的数据存储需求:
- 高带宽、低延时读写特性,保证为 GPU 服务器提供足够的数据输入,实现 GPU 的高效使用;
- 支持百亿级别的小文件及部分大文件混合的读写场景;
- 能支持近千台高性能计算节点的并发访问;
- 满足多种计算集群模式存储服务,包括固有的裸金属计算架构、云计算架构、容器化计算架构的持久化存储等需求;
- 满足综合监控数据治理平台对接需求,实现数据管理、监控、运维一体化展现和简约化治理能力;
- 实现相关业务特征具体优化策略,根据不同业务类型特征具备可调节优化能力;
- 支持数据加载 DataLoad 技术,有效让数据达到统一管理的目的,使业务发展按需流转。
由此而言,展望未来,面向东数西算工程的发展,焱融科技不仅实现海量存储高性能,而且还能满足数据存储智能、高效和安全的更高需求,为企业提供更为细致与全面的解决之道。