一、引言:

在大数据建设过程中,通用的建设思路:从数据埋点——数据采集——数据清洗(ETL)——数据服务——数据可视化。整体流程可参考下图:

这篇文章主要想和大家聊聊的是,数据服务平台的建设。

二、背景:

由于数据加工完成的数据,需要给不同的应用和产品提供服务,包含:数据产品、实时大屏、线上应用、BI自主分析。

由于业务场景不同,在根据不同的场景下选择的数据存储也多种多样,图中罗列:Hive、Mysql、Hbase、CK、redis、TiDB等等。最后产生的调用服务也多种多样。如下一些场景:

线上推荐服务:高QPS、低RT

智能营销圈人:需要圈选大量人群数据,人群数量百万、甚至千万

实时大屏:需要支持数据实时推送更新

数据产品、BI分析:报表2w+、产品数据数据服务10w+

因此数据服务统一化迫在眉睫

根据上述业务场景,需要解决的问题:

1.数据服务统一化:接口不同QPS和RT,不同的接口服务(HTTP、RPC、文件传输等),即:OneAPI

2.存储解析统一化,一套语言支持多种数据存储接入,即:OneSQL

3.数据模型统一化,支持多种数据源接入, 即:OneModel

相信大家都听说过阿里巴巴的OneData方法论。在这一方法论下大数据工程师,构建统一、规范、可共享的全域数据提醒,避免数据的冗余和重复建设,规避数据烟囱和不一致性,充分发挥阿里巴巴在大数据海量、多样性方面的独特优势。

而数据服务统一化即是其中的OneService。

三、架构设计:

数据服务平台能够解决数据服务统一化,便于数据服务的治理、指标口径的统一。能够提升业务的开发效率,更快的面对业务的变化。数据服务平台主要分如下三层:

1.数据应用接入层:主要是针对外部应用接入,包含:HTTP服务、RPC服务、Client 服务

2.数据服务解析层:主要通过SQL方式访问各种数据存储,然后生成对应数据服务。核心功能:SQL解析、SQL校验、SQL路由、数据查询

3.数据存储层:主要包含数据的存储管理,MySQL、Redis、Hive等等。都能很好的支持,提供API服务

数据服务生产的整体流程如下:

(1)选择数据存储

(2)配置数据查询SQL

//统计某一天的每个店铺的销售额
select
shop_id,sum(gmv) as total_gmv from (
select * from table where dt=#{dt}
) t
group by shop_id;  

(3)根据选择数据存储引擎,将SQL转化成可执行的语言进行执行,基于Apache  Calcite 进行开发主要步骤如下:

 Parser. 此步中Calcite通过Java CC将SQL解析成未经校验的AST

Validate. 该步骤主要作用是校证Parser步骤中的AST是否合法,如验证SQL scheme、字段、函数等是否存在; SQL语句是否合法等. 此步完成之后就生成了RelNode树

Optimize. 该步骤主要的作用优化RelNode树, 并将其转化成物理执行计划。主要涉及SQL规则优化如:基于规则优化(RBO)及基于代价(CBO)优化; Optimze 这一步原则上来说是可选的, 通过Validate后的RelNode树已经可以直接转化物理执行计划,但现代的SQL解析器基本上都包括有这一步,目的是优化SQL执行计划。此步得到的结果为物理执行计划。

Execute,即执行阶段。此阶段主要做的是:将物理执行计划转化成可在特定的平台执行的程序。根据选择的数据存储引擎,将SQL对应转化程可执行的程序。

Limit,即SQL限流。此阶段主要是针对SQL耗时进行监控、发现SQL耗时极大会进行限流管控。关于SQL限流的解释,可参考:阿里数据库性能诊断的利器——SQL执行干预_weixin_33856370的博客-CSDN博客


至此一个API服务就完完整整的生成了,可以理解为一个原子服务。

但是问题仍然来了,生产了一个根据用户id查询订单的原子服务A,生产一个根据订单id查询商品的信息的原子服务B。流程图如下:

如果需要查询出某个用户下某个订单的所有商品信息,就需要先调用订单服务API,然后根据返回的结果调用商品服务API,最后才能拿到想要的信息。

显然:当调用的服务越多,需要手动开发的成本越来越高,以及中间的数据转化部分也需要进行开发,效率极低。

针对原子服务的互相调用以及参数转化如果进行手动开发,那么有没有一种简单操作就能实现参数转化和服务串接呢?

服务编排应运而生。


服务编排,指对于原子服务进行串接、参数转换,以及一些业务逻辑的判断进行处理。下面只是简单称述如下三种情况:

(1)服务串行:

(2)服务并行:

(3)服务逻辑校验:

四、小结:

本篇文章介绍大数据服务平台整体建设思路,但仍然难免有一些疏漏。

(1)由于数据库发展迅速,比如:国产IOT相关的数据库,TDengine,如何将IOT相关的场景引入进来。更快地支持更多的数据存储

(2)数据平台服务化在大数据整体建设中如何扩大其服务,包括对:数据分析人员、运营人员甚至算法训练师,而不仅仅是针对数据人员和开发人员。

参考:

唯品会亿级数据服务平台落地实践-InfoQ

《阿里巴巴大数据之路》

