
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
佛山IT培训行业不断跟着互联网发展的大潮流,跟着这个潮流才能够更好的适应这个大时代。那么就来好好的看看下面的这些知识。
佛山IT培训大师表明即使在互联网如此繁荣的今天,在数据库这片边界模糊且不确定地带,他还在努力寻找确定性的实践方向。
在数据库的平行世界里,通常传统的关系型数据库无法满足海量数据处理和分析时,新一轮的窗口期也随之需求开启,但是各类劣势架构、内存架构、 NoSQL 等方案都不能满足自己理想的解决方案,这些都不够美,很少能够把分布式事务与弹性扩展做到完美。
佛山IT培训大师表明“如果创造一个全新的东西,使它有一天能够成为生产力,那种感觉真好!”
在 2012 、 2013 年期间,黄东旭他们就开始研究了Google 发表的一系列关于新一代分布式数据库 Spanner 和 F1 的论文以及相关的学术界的进展,直到 2015 年,他们觉得基本所有的技术问题和架构都已经思考得差不多了,于是决定出来全职去重新开始完整的实现一个新的数据库,也就是今天的主角——下一代开源 NewSQL 数据库 TiDB 。
佛山IT培训大师表明绝对的理性与感性, Google 内部使用的一个海量关系型数据库 F1/Spanner ,解决了关系型数据库、弹性扩展以及全球分布的问题,并在生产中大规模使用。“如果这个能实现,对数据存储领域来说将是颠覆性的”,黄东旭为完美方案的出现而兴奋, PingCAP 的 TiDB 在此基础上诞生了。
当然,每向前进一步,都需要付出巨大的努力。在启动 TiDB 项目之前,但是底层的关系型数据库(主要是 MySQL 为主)并没有一个优雅的扩展方案。业界除了在业务层分库分表,或者使用中间件等折衷方案外,并没有其他太多的办法,有些业务可能能迁移到 NoSQL 之上,例如 HBase 、 C* 等,跟很多的业务没法平滑迁移,几乎需要重写全部逻辑。如果采用分库分表和中间件的方案,扩展以及高可用的方案会带来大量额外的运维成本,比如无法使用跨 shard 的 join、子查询、跨行事务等。
但是作为一个基础软件工程师的黄东旭他们不希望将这些复杂度转嫁给业务层,所以就开始重新审视整个数据库,希望从根本上解决 MySQL 的扩展问题,而不是再造一个中间件。
当然了,创造并不意味着开始,它需要面临的是无限的投入和无限的博弈来适应互联网的竞争和审视,真正做到让开发者和企业受益,才是真正的开始。
TiDB在整体架构基本是参考 Google Spanner 和 F1 的设计,上分两层为 TiDB 和 TiKV 。 TiDB 对应的是 Google F1, 是一层无状态的 SQL Layer ,兼容绝大多数 MySQL 语法,对外暴露 MySQL 网络协议,负责解析用户的 SQL 语句,生成分布式的 Query Plan,翻译成底层 Key Value 操作发送给 TiKV , TiKV 是真正的存储数据的地方,对应的是 Google Spanner ,是一个分布式 Key Value 数据库,支持弹性水平扩展,自动的灾难恢复和故障转移(高可用),以及 ACID 跨行事务。值得一提的是 TiKV 并不像 HBase 或者 BigTable 那样依赖底层的分布式文件系统,在性能和灵活性上能更好,这个对于在线业务来说是非常重要。
TiDB 对比 NOSQL
TiDB 对于这些 NoSQL 来说,最大的特点是编程接口是 SQL,SQL对于开发者而言是更加灵活的操作数据库的方式,且对 MySQL 有着极高的兼容性—原业务的 MySQL切换到 TiDB 几乎一行代码都不用修改就可以完成。TiDB 在支持 SQL 的同时有没有丧失 HBase 这样的系统的弹性扩展能力,业务层不需要再去关心数据库的容量,不用去考虑分库分表,也不用像过去那样投入很大的运维力量,扩容只需简单加机器就好,存储节点故障对业务透明,而且数据库本身具有自我修复的能力,保证数据不会丢失。
对于 MongoDB 也是一样,更重要的是不需要改变用户已有的习惯和程序,而且为了定义未来的云上的数据库形态,TiDB 设计的目标是单集群需要可以 Scale 到 1000 以上物理节点的规模,支持 P 级别容量,万亿以上的行的结构化数据存储,在这个前提约束下的设计和技术选型和 MongoDB 很不一样,在大数据量的情况下 TiDB 的表现更稳定,扩展更加平滑。
TiDB 的 SQL 优化器是黄东旭他们从头开始实现的一个面向分布式存储设计的查询优化器,使用了很多学术界很新的查询优化技术和分布式计算框架的思想,保证 MySQL 兼容性的前提下比 MySQL 在复杂查询下表现要好得多。
对于这方面的很多知识我们都是很模糊的,然而在这个信息发达的时代,是需要我们去不断努力和不断去学习更多新知识的,特别在这个IT行业大时代下,你如果想从事好IT行业工作,那么你是需要懂得更多IT知识,以前的你要懂,而且新的知识你更是需要去学习了。如果想了解更多的IT行业方面的知识,那么你可以来佛山达内培训机构了解更多关于这方面的知识。