什么是数据湖|数据湖的基本架构
数据湖的概念目前非常热,很多人都在讨论数据湖应该怎么建,阿里云是否有成熟的数据湖解决方案,阿里云的数据湖解决方案有没有实际落地的案例,怎么理解数据湖,数据湖和大数据平台有什么不同,等问题,本系列文章将围绕数据湖进行解析。本文包括以下内容:1. 什么是数据湖 2. 数据库基本架构 3. 基于云的数据库框架,下一篇文章将会介绍数据湖与数据仓库的区别。
1. 什么是数据湖在计划构建数据湖之前,了解什么是数据湖,明确一个数据湖项目的基本组成,进而设计数据湖的基本架构,对于数据湖的构建至关重要。数据库是统一存储池,可对接多种数据输入方式,您可以存储任意规模的结构化、半结构化、非结构化数据。数据库可无缝对接多种计算分析平台,直接进行数据处理与分析,打破孤岛,洞察业务价值。同时,数据湖提供冷热分层转换能力,覆盖数据全生命周期。关于数据湖的定义有很多,但是基本上都围绕着以下几个特性:(1)数据库需要提供足够用的数据存储能力,这个存储保存了一个企业/组织中的所有数据。(2)数据库可以存储海量的任意类型的数据,包括结构化、半结构化和非结构化数据。(3)数据库中的数据是原始数据,是业务数据的完整副本。数据湖中的数据保持了他们在业务系统中原来的样子。(4) 数据库需要具备完善的数据管理能力(完善的元数据),可以管理各类数据相关的要素,包括数据源、数据格式、连接信息、数据schema、权限管理等。(5) 数据湖需要具备多样化的分析能力,包括但不限于批处理、流式计算、交互式分析以及机器学习;同时,还需要提供一定的任务调度和管理能力。(6)数据湖需要具备完善的数据生命周期管理能力。不仅需要存储原始数据,还需要能够保存各类分析处理的中间结果,并完整地记录数据的分析处理过程,能帮助用户完整详细追溯任意一条数据的产生过程。(7)数据库需要具备完善的数据获取和数据发布能力。数据库需要能支撑各种各样的数据源,并能从相关的数据源中获取全量/增量数据;然后规范存储。数据湖能将数据分析处理的结果推送到合适的存储引擎中,满足不同的应用访问需求。(8)对于大数据的支持,包括超大规模存储以及可扩展的大规模数据处理能力。因此,数据湖应该是一种不断演进中、可扩展的大数据存储、处理、分析的基础设施;以数据为导向,实现任意来源、任意速度、任意规模、任意类型数据的全量获取、全量存储、多模式处理与全生命周期管理;并通过与各类外部异构数据源的交互集成,支持各类企业级应用。
2. 数据湖基本架构数据库采用扁平化架构,因为这些数据既可能是非结构化,也可能是半结构化或结构化,而且是从组织内的各种来源所收集,而数据仓库则是把数据存储在文件或文件夹中。数据库可托管于本地或云端。鉴于其架构特点,数据湖可大规模扩展,能达到艾字节。这一点很重要,因为创建数据库时,您通常并不知道需要保存的数据量。传统的数据存储系统就无法以这种方式扩展。这种架构可以大大方便了数据科学家,因为他们可以通过这种架构挖掘和探索企业的数据,并共享和相互参照数据(包括不同领域的异构数据),以便进行提问并找到新的分析。他们还可以利用大数据分析和机器学习分析数据湖中的数据。虽然数据在存入数据湖之前没有固定的模式,但利用数据监管,你仍然可以有效避免出现数据沼泽。数据在存入数据库时应被标记为元数据,以确保随后可以存取。
3. 基于云的数据湖框架数据库的支柱包括可扩展和持久的数据存储,收集和组织数据的机制以及处理和分析数据以及共享发现的工具。因此,我们专注于任何现代数据库中应包含的关键技术,以支持大数据意味着任何类型的数据。云具有无限的资源。基于云的服务特别适合数据库,因为它为我们提供了无限的资源,这意味着云基础架构可在几分钟或几秒钟内按需提供几乎无限的资源,而无需担心任何事情。组织只需为使用的资源付费,从而可以在不影响性能的情况下动态支持任何规模的用户和工作负载。节省资金,专注于数据的云技术。基于云的服务可为任何组织提供云构建的解决方案,从而避免了硬件,软件和其他基础架构的昂贵,前期投资以及维护,更新和保护的成本本地系统。云技术附带了自然集成点。据估计,您要分析的数据中有多达80%来自业务应用程序数据,运营数据存储,点击流量数据,社交媒体平台,物联网事物和实时流数据。与构建内部数据中心相比,将这些数据集成到云中要容易得多,而且成本更低。使用noSQL内置。它描述了一种技术,该技术可以存储和分析更新形式的数据,例如从计算机和社交媒体生成的数据,以丰富和扩展组织的数据分析。众所周知,传统的数据仓库无法很好地容纳这些数据类型。因此,近年来出现了更新的系统来处理这些半结构化和非结构化数据形式,例如JSON,Avro和XML。支持现有技能和专业知识。Data Lake支持有效存储和处理任何类型的数据,数据管理,数据转换,集成,可视化,商业智能和分析工具所需的功能,可以轻松地与SQL数据仓库进行通信。标准SQL根深蒂固的角色也意味着大量人具有SQL技能。它使其他编程语言能够提取和分析数据。应该清楚地认识到云在成本,规模,性能,易用性和安全性方面的内在优势,因为它们对整体数据采集计划和成果的影响。