Dataphin流批一体的实时研发

本文涉及的产品
智能数据建设与治理Dataphin,200数据处理单元
简介: 本文为您介绍Dataphin流批一体的实时研发能力,为您介绍产品功能诞生的背景、特色能力,以及Dataphin如何从“快”、“准”、“稳”三方面支撑天猫双十一。

作者:瑞丹


背景

每当双11全球购物狂欢节钟声响起,上千万用户涌入阿里平台,流畅而宏伟的购物体验背后是上千个阿里工程师用技术打造出的营地,支撑了每年双11所带来的数据洪峰。11月1日至11月12日0:00,天猫“双11”累计总交易额达4982亿元,同比增长26%。450个品牌成交额过亿,105个产业带成交额过1亿元,物流订单总量达到23.21亿单。这一切的背后都离不开实时计算技术。


Dataphin作为一款企业级智能数据构建与管理产品,具备全链路实时研发能力,从2019年开始支撑了集团内部天猫双11的实时计算需求。今天我们就来介绍一下Dataphin实时计算的强大能力。


传统的数仓架构


在数仓建设过程中,一般来说都是先建设离线数仓,同时围绕着离线数据所构建的应用,然后随着业务的发展或者体验的优化,再建设实时的链路去提升数据的时效性,那么在这个过程中就难免会出现相似的代码写两遍,实时和离线口径不一致等各种各样的问题,同时分别维护的成本也会增加。


image.png


传统的数仓架构流与批从存储计算的分离带来一下的问题:

  1. 效率问题:流批底层数据模型不一致,导致应用层做大量的拼接逻辑(同比、环比、二次加工等),搭建效率低且容易出错
  2. 质量问题:一个业务逻辑,两个引擎两套代码,SQL逻辑不能复用,数据一致性和质量问题难以保证
  3. 成本问题
  1. 流批存储系统隔离(面向不同写入场景),提供的数据服务不一,维护成本高
  2. 手工建数据同步任务,开发成本/存储成本高(两份)
  3. 批处理&流处理集群无法做到错峰,资源利用率低



Dataphin流批一体优势


为解决传统数仓架构的存储计算分离的问题,有了“流批一体”的思路:

  1. 流批存储透明化,查询逻辑完全一致,应用端接入成本大幅降低,点查/OLAP分析统一支持
  2. 服务层统一存储,无需手工同步,无重复存储
  3. 一套代码,两种计算模式,逻辑统一,灵活切换,研发效率大幅提升
  4. 流批计算资源混部,资源利用率提升

image.png


Dataphin在Flink流批一体的能力之上额外提供了更多的平台能力,如数据源管理、元数据管理、资产血缘、资产质量控制、预编译、调试等能力:

  1. 开发生产隔离:提供开发环境和生产环境隔离,保证开发环境开发的业务代码和生产相互之间不干扰
  2. 元数据管理:各系统组件包括数据源、元表、UDX等具备权限控制功能,敏感型配置信息加密保护。支持数据源敏感字段访问订阅。元表、函数、资源等全部单元化可视化的管理,支持跨项目鉴权(字段级)调用,让使用者聚焦业务逻辑。
  3. 流批一体:流批存储层的统一管理,实现模型层统一,流批代码统一、通过流批各自专属配置,生产独立有协同的额调度实例
  4. 研发提效
  1. 提供了预编译的能力,提供语法校验、权限校验、字段血缘提取的功能;
  2. 容器化调试,支持上传自定义数据或直接消费真实生产数据用来观察作业运行、检查各个节点的输出结果
  3. 支持元数据检索,作业依赖、字段血缘的可视化探查
  1. 稳定性及质量保障
  1. 支持流量阈值设置,防止计算资源过度竞争,避免下游系统过载
  2. 支持实时元表质量监测,可配置统计趋势监测、实时多链路对比、实时离线数据核对。


开发生产隔离


Dataphin支持开发生产隔离的项目,支持开发和生产双环境的数据源配置。这样在开发模式下,任务就会自动使用开发数据源和开发环境下的物理表;而当发布到生产环境时,Datpahin则会自动切换为生产数据源及生产环境的物理表。这个过程完全自动化,不用手动修改代码或配置。

元数据管理


Dataphin创造性的引入了实时元表和镜像表的概念,将实时研发过程中的表进行了平台化、资产化的统一管理,并简化了研发,提升研发效率和体验。


