FE 的主要作用将 SQL 语句转换成 BE 能够认识的 Fragment,如果把 BE 集群当成一个分布式的线程池的话,那么 Fragment 就是线程池中的 Task。从 SQL 文本到分布式物理执行计划,FE 的主要工作需要经过以下几个步骤:
-
tablet 数:2000w -> 100w
-
tablet 增长量:15000/TB
3.1.2 实施计划
(1)对于现存的表
-
扫描集群内所有的表,以分区粒度输出一份完整的数据统计给业务方,并根据每张表的实际情况附上修改建议;
-
制定治理计划按照由高收益到低收益,优先处理最不合理的库,将元数据管理压力降下来,再逐步按照计划治理所有的库。
因为 Doris 目前不支持按分区级别展示整个库下的数据情况,因此单独开发一个程序进行扫描,伪代码如下所示:
con = DriverManager.getConnection()for db in db_list: con.execute("use %s".format(db))) for table in table_list: con.execute("show create table %s".format(table)) #获取第一个分区的bukcet数 result.append(regrex_extract_bucket(con.next())) con.execute("show partitions from %s".format(table))