构建高效数据流转的 ETL 系统:数据库 + Serverless 函数计算的最佳实践

简介: 构建高效数据流转的 ETL 系统:数据库 + Serverless 函数计算的最佳实践

作者:柳下

概述

随着企业规模和数据量的增长,数据的价值越来越受到重视。数据的变化和更新变得更加频繁和复杂,因此及时捕获和处理这些变化变得至关重要。为了满足这一需求,数据库 CDC(Change Data Capture)技术应运而生。然而,从 ETL 架构的角度来看,CDC 仅满足了数据的提取(Extract)能力。


为了实现完整的 ETL 架构,并完成高效、实时的数据集成、处理和同步,阿里云 Serverless 函数计算(FC)与数据库 CDC 技术深度融合。助力企业构建完整的 ETL 架构,实现数据的提取、转换和加载。通过将 CDC 作为事件驱动的数据源,将数据变化作为事件触发 Serverless 函数的执行,可以实现实时的数据处理和同步,有助于提升业务决策和分析的准确性和效率。


架构介绍


下面将从 ETL 模型入手,逐步讲述 FC + CDC 如何适配符合 ETL 模型的业务。


ETL 模型

在大数据领域,承载数据流转、加工业务的系统架构都可抽象为 ETL 模型,它由三个主要步骤组成:提取(Extract)、转换(Transfomr)和加载(Load)。


  1. 提取:从数据源中提取数据。数据源可以是各种数据存储系统。如:数据库、文件系统、消息队列、API接口等。
  2. 转换:数据经过一系列的转换操作转换为目标系统可以接受的格式和结构。如:数据清洗、数据合并、数据富化等。
  3. 加载:将转换后的数据加载到目标服务中。目标服务可以是数据仓库、数据湖、BI 系统等。


此架构应用广泛,帮助企业管理和利用数据,实现数据驱动的决策和业务转型。



CDC + ETL

CDC 和 Extract(E) 是数据处理的两个概念,前者目的是捕获数据库中的变化数据,后者目的是从数据源中提取特定的数据集合。但回归业务本身,两者均是从数据源获取业务所需的数据,因此 CDC 和 ETL 的结合也是必然结果。两者的结合可构建更完整高效的数据处理流程,实现实时增量数据抽取和处理。相比传统的定期批量抽取方式,CDC 可更及时地捕获数据变化,使目标系统中的数据更加实时和准确。



阿里云 DTS + FC

在阿里云数据库产品体系中,数据传输服务 DTS(Data Transmission Service)扮演了 CDC 的角色,作为实时数据流传输服务,它能够捕获上游数据库的变更信息,并将这些变更推送给下游服务。当下游服务是函数计算时,可以利用函数计算的自定义代码能力,对数据进行自定义加工(T)和投递(L)。如下图所示,FC 和 DTS 的深度集成构建了完整的 ETL 体系,为业务系统的快速搭建提供了帮助。



功能详解


针对上文提到的 DTS + FC 架构,下面将剖析内部细节,深入理解系统的运行方式。


DTS 架构

DTS 在数据采集和数据传输上提供了完备的能力,DTS 系统可抽象为如下三大模块:


  1. Poller:从上游丰富的数据库服务获取数据,具体如下:
  • 传输数据类型:可传输存量数据或增量数据;
  • 数据获取方式:针对存量数据,DTS Poller 以并发查询方式扫描全表,将扫描结果投递至下游;针对增量数据,DTS Poller 监听并读取上游数据库的增量日志文件,解析文件中的日志信息并投递至下游;
  • 增量数据源:针对不同的上游数据库,DTS 会读取不同的增量日志文件。例如:当数据库为 MySQL 时读取 Binlog 文件,当数据库为 MongoDB 时读取 Oplog 文件。
  1. Format Plugin:将获取的数据统一格式化为 Canal Json 格式,格式的统一标准化便于数据解析逻辑复用于不同的数据源;
  2. Sinker:将格式化后的数据推送给下游 FC。



FC 架构

FC 和 DTS 的深度集成保证了 FC 可以接收 DTS 采集的数据库数据,并根据用户自定义代码实现数据加工和数据投递功能,具体如下:


  1. 请求路由:FC 网关将 DTS 发送的事件路由到 FC 后端;
  2. 调度处理:FC 调度层自动扩容计算节点运行用户代码,处理上游传递的 DTS 事件;
  3. 代码执行:用户的代码按预期运行,通常逻辑为加工处理 event 事件,并将处理后的结果以 SDK/API 等方式发送给外部服务。



