【技术干货】黄东旭:TiDB 在实时数据分析中的最佳实践
编者按:
9 月 10 日晚,七牛云主办的「云加数据,智驱未来」数据科学系列论坛如期举行。在直播中,PingCAP 联合创始人兼 CTO 黄东旭为我们带来了主题为《 TiDB 在实时数据分析中的最佳实践》的精彩分享。
MySQL 作为单机数据库,当数据量增加时必然涉及到分库分表等操作去换取水平扩展能力,这时候的复杂度将会呈现几何倍的上升。TiDB 五年前的初心是想设计一个替换 MySQL 分库分表的方案,因此 TiDB 最早的目的是想做一个既能够像单机数据库一样使用,同时又拥有水平扩展能力的 OLTP 分布式数据库。
但是,当用户使用 TiDB 存储数据量越来越多后,有一个新类型的需求冒出来:用户会想我能不能直接在 TiDB 去做一些离线,甚至是准在线的数据分析,而不是把数据转移到 Hadoop 上。我认为有很大一部分比例 OLAP 的需求不用做很重的 ETL,比如电商用户,就想看一下现在卖出去多少东西,或者算一下今天赚了多少钱这种报表。但是过去的 Transaction Database 并不是为了这种比较复杂的分析而设计的。
所以这两年有一个新概念叫 HTAP,尽可能模糊了 OLTP 与 OLAP 的概念。过去因为技术、数据结构、硬件、网络等条件都不成熟,因此这两套设计水火不容,所以在技术上强行划分出了 OLTP 和 OLAP。我认为在未来这些技术细节或者底层差异会越来越模糊,包括 Gartner 在一个报告中也提到,未来只会有一种 Database。所以在 HTAP 的新概念之下会有很多更新的 Workload 诞生出来。
HTAP的技术演进过程
在 HTAP 之前,互联网公司是按照下图所示的一个传统架构去做在线业务和离线业务。