写点什么

随手科技在 TiDB 的探索之路

2019 年 10 月 26 日

随手科技在 TiDB 的探索之路

随手科技是国内领先的个人理财应用服务提供商,旗下拥有随手记、卡牛、随管家等多款明星产品,目前用户规模已超过三亿。



在随手科技的发展过程中,业务遇到的一些痛点包括:开发面对的数据库分库分表的问题,数据冷热分离相关的问题等。



在随手科技的大数据业务建设过程中,一些痛点有:数据落地过程流程长,OLTP/OLAP 分散于多个组件。




接下来随手科技看到了 TiDB,调研了 TiDB 及相关的工具和目前应用情况,了解到 TiDB 的特点:


  • 高度兼容 MySQL;

  • 能水平弹性扩展;

  • 支持分布式事物;

  • 是真正金融级的高可用;

  • 拥有一站式 HTAP 解决方案;

  • 是云原生 SQL 数据库。


基于此,随手科技最终选择了使用 TiDB。


目前随手科技使用 2.1.10 版本的 TiDB,采用三中心部署方案,部署了 6 台 TiDB 机器和 8 台 TiKV 机器,部署架构图如下。



随手记使用 TiDB 的具体场景

随手记使用 TiDB 有两个典型场景。


场景 1

用户回滚账本到指定时间点,场景量级达到 20+表,10 TB+数据,百亿级数据量,千万级 OPS。


  • 前方案:使用的是 Hive 及 HBase 两个方案,问题是入库合并时间长(Hive),校验及修复成本耗时高。

  • 现有方案:TiDB,通过调整快照时间,直接 SQL 查询,数据过程简单,修复及校验成本相对较低。



场景二

即时流量关联实时更新的存量数据。


业务:实时标签


场景:及时流量关联实时更新的存量数据


方案对比:


  • Hive: 满足不了实时性要求。

  • HBase、ES: 需要将流数据拆开请求得到结果,有一定开发成本,效率不高且对组件性能造成影响。

  • TiDB:使用 TiSpark,将 Kafka 的数据转换成结构化的临时表,跟 TiDB 实时同步的表进行关联。



遇到的问题及相应的解决方案

在使用 TiDB 的过程中,随手科技总结了一些遇到了问题及其解决方案,主要问题有:主键冲突,数据热点,Kafka, DM 工具,Task 相关问题等。




展望未来

对于未来 TiDB 的使用,随手科技有一些相应的规划:


  • 积极推广 TiDB,从边缘到核心逐渐渗透,挖掘更多 TiDB 场景。

  • 贴近社区,提升能力,回馈社区。

  • 评估测试 TiDB 升级 3.0+ 版本。


随手科技的 TiDB 实践分享完之后,现场也有很多小伙伴们积极提出了一些问题。


Q&A

Q: 从开始调研到第一个集群上线大概多长时间?


A: 这个跟很多东西有关,我们其实今年三四月份才正式往下推。一开始是测试,测试的时候集群规模小,但其实更能暴露出来集群到了瓶颈点的问题,我们也做了很多可用性的测试以及暴力的测试,结果基本符合预期,然后我们选择符合场景的现有业务,迁移上去做试点,整个到上线时间大概花了几个月。


Q : 因为 to B 这一块,其实需要上层做决定,要去推业务,我们需要去说服老大去采纳技术,随手科技这边有没有什么样的杀手锏或者方案,可以分享一下这方面的故事或者一些经验?


A: 这个要分情况,我们老大本身就对 TiDB 有所了解,所以本身就很支持这个事情。


Q : 我想问一下,刚刚那个图表里面不是有排查嘛,排查过程是怎么样的,或者让同事他们首先可以去找,要不然找 issue 的话可能 contributor 会去做,如果想找问题的话要去哪找比较快或者更好上手?刚那个表那个里面有些排查还是非常重。


A: 因为有问题的话,其实我们首先反复进行了验证,确认不是因为我们误操作造成的。比如 DM 同步,我们做了挺多遍,首先确认我们没有误操作,第二确认数据在什么情况丢,在哪个阶段丢,丢的时候是哪个组件引发的。