作者简介:诸葛子房,曾供职于京东,现就职于BAT,在大数据领域有多年实践经验,欢迎加微信:zhugezifang001 交流

某互联网大厂亿级大数据服务平台的建设和实践相关推荐

  1. 万字长文详解大数据应用实战案例-万亿级大数据监控平台建设方案

    前言 随着互联网业务的迅速发展,用户对系统的要求也越来越高,而做好监控为系统保驾护航,能有效提高系统的可靠性.可用性及用户体验.监控系统是整个运维环节乃至整个项目及产品生命周期中最重要的一环.百分点大 ...

  2. 爱奇艺大数据实时分析平台的建设与实践

    0 导语 生活在信息爆炸时代的我们越来越清晰的认识到海量信息与数据分析的重要性,如提高数据挖掘能力.为运营决策提供关键数据.通过数据分析助力业务创新.在商业决策中的提供较有价值的信息等成为关键,于是大 ...

  3. [NewLife.XCode]分表分库(百亿级大数据存储)

    NewLife.XCode是一个有15年历史的开源数据中间件,支持netcore/net45/net40,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode. 整个系列教程会大量 ...

  4. 千亿级大数据如何存储的?

    在社区,有用户提到了一个这样的问题,千亿级大数据如何存储.这位同学给出了以下的使用背景. 我们关注到他的问题描述,虽然整体数据量并不是很大,但从应用场景上来看,非常符合时序数据库(Time-Serie ...

  5. 政企舆情大数据服务平台功能服务技术详介

    舆情通和清博数据这两款软件都旨在于为用户提供互联网舆情监测\控服务,所以在功能方面会有很多相似的地方.但要说到舆情通清博数据怎么用.清博数据舆情通什么单位可以用.清博数据舆情通干啥用的,相信还是有很多 ...

  6. 从0到1介绍一下开源大数据服务平台dataService

    1.背景&现状 在大数据领域也已经工作了多年,无论所待过的大公司还是小公司,统计出来的数据经常需要查询展示,比如说:用做大屏或者报表或者给一些线上服务提供数据源,经常会要用代码写一套接口服务, ...

  7. 112页5万字交通大数据服务平台建设方案(word)

    项目建设目标 基于某公司全面.海量.实时的用户行为数据及实名制数据,采用对外提供服务的方式,将移动数据进行分析充足和深加工,将某省用户每天产生的万条数据利用大数据技术,对交通行业提供安全.稳定.实时的 ...

  8. 医疗大数据服务平台技术架构有哪些

    医疗健康大数据服务平台是一个包含多个业务系统.多个自身管理软件.是一系列软.硬件和人员.政策支持的综合系统体系,统一建设医疗健康云计算服务中心,集中存储居民医疗卫生信息和居民电子健康档案等数据,满足社 ...

  9. 大数据服务平台---接口自动化

    大数据服务平台接口自动化-实践 业务背景: 某大数据风险智能服务平台,海量的风险.舆情.情报.文书等工商信息.除了用户pc端.app端的应用,还有细分后台管理功能. 接口自动化背景分析: 1. 数据服 ...

  10. 银行大数据风控平台的建设要点与应用

    金融行业是经营风险的行业,风险控制能力是金融机构的核心竞争力.通常而言,金融机构一般是通过给客户的信用状况评分来计量贷款违约的可能性,并通过客户的风险水平进行利率定价. 而传统的信用测算主要是利用历史 ...

最新文章

  1. springcloud-spring cloud config统一配置中心
  2. KSQL和Flink SQL的比较
  3. Zynq SOC学习笔记之设备树
  4. jquery获取一个table中的一行的每个td的内容
  5. 9个典型的开发者关系面试题
  6. 从独角兽到上市:我们与TAPD的故事
  7. 剑指offer第12题打印从1到n位数以及大整数加法乘法
  8. 数据结构——逆波兰式
  9. 嵌套函数中的this指向的对象
  10. Git 分布式版本控制常用命令(1)
  11. RS-485总线HUB中继器产品性能特点介绍
  12. 第三百四十五节,Python分布式爬虫打造搜索引擎Scrapy精讲—爬虫和反爬的对抗过程以及策略—scrapy架构源码分析图...
  13. 写一个Windows上的守护进程(7)捕获异常并生成dump
  14. 盘点苹果乔布斯憎恨Google的十大原因
  15. 推荐几个清华和交大学霸公众号,值得学习
  16. 交易系统开发(六)——HFT高频交易
  17. ISO27000系列标准
  18. linux录制声卡声音_Linux ALSA 多声卡操作
  19. QCC3040---coredump方法和注意事项
  20. 全息成像与集成成像原理

热门文章

  1. Vue 快速原型开发
  2. 《单基因疾病的遗传》学习笔记
  3. ubuntu装指定分区_安装Ubuntu16.04系统步骤详细加分区
  4. android怎么垂直居中,【Android】水平居中 垂直居中 中心居中
  5. angular图片裁剪
  6. html下拉折叠菜单,纯CSS实现折叠菜单下拉菜单
  7. 线程学习(生产者消费者问题哲学家吃饭问题)
  8. 时间与时间戳之间的转换
  9. 适合游戏视频剪辑CPU排行榜,cpu天梯图
  10. 抖音头像有钩什么意思,抖音上有黄勾和蓝勾什么意思