传统实时任务研发工具需要用户重复写Create table建表语句,需要进行繁琐的输入输出表映射等操作。实时元表将实时开发任务中所有用到的数据表进行了统一表构建与管理,统一维护了所有实时元表和相关schema信息。开发者在开发过程中不用重复写DDL语句;同时,也不需要进行繁杂的输入、输出、维表映射,采用简单的纯代码研发模式,简单的SET语句及权限申请,即可引用表数据,进行直接查询或写入数据,轻松做到一次建表,多次引用,大幅度提升研发效率和体验。


镜像表顾名思义则是用于维护离线表与实时表之间字段的映射关系。创建镜像表并提交发布后,就可以在流批一体的Flink任务中使用镜像表的字段,Datpahin会在编译时自动映射到流表和批表上,实现一份代码,两种计算,代码逻辑、口径变更强一致。


流批一体的代码任务


除了引入实时元表与镜像表,Dataphin也支持了流批一体的任务,使用Flink引擎作为统一的流批计算引擎,在一份代码上可同时配置流+批的任务配置,基于同一份代码生成不同模式下的实例。而对于流批差异化的代码,Dataphin也提供了不同的方式给与支持。

流批一体任务中会广泛使用镜像表,而镜像表在最终使用时会翻译为对应的流表/批表,为了适应流表/批表的多样性(流表/批表的数据源可能不一样,带来with参数中key可能不一样;流表/批表的某些设置可能不一样,比如batchSize等),可以利用tableHints进行流表/批表的对应。方法如下:

set project.table.${mode}.${key}--mode: 流任务:`stream` 批任务:batch


举个例子,设置批任务的起停时间:

set project.table.batch.startTime='2020-11-11 00:00:00';set project.table.batch.endTime='2020-11-12 00:00:00';


第二种是在Dataphin的任务配置实时和离线模式分别任务参数的方式是利用任务参数进行替换。

image.png

image.pngimage.png



实时质量监控


Dataphin实时数据质量主要面向开发者,针对产品中实时产出的数据表,通过对产出结果进行数据质量分析和校验,来保障数据的最终有效与准确。Dataphin支持统计趋势监测、实时多链路对比、实时离线数据核对。

  1. 统计趋势监测:趋势监测指的是基于数据趋势变化以及专家经验以捕获波动异常的监测方式;如 实时GMV的趋势陡增有些异常
  2. 实时多链路趋势对比:实时多链路指的是在实时计算的场景中,由于数据的恢复成本较高,无法快速从起点重新计算,因此需要使用多个计算链路,当发生计算异常时,自动/手动切换计算链路,是一种用资源换稳定的策略,当有重大的保障业务时,往往会采用该种类型;如每年双十一大屏都会采用多链路保障。
  3. 实时离线核对:实时离线核对,是保障实时数据常用的一种措施,由于实时计算处于一种持续运算状态,计算时间持久且受资源与源数据的扰动较大;离线数据在逻辑、数据复用性方面可以被更好地操作,因此,为了保障实时数据的准确性,常用离线数据与实时数据进行对比;如每年双十一前都会使用离线数据对实时数据进行校验;


image.png



双十一大屏后的Dataphin


回到文章开始的天猫双十一,了解了Dataphin平台特有的能力,我们来具体拆解Dataphin为什么能支撑天猫双十一的大屏。

  1. Dataphin为实时提供研发、调试、测试、运维全链路一站式服务,极大降低用户开发门槛;
  2. 同时提供统一元数据管理,元数据仅需初始化一次,轻松做到一次建表,多次引用,让开发聚焦业务逻辑,大幅度提升研发效率和体验;
  3. 另外有数据研发经历的同学都有这样的体会,很多数据口径都惊人的类似,甚至有些只是输入输出表不同,典型的场景比如主备链路,针对这种场景我们提供了模版研发的能力,相同逻辑封装在模版中,差异逻辑通过模版参数体现,新任务仅需引用模版配置模版参数即可,极大提升研发效率的同时也降低了口径维护成本。

基于以上能力,在双十一大屏的支持上,尽管业务玩法很多,需求井喷,仍然仅以2人便支撑上百需求。

Dataphin提供任务监控及数据质量监控全方位保障任务稳定,快速发现问题;基于模版的主备多链路在异常发生时可以秒级切换,快速止血;基于实时任务血缘,快速定位问题根因;基于调试、测试、细粒度资源配置,快速验证并修复,真正做到1min发现、5min定位、10min解决。

基于流批一体的能力,真正做到代码统一,口径统一,存储统一,数据服务接口统一,研发提效的同时,保证数据一致。


