简介:Dataphin作为一款企业级智能数据构建与管理产品,具备全链路实时研发能力,从2019年开始就支撑可集团天猫双11的实时计算需求,文章将详细介绍Dataphin实时计算的能力。

-更多关于数智化转型、数据中台内容请加入阿里云数据中台交流群—数智俱乐部 和关注官方微信公总号(文末扫描二维码或点此加入)

-阿里云数据中台官网 https://dp.alibaba.com/index


背景

每当双11全球购物狂欢节钟声响起,上千万用户涌入天猫、淘宝,流畅的购物体验背后是阿里工程师用技术打造出的营地,支撑了每年双11所带来的数据洪峰。2020年11月1日至11月12日0:00,天猫“双11”累计总交易额达4982亿元,物流订单总量达到23.21亿单。这一切的背后都离不开实时计算技术。

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

传统的数仓架构

在数仓建设过程中,一般来说都是先建设离线数仓,同时围绕着离线数据构建应用。然后随着业务的发展或者体验的优化,再建设实时计算的链路去提升数据的时效性。

在这个过程中相似的代码写两遍就难以避免,还会出现实时和离线口径不一致,分别维护成本增加等各种各样的问题。

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

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

Dataphin流批一体优势

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

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

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

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

开发生产隔离

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的任务配置实时和离线模式分别任务参数的方式是利用任务参数进行替换。

实时质量监控

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

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

双十一大屏后的Dataphin

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

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

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

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

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

未来规划

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


数据中台是企业数智化的必经之路,阿里巴巴认为数据中台是集方法论、工具、组织于一体的,“快”、“准”、“全”、“统”、“通”的智能大数据体系。

目前正通过阿里云对外输出系列解决方案,包括通用数据中台解决方案、零售数据中台解决方案、金融数据中台解决方案、互联网数据中台解决方案、政务数据中台解决方案等细分场景。

其中阿里云数据中台产品矩阵是以Dataphin为基座,以Quick系列为业务场景化切入,包括:

  • - Dataphin,一站式、智能化的数据构建及管理平台;
  • - Quick BI,随时随地 智能决策;
  • - Quick Audience,全方位洞察、全域营销、智能增长;
  • - Quick A+, 跨多端全域应用体验分析及洞察的一站式数据化运营平台;
  • - Quick Stock, 智能货品运营平台;
  • - Quick Decision,智能决策平台;

官方站点:

数据中台官网 https://dp.alibaba.com

钉钉沟通群和微信公众号

原文链接:https://developer.aliyun.com/article/785938?

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

解读Dataphin流批一体的实时研发相关推荐

  1. 【产品动态】解读Dataphin流批一体的实时研发

    简介: Dataphin作为一款企业级智能数据构建与管理产品,具备全链路实时研发能力,从2019年开始就支撑可集团天猫双11的实时计算需求,文章将详细介绍Dataphin实时计算的能力. 背景 每当双 ...

  2. 流批一体?实时数据处理场景化应用实例~

    什么是数据实时处理?有哪些典型应用场景?实时数据处理的意义是?下文围绕实时数据应用的产品特性和场景,一一解答. 01 什么是实时数据处理 以实时数据平台 flashflow 举例,它的具体处理过程:数 ...

  3. FFA 2022 专场解读 - 流批一体 平台建设 AI 特征工程

    Flink Forward Asia 2022 将于 11 月 26-27 日在线上举办,议程内容正式上线! FFA 2022 官网:https://flink-forward.org.cn/ 流批一 ...

  4. Hologres+Flink流批一体首次落地4982亿背后的营销分析大屏

    简介: 本篇将重点介绍Hologres在阿里巴巴淘宝营销活动分析场景的最佳实践,揭秘Flink+Hologres流批一体首次落地阿里双11营销分析大屏背后的技术考验. 概要:刚刚结束的2020天猫双1 ...

  5. flink 流批一体

    目录 当我们谈论批流一体,我们在谈论什么? 一.流计算与批计算 一)流计算与批计算 二)流计算与批计算的比较 三)为什么要搞流批一体 二.流批一体的场景 一)数据集成的流批一体 二)数仓架构的流批一体 ...

  6. 蚂蚁实时低代码研发和流批一体的应用实践

    摘要:本文整理自蚂蚁实时数仓架构师马年圣,在 Flink Forward Asia 2022 流批一体专场的分享.本篇内容主要分为四个部分: 实时应用场景与研发体系 低代码研发 流批一体 规划展望 点 ...

  7. 流批一体生产应用!Bigo 实时计算平台建设实践

    简介:本文由 Bigo 计算平台负责人徐帅分享,主要介绍 Bigo 实时计算平台建设实践的介绍 本文由 Bigo 计算平台负责人徐帅分享,主要介绍 Bigo 实时计算平台建设实践的介绍.内容包括: B ...

  8. Hive 老当益庄 | 深度解读 Flink 1.11:流批一体 Hive 数仓

    精选30+云产品,助力企业轻松上云!>>> 首先恭喜 Table/SQL 的 blink planner 成为默认 Planner,撒花.撒花. Flink 1.11 中流计算结合 ...

  9. DorisDB 流批一体 实时架构

    场景: 在做大数据分析,报表项目的时候,一般会有实时和离线分析两种场景,一般情况下,是实时一套代码,离线一套代码,代码开发量比较大,怎么做到 实时和离线公用一份代码(流批一体) 性能满足实时场景的时效 ...

最新文章

  1. 陈硕智能指针线程安全_C++ 创建线程的方法
  2. Chrome 技术篇-F12开发者工具清理缓存,高级、专业清浏览器缓存,storage和cache都指什么、区别
  3. 基于 Module 的 Laravel API 架构
  4. 计算机信息技术教学工作计划,关于信息技术教学工作计划4篇
  5. 3d布料系统横向飘动_重磅首发!ZB 2021自带布料运算,独家中文字幕!妈妈再不担心我通宵改衣褶了...
  6. linux统计日志,Linux一些常使用的统计日志 方法
  7. RocketMQ错误消息重试策略之Consumer的重试机制(timeout情况)
  8. 用csc命令行手动编译cs文件
  9. Codeforces Round #325 (Div. 2) B. Laurenty and Shop 前缀和
  10. skia 源码分析_【脚下有根】之Skia库的matrix代码解读
  11. 校园网自动登录(校园翼行网)
  12. 三分钟解决Matlab中文乱码问题
  13. 苹果cms怎么添加百度统计代码
  14. mysql 数据库引擎切花_asyncio异步编程,你搞懂了吗?
  15. html中绝对定位的父级,【CSS学习笔记】绝对定位的父类参照物的确定
  16. 《优势教养》:开放式沟通vs负面偏见
  17. HTTP中Get、Post、Put与Delete的区别
  18. HTML5+CSS3小实例:全屏导航栏菜单
  19. 移动魔百盒CM201-2(emmc和nand)-分省模式-免拆机-强刷包及教程
  20. 批处理怎么调用计算机名,Reg命令使用详解 批处理操作注册表必备

热门文章

  1. 微星主板黑苹果_游戏机也玩二次元!微星全新“钛舞Diana”点亮冬日激情
  2. android 低内存方法,android onLowMemory低内存回调方法详解
  3. Spark SQL之RDD转DataFrame
  4. 我学习Python的三个神级网站
  5. 精选 GitHub 值得收藏的100个前端项目
  6. 如何在windows系统上安装Tensorflow Object Detection API?
  7. vue部署到服务器 接口调用不了_Python 调用 Azure API 实现服务器自动部署
  8. 作为微型计算机各种部件相互连接的纽带,网络学院统考计算机基础知识选择题及答案(19页)-原创力文档...
  9. transient-java 关键字
  10. leetcode-3-无重复字符的最长子串