PCTA学习笔记练习

概述

1.数据技术发展的驱动力有哪些?

a.业务发展导致的数据容量增长

b.场景创新催生的"数据交互效率与数据模型多样性"需求

c.硬件与云计算的发展

2.2006 google三驾马车GFS, BigTable, Mapreduce分别解决什么问题?

GFS解决分布式文件系统问题

BigTable解决分布式Key-values存储问题

Mapreduce解决在分布式文件系统和KV存储上如何做计算和分析

3.数据技术栈方向和数据产品的本质是:

应对不同业务场景,结合相对固定的基础技术要素,进行各种数据技术与架构Trade Off(选择与平衡)

4.分布式技术的主要挑战有哪些?

01.如何最大程度的实现分治

02.如何实现全局的一致性

03.如何进行故障与部分失效的容错

04.如何应对不可靠的网络与网络分区

5.TiKV相关的理论包括哪些?

Google Spanner设计的multi raft-group副本机制

Google F1论文算法实现DDL

6.分布式事务模型特点

去中心化的两阶段提交

Google Percolator事务模型

TiKV支持完整事务KV API

默认乐观事务模型(3.0+版本也支持悲观事务模型)

默认隔离级别:Snapshot Isolation

7.Coprocessor是什么?

即协调计算器。

是TiKV中读取数据并计算的模块,每个TiKV存储节点都有一个协调计算器

8.如何构建一个Online DDL算法?

a.在TiDB里没有分表的概念,所以整个DDL完成过程非常快递

b.把DDL过程分成Public,Delete-only,Write-only等几个状态,每个状态在多个节点之间同步和一致,最终完成完整的DDL。

9.TiFlash行列数据同步?

以Raft Leaner方式接入Muti-Raft 组,使用异步方式传输数据,不参与Raft选举,对TiKV产生非常小的负担,同时还规避了复制组脑裂问题

10.解决AP算力问题,引入的MPP特点有?

TiDB-Server作为入口节点,通过代价决定是否经由MPP模式计算

TiFlash作为MPP计算节点

后续将引入MPP读取行存能力

11.HTAP已经实现的功能有?

TiDB引入实时更新的列式引擎,即解决了资源隔离,又提升了AP效率

在列存上引入MPP模型,实现了SQL join的下推与并行处理

通过Raft-base replication实现了时效性

融合大数据生态,比如TiSpark

TiDB的CBO可以采集行列Cost模型进行配置,并同步收集不同引擎的统计信息,统一进行最佳执行路径的选择

12.分布式关系型数据库设计的六大目标:

横向扩展,强一致及高可用,标准SQL与事务模型,云原生,HTAP,生态兼容性

13.推动计算与存储分离架构的主要原因是?

硬件,尤其是网络

存储引擎

14.TiKV存储引擎的特点?

a.更细粒度的弹性扩缩容

b.高并发读写

c.数据不丢不错

d.多副本保障一致性及高可用

e.支持分布式事务

LSM-tree结构本质是一个用空间置换写入延迟,用顺序写入替换随机写入的数据结构

RockDB是一个非常成熟的LSM-tree存储引擎,支持批量写入,无锁快照读

range分片可以更高效的扫描数据记录

range分片可以简单实现自动完成分裂与合并

弹性优先,分片需要可以自由调度

15.TiKV存储引擎从下到上的架构为?

RocksDB–>Raft–>Transaction–>TiKV API–>Coprocessor API

16.Multi-Raft将复制组更离散

角色包括leader、follower、learner

强主模式,读写在leader上

4.0版本开启follower read

Region base Multi-Raft实现了一个表可以同时多个写入点,TiKV的调度机制,可以识别单个节点的物理信息(IDC,RACK,HOST),并进程约束与绑定。

计算引擎

16.TiDB-server前台功能有哪些?

a.管理连接和账号权限管理

b.MySQL协议编码解码

c.独立的SQL执行

d.库表元信息,以及系统变量

17.TiDB-Server后台功能有哪些?

a.垃圾回收(GC)

b.执行DDL

c.统计信息管理

d.SQL优化器与执行器

18.TiDB-Server架构从上到下分别为?

MySQL 协议层(MySQL Protocol)–>核心SQL层(TiDB SQL Layer)–>存储接口层(KV API,DistSQL API)

调度

19.自动分片技术是更新维度弹性的基础

a.全局有序的KV map

b.按照等长大小策略自动分片(96M)

c.每个分片是连续的KV,通过Start/End key来寻址

d.每个分片seek成本固定

e.Region是复制、调度的最小单位

自动merge

默认96M分片

144M分裂分片

20MB合并分片

集群管理

21.TiDB Cluster集群启动顺序

PD–>TiKV–>TiDB–>TiFlash

22.下列关于TiUP的说法正确的是?(B,D)

A.TiUP是从TiDB 5.0引入的包管理器

B.TiDB,PD和TiKV等组件都可以由TiUP管理

