写点什么

易果 TiDB 的使用以及数据中台的思考

  • 2019-09-28
  • 本文字数:2109 字

    阅读完需:约 7 分钟

易果 TiDB 的使用以及数据中台的思考

TiDB 的应用

易果集团的实时数仓其实很早就已经存在了,在业务量还没有那么大的时候,当时我们只用了一台 SqlServer 就能够满足需求了,因为数据量不大,所以存储过程一般也就 1-2 分钟就能跑完,同时也能够保证实时和 T+1 数据的一致性。回过头来看,这样做的好处也显而易见,一台机器比较好维护,在数据量不大的适合还是非常适合的,但是一旦碰到大促或者搞活动的时候一些存储过程就非常容易装死了,有时候可能碰到 30-40 分钟才能跑完的情况。


随着业务的增长,在易果集团离线的部分已经由 SqlServer 切换成了 Hadoop,实时的部分也需要一套能够满足未来业务增长的系统,根据业务和技术方面的综合选择,我们最终选定了 TiDB+TiSpark 的方案。基于此方案有几个比较明显的优势:


  1. 由原来的存储过程改成 SQL 相比于改成代码的成本是非常小的,能够大大的节省改造成本

  2. 因为在之前的系统中使用了存储过程,大部分存储过程都比较负责,有很多 update 和 delete 的等操作,使用了 TiDB 这套方案之后依旧能够保证实时和离线的一致,减少了很多的解释成本

  3. 显而易见的是,由 SqlServer 到 TiDB,从单机变成了分布式,性能得到了提升,基本上很少会发生一个脚本 30 分钟的情况了


需要提到的是,我们在选型的时候有一个很重要的原因是因为有 TiSpark 这个项目,当时 TiDB 还是非常早期的版本,不像现在 3.0 有很大的提升,得益于 TiSpark 这个项目,能够提供给分析师进行复杂分析的可能。另外之前也说了,我们的离线集群是基于 Hadoop 的,这样有了 TiSpark 之后,能够用 Spark 统一引擎,等到未来 TiSpark 支持回写之后,我们就基本可以做到一套脚本两个集群通用了。


易果集团基于 TiDB 的实时数仓架构图如下:


TiFlash 和数据中台

这一套架构虽然很方便,但是同样也存在一些问题,最显而易见的就是 AP 和 TP 互相干扰,这在初期是 HTAP 系统无法避免的问题。在 18 年的时候 TiDB 就提出了 TiFlash 的项目,这个项目目前的资料很多,这里也就不做过多介绍了。TiFlash 的出现在物理上隔离了 AP 和 TP 的需求,从根本上解决了 AP 和 TP 冲突的问题,使得 TiDB 往 HTAP 更近了一步。我们是在 18 年的时候开始进行一些性能和功能上的测试,初步找了一些数据量大但是场景比较小流量也比较小的场景进行了测试,整体测试效果比较满意,目前已经有一小部分场景的部分流量在正式环境中运行,对于年底的正式版本还是相当期待。



TiFlash 是从物理层面解决 AP/TP 冲突,18 年开始,数据中台的概念非常火热,从另一个角度看,从中台角度出发,也需要有一些管理手段来缓解 AP/TP 的冲突。


下图是 Hadoop 和 TiDB ETL 过程的简单对比,从图中可以看出,Hadoop 的 ETL 多是基于表为单位的,这样对于资源的影响相对而言比较小,影响范围不大,即使出现一张表不使用的情况,对于资源的利用率可能也不会立即体现。而以 TiDB 的 ETL 过程大多是以实例或者 DB 为单位的,通过 DM 或者 Syncer 把 MySQL 同步到 TiDB,这样做非常节省时间,但是相比于 Hadoop 的 ETL,如果出现大部分数量不使用或者数据情况糟糕经常变更的情况,对于资源就会产生一定影响。



基于此,不管是 Hadoop 还是 TiDB,所有的同步都应该有一个数据编目。数据编目项目是属于数据中台的一部分,该项目由业务中台或者前期由 DBA 进行主导,初步评估数据的可用性,同时也维护数据一定的业务属性,只有在数据达到一定标准了之后,后面的大数据部门才能够去接入数据。同时也配合 OneData 以及数据接入流程,来进一步管控指标,表,任务的对应关系,方便对资源进行管控。


最后 TiDB 也是 OneService 的重要出口,OneService 在易果是数据部门对外提供统一接口的服务,目前主要提供的是 Restful 的接口,在接口系统里,我们对每个系统都做了业务属性和责任人的管理,同时在当前版本中也有接口版本的管理,业务方只需要在页面上按照步骤配置就能够生成一个可用的接口,在后续的计划中,我们还准备加入接口的判重机制,避免出现重复接口的现象。



随着数据中台概念的提出,企业越来越重视数据的价值,数据虽然消耗着传统意义上的资产,但是数据也同时作为企业资产的一部分。因此,数据需要越来越精细化的管理,从接入到用起来,从用起来到能够充分利用,每一步都需要付出很多探索。

未来