我们的场景是分库分表合库,而且是几十个分库,量也大。这个过程是同步结束后,我们数据校验时发现一部分数据损失,并且是挺老的数据,我们重复同步了几次,均会有相同情况。接着丢失的数据都会在 DM 第一步 dump 下来的 SQL 文件出现。所以我们确认是在 Load 阶段发生的。丢失会丢掉整条 insert sql,里面可能有几千行数据。然后 DM 会有一些报错,比如 server busy,连接丢失等。我们也试过把一个 task 分批,几个 worker 跑完再起几个来降低 TiDB 压力,这种情况下不会丢失。所以我们把问题确定时 load 时发生异常的情况下 savepoint 应该有问题,然后我们将问题整理并反馈 TiDB 的同事,他们很重视并很积极的帮助我们,安排专人对接并排期解决,在此也非常感谢 TiDB 的小伙伴。


作者介绍


韩超,随手科技大数据工程师,TiDB User Group (TUG) 大使。


本文转载自 AskTUG


原文链接


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


2019 年 10 月 26 日 08:001916

评论

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

2021金三银四Java程序员面试高频分布式架构核心知识全梳理!

Java王路飞

Java 程序员 面试 分布式 微服务

阿里神作SpringBoot手册已在GitHub获得上亿推荐

Crud的程序员

spring springboot

一周信创舆情观察(2.22~2.28)

统小信uos

大话 Python:python 操作 excel 系列 -- 能够操作 excel 的 python 库有哪些?

老王说编程

Python ecxel

大话 Python:python 操作 excel 系列 -- 怎样将数据写入 excel 文件?

老王说编程

Python Excel xlsxwriter

从业务在线化视角实施数字化落地的两大路径

boshi

数字化 七日更

SRS流媒体服务器源码分析:Rtmp publish流程

赖猫

音视频 服务器 SRS 音视频开发 流媒体开发

牛掰,阿里架构师用 115 张原理与流程图,讲清了 Java 程序员常被问及的分布式架构核心知识点

Java架构师迁哥

2021年3月国产数据库排行榜:OceanBase勇夺亚军 神舟挺进20强!

墨天轮

数据库 性能优化 运维

Synchronized升级成重量级锁之后就下不来了?你错了!

yes的练级攻略

Java JVM

c#包含日志输出的项目搭建

happlyfox

C# 日志 28天写作 3月日更

基于 KubeVela 与 Kubernetes 打造“无限能力”的开放 PaaS

阿里巴巴云原生

容器 开发者 运维 云原生 k8s

上周刚面的美团 现已拿到offer,分享一下三面面经

Java架构之路

Java 程序员 架构 面试 编程语言

四面字节跳动成功斩获offer(Java岗),只有努力复习,方能战胜寒冬

Java架构之路

Java 程序员 架构 面试 编程语言

女乘客跳车、货拉拉涉事司机被批捕

石云升

28天写作 3月日更

阿里首席官珍藏,SpringCloud精通日记,血汗全在这了

互联网架构师小马

架构 微服务 Spring Cloud

恋物志(一):网红带货,宠主追捧,2021年宠物智能硬件会火吗?

脑极体

【数独问题】入门题:判断一个数独是否有效 ...

宫水三叶的刷题日记

LeetCode 数据结构与算法 面试数据结构与算法

终于有阿里大牛把Redis源码技术精髓收录成册,全网开源了

程序员小毕

Java redis 源码 面试 阿里

算法攻关 - 长度最小的子数组 (O(n))_209

小诚信驿站

刘晓成 小诚信驿站 28天写作 算法攻关 长度最小的子数组

程序员的数学

大奎

Python基础之:Python中的流程控制

程序那些事

Python 程序那些事 流程控制

备战金三银四必看:2021最新版Java春招手册(五大面试专栏)

比伯

Java 编程 架构 面试 程序人生

用三个分析看,AI会是百度智能云的好“捕手”吗?

ToB行业头条

百度 #百度智能云#

Kubelet从人门到放弃:拓扑管理(下)

DCOS

Serverless Kubernetes 微服务 云原生 函数计算

5年开发经验,面试10分钟后,面试者:我只会crud,不好意思

Java成神之路

Java 程序员 架构 面试 编程语言

蚂蚁金服三面真题:基础+高并发+消息中间件+GC算法+MySQL数据同步

Java架构之路

Java 程序员 架构 面试 编程语言

容器 & 服务:K8s与Docker应用集群 (一)

程序员架构进阶

容器 k8s 服务化 七日更 28天写作

||运算你真的了解吗?

叫练

运算符 java基础

【科创人】融云CEO韩迎:飞信十年珍贵历练,做To B别有取巧的心思

科创人

homework2

Geek_xq

2021年全国大学生计算机系统能力大赛操作系统设计赛 技术报告会

2021年全国大学生计算机系统能力大赛操作系统设计赛 技术报告会

随手科技在 TiDB 的探索之路-InfoQ