【阿里内部应用】基于Blink为新商业调控打造实时大数据交互查询服务

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
简介: 基于Blink为新商业调控打造实时大数据交互查询服务 从IT到DT、从电商到新商业,阿里巴巴的每个细胞都存在大数据的DNA,如何挖掘大数据的价值成为抢占未来先机的金钥匙!传统的大数据开发主要基于离线计算平台MaxCompute(ODPS)进行天级别、小时级别的批量数据分析,但近些年随着618、99.

基于Blink为新商业调控打造实时大数据交互查询服务

案例与解决方案汇总页:
阿里云实时计算产品案例&解决方案汇总

从IT到DT、从电商到新商业,阿里巴巴的每个细胞都存在大数据的DNA,如何挖掘大数据的价值成为抢占未来先机的金钥匙!传统的大数据开发主要基于离线计算平台MaxCompute(ODPS)进行天级别、小时级别的批量数据分析,但近些年随着618、99、双11、双12等大促活动的常态化,传统的离线数据分析已经无法满足大促当天的需求,以双11实时交易数据为例,试想如果我们只能看到前一小时或者前一天的成交数据,对于公司高层的决策制定、对于行业/运营/商家/商品的行动指导、对于算法的预测调控将大大折扣,可以说大数据实时化已经成为通向新商业体系必须拥有的诺亚船票。

从2017年8月开始,一群有激情有干劲的小伙伴历经三个月打造出一套实时大数据交互查询服务,完美的支撑了珠峰、闪电、通天塔、优惠券、凑单等业务的实时需求,并经过了双11、双12等大促活动的实战考验!!

一、背景介绍

珠峰调控的典型应用场景如下图所示:

image

  • 采集:用户在淘宝的每一次浏览/点击/加购/成交等行为都被记录在日志中,并实时传送到TimeTunnel,该部分工作由业务团队或数据团队完成
  • 加工:基于集团的明星产品Blink,对所需业务渠道的日志进行加工处理,产出业务所需要的各种维度/各种指标
  • 装载:将加工好的格式化数据装载到lightning交互式查询引擎,方便后续快速查询
  • 分析:通过定制化报表可以实时动态展示行业/类目/商家/宝贝/分桶等多维实时指标,方便小二分析决策,更多业务报表详见珠峰、闪电
  • 干预:在搜索/推荐等产品中,算法自动获取指标、并根据实时分析的结果更改线上参数,影响线上效果
  • 干预后的结果又进入下一个数据轮回,直到业务目标完成

二、解决方案

2.1 确立目标

改造后的实时数据既要满足功能,还要可兼容、可扩展:

  • 数据的正确性和稳定性是一切的前提,实时数据统计口径必须和离线一致
  • 资源有限,必须打造统一的解决方案满足已有需求,以及未来可能的需求
  • 建立标准化,拉更多人一起参与数据共建
  • 数据的生产和消费都要统一管理,消灭一切不合理

2.2 梳理需求

image

将各平台的业务需求进行挨个梳理,针对数据自身特点进行抽象,确定数据分层:

  • 全网数据:独立的数据表,如全网加购、全网成交等
  • 渠道数据:根据业务独立性划分为手淘搜索、推荐、营销平台等渠道,各渠道包括数据指标:曝光(宝贝曝光/搜索曝光)、点击、引导加购、引导成交等,各数据指标是独立的数据表
  • 子业务场景:含在渠道数据表中,存储在固定字段并用关键字区分,例如手淘搜索全部分页/天猫分页、推荐的猜你喜欢/购后等
  • 数据维度:含在渠道数据表中,存储在固定字段(如时间、宝贝、卖家、类目、行业等)和多值字段(如分桶、BC类型等)

梳理各业务方关注的数据场景,梳理出双11的数据需求和查询需求:

  • 数据要求:

    • 宝贝量从去年的20w到5kw,增长250倍
    • 卖家量从去年的1500到16w,增长100倍
    • 单表最大数据量 > 600亿
  • 实时性:

    • 单表写入最大QPS > 200w/s
    • 数据延迟时间(日志落地到查询可见) < 5s
  • 查询需求:

    • 查询频率:3s、1min、5min、1h
    • 查询范围:当天、当前小时、前5min、前10min
    • 查询响应时间 < 3s
    • 单表查询QPS < 100/s

2.3 架构选型

