什么是数据湖?
数据湖是一种有助于解决数据孤岛问题的集中式数据存储库。
default
{}
default
{}
primary
default
{}
secondary
数据湖的定义和用途
数据湖是一种集中式数据存储库,支持用户以原生格式存储结构化、半结构化和非结构化数据。与其他需要在存储前对数据进行整理的存储系统(如数据仓库)不同,数据湖按原样接收数据,保留数据的原始结构和格式,直至需要将其用于高级分析、人工智能 (AI) 与机器学习 (ML) 场景。
数据湖的核心作用是打破数据孤岛,为整个企业的数据资产创建统一的数据源。多个来源的数据被整合至便于访问的统一位置,也就是数据湖。这样一来,数据科学家、分析师和机器学习工程师就可以对原本分散在不同系统中的信息进行探索和试验,并挖掘其中的价值。数据湖存储的数据源类型包括但不限于:
- 数据库
- 文件
- 流数据
- 应用日志
- 社交媒体内容
- 物联网传感器日志
数据湖的用途是为各种类型数据的存储和分析提供灵活且可扩展的解决方案,而这是通过“读时模式”(schema-on-read) 方法实现的。与之相对,数据仓库采用的是“写时模式”(schema-on-write)。
什么是读时模式?
读时模式是指在读取数据时(而不是在写入存储时)应用数据的结构和含义(即模式)。这保留了灵活性,让企业能够在不必确知其未来用途的情况存储数据。这也是数据湖非常适用于探索性分析、数据挖掘、机器学习以及数据未知模式识别的原因。
数据湖架构和组件
数据湖采用多层架构,由多个核心组件协同完成数据的采集、存储和处理,并向最终用户和应用交付数据。数据湖的核心组件包括:
存储层
存储层是数据湖架构的基础,通常基于对象存储系统构建,对象存储系统能够以经济高效且可扩展的方式存储海量数据。无论是 CSV 文件、JSON 文档、Parquet 文件、图像、视频还是任何其他格式,存储层都以其原生格式来保存数据。
数据获取
数据摄取层负责将各种来源的数据导入到数据湖中,支持批摄取(用于定期数据加载)和流摄取(用于实时数据流)。数据摄取工具必须处理多样化的数据源和数据类型,同时确保数据完整性并跟踪数据沿袭。
数据目录和元数据管理
目录编制和元数据管理组件负责为数据湖中的数据维护结构化的清单,包括梳理数据的位置、含义以及数据间关系。你可以将其理解为图书馆或档案库的目录管理员。完备的数据目录可以作为支持搜索的索引,用户不必手动浏览整个资源库,就能找到相关数据集。
处理层
处理层负责数据的转换、清洗、丰富和分析。该层包含批处理、流处理和交互式查询引擎,允许用户针对特定应用场景准备数据,或执行即席分析。
访问层
访问层为不同类型的用户提供接口和工具,这些用户包括使用笔记本电脑的数据科学家、运行 SQL 查询的分析师,以及通过 API 使用数据的各种应用。此外,访问层还负责实施安全策略,对数据访问的主体、范围及条件进行精细化管理。
数据湖的类型:云、本地、混合、多云
根据企业部署架构的不同,数据湖可分为多种类型,且每种架构各有利弊。
云数据湖
云数据湖完全托管在云平台上,具备近乎无限的扩展能力,支持按使用付费的定价模式,并且能够与云原生分析和 AI 服务轻松集成。采用云数据湖,企业在前期无需投资部署基础设施,而是可以独立扩展存储和计算资源。这类数据湖尤其适合成长型企业,以及希望在降低运维成本的同时,仍能充分利用前沿分析功能的企业。
本地数据湖
本地数据湖部署在企业自有数据中心内,让企业能够完全控制并全权负责相关的基础设施、安全性以及数据主权。虽然一些具有特殊监管和安全要求的组织会采用本地数据湖,但这也通常意味着企业需要投入大量资本,实施持续运维,并且耗费大量人力来实施转换项目。企业往往需要作出取舍:要提升控制粒度,就必须牺牲扩展性和成本效益。
混合数据湖
混合数据湖将云存储和本地存储相结合,企业可以在本地保留一部分数据,同时利用云资源来支持弹性扩展和高级分析。这种方法虽然很灵活,但也让数据同步、数据治理,以及跨环境一致性管理变得更复杂。
多云数据湖
多云数据湖背靠多家云服务提供商,能够帮助企业避免被单一提供商套牢,通过优选各家提供商的服务来优化成本,并借助冗余机制来保障业务连续性。不过,如果采用多云架构,企业需要围绕数据互操作性、安全策略的统一实施和跨云数据传输成本管理制定周密的计划。而且,这类数据湖还会让变革和创新落地变得更复杂。
数据湖、数据仓库和数据湖仓对比
要想找到契合企业目标的部署方案,就必须先了解这些数据存储方法之间的差异。下面我们通过一些重要指标,比较一下数据湖、数据仓库和数据湖仓:
实际应用对比
数据湖擅长以经济高效的方式存储海量原始数据,并支持探索性分析和机器学习。数据湖适合需要灵活处理多种数据类型且无法预知数据用途的情况。数据湖存储的数据,后续还可以导入数据仓库。
数据仓库专为商业智能和报告构建,采用针对查询进行了优化的结构化模式,非常适合那些注重数据质量和一致性且需求明确的报告和数据建模场景,例如预测性分析。在实际应用中,根据数据管道的配置,数据湖中积累的数据可经过处理后,实时流入或定期导入数据仓库。
数据湖仓是一种更新型的架构,兼具数据湖的灵活性和数据仓库在管理能力及性能方面的优势,允许企业在同一平台上运行探索性分析和业务报告,有助于降低数据重复率和复杂度。
数据湖的优势
数据湖的诸多优势使其成为对企业而言极具吸引力的选择,也奠定了其现代数据架构基石的地位。具体而言,数据湖架构具有以下优势:
灵活性:数据湖可接收任意类型、任意格式的数据,无需在存储前转换数据,也不会遗漏任何数据。这意味着,企业可以立即着手采集数据,无需作大量的前期规划,也不必预知数据用途。“读时模式”机制支持不同团队对相同数据进行多样化的应用和解读,促进创新与探索。
可扩展性:采用数据湖,无需变更或迁移架构,存储容量即可从 GB 级扩展到 PB 级,尤其是在云部署环境中。企业可以从小规模起步,后续随数据需求增长灵活扩容。
成本效益:同等存储量下,数据湖的存储成本一般远低于传统数据仓库,这使得企业能够在不超出预算的情况下,留存历史数据,同时探索新数据源。
高级分析支持:数据湖支持数据科学家和机器学习工程师访问原始数据,执行模型构建和训练、数据挖掘等高级任务。与数据仓库中经过处理的数据不同,原始数据保留了对精准预测与洞察至关重要的细节。数据湖还支持通过摄取流数据进行实时分析,让企业能够基于最新信息采取行动。
数据民主化:数据湖的另一个优势就是所有企业数据都存储在易于访问的统一位置,更多内部人员能够发现并使用数据。这有助于打破数据孤岛,在各个层级制定由数据驱动的决策。
常见的数据湖挑战
数据湖虽然具有明显的优势,但企业仍需克服诸多挑战,才能充分发挥其价值。常见的数据湖挑战包括:
数据湖治理复杂度高
存储多样化的海量数据,必然会增加数据治理的复杂性。倘若缺乏适当的治理框架,数据湖就可能沦为“数据泥潭”,也就是说数据无序存放,难以查找、理解和被信任。要想解决这个问题,就必须建立明确权属、记录数据沿袭并妥善管理元数据,而且需要长期坚持与规范管理。
数据安全风险
企业必须密切关注数据安全和访问控制事宜。数据湖包含整个企业的敏感信息,为了确保只有授权用户才能访问特定数据集,同时维护审计跟踪,必须实施严格的安全策略和高效的工具。数据加密、身份验证、细粒度权限控制和数据脱敏等都是保障数据湖安全、规避管理问题的关键。
数据质量参差不齐
数据湖不能自动保证数据质量。由于是按原样存储原始数据,因此可能存在数据错误、重复或不一致的情况。企业必须在执行分析前对数据进行校验、清洗和丰富。如果不重视数据质量,基于数据湖数据构建的分析和机器学习模型就可能生成不可靠的结果。
数据湖管理问题
数据湖管理的复杂性和专业知识要求不容小觑。若要有效管理数据湖,相关人员需要具备分布式系统、数据工程、元数据管理及各类处理框架方面的专业技能。为了构建和维护数据湖基础架构,企业需要加大培训投入、聘用专业人才,或者与专业服务提供商合作。
查询耗时较长
性能优化可能非常棘手,尤其在大数据集上执行交互式查询时。与具备预优化模式的数据仓库不同,数据湖需要审慎地组织数据、实施分区策略和选择文件格式,才能达到令人满意的查询性能。简而言之,数据湖能够存储难以置信的大量数据,因此信息查询通常需要一定的时间。
数据湖示例和实际应用场景
以下真实场景展示了企业如何利用数据湖解决业务难题、获得竞争优势。下面我们通过几个典型场景来具体分析:
数据湖应用场景:支持预测性维护的物联网分析
一家制造企业从分布在多个工厂的数千台设备上采集传感器数据,每天生成 TB 级的时间序列数据。通过将这些数据流式传输到数据湖,他们得以将其与维护记录、生产计划和供应商信息整合在一起。机器学习模型可以通过分析历史模式,预测设备故障风险,从而减少停机时间,并节省数百万维修成本。数据湖能够处理来自多种数据源的高速流数据,这是赋能该应用场景的核心能力。
数据湖应用场景:支持个性化营销的全方位客户画像
一家零售企业将各种客户数据整合到数据湖中,这些数据包括线上浏览行为、购买历史记录、移动应用交互、客户服务呼叫和会话、社交媒体互动以及店铺访问等。通过全面分析每一位客户的概况,企业能够进行详尽的客户细分,并打造个性化的营销活动、产品推荐内容和客户体验。这有助于提高营销活动的成效,并显著提升客户满意度。在这个示例中,数据湖可灵活存储结构化交易数据与非结构化互动日志,助力生成完整的客户视图。
数据湖应用场景:金融服务风险建模
一家金融机构利用数据湖汇总交易数据、市场行情数据、新闻资讯、社交媒体情绪数据以及监管备案文件。数据科学家基于传统财务指标和其他数据源,构建精密的风险模型。利用数据湖的“读时模式”,他们可以在不中断现有系统的情况下,探索各种数据源和建模技术,实现更精准的风险评估。
数据湖卓越实践
通过实施以下数据湖卓越实践,企业能够充分挖掘数据湖价值,同时避开常见误区:
- 从一开始就优先执行元数据管理。创建全面的数据目录,记录现有数据的内容、来源、含义以及与其他数据集的关系。优质的元数据能够让数据湖成为一项便于搜索和理解的资源,而不是杂乱无章的数据堆,这是数据湖管理的核心要义。
- 保障有效的数据湖治理。实施强大的数据治理框架,明确数据权属、制定质量标准,并构建清晰的数据摄取、分类和生命周期管理流程。有效治理不应成为事后补救措施,而应从架构设计之初就考虑进来,这样才能保障数据可信度,满足监管合规要求。
- 保护数据安全。根据需要采用静态加密和传输中加密、细粒度权限控制、审计日志和数据脱敏等措施,在设计时就充分考虑安全性与合规性。定期审核访问模式和权限,确保符合最小权限访问原则。
- 优化性能。按日期、区域等维度合理分区、选用适配分析任务的文件格式,并实施生命周期管理政策来归档或删除过时的数据,优化存储布局。这些举措有助于大幅提升成本效益和查询性能。
- 培育数据驱动文化。让数据易于发现和访问,并提供培训和支持自助分析的工具。如果团队缺乏相应专业能力,可考虑引进人才,弥合业务利益相关方与技术之间的鸿沟,确保数据湖得到最优管理。只有当员工能够真正利用数据做出更明智的决策时,技术基础架构才有价值。
数据湖的未来
随着企业对灵活性和治理能力的要求不断提高,数据湖技术也会持续演进,继而推动兼具数据湖和数据仓库优势的数据湖仓架构的兴起。这种融合趋势表明,企业越发需要能够支持多样化应用场景的统一平台,而非为不同用途维护多套独立系统。
AI 和机器学习在数据湖战略中的重要性愈发凸显。现代数据湖不仅仅是存储资源库,而且是一个中央平台。在这个平台上,AI 模型能够基于历史数据进行训练,利用流数据做出预测,并通过反馈闭环实施持续优化。目前,与 AI 平台和自动化机器学习功能集成正成为标配,而非特例。
随着企业逐渐意识到利用最新数据指导行动的价值,实时分析和流分析将变得愈发重要。因此,数据湖正逐步发展为支持亚秒级数据处理和查询,渐渐打破历史分析和实时运营之间的界限。
最后,随着全球数据隐私法规不断扩展和更新,数据湖平台必须在设计时内置数据隐私和安全保护能力,包括自动数据分类、知情同意管理和精简的合规报告等功能,而不是在事后引入。
常见问题