发布于: Nov 30, 2022
【概要】介绍数据湖就不得不提到其基础架构,那么智能数据湖架构又有何不同呢?下面,我们将具体介绍智能湖仓的五个层级。但在此之前,不妨先来聊聊智能湖仓架构的数据来源。
介绍数据湖就不得不提到其基础架构,那么智能数据湖架构又有何不同呢?下面,我们将具体介绍智能湖仓的五个层级。但在此之前,不妨先来聊聊智能湖仓架构的数据来源。
数据源
这套智能湖仓架构可供您摄取并分析来自不同来源的数据。无论是业务线(LOB)应用、ERP 应用还是 CRM 应用,大部分数据源都会以固定的间隔生成高度结构化的批量数据。除了内部结构化来源之外,您还可以从现代数据源(例如 Web 应用程序、移动设备、传感器、视频流以及社交媒体等)处接收数据。这些现代数据源往往会以连续数据流方式生成半结构化乃至非结构化数据。
数据摄取层
智能湖仓架构中的摄取层,负责将数据摄取至智能湖仓的存储层内。它会借助各类协议接入内部及外部数据源,批量或实时摄取数据,再将结果传送至数据仓库乃至智能湖仓存储层的数据湖组件中。
数据存储层
智能湖仓架构中的数据存储层,负责提供持久、可扩展且具有良好成本效益的组件,用以存储及管理大量数据。在智能湖仓架构中,数据仓库与数据湖将原生集成以提供经济高效的存储层体系,用以支持非结构化以及高度结构化和建模数据。存储层会按照不同消费就绪状态对存储数据进行划分,具体包括原始数据、可信数据、丰富数据与建模数据。
数据仓库中的结构化数据存储
数据仓库中存储的是符合标准且高度可信的数据,具体结构化形式则包括传统的星形、雪花形、数据保管库乃至其他非规范化模式。仓库中存储的数据通常获取自高度结构化的内部与外部来源(例如交易系统、关系数据库以及其他结构化运营资源),而且往往以一定的规律保持运作。现代云原生数据仓库通常能够在内置的高性能存储卷中存放经过压缩的 PB 级列式数据。通过 MPP 引擎配合快速连接通道,现代云原生数据仓库能够为复杂 SQL 查询提供低延迟与高执行速度。
为了提供经过严格筛选、一致且受信的数据,在将数据存储至仓库之前,您需要首先通过提取、转换、加载(ETL)或者提取、加载、转换(ELT)管道对源数据进行预处理、验证及转换,借此建立起跨业务域的高可信度真实数据集源。
智能湖仓架构中的结构化与非结构化数据存储
数据湖,是一套用于存储并组织所有数据的集中式数据存储库。它支持以结构化、半结构化以及非结构化等形式存储数据,支持分层存储以高度优化成本,同时可自动扩展以容纳 EB 级海量数据。常见的数据湖被划分为登陆区、原始区、受信区与策划区几个部分,用于根据数据的消费就绪状态进行分别存储。通常,数据在摄取完成后会被原样存储在数据湖内(无需预先定义 schema),借此加快摄取速度并缩短数据探索之前的准备时间。数据湖可以通过多种方法(包括大数据处理与机器学习)对各类数据集进行分析。数据湖与数据仓库间的原生集成,还允许您从仓库存储中移出大量访问频率较低的历史数据,借此降低存储成本。
目录层
目录层负责存储智能湖仓存储层内所托管数据集的业务与技术元数据。在智能湖仓架构中,目录由数据湖与数据仓库共享,并允许用户编写查询。这些查询将把存储在数据湖与数据仓库内的数据合并至同一 SQL 中,由此跟踪版本化 schema 与数据集的细粒度分区信息。随着数据集数量的增加,该层还提供搜索功能以保证智能湖仓中的数据集始终可被发现与查询。
智能湖仓接口
在智能湖仓架构中,数据仓库与数据湖在存储乃至公共目录层上保持原生集成,因此能够为处理及消费层提供统一的智能湖仓接口。以此为基础,智能湖仓的处理与消费层组件又可以通过统一的单个智能湖仓接口(例如SQL 或 Spark)使用存储层内存储的所有数据(分别存储在数据仓库与数据湖内)。这样的架构设计,使您无需沿任一方向在数据仓库及数据湖之间移动数据,即可访问智能湖仓中的所有存储数据。
数据仓库与数据湖间的原生集成,使您得以灵活执行以下操作:
- 将 EB 级别的结构化与非结构化数据存储在极具成本效益的数据湖之内,同时将经过高度策划、建模与整合的结构化数据存储在热数据仓库存储内。
- 利用 Spark 等单一处理框架通过单一管道合并并分析所有数据,包括数据湖中的非结构化数据与数据仓库中的结构化数据。
- 构建基于 SQL 的数据仓库原生 ETL 或 ELT 管道,将仓库中的平面关系数据与数据湖内复杂的多层结构化数据相结合。
数据处理层
智能湖仓架构的数据处理层组件负责通过验证、清洗、规范化、转换与扩充等方式将数据转换为可消费状态。处理层提供专用组件执行各类转换,包括数据仓库 SQL、大数据处理以及近实时 ETL 等。
处理层提供与正确的数据集特征(包括大小、格式、schema、速度)、当前处理任务以及可用技术集(SQL、Spark)相匹配的专用组件,由此尽可能加快交付速度。处理层能够经济高效地扩展以处理大量数据,同时支持 schema-on-write、schema-on-read、分区数据集以及多种数据格式。处理层还能够访问统一的智能湖仓存储接口与通用目录,由此访问智能湖仓中的所有数据及元数据,进而实现以下优势:
- 避免分析处理数据湖与数据仓库时可能导致的数据冗余、非必要数据移动以及 ETL 代码重复。
- 加快交付速度。
数据消费层
智能湖仓架构中的数据消费层负责提供可扩展的高性能组件,利用统一的智能湖仓接口访问存储层中的数据以及目录中的元数据。数据消费层还提供专用分析组件以全面开放分析功能,确保组织内的所有职能角色都能够通过交互式 SQL 查询、仓库式分析、商务智能仪表板以及机器学习等形式获取洞察见解。
消费层中的组件支持以下功能:
- 编写查询与分析/机器学习作业,访问及合并来自传统数据仓库的维度 schema 以及数据湖托管表(需要配合 schema-on-read)。
- 处理以各种开放文件格式(例如 Avro、Parquet 或者 ORC)存储的数据湖托管数据集。
- 在读取数据湖中托管的大型分区数据集时,通过分区裁剪优化性能与成本。
在本文的后续部分,我们将介绍一套参考架构,展示如何使用亚马逊云科技服务构建智能湖仓逻辑架构中的各个层。在这套方案中,亚马逊云科技服务将托管以下工作:
- 提供并管理可扩展、具有良好弹性、安全且成本效益出色的基础设施组件。
- 确保各基础设施组件彼此原生集成。
这套方案将帮助您将主要精力集中在以下工作身上:
- 快速建立数据与分析管道。
- 显著加快新数据的导入速度,并从数据中获取洞见。
- 支持多个用户角色。
相关文章