HTAP,NewSQL 等系统的出现,不仅解决了业务上一些分库分表等问题,也慢慢的影响到了大数据领域,在未来,大数据也会慢慢和 NewSQL 进行融合,越来越像一个完整的数据库。


作为一个 HTAP 系统,会有各种角色的人去维护管理或者使用系统,每个人关注的点可能也不太一样。对于传统 DBA 比较关注稳定和性能;大数据的工程师除此之外还会关注任务的效率,每个任务的资源占有率;建模工程师会根据分析师的使用情况去调整模型,判断模型的好坏;而分析师则希望能够易用方便等等。每个角色关注的点不一样,那么所需要做的监控除了平常的性能监控以外,用户向的监控也越来越会受到关注,更不要说安全管理,资源的自动化管理等。相信随着中台的不断发展,TiDB 的逐步进步,这些涉及到数据的方方面面都会都会得到提高和完善。


作者介绍


罗瑞星,易果集团数据架构专家,TiDB User Group (TUG) 上海区 Leader。


原文链接


https://asktug.com/t/tidb/913


2019-09-28 08:002054

评论

发布
暂无评论
发现更多内容

【网络安全】记一次挖矿病毒的应急响应

H

网络安全 应急响应

运营给产品送的情人节礼物是?

阿里云弹性计算

产品运营 情人节 轻量征文 用户投稿

阿里云容器服务差异化 SLO 混部技术实践

阿里巴巴云原生

阿里云 Kubernetes 云原生 混部技术

Spring Boot Serverless 实战系列 | 性能调优

阿里巴巴云原生

阿里云 Serverless 架构 云原生

《MySQL入门很轻松》第4章:数据表中能存放的数据类型

乌龟哥哥

数据库 2月月更

Serverless 架构开发手册 — “人人都是 Serverless 架构师”先导篇

阿里巴巴云原生

阿里云 Serverless 架构 云原生

企业为什么要做应用多活?

阿里巴巴云原生

阿里云 云原生 容灾

阿里巴巴如何进行测试提效 | 阿里巴巴DevOps实践指南

阿里云云效

阿里云 DevOps 云原生 测试 研发提效

情人节,码了一个程序员专属冰墩墩(内含源码免费获取)

ZEGO即构

前端 html/css 情人节 表白 冬奥会

Spring Boot Serverless 实战 | Serverless 应用的监控与调试

阿里巴巴云原生

阿里云 Serverless 云原生

如何快速构建服务发现的高可用能力

阿里巴巴云原生

阿里云 开源 微服务 云原生

国内唯一!阿里云容器服务进入 Forrester 领导者象限

阿里巴巴云原生

阿里云 云原生 容器平台

Go 语言Web开发很简单:使用模板将视图与逻辑分离

宇宙之一粟

Go 语言 Web应用开发 2月月更

http请求中的payload

喀拉峻

网络安全

从冬奥看中国科技(三):数字人的觉醒与进化

脑极体

独家下载!阿里云云原生携 10+ 技术专家带来《云原生与云未来的新可能》

阿里巴巴云原生

阿里云 Kubernetes 云原生 电子书

SSH远程连接命令执行没反应不报错问题解决(-bash: fork: retry: Resource temporarily unavailable.[资源暂时不可用])

山河已无恙

SSH Linxu 2月月更

微信朋友圈高性能架构方案

Geek_36cc7c

人人都是 Serverless 架构师 | 现代化 Web 应用开发实战

阿里巴巴云原生

阿里云 Serverless 云原生

专访 OpenKruise 负责人:现在的云原生应用自动化发展到什么程度了?

阿里巴巴云原生

阿里云 开源 云原生

年轻用户逐渐成为数字营销主流受众,品牌营销方式该如何创新?

易观分析

内容营销

7*24 小时业务不中断!菜鸟乡村应用多活落地实践

阿里巴巴云原生

阿里云 云原生 实践案例 多活

SAE 最佳实践范本:助力视野数科进入云原生“快车道”

阿里巴巴云原生

阿里云 Serverless 云原生 SAE

【附赠PPT】 KubeMeet 成都站回顾:让云原生应用交付和管理变得更简单!

阿里巴巴云原生

阿里云 Kubernetes 云原生 活动 开源项目

KubeDL HostNetwork:加速分布式训练通信效率

阿里巴巴云原生

阿里云 云原生 分布式训练 KubeDL

云原生落地大爆发,企业和开发者如何把握先机?

阿里巴巴云原生

阿里云 云原生 ACK ACK Anywhere

平安保险基于 SPI 机制的 RocketMQ 定制化应用

阿里巴巴云原生

阿里云 云原生 消息队列 开源云工具

今天踩了一个基础坑

编程三昧

JavaScript 2月月更

一篇文章讲懂prometheus

流沙

云原生 监控 Prometheus

如何利用 AHAS 保障 Web 服务稳如磐石?

阿里巴巴云原生

阿里云 高可用 云原生 AHAS

计算机网络面试知识点

yuexin_tech

面试 计算机网络

  • 扫码加入 InfoQ 开发者交流群
易果 TiDB 的使用以及数据中台的思考_数据库_罗瑞星_InfoQ精选文章