从上图可以看到,您仅需关注数据加工和投递的业务逻辑,并通过简单代码片段完成实现,FC 后端会自动伸缩计算节点执行代码,您无需关注系统的基础设施建设、资源运维、伸缩、监控、报警等一系列繁琐工作,极大提升开发效率。同时 FC 作为 Serverless 应用,支持按量付费,避免长期预留机器资源带来的资源低效问题。


应用场景


OLTP 到 OLAP 的数据传输

什么是 OLTP 和 OLAP?


  • OLTP:指在线事务处理。通过以事务单位进行操作,并需要支持高并发写入和数据一致性。常见的服务如:关系型数据库( MySQL、PostgreSQL 等)、订单处理系统、客户关系管理系统等。
  • OLAP:指在线分析处理。通常用于从大量的数据中提取、聚合和分析信息,满足数据分析和决策支持。OLAP 系统通常以查询为基础,可以进行复杂的数据查询和分析操作。常见的服务如:AnalyticDB、ClickHouse、Power BI 等。


从上面描述看,OLTP 和 OLAP 是两种不同的数据处理服务,用于满足不同的业务需求。OLTP 系统适用于处理实时的交易和业务操作,而 OLAP 系统适用于从大量数据中进行分析和决策支持。在实际应用中,OLAP 的数据来源就是不同的 OLTP 数据库,所以 OLAP 本身不产生数据,通过 ETL 从 OLTP 抽取数据到 OLAP 数据库即数据仓库中做整合清洗达到可分析的数据标准。而 DTS + FC 恰好可以连接两类服务,打通数据通路。



CDC 事件驱动模型

什么是事件和事件驱动?


  • 事件:在业务系统中,事件是指系统或业务中发生的重要、有意义的事情或状态变化。事件可以是内部触发的,也可以是外部输入的,通常与业务流程、数据更改、用户操作等相关。
  • 事件驱动:事件驱动架构是一种系统设计范式,其中事件是系统中的核心组成部分。在这种架构中,系统的各个组件通过订阅和响应事件来进行通信协作,实现松耦合、可扩展的系统架构。


CDC 因用于捕获数据库中的数据变化,常被当做事件驱动后续流程的执行,常见的场景如下:


  • 订阅和发布系统:CDC 可作为订阅和发布系统的一部分,将数据库中的数据变化作为事件发布给相关的订阅者。这可以用于实现发布-订阅模式的事件驱动系统架构。
  • 数据校验:CDC 可将数据库中变化的数据推送给 FC。做定制化数据校验,校验数据的合理合规,这在金融、财务订单等系统非常重要。
  • 数据审计:CDC 可将数据库中变化的数据推送给 FC,经由 FC 持久化至任意三方服务,用于数据审计和数据可追溯需求。
  • 变更通知:当特定关键数据变动后,以任意方式发送特定通知,如:邮箱、钉钉、短信、电话等。



总结&展望


CDC 和 Serverless 函数计算的结合,可以实现实时的数据处理和响应,同时减少对基础设施的依赖和管理。在实际应用中,可将 CDC 作为事件驱动的数据源,将数据变化作为事件触发 Serverless 函数的执行。这样可以实现实时的数据处理和分发,同时利用 Serverless 函数计算的弹性扩展能力,根据实际负载动态分配计算资源。总而言之,DTS 和 Serverless 函数计算的集成为企业提供了更高效、灵活和可靠的数据处理解决方案。未来函数计算将探索更多的数据源(Oracle、PolarDB PostgreSQL、PolarDB MySQL 等),满足更多的业务需求。更多信息或需求请钉钉与我们联系,官方钉钉群号:11721331


更多功能体验请点击阅读原文。


2023 云原生产业大会阿里云云原生专场报名中

中国信通院将于2023 年 12 月 1 日举办“2023 云原生产业大会”,阿里云受邀参与本次大会,并将在主论坛分享《Serverless 范式升级,加速云上创新》主题演讲,同时阿里云会独立举办技术分论坛多位行业专家将带来对云原生产业的解读,深入剖析 Serverless 最新趋势,深度解读云原生产业趋势洞察,全面了解云原生为企业云上创新打造的产品与技术布局。

查看海报了解详细议程👇

扫码即可报名阿里云云原生专场