未来规划


在即将发布的Flink VVP(Ververica Platform)适配版本将支持新的VVR引擎,也将在未来支持开源Flink引擎已支持更多的部署环境。Dataphin也将持续提升实时研发的能力和体验,帮助企业降低实时研发的门槛,挖掘更多的场景,获得实时数据带来的业务价值!

相关实践学习
AnalyticDB MySQL海量数据秒级分析体验
快速上手AnalyticDB MySQL,玩转SQL开发等功能!本教程介绍如何在AnalyticDB MySQL中,一键加载内置数据集,并基于自动生成的查询脚本,运行复杂查询语句,秒级生成查询结果。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
目录
相关文章
|
分布式计算 关系型数据库 MySQL
Dataphin数据研发
学员将在Dataphin(数据治理产品)集成MySQL数据库进行数据上云,然后利用Dataphin针对上云表进行规范建模。并通过规范建模生成的逻辑表针对需求进行指标/标签开发。
|
4月前
|
消息中间件 Kafka SQL
|
6月前
|
资源调度 运维 Kubernetes
Dataphin实时研发任务资源预估与资源配置
在企业用户使用Dataphin的实时研发模块时,有两个基本问题是必须考虑的: 1. 短期上线一个实时业务,需要准备多少资源?企业在未来一年中,需要提前准备多少服务器/云资源? 2. 上线实时任务时,怎么配置需要的资源? 本文对这两个问题做简单介绍,期望企业用户能够快速理解资源预估原理和资源配置方法。
114 5
|
7月前
|
SQL 运维 调度
Dataphin V3.14 版本升级|研发平台更易用,治理能力更完备,企业级适配更灵活
Dataphin V3.14 重磅升级,平台支持企业级适配,适配企业特色;研发体验易用性提升,数据研发更高效、任务运维更便捷;数据治理能力更完备,支持多对象批量操作,规则级告警配置、分级分类自动继承继承!
442 0
|
运维 算法 安全
带你读《构建企业级好数据(Dataphin智能数据建设与治理白皮书)》——4. 特色研发能力
带你读《构建企业级好数据(Dataphin智能数据建设与治理白皮书)》——4. 特色研发能力
364 1
|
7月前
|
SQL 运维 监控
Dataphin V3.9 版本升级|支持一站式数据汇聚处理、优化研发体验、提升数据治理能力
Dataphin V3.9 版本升级|支持一站式数据汇聚处理、优化研发体验、提升数据治理能力
162 0
|
数据采集 调度 监控
带你读《构建企业级好数据(Dataphin智能数据建设与治理白皮书)》——3. 研发:高效建设,稳定运行
带你读《构建企业级好数据(Dataphin智能数据建设与治理白皮书)》——3. 研发:高效建设,稳定运行
353 0
|
存储 消息中间件 数据可视化
Dataphin实时研发实践—电商场景下的实时数据大屏构建
实时数据大屏是实时计算的重要应用场景之一,广泛应用在电商业务中,用于实时监控和分析电商平台的运营情况。通过大屏展示实时的销售额、订单量、用户活跃度、商品热度等数据指标,帮助业务人员随时了解业务的实时状态,快速发现问题和机会。同时,通过数据可视化和趋势分析,大屏也提供了决策支持和优化运营的功能,帮助业务人员做出及时的决策和调整策略,优化电商业务的运营效果。 下面以电商业务为背景,介绍如何构建经典实时数仓,实现实时数据从业务库到ODS层、DWD层、DWS层全链路流转,基于Dataphin和Quick BI实现实时数据大屏。
561 0
|
数据采集 存储 运维
带你读《构建企业级好数据(Dataphin智能数据建设与治理白皮书)》——(二)研发:集成、建模、发布、运维(1)
带你读《构建企业级好数据(Dataphin智能数据建设与治理白皮书)》——(二)研发:集成、建模、发布、运维(1)
663 0
带你读《构建企业级好数据(Dataphin智能数据建设与治理白皮书)》——(二)研发:集成、建模、发布、运维(1)
|
数据采集 SQL 运维
带你读《构建企业级好数据(Dataphin智能数据建设与治理白皮书)》——(二)研发:集成、建模、发布、运维(2)
带你读《构建企业级好数据(Dataphin智能数据建设与治理白皮书)》——(二)研发:集成、建模、发布、运维(2)
653 0

热门文章

最新文章

相关产品

  • 智能数据建设与治理 Dataphin