当前位置:网站首页>命里有时终须有--记与TiDB的一次次擦肩而过
命里有时终须有--记与TiDB的一次次擦肩而过
2022-08-04 08:58:00 【TiDB社区干货传送门】
作者: 数据小黑 原文来源:https://tidb.net/blog/1ec54d5b
我
我是一个非常有重量的人,买衣服只买迪卡侬,是因为迪卡侬的号大。我曾经崇拜过一个技术大拿,很牛的那种,体重比我还大,所以我很释然,也觉得做技术也许体重大是标配。我是个老头,在社区里面,很自信的说,我的年龄数一数二的大。我也接触过非常多的东西,我曾经搞过ITIL、写过Flex、做过平台架构规划、研究过前端,甚至于现学现卖SEO。最近几年踏踏实实的研究数据,搞搞架构,从Hadoop入门,一直在折腾Spark。
起于2019年的那个夏天
19年我司委托我一个任务,找一个数据库,能够承担起历史数据明细查询,要求有多少数据装多少数据,以较高的并发,以及用户能够忍受的时间(3秒)返回。当时团队里面有个老大哥,对比了几个数据库,有Citus、YugaByteDB、TiDB等等,TiDB是最早开始测试,也是最早放弃的,早期的TiDB部署环境时有个check,会要求磁盘的iops大于1W(randread iops of tikv_data_dir disk is too low: 8207 < 10000),达不到要求就不能安装,我们的破烂开发机,有1K就不错了,然后测试TiDB这事就无疾而终。论坛里面有相似的问答:https://asktug.com/t/topic/2120 。虽然Citeus、YugaByteDB,甚至Cassandra都有过充分的测试、争论,但也因为种种原因没有上线。
召必回,战必胜
21年,我又对TiDB做了一些研究,原来的期望是找一套云原生,兼容Spark计算的数仓View层的数据库,当时期望的架构如下: 但是那一年,我们干了个奇葩事,遇到了一个很难解决的问题。 我们用大数据Hadoop这一套开始给客户算账,地球上绝对有很多人干这事,但是像我们人又少,技术又烂的团队干这事很少。然后我们就遇到了月初月末算账不准的问题。整个同步的链路很长,如下图:
我们研究了两个周,备受折磨,我就想搭建另外一个同步链路,同步数据后作对比,期望发现问题。或者说如果新搭建的同步链路稳定,直接采信新的同步链路的数据。 由于TiDB完全兼容Mysql生态,而且我们集群里面有Otter,于是我有个大胆的想法,用TiDB搭建另外一个数据同步链路,用Spark同步TiDB的数据到大数据产品中进行计算,于是同步链路变成了这样:
新的同步链路,从搭建生产环境,到能够正式处理数据,仅用三天时间。新链路上线后,采用两条链路互补的方式,计算账单,数据再没出过问题。经过两周的跟踪,也逐步发现了以前环境的问题,修正问题后,TiDB的同步链路完成使命。 详情:https://tidb.net/blog/55a8baf9
最接近生产的一次
22年我逐步走进了社区。在公司内部也做了一些培训,搭建了一个测试环境。由于我的布局,我们另外一个团队在需要解决saiku产品的底层查询问题时,想到了TiDB,于是做了一些测试。从结果来看,TiDB比环境里面的其他数据库,更适应saiku的查询方式。于是我们打算在生产上线TiDB,用于解决很多我们生产环境需要解决的问题,不单单是saiku,还有需要分布式关系型数据库的很多地方。但,又双叒叕因为外部环境因素,我们最终部署了Doris,毕竟测试saiku在Doris上有更好的表现。在这个过程中,我们发现了一些问题,因此提了在tidb的第一个issue,并在新版本中得到修复: https://github.com/pingcap/tidb/issues/32626 详情:https://tidb.net/blog/de9bf174
生命不息,折腾不止
随着年龄增大,越来越认识到知识储备的重要性。汲取知识的重要方式是深度参与社区。 于是,我就: 于是,我就:
于是,我就:
还有以下,懂得都懂,hhhhhhhhh:
最后,感谢贵司,让我圆了一个分布式数据库的梦。
边栏推荐
- inject() can only be used inside setup() or functional components.
- 记录十条工作中便利的API小技巧
- How to write patents are more likely to pass?
- 学会 Arthas,让你 3 年经验掌握 5 年功力
- csdn图片去水印 | 其他方法无效时的解决方案
- 从零开始C语言精讲篇6:结构体
- Libpq 是否支持读写分离配置
- 云函数实现网站自动化签到配置详解【Web函数/Nodejs/cookie】
- 【STM32】STM32F103系列名称与封装、内存
- 金仓数据库 KDTS 迁移工具使用指南 (4. BS 版使用说明)
猜你喜欢
NAT/NAPT地址转换(内外网通信)技术详解【华为eNSP】
C Language Lectures from Scratch Part 6: Structure
[Computer recording screen] How to use bandicam to record the game setting graphic tutorial
从零开始C语言精讲篇6:结构体
【云驻共创】HCSD 大咖直播–就业指南
云函数实现网站自动化签到配置详解【Web函数/Nodejs/cookie】
cannot import name ‘import_string‘ from ‘werkzeug‘【bug解决】
sql在字段重复时 对某个字段根据最新时间取数
【UE虚幻引擎】UE5实现动态导航样条线绘制
layout manager
随机推荐
学会 Arthas,让你 3 年经验掌握 5 年功力
2022-08-02 Analyze RK817 output 32k clock PMIC_32KOUT_WIFI to WiFi module clock register devm_clk_hw_register
TCP的四次挥手
如何快速将Zabbix5.0升级至6.0?
经典动态规划问题的递归实现方法——LeetCode39 组合总和
抬升市场投资情绪,若羽臣是否还需“自身硬”?
王爽汇编语言第四章:第一个程序
云函数实现网站自动化签到配置详解【Web函数/Nodejs/cookie】
csdn图片去水印 | 其他方法无效时的解决方案
Shared_preload_libraries cause many syntaxes not supported
反序列化漏洞
推荐几种可以直接翻译PDF英文文献的方法
2022年化工自动化控制仪表考试模拟100题及模拟考试
C语言strchr()函数以及strstr()函数的实现
async - await
binder通信实现
大家好,请教一个问题啊,我们通过flinkcdc把Oracle数据同步到doris,目前的问题是,只
Apache Druid 实时分析数据库入门介绍
金仓数据库KingbaseES客户端编程接口指南-JDBC(8. JDBC 元数据处理)
蘑菇书EasyRL学习笔记