C.TiUP在执行时,命令和组件不可以同时出现

D.TiUP不但可以负责TiDB的部署还可以负责TiDB Cluster的管理

23.连接TiDB 数据库的客户端\GUI包括哪些?

MySQL客户端,Mycli, MySQL Workbench, Navicat, phpMyAdmin

系统参数/集群参数

24.下面关于TiDB系统参数的说法,正确的有哪些?(ACE)

A.系统参数有作用域之分

B.系统参数指持久化在KV中关于TiDB,TiKV和PD的参数

C.系统参数可以通过MySQL客户端进行修改

D.SESSION级别的系统参数修改后需要重新连接才会生效

E.GLOBAL级别的系统参数,修改后对于当前会话无效

F.GLOBAL级别的系统参数,修改后对于当前会话生效

25.关于TiDB集群配置参数说法正确的是?(A)

A.TiKV节点集群配置参数修改后,需要重启节点才会生效

B.集群配置参数有作用域范围

C.可以用MySQL客户端修改集群配置参数

D.集群配置参数持久化在TiDB,TiKV和PD的配置文件中,还有一部分持久化在KV存储中

E.以上都不对

用户管理

26.角色与用户的差异包括?

a.角色是被锁住(locked)的

b.角色没有密码

c.被存储在mysql.user表中

d.当用户登录后,必须使用set role all命令开启用户被赋予的角色

27.下面关于角色和用户账户的说法正确的是?(D)

A.角色和用户账户都是由名称和主机名组成,并都可以登录数据库

B.创建角色时如果不指定主机名,则默认是localhost

C.创建用户时,如果主机名为%,则没有任何意义

D.角色没有密码

文件管理

28.关于TiDB数据库的文件,下面表述正确的是?(C)

A.只有TiDB,TiKV节点有数据信息,PD节点不存储数据信息

B.TiKV,TIDB的配置文件存放在PD节点的/tidb-deploy文件夹下

C.PD节点的KV元数据存放在/tidb-data目录下

D.以上都不对

监控

29.关于TiDB的监控,正确的是?(C)

A.Promethues+Grafana+Dashboard内置于PD组件中,提供监控与报警服务

B.TiDB的报警处理,需要额外安装第三方插件

C.TiDB的报警项分为:紧急、严重和警告三个级别

D.以上都不对

扩缩容/升级

30.对于扩容和缩容TiDB/TiKV/PD/TiFlash的操作基本一致?(B)

A.正确

B.错误

31.命令tiup cluster clean ${cluster-name} --log用于清理集群数据,保留日志信息?(B)

A.正确

B.错误

32.下列关于升级TiDB集群错误的是?(C)

A.升级TiDB集群如果evict leader等待时间过长,可以通过–force参数来解决

B.升级TiDB集群,可以停止集群,升级集群,最后启动集群

C.升级TiDB集群,必须停机

D.升级TiDB集群不支持回退

备份还原

33.下列关于热备份的说法正确的是?(BD)

A.热备份要求数据库处于只读状态

B.热备份不会锁定任何用户的读写操作

C.相对于冷备份,热备份的速度会更快

D.TiDB生态工具中,BR的备份属于热备份

34.关于逻辑备份与物理备份,下列说法正确的是?(C)

A.逻辑备份和物理备份都可以应用于异构数据库间的数据迁移

B.逻辑备份相对于物理备份适合大量数据的备份

C.BR工具和操作系统拷贝都属于物理备份

D.逻辑备份的效率往往高于物理备份

35.下列关于BR的说法不正确的是?(ABC)

A.BR工具属于逻辑备份

B.BR工具在恢复时,需要数据库设置为只读状态,否则可能会出现数据不一致的情况

C.BR工具的备份在恢复时,可以同时使用TiCDC同步到下游TiDB或者MySQL数据库

D.当备份数据量较大,不可停库同时又要求备份效率的时候,BR工具比Dumpling和操作系统拷贝更有优势

36.下列哪种备份方式是BR工具支持的?(A)

A.热备份,物理备份

B.冷备份,物理备份

C.热备份,逻辑备份

D.冷备份,物理备份

37.Dumpling适用于以下场景:

1.导出数据量较小

2.需要导出SQL语句或者CSV的场景,可以在异构数据库或者系统中进行迁移

3.对于导出效率要求不高,由于读取数据和转换,所以比起物理导出效率低下

38.Dumpling不适用以下场景:

1.需要直接导出TiDB数据库中的原始SST(键值对)

2.增量备份,目前只有全量导出,无法做到增量

3.数据量较大的场景

39.Dumpling所需权限

最小权限要求

SELECT

RELOAD

LOCK TABLES

REPLICATION CLIENT

40.下列哪些场景不适用Dumpling工具导出?(AC)

A.增量备份

B.将数据导出到MySQL数据库

C.数据量较大场景,要求热备

D.只导出2张百万级别的表

1 个赞

总结的很详细,费了一番功夫

1 个赞