文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

详解新一代数据湖--数据平台

2024-12-03 03:59

关注

自定义的数据获取引擎

基于上述考虑,企业在搭建与集成数据平台时,往往会以开源技术作为平台的核心,以流式和批处理的方式提供数据服务,并试图将数据服务层与数据持久化引擎进行解耦。当然,他们也可以一股脑地将这些任务交给诸如:BigQueryRedshift、以及Snowflake等增值服务提供商、及其特定产品来实现。

数据平台架构的示例

数据模型(域驱动设计)

说到数据平台,它往往需要全局性的数据模型定义。目前,许多企业、特别是一些技术类型的公司,都会采用域驱动设计(Domain Driven Design,DDD)的方法。该方法通常会涉及到如下方面:

在数据域处置方面,我们常用的方法是遵循自底向上的设计原则。这意味着:从生产者的数据域开始,数据产品将被视为自己的消费者进行构建。因此,数据平台需要为它们提供所有必要的工具、服务、支持、标准化流程、以及集成。

从生产者域到消费者域(数据即产品)

销售域是消费者数据域的一个极其常见的例子,当然也是非常复杂的。在那些拥有多渠道订单(如:电子商务、社交媒体、实体店等)的大公司中,渠道和部门之间有关销售的概念虽然略有不同,但是它往往是由那些来自多个域的数据所组成。

销售域

例如:由于每个团队所需要的数据、数据的验证过程、以及衡量指标有所不同,因此电商部门和财务部门的销售数据产品就可能不一样。如果您对该专题感兴趣的话,请参阅有关Data Mesh范例的文章

数据的获取模式

众所周知,数据平台最具价值的资源便是数据。同时,数据也是最为复杂的。我们通常有两种上传数据的方式:

可见,“推式”方法虽好,但是许多公司往往有着各种遗留下来的系统,以至于团队无法及时准备好适合推送的数据。而通过提供“拉式”方法,我们则可以开发自动化的数据获取引擎服务。

什么是数据获取引擎服务(Data Ingestion Engine Service)?

总的说来,它是一个无需代码,只需各种SQL语句和映射,即可创建ETL流程和数据流程的自助服务平台。其目标是通过提供多种风格,来涵盖如下方面:

如果我们对所有类型的数据获取管道,都采取相同的方法,将会拥有一整套自动化的连接器,可方便团队推送他们的各种数据。例如:变更数据的捕获,各类事件、镜像、以及文件等。也就是说,通过为产品所有者构建可用于数据推送的通用组件,我们将能够实现自动化的获取层。

批处理的数据流

如上图所示,我们必须提供各种工具和标准化的流程(包括:数据获取与质量控制等),以允许生产者将他们的数据,通过Web门户或GitOps等自动化的方式,推送到数据平台上。

下面,我们将重点讨论如何开发一个获取引擎。

微服务架构之推送

事件驱动型的微服务架构,是被应用到基于数据流的“推送策略(Push Strategy)”的最佳场景之一。此类架构通常是基于诸如Apache Kafka等持久性的消息传递系统,并遵循的是“发布-订阅(publish-subscribe)”的通信模式

微服务架构模式

如上图所示,这种模式提供了一种可扩展的、松散耦合的架构,即:

我们可以通过提供标准化的获取连接器,来订阅此类主题,并将各种事件以近乎实时的方式,获取到我们的数据平台。当然,此类架构在信息范围方面会存在着如下缺陷:

数据湖(Data Lake)

在存储与分析原始数据,以及机器学习环境中,也就产生了数据湖的概念。它是一种基于对象存储的数据存储库,能够方便我们进行如下存储:

目前,云存储服务既能够为频繁调用的数据提供高性能与低延迟的处理能力,又能够为非频繁调用的数据提供低成本的大容量存储空间。因此,我们可以通过选用Azure Data Lake Storage Gen2,来为云对象的存储提供如下功能:

我们需要根据用户的实际需求和用例做到:

Spark-SQL流经MariaDB

如上图所示,我们可以使用外部开源版本的Hive Metastore,而非具有集成限制的供应商管理服务,来自由地集成任何Spark平台环境(如:Databricks、Cloudera等)。

Spark-SQL和HiveMetastore

Spark-SQL为我们提供了一个分布式的查询引擎,以方便我们以更为优化的方式使用结构化与半结构化数据,并使用类似于数据目录的Hive Metastore。通过SQL,我们可以从如下位置查询到数据:

Spark-SQL和HiveMetastore的流程

数据湖即服务(Data Lake as a Service)

基于上述理论与知识基础,我们可以设计和构建出具有如下特征的数据湖平台:

数据湖即服务的架构

数据湖平台即服务是一种动态且可扩展的计算与服务层能力。其中,作为核心的Spark集群是数据湖平台的最小服务目录。我们既可以创建一个7x24的永久性集群,又可以创建一个临时的工作集群。例如,若想为数据产品团队提供沙盒分析服务,我们可以为每个成员都创建一个包含有相同数据,但彼此隔离的计算环境。对此,我们需要实现:

自助式的服务层

当然,上图只是一个非常简单化的视图,其中并没有定义安全性、高可用性、以及数据质量的相关服务。

数据湖能够提供什么?

如下图所示,作为一个开源层,数据湖提供了ACID功能,并确保用户能够看到一致性的数据。各种数据管道可以被用来刷新数据,但不会影响正在运行中的Spark过程。

ACID:原子性、一致性、隔离性、持久性

其他重要的功能还包括:

数据湖的进化

如下图所示,传统的数据湖、数据仓库、以及数据中心(Hub)之间有着概念性和技术性的区别。

数据湖、数据中心、数据仓库图表

Apache Hudi为传统的、基于Hadoop、Spark、Parquet、Hive等数据湖技术生态,添加了新的实用功能。其中包括:将计算和存储层进行架构上的解耦、无服务器化、SQL分析Delta Engine、以及Databricks等新一代的数据湖平台。而根据Databricks的理论,Lake House可以被理解为新一代、更为成熟的数据湖。它包含了如下两个部分:

数据中心流程图

数据仓库流程图

目前,随着数据仓库的能力得到了大幅提升,诸如Snowflake、Bigquery、以及Oracle Autonomous Data Warehouse等技术产品,在数据分发等方面都表现出了不俗的性能。

小结

总的说来,结合了Kafka等事件中心的新一代数据湖,是我们构建数据平台核心的优先选择。它作为一项成熟的技术,不但开源、持续进化,而且具有极具竞争力的性价比。我们可以将其部署到各种云端服务环境中,以更好地发掘数据的价值。

原文Data Platform: The New Generation Data Lakes,作者:Miguel Garcia和Albert Palau

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

 

来源:51CTO内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