## Proc 系统
Proc 系统是 Doris 的一个比较有特色的功能。使用过 Linux 的同学可能比较了解这个概念。在 Linux 系统中,proc 是一个虚拟的文件系统,通常挂载在 /proc 目录下。用户可以通过这个文件系统来查看系统内部的数据结构。比如可以通过 /proc/pid 查看指定 pid 进程的详细情况。
和 Linux 中的 proc 系统类似,Doris 中的 proc 系统也被组织成一个类似目录的结构,根据用户指定的“目录路径(proc 路径)”,来查看不同的系统信息。
proc 系统被设计为主要面向系统管理人员,方便其查看系统内部的一些运行状态。如表的tablet状态、集群均衡状态、各种作业的状态等等。是一个非常实用的功能。
### 查看 Proc 系统
Doris 中有两种方式可以查看 proc 系统。
通过 SHOW PROC 命令
mysql> show proc "/";
+---------------------------+
| name |
+---------------------------+
| statistic |
| brokers |
| frontends |
| routine_loads |
| auth |
| jobs |
| resources |
| monitor |
| transactions |
| colocation_group |
| backends |
| cluster_balance |
| current_queries |
| dbs |
| load_error_hub |
| current_backend_instances |
| tasks |
+---------------------------+
17 rows in set (0.00 sec)
mysql> show proc "/dbs";
+-------+------------------------------------+----------+-------------+--------------------------+--------------+
| DbId | DbName | TableNum | Quota | LastConsistencyCheckTime | ReplicaQuota |
+-------+------------------------------------+----------+-------------+--------------------------+--------------+
| 0 | default_cluster:information_schema | 17 | 1024.000 GB | NULL | 1073741824 |
| 10003 | default_cluster:db1 | 3 | 1024.000 GB | NULL | 1073741824 |
| 10013 | default_cluster:doris_audit_db__ | 1 | 1024.000 GB | NULL | 1073741824 |
+-------+------------------------------------+----------+-------------+--------------------------+--------------+
3 rows in set (0.00 sec)
通过 MySQL 客户端连接 Doris 后,可以执行 SHOW PROC 语句查看指定 proc 目录的信息。proc 目录是以 "/" 开头的绝对路径。
show proc 语句的结果以二维表的形式展现。而通常结果表的第一列的值为 proc 的下一级子目录。如 "/dbs" 展示所有数据库,而 "/dbs/10003" 展示 id 为 10003 的数据库下的所有表。
mysql> show proc "/dbs";
+-------+------------------------------------+----------+-------------+--------------------------+--------------+
| DbId | DbName | TableNum | Quota | LastConsistencyCheckTime | ReplicaQuota |
+-------+------------------------------------+----------+-------------+--------------------------+--------------+
| 0 | default_cluster:information_schema | 17 | 1024.000 GB | NULL | 1073741824 |
| 10003 | default_cluster:db1 | 3 | 1024.000 GB | NULL | 1073741824 |
| 10013 | default_cluster:doris_audit_db__ | 1 | 1024.000 GB | NULL | 1073741824 |
+-------+------------------------------------+----------+-------------+--------------------------+--------------+
3 rows in set (0.00 sec)
mysql> show proc "/dbs/10003";
+---------+-----------+----------+---------------------+--------------+--------+------+--------------------------+--------------+
| TableId | TableName | IndexNum | PartitionColumnName | PartitionNum | State | Type | LastConsistencyCheckTime | ReplicaCount |
+---------+-----------+----------+---------------------+--------------+--------+------+--------------------------+--------------+
| 10063 | tbl1 | 1 | NULL | 1 | NORMAL | OLAP | NULL | 1 |
| 10069 | tbl2 | 1 | k2 | 2 | NORMAL | OLAP | NULL | 2 |
| 11007 | tbl3 | 1 | k1 | 2 | NORMAL | OLAP | NULL | 2 |
+---------+-----------+----------+---------------------+--------------+--------+------+--------------------------+--------------+
3 rows in set (0.00 sec)
我们可以通过层级目录的方式,递进的查看子目录中更详细的信息。通过 FE Web UI
Doris FE 的前端 Web UI 也能查看 proc 信息。你可以在浏览器打开:
http://fe_host:http_port/
在顶部导航栏中点击 "System" 标签。
Web 页面的 proc 信息和 SHOW PROC 语句的完全一致,只是提供了一个可视化的页面展示功能。大部分情况下,我们可以点击结果表的第一列,进入下一级目录,如点击 "dbs" 后进入:
页面上显示的 "Current path: //dbs" 即当前 proc 目录。我们可以复制这个路径拼接为 SHOW PROC 语句在命令行执行。
Web 页面可以提供排序和筛选功能,这个是使用命令行工具所不具备的。如我们可以通过点击列名对结果表按照该列值做升序或者降序排列。也可以点击右上角的漏斗图标弹出搜索框,按照关键词进行结果查找。
> 受限于前端的渲染能力,在 Web 页面查看 proc 信息时,默认仅显示前 2000 条结果。因此,在某些结果集较大的 proc 目录层级中(如查看一个表的 tablet 信息),在 Web 页面是无法查看到完整结果的,必须通过 SHOW PROC 命令在命令行查看完整结果。
——未完待续——
Proc 系统有助于管理员查看系统运行状态,是一个非常常用的功能。我们会在后续的文章中分别介绍 proc 系统中各个目录的含义。
相关链接:
Apache Doris官方网站:
http://doris.incubator.apache.org
Apache Doris Github:
https://github.com/apache/incubator-doris
Apache Doris 开发者邮件组:
dev@doris.apache.org