相关实践学习
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
相关文章
|
9月前
|
分布式计算 运维 搜索推荐
立马耀:通过阿里云 Serverless Spark 和 Milvus 构建高效向量检索系统,驱动个性化推荐业务
蝉妈妈旗下蝉选通过迁移到阿里云 Serverless Spark 及 Milvus,解决传统架构性能瓶颈与运维复杂性问题。新方案实现离线任务耗时减少40%、失败率降80%,Milvus 向量检索成本降低75%,支持更大规模数据处理,查询响应提速。
483 57
|
7月前
|
存储 编解码 Serverless
Serverless架构下的OSS应用:函数计算FC自动处理图片/视频转码(演示水印添加+缩略图生成流水线)
本文介绍基于阿里云函数计算(FC)和对象存储(OSS)构建Serverless媒体处理流水线,解决传统方案资源利用率低、运维复杂、成本高等问题。通过事件驱动机制实现图片水印添加、多规格缩略图生成及视频转码优化,支持毫秒级弹性伸缩与精确计费,提升处理效率并降低成本,适用于高并发媒体处理场景。
369 0
|
9月前
|
人工智能 开发框架 安全
Serverless MCP 运行时业界首发,函数计算让 AI 应用最后一公里提速
作为云上托管 MCP 服务的最佳运行时,函数计算 FC 为阿里云百炼 MCP 提供弹性调用能力,用户只需提交 npx 命令即可“零改造”将开源 MCP Server 部署到云上,函数计算 FC 会准备好计算资源,并以弹性、可靠的方式运行 MCP 服务,按实际调用时长和次数计费,欢迎你在阿里云百炼和函数计算 FC 上体验 MCP 服务。
775 30
|
6月前
|
分布式计算 Serverless OLAP
实时数仓Hologres V3.1版本发布,Serverless型实例从零开始构建OLAP系统
Hologres推出Serverless型实例,支持按需计费、无需独享资源,适合新业务探索分析。高性能查询内表及MaxCompute/OSS外表,弹性扩展至512CU,性能媲美主流开源产品。新增Dynamic Table升级、直读架构优化及ChatBI解决方案,助力高效数据分析。
实时数仓Hologres V3.1版本发布,Serverless型实例从零开始构建OLAP系统
|
9月前
|
存储 运维 Serverless
千万级数据秒级响应!碧桂园基于 EMR Serverless StarRocks 升级存算分离架构实践
碧桂园服务通过引入 EMR Serverless StarRocks 存算分离架构,解决了海量数据处理中的资源利用率低、并发能力不足等问题,显著降低了硬件和运维成本。实时查询性能提升8倍,查询出错率减少30倍,集群数据 SLA 达99.99%。此次技术升级不仅优化了用户体验,还结合AI打造了“一看”和“—问”智能场景助力精准决策与风险预测。
845 69
|
消息中间件 缓存 Serverless
在进行实时数据处理时,FaaS 如何保证数据的一致性和处理的实时性?
在进行实时数据处理时,FaaS 如何保证数据的一致性和处理的实时性?
|
9月前
|
人工智能 开发框架 运维
Serverless MCP 运行时业界首发,函数计算让 AI 应用最后一公里提速
Serverless MCP 运行时业界首发,函数计算支持阿里云百炼 MCP 服务!阿里云百炼发布业界首个全生命周期 MCP 服务,无需用户管理资源、开发部署、工程运维等工作,5 分钟即可快速搭建一个连接 MCP 服务的 Agent(智能体)。作为云上托管 MCP 服务的最佳运行时,函数计算 FC 为阿里云百炼 MCP 提供弹性调用能力。
 Serverless MCP 运行时业界首发,函数计算让 AI 应用最后一公里提速
|
算法 Serverless
通过函数计算部署ComfyUI以实现一个AIGC图像生成系统
快来报名参与ComfyUI活动,体验一键部署模型,生成粘土风格作品赢取体脂秤。活动时间从即日起至2024年12月13日24:00:00,每个工作日限量50个,先到先得!访问活动页面了解更多详情。
389 54
|
JSON 人工智能 Serverless
一键生成毛茸萌宠形象,基于函数计算极速部署ComfyUI生图系统
通过阿里云函数计算FC 和文件存储NAS,用户体验 ComfyUI 和预置工作流文件,用户可以快速生成毛茸茸萌宠等高质量图像。
一键生成毛茸萌宠形象,基于函数计算极速部署ComfyUI生图系统
|
12月前
|
人工智能 JSON 自然语言处理
一键生成毛茸萌宠形象,基于函数计算极速部署 ComfyUI 生图系统
本次方案将帮助大家实现使用阿里云产品函数计算FC,只需简单操作,就可以快速配置ComfyUI大模型,创建出你的专属毛茸茸萌宠形象。内置基础大模型+常用插件+部分 Lora,以风格化图像生成只需用户让体验键配置简单方便,后续您可以根据自己的需要更换需要的模型、Lora、增加插件。
736 14

相关产品

  • 函数计算