目前可以满足上诉性能要求,并且相对成熟的实时大数据架构方案有两种:
image

  • blink + kv存储:在blink层进行数据预聚合并将聚合后的计算值写入kv存储,用户按照事先约定好的key进行查询即可拿到实时结果,常用的kv存储比如hbase、redis、tair等。该方案的优势是查询毫秒级响应并支持查询高并发,但不足之处是可扩展性较差,增加维度或改变查询条件需要改动整条链路。比如双11媒体交易大屏,提供00:00到当前时刻的交易总额,但如果想查看10:00-10:20的交易总额改造成本就会很高甚至无法进行
  • blink + olap/oltp:在blink层进行数据明细加工并补充数据标签,加工后的数据装载到olap/oltp,用户带着自定义条件进行查询。该方案最大的优势就是交互式查询,用户可以根据自己需要进行各种维度的查询组合,但不足之处就是无法支持高并发高QPS查询,而且查询之间会互相干扰,偶尔一个大的聚合查询会导致其它查询失败

两套方案各有优劣各有适应的业务场景,考虑到我们打造的实时数据支持的业务场景较多而且需求各不相同,综合比较之后我们选择了第二套方案,至于不支持高QPS的问题我们通过优化查询Query解决。实践证明我们的选择是很明智的,用户对实时数据的查询需求随着大促逐渐临近呈爆发性的增长,甚至双11当天决策层还对我们提出若干新的数据需求,不过我们都轻松应对,合理的架构让一切不可能成为了可能

2.4 最终架构

image

2.5 规范标准

统一接口定义

  • 全网数据接口定义
  • 渠道搜索数据接口定义
  • 渠道宝贝数据接口定义

规范实时处理逻辑的分析方法

  • 找日志生产者掌握字段含义,并结合业务需求进行初步设计
  • 以BI使用的ODPS表为基础,梳理离线处理逻辑
  • 订阅实时日志,使用离线处理逻辑进行日志详细分析
  • 实现实时任务代码
  • 实时离线对比验证,分别从全部、卖家、宝贝三个维度验证,要求数据差异均小于3%

制定Blink代码开发规范

  • 主流程使用Table API,Scala开发
  • 日志处理以及字段处理使用UDF,Java开发
  • UDF设计尽量只专注一件事,如多值字段中n个字段最好提供n个UDF分别处理
  • 过滤逻辑和处理逻辑要求代码层面隔离,不能耦合
  • 严格遵守集团开发规约

让合适的人做合适的事

  • 搜索数据属于我们擅长的,我们负责开发维护
  • 其它数据推动相应业务方按照标准开发,我们提供技术支持和资源支持

2.6 重构

实时任务

实时任务重构过程中做了很多细节优化:

  • ID值存储:实时数据均存储各维度ID值,将冗余字段Name剔除,大大减少查询引擎的存储查询压力
  • 辅表为主:当数据在辅表和日志都存在时,优先透出辅表数据
  • 数据打标:提供全网用户/全网卖家/全网宝贝的数据打标,方便业务方按照数据标一次查询获得结果
  • 数据分区:产出到TT中的实时数据按照宝贝ID进行Partition,可以减少查询引擎的单次消耗
  • 异步读写:写TT以及读写HBase均采用异步操作,既提高读写QPS又保证实时任务受集群环境影响最小化
  • 离线备份:所有的实时数据表每15min同步到相应的云存储ODPS表,以防不时之需
  • ……

封装查询接口

为了约束规范业务方使用实时数据,我们封装了统一的数据查询接口:

  • 采用租户分配QPS配额的方式,控制访问频率
  • 对常用查询方法进行封装,减少用户学习成本
  • 每次查询都进行实时监控并记录追踪日志,方便出现问题时快速排查

image

另外我们对业务方每条Query进行了分析,推动业务方优化不合理的Query,对于查询Query较大较慢的业务搭建独立的查询引擎,通过以上措施减少了业务间互相干扰,大大的提高了系统稳定性,业务效率也得到了极大提升

数据校验

邀请BI作为裁判对重构的实时数据进行了一致性校验,__校验结果:90%以上的场景数据差异在1%以内__,实时数据准确性得到了大家的一致认可!

线上运维

  • 使用烽火台监控延迟报警、无数据报警
  • 在KMonitor建立各级监控:全景监控、单任务监控、全链路大盘
  • 通过多轮压测保证任务资源占用既不浪费又能满足大促需要

三、成果总结

3.1 实战效果

2017年双11活动期间,实时大数据共运行Blink任务40+,产生实时数据表40+,占用资源约近5000vcore、近20T mem

双11当天处理日志量数百T,数据峰值TPS约7000w+,产出纯净业务数据数十T,总条数1500亿+,其中单表全天近700亿,数据处理峰值200w+;支持了全网数据的辅表信息透出,实时数据延迟在秒级别;查询服务全天请求近200w,QPS峰值约700次,平均响应时间1.5s

3.2 建立生态

随着实时大数据取得的成功,越来越多平台希望引入实时数据,截止到18年1月底实时大数据服务情况如下图所示,目前业务平台、数据渠道、数据指标仍在不断扩充中,实时大数据生态已经初具规模,这对参与实时数据建设的所有小伙伴们来说是莫大的认可

image

四、作者简介

花名:言柏,来自搜索事业部-工程效率&技术质量-算法工程平台-实时大数据平台
14年加入阿里,主要从事电商体系实时数据研发以及实时交互式查询赋能于新商业
image

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
8天前
|
SQL 存储 分布式计算
ODPS技术架构深度剖析与实战指南——从零开始掌握阿里巴巴大数据处理平台的核心要义与应用技巧
【10月更文挑战第9天】ODPS是阿里巴巴推出的大数据处理平台,支持海量数据的存储与计算,适用于数据仓库、数据挖掘等场景。其核心组件涵盖数据存储、计算引擎、任务调度、资源管理和用户界面,确保数据处理的稳定、安全与高效。通过创建项目、上传数据、编写SQL或MapReduce程序,用户可轻松完成复杂的数据处理任务。示例展示了如何使用ODPS SQL查询每个用户的最早登录时间。
30 1
|
12天前
|
自然语言处理 大数据 应用服务中间件
大数据-172 Elasticsearch 索引操作 与 IK 分词器 自定义停用词 Nginx 服务
大数据-172 Elasticsearch 索引操作 与 IK 分词器 自定义停用词 Nginx 服务
41 5
|
12天前
|
存储 数据采集 监控
大数据技术:开启智能决策与创新服务的新纪元
【10月更文挑战第5天】大数据技术:开启智能决策与创新服务的新纪元
|
14天前
|
消息中间件 监控 Ubuntu
大数据-54 Kafka 安装配置 环境变量配置 启动服务 Ubuntu配置 ZooKeeper
大数据-54 Kafka 安装配置 环境变量配置 启动服务 Ubuntu配置 ZooKeeper
47 3
大数据-54 Kafka 安装配置 环境变量配置 启动服务 Ubuntu配置 ZooKeeper
|
13天前
|
存储 分布式计算 druid
大数据-149 Apache Druid 基本介绍 技术特点 应用场景
大数据-149 Apache Druid 基本介绍 技术特点 应用场景
39 1
大数据-149 Apache Druid 基本介绍 技术特点 应用场景
|
12天前
|
存储 JSON 监控
大数据-167 ELK Elasticsearch 详细介绍 特点 分片 查询
大数据-167 ELK Elasticsearch 详细介绍 特点 分片 查询
28 4
ly~
|
12天前
|
供应链 搜索推荐 安全
大数据模型的应用
大数据模型在多个领域均有广泛应用。在金融领域,它可用于风险评估与预测、智能营销及反欺诈检测,助力金融机构做出更加精准的决策;在医疗领域,大数据模型能够协助疾病诊断与预测、优化医疗资源管理和加速药物研发;在交通领域,该技术有助于交通流量预测、智能交通管理和物流管理,从而提升整体交通效率;电商领域则借助大数据模型实现商品推荐、库存管理和价格优化,增强用户体验与企业效益;此外,在能源和制造业中,大数据模型的应用范围涵盖从需求预测到设备故障预测等多个方面,全面推动了行业的智能化转型与升级。
ly~
22 2
|
13天前
|
存储 分布式计算 druid
大数据-155 Apache Druid 架构与原理详解 数据存储 索引服务 压缩机制
大数据-155 Apache Druid 架构与原理详解 数据存储 索引服务 压缩机制
32 3
ly~
|
19天前
|
供应链 搜索推荐 大数据
大数据在零售业中的应用
在零售业中,大数据通过分析顾客的购买记录、在线浏览习惯等数据,帮助零售商理解顾客行为并提供个性化服务。例如,分析网站点击路径以了解顾客兴趣,并利用历史购买数据开发智能推荐系统,提升销售和顾客满意度。此外,大数据还能优化库存管理,通过分析销售数据和市场需求,更准确地预测需求,减少库存积压和缺货现象,提高资金流动性。
ly~
112 2
ly~
|
19天前
|
机器学习/深度学习 人工智能 自然语言处理
大数据在智慧金融中的应用
在智能算法交易中,深度学习揭示价格波动的复杂动力学,强化学习依据市场反馈优化策略,助力投资者获取阿尔法收益。智能监管合规利用自然语言处理精准解读法规,实时追踪监管变化,确保机构紧跟政策。大数据分析监控交易,预警潜在违规行为,变被动防御为主动预防。数智化营销通过多维度数据分析,构建细致客户画像,提供个性化产品推荐。智慧客服借助 AI 技术提升服务质量,增强客户满意度。
ly~
32 2