写在通过PCTP考试一个月之后

[toc]

PCTA (PingCAP Certificated TiDB Associate)是 PingCAP 公司认证 TiDB 数据库专员的缩写。PCTA 要求具备安装部署及日常运维分布式关系型数据库的能力。PCTA 需要学习并熟练掌握 TiDB 架构原理、安装部署、周边工具等基础知识。 PCTP(PingCAP Certified TiDB Professional)是 PingCAP 公司认证 TiDB 数据库专家的缩写。PCTP 要求具备管理大型分布式关系型数据库集群的能力。PCTP 需要学习并熟练掌握 TiDB 的深度原理及高级 Feature、性能调优、SQL 优化、Trouble Shooting 等进阶内容,要成为 PCTP 必须先获得 PCTA 认证。 目前 PCTA 和 PCTP 认证主要面向 TiDB 3.0 版本。

在有惊无险的通过了PCTP的考试之后,简单的回顾下我准备考试和参加考试的过程,为后续参加考试的小伙伴提供一些参考信息,本文重点介绍如何科学备考 PCTP。

1. 考试体验

作为一家风格非常鲜明的公司推出来的高大上认证考试,我在准备和通过考试的过程中深刻的感受到PingCAP朝气蓬勃的氛围。

1.1 考题Geek风格

大家可能已经注意到,课程视频或者现场课程里很多讲课的老师都是年轻的技术大佬(小鲜肉和小姐姐),也就意味着PCTP的考题里开发同学出题的比重较重。和传统偏运维的DBA考试不同,现在我们需要站在架构的角度认真理解技术原理,知其然知其所以然。

这里推荐大家恶补经典理论基础文章或者论文

  1. 三篇文章了解 TiDB 技术内幕——说存储
  2. 三篇文章了解 TiDB 技术内幕——说计算
  3. 三篇文章了解 TiDB 技术内幕 —— 谈调度
  4. Raft论文: In search of an Understandable Consensus Algorithm (Extended Version)
  5. 事务隔离级别: A Critique of ANSI SQL Isolation Levels (读懂这篇文章就能较好的理解事务隔离级别)
  6. Google F1的Online DDL论文:《Online, Asynchronous Schema Change in F1》(TiDB的DDL就是按照F1的论文做的工程实现)
  7. LSM Tree:《The Log-Structured Merge-Tree (LSM-Tree)》 还有HLC等等。

1.2 题目难度分布

我感受的考题的难度等级是从 单选题 >> 多选题 >> 不定项 逐级递增的,特别是不定项的最后几道题,考的较为深入。以下是我考试时的题目分布情况。注意,官方表示 PCTP 各类题型的占比会依据每次考试难度系数有所调整,下表仅供参考:

PCTA 题目/时间 单选题 多选题 不定项
60道/60min 20道 20道 20道
PCTP 题目/时间 单选题 多选题 不定项
75道/75min 25道 20道 30道
PCTP 上机/时间 题目
90min 3道大题

总的来说,PCTP多选题的占比在下降,不定项的占比在提升,不定项的难度较大,时间非常紧张,基本读完题就需要⻢上做出判断,否则时间来不及。

1.3 Keep Learning

为了保持技术的热情和对新事物的好奇心(不丢人的通过考试),工作多年之后我还是老老实实的动手写笔记复习了,期间学习到了非常多的知识点,也巩固了非常多的技术细节。

2. 备考方式

2.1 制定计划并落实

认真阅读官方提供的 PCTA + PCTP 考试大纲,根据官方提供的 考试大纲、剩余的时间以及自己的薄弱点,制定适合自己的备考计划,抓重点抓主线。我是Oracle&MySQL DBA出身,针对自己的优劣势,我给自己规划了一个复习主线,仅供参考

  1. TiKV存储内核体系&调优(花费40%时间
    • TiKV架构原理
    • 深入理解RAFT理论和调优
    • RocksDB原理
    • Coprocessor
    • PD调度
    • 调优以及结合日常运维实践做整体的梳理
  2. TiDB计算内核体系&调优(花费25%时间
    • TiDB Server概览
    • 关系型模型原理
    • SQL Parser & DDL & DML 原理
    • 调优以及结合日常运维实践做整体的梳理
  3. 事务&SQL优化(花费20%时间
    • 结合论文 A Critique of ANSI SQL Isolation Levels 反复理解基于Lock的事务隔离级别和基于异象的事务隔离级别的差异
    • 理解优化器的行为,比如火山模型和向量化执行的优缺点,比如算子下推
  4. 高可用&生态工具原理(花费15%时间
    • DM/Lighting日常使用较多,原理方面待加强
    • Binlog组件用的少,需要投入较多的精力理解和使用
    • 复习高可用

王兵老师的分享《有关TiDB认证考试的一点经验分享》 中也提到了他梳理的备考知识主线,供大家参考:

抓住TiDB产品的知识主线,特别是对于产品架构、主要概念、基本工作原理要认真理解。搞清楚TiDB、 TiKV、PD各自的主要职责,相互之间如何协作。此外,对于这些组件内部的工作原理、实现的基本机制和依赖的技术要加以重视,特别是RocksDB的基本原理和调优参数、RAFT的基本原理、TiDB的事务模型、TiDB SQL引擎、SQL优化等内容。这些内容在考试试题中会出现,并且有一定难度。 此外,对于TiDB周边的生态工具和组件,比如:TiDB Binglog、DM、TiDB Lighting、Mydumper、loader、pd-ctl、tikv-ctl以及tidb http api也要加以关注。

2.2 动手画图

官方提供了20~30个小时的课程视频,干货满满,可是看完就开始忘,怎么办?我的应对方式是好记性不如烂笔头,在看视频的同时动手画这门课程的思维导图以及关键步骤的流程图,边画可以边记录疑问点以及思考点,自己动手画的东西理解和记忆更深刻一些:

2.3 动手实践

网上的经典段子,“听了很多道理依然过不好这一生”,同样的,为了避免自己看了好多视频依然是Paper DBA,动手实践这个环节是非常重要的。由于我自己平常工作就涉及了较多 TiDB 的线上运维、问题定位、故障演练以及自动化运维平台开发的工作,日常动手的机会非常多,这里就不赘述了。 这里需要注意的是 PCTP 的上机考试更侧重于解决实际问题的能力,比如说:

  1. 不同场景的系统调优、SQL优化
  2. Trouble Shooting
  3. TiKV损坏的故障恢复:模拟多数 tikv 损坏场景的 TiDB 集群恢复操作,在一套集群正常运行的集群下,手动删除其中两个 TiKV 部署目录、kill tikv-server 进程,进行灾难恢复。
  4. DM/Lightning/Binlog等生态工具的使用等等。

PCTP正式考试时,官方考试用机环境为UCloud 云环境主机8~9台,配置如下:

CPU: 2C
内存: 4G
磁盘: 50G

不熟悉UCloud的小伙伴可以提前在官方贴心的提供的练习环境: UCloud 云环境的折扣(教育专用)上练手,测试的机器配置略低,初始化时需要添加额外参数跳过检测:

ansible-playbook bootstrap.yml -e "dev_mode=True"

2.4 考前巩固

考试的考点那么多,考前巩固复习时,翻出自己画的思维导图和各种流程图,快速的在脑海里把知识点过一遍。如果有精力的话,假设自己是考官,自问自答一次,相信转换视角之后,大家一定收获不小。

3. 考试小技巧

对于考试,相信大家都是身经百战过来的,在这里再啰嗦几句。

3.1 熟悉前提&规则

  1. PCTA和PCTP的考试的题目类型都是单选题、多选题和不定项选择组成。
  2. 单选题、多选题、不定项每道题都是ABCDE 5个选项,多选题、不定项如果出现漏选、多选、错选一律不得分
  3. 如果是多选题,也就意味着答案至少是大于等于2个的,只选择一个结果的时候,就可以提醒自己再认真阅读一次题目。
  4. 如果是不定项答案,也就意味着答案可能是1个,也可能是多个,需要自己认真理解题干。
  5. 上机考试全程录屏,需要提前熟悉客户端的使用以及官方文档的使用,顺带吐槽下难用的官方文档搜索框。

3.2 考试策略

  1. 统观全局:评估整体时间分配,大致看一眼评估难度和题量,评估答完卷子概率,以此选择答题的策略。
  2. 运筹时间:说白了就是需要稳定心态,正确对待难题和易题。
    • PCTA是考核基础,难度较浅,60分钟60道题,阅读完题目碰到拿不准的题目在草稿上打个标记;最后预留十分钟处理拿不准的题目。
    • PCTP是进阶考试,难度加大了许多,75分钟需要完成70道题,基本上卡着一分钟一道题,阅读完一道题思考上十来秒就需要选择出明确的答案了,此时在一道题目上需要给自己定出deadline。
  3. 认真审题
    • 多项选择和不定项选择中,注意有些题目的题干类似选出下列说法中错误的,有些题目的题干类似选出下列说法中正确的,看清题目要求再选择。
    • 稳定心态,读完题目所有选项再选择,比如最后一个选项是以上说法都对/错。

4. 最后预祝大家考试顺利!大吉大利!早日拿证 !!!

1赞

大吉大利!

大吉大利

大吉大利!

大吉大利!