Ch1 技术能力介绍
先介绍个人背景,给大家一个标尺。CS专业,个人之前做过几年开发,也使用过几个数据库。后来做过几年架构师,了解市场上的各种分布式产品。然后有几年不怎么做具体技术了。22年底的时候开始接触TiDB数据库,感觉比较有意思。通过自学考了PCTA V6和PCTP V6的认证。
Ch2 学习方法
2.1 主要内容
学习TiDB相对还是比较容易的,主要的学习内容包括:
- 视频课程:基本上课程质量都比较好,核心课程101和303(V6)。
- 官网文档:https://docs.pingcap.com/zh/tidb/stable ,这个非常重要。因为学习期间的时候熟悉了文档和文档结构,更便于真正使用过程中去查询文档。
- 社区:包括官网博客:https://cn.pingcap.com/blog/ ,里面有一些文章质量是很高的,可以和官网结合看。社区技术月刊 https://tidb.net/book/tidb-monthly/ ,可以看看其他使用者的一些经验。
- 分布式论文:可以参考PingCAP的github完整,有大量相关的论文和书籍整理,https://github.com/pingcap/awesome-database-learning 。作为扩展学习用途。
- 实验:数据库是实操课程,需要实验环境去熟悉命令,特别是PCTP认证。
2.2 具体的科目学习和考试考试特点
2.2.1 PCTA学习经验:
-
以考试为目的的学习:建议就看101课程就好,仔细看完1-2遍,然后再复习一下重点内容就可以去考试,根据每个人的学习能力决定一次性的通过率。
-
以学习为目的,考试只是手段的:建议看如下的三门课程 + 官方博客 + 论文(可选)。
- TiDB 快速起步 https://learn.pingcap.com/learner/course/6
- TiDB 数据库核心原理与架构 [TiDB v6.1](101) https://learn.pingcap.com/learner/course/960001
- TiDB 的架构与特点(201.1)https://learn.pingcap.com/learner/course/600003
- 建议的学习路径:快速起步 —> 101 —> 201.1,基本都采用1.5倍速看。以上三个课程中101是重点,建议101看两遍。
-
其他学习材料:
- 建议可以看看官方的博客,https://cn.pingcap.com/blog/ ,可以找关于原理的内容浏览一下,特别是《三篇文章了解 TiDB 技术内幕》
- 【高级扩展部分】TiDB的数据库架构相比其他的数据库,如MySQL,Oracle等不太一样。TiDB使用了很多分布式概念,而分布式本来就是一个难点。在学习TiDB过程中需要了解Spanner / F1,Raft,LSM结构,RocksDB,Percolator事务等。如果不太熟悉这个领域,建议101看两遍。如果学有余力,建议去阅读一下Spanner / F1,Raft,LSM的论文原文,或者在知乎上看中文翻译或者论文分析。特别是数据库的从业者,建议看看论文。
2.2.2 PCTP学习经验:
-
到了这个阶段,应该不存在以考试为目的的学习者了,更多是真正想深入了解TiDB数据库。PCTP的主要内容也侧重于DBA的日常工作,包括集群管理,备份和恢复,数据迁移和同步,另外就是高可用方案。如果是普通学生可以不用考这个PCTP认证,但是还是强烈建议学习一下303课程。
-
另外V5和V6的PCTP范围差异比较大,V5的版本范围更宽,要求也更高。V6的版本更侧重于实操。
-
以学习为目的,考试只是手段的:建议看如下的一门课程 + 官网文档 + 社区技术月刊 + 实验。
- TiDB 数据库管理 [TiDB v6.1](303)https://learn.pingcap.com/learner/course/1110001
- 303课程内容比较长,甚至可以说太长,建议看一遍就好。但是涉及到的实验都需要完成,甚至多做几遍实验去加深理解。实验环境建议在公有云上搭建一个最小版本的环境。
- 另外TiDB Cloud可以去试用一下,加深对于DBaaS的理解(不必须)。
-
其他学习材料:
- 官网文档:强烈推荐大家要熟悉这个工具,基本上的产品内容都可以在这里找到。对于PCTP考试,建议快速浏览一下如下部分内容:部署标准集群、数据迁移、运维操作、监控与告警、教程、TiDB工具(官网左侧目录一级目录)。另外数据库安全方面的内容,需要以303为主,官网材料比较散。
- 可以看看社区技术月刊,看看别的使用者的经验。
- 【高级扩展部分】源代码。可以搭建Golang + VS Code环境,从github上clone代码。熟悉一下相关工具的代码结构。这个部分比较难,学有余力可以尝试。
- 学有余力建议看看V5的302课程(https://learn.pingcap.com/learner/course/120005 ),这个课程其实很好,可以加深对于产品的理解。这个课程包括数据表设计、事务、查询优化、系统优化、故障诊断,虽然不在V6的PCTP范围里面,但是其实课程的内容很重要,而且不过时。
Ch3 考试结果
1月12日考了PCTA,2月15日考了PCTP,都通过,平均分85。
PCTA的学习时间大概60个小时,主要花了部分时间去阅读论文和相关数据库的书籍。PCTP的学习时间大概80小时,主要是花了不少时间去做实验,并且大量时间去阅读官网文档。如果纯粹以考试为目的,应该实际时间可以折半。
考后体验:
- PCTA不难,吃透了背后的原理和产品的具体实现就能过。
- PCTP考得比较细,想拿高分不容易。把303提到的内容都深化了解可以便于拿高分。但是出于对实际更有作用,还是应该采用上面的建议,拓宽阅读面去了解产品,特别是官网材料。