SHOW PROC
更新时间:2025-10-15
描述
Proc 系统是 PALO 的一个比较有特色的功能。使用过 Linux 的同学可能比较了解这个概念。在 Linux 系统中,proc 是一个虚拟的文件系统,通常挂载在 /proc 目录下。用户可以通过这个文件系统来查看系统内部的数据结构。比如可以通过 /proc/pid 查看指定 pid 进程的详细情况。
和 Linux 中的 proc 系统类似,PALO 中的 proc 系统也被组织成一个类似目录的结构,根据用户指定的“目录路径(proc 路径)”,来查看不同的系统信息。
proc 系统被设计为主要面向系统管理人员,方便其查看系统内部的一些运行状态。如表的 tablet 状态、集群均衡状态、各种作业的状态等等。是一个非常实用的功能。
PALO 中有两种方式可以查看 proc 系统。
- 通过 PALO 提供的 WEB UI 界面查看,访问地址:
http://FE_IP:FE_HTTP_PORT - 另外一种方式是通过命令
通过 SHOW PROC "/"; 可看到 PALO PROC 支持的所有命令。
通过 MySQL 客户端连接 PALO 后,可以执行 SHOW PROC 语句查看指定 proc 目录的信息。proc 目录是以 "/" 开头的绝对路径。
show proc 语句的结果以二维表的形式展现。而通常结果表的第一列的值为 proc 的下一级子目录。
SQL
1mysql> show proc "/";
2+---------------------------+
3| name |
4+---------------------------+
5| auth |
6| backends |
7| bdbje |
8| brokers |
9| catalogs |
10| cluster_balance |
11| cluster_health |
12| colocation_group |
13| current_backend_instances |
14| current_queries |
15| current_query_stmts |
16| dbs |
17| diagnose |
18| frontends |
19| jobs |
20| load_error_hub |
21| monitor |
22| resources |
23| routine_loads |
24| statistic |
25| stream_loads |
26| tasks |
27| transactions |
28| trash |
29+---------------------------+
3023 rows in set (0.00 sec)
说明:
- auth:用户名称及对应的权限信息。
- backends:显示集群中 BE 的节点列表。
- bdbje:查看 bdbje 数据库列表,需要修改
fe.conf文件增加enable_bdbje_debug_mode=true, 然后通过sh start_fe.sh --daemon启动FE即可进入debug模式。进入debug模式之后,仅会启动http server和MySQLServer并打开BDBJE实例,但不会进入任何元数据的加载及后续其他启动流程。 - brokers : 查看集群 Broker 节点信息。
- catalogs : 查看当前已创建的数据目录。
- cluster_balance:查看集群均衡情况。
- cluster_health : 通过
SHOW PROC '/cluster_health/tablet_health'; 命令可以查看整个集群的副本状态。 - colocation_group : 该命令可以查看集群内已存在的 Group 信息。
- current_backend_instances:显示当前正在执行作业的 be 节点列表。
- current_queries : 查看正在执行的查询列表,当前正在运行的 SQL 语句。
- current_query_stmts : 返回当前正在执行的 query。
- dbs:主要用于查看 PALO 集群中各个数据库以及其中的表的元数据信息。这些信息包括表结构、分区、物化视图、数据分片和副本等等。通过这个目录和其子目录,可以清楚的展示集群中的表元数据情况,以及定位一些如数据倾斜、副本故障等问题。
- diagnose : 报告和诊断集群中的常见管控问题,主要包括副本均衡和迁移、事务异常等。
- frontends:显示集群中所有的 FE 节点信息,包括 IP 地址、角色、状态、是否是 master 等。
- jobs:各类任务的统计信息,可查看指定数据库的 Job 的统计信息,如果
dbId= -1, 则返回所有库的汇总信息。 - load_error_hub:PALO 支持将 load 作业产生的错误信息集中存储到一个 error hub 中。然后直接通过
SHOW LOAD WARNINGS;语句查看错误信息。这里展示的就是 error hub 的配置信息。 - monitor : 显示的是 FE JVM 的资源使用情况。
- resources : 查看系统资源,普通账户只能看到自己有 USAGE_PRIV 使用权限的资源。只有 root 和 admin 账户可以看到所有的资源。
- routine_loads:显示所有的 routine load 作业信息,包括作业名称、状态等。
- statistics:主要用于汇总查看 PALO 集群中数据库、表、分区、分片、副本的数量。以及不健康副本的数量。这个信息有助于我们总体把控集群元信息的规模。帮助我们从整体视角查看集群分片情况,能够快速查看集群分片的健康情况。从而进一步定位有问题的数据分片。
- stream_loads : 返回当前正在执行的 stream load 任务。
- tasks : 显示现在各种作业的任务总量,及失败的数量。
- transactions:用于查看指定 transaction id 的事务详情。
- trash:该语句用于查看 backend 内的垃圾数据占用空间。
示例
-
如 "/dbs" 展示所有数据库,而 "/dbs/10002" 展示 id 为 10002 的数据库下的所有表
SQL1mysql> show proc "/dbs/10002"; 2+---------+----------------------+----------+---------------------+--------------+--------+------+--------------------------+--------------+ 3| TableId | TableName | IndexNum | PartitionColumnName | PartitionNum | State | Type | LastConsistencyCheckTime | ReplicaCount | 4+---------+----------------------+----------+---------------------+--------------+--------+------+--------------------------+--------------+ 5| 10065 | dwd_product_live | 1 | dt | 9 | NORMAL | OLAP | NULL | 18 | 6| 10109 | ODS_MR_BILL_COSTS_DO | 1 | NULL | 1 | NORMAL | OLAP | NULL | 1 | 7| 10119 | test | 1 | NULL | 1 | NORMAL | OLAP | NULL | 1 | 8| 10124 | test_parquet_import | 1 | NULL | 1 | NORMAL | OLAP | NULL | 1 | 9+---------+----------------------+----------+---------------------+--------------+--------+------+--------------------------+--------------+ 104 rows in set (0.00 sec) -
展示集群中所有库表个数相关的信息。
SQL1mysql> show proc '/statistic'; 2+-------+----------------------+----------+--------------+----------+-----------+------------+ 3| DbId | DbName | TableNum | PartitionNum | IndexNum | TabletNum | ReplicaNum | 4+-------+----------------------+----------+--------------+----------+-----------+------------+ 5| 10002 | default_cluster:test | 4 | 12 | 12 | 21 | 21 | 6| Total | 1 | 4 | 12 | 12 | 21 | 21 | 7+-------+----------------------+----------+--------------+----------+-----------+------------+ 82 rows in set (0.00 sec) -
以下命令可以查看集群内已存在的 Group 信息。
SQL1SHOW PROC '/colocation_group'; 2 3+-------------+--------------+--------------+------------+----------------+----------+----------+ 4| GroupId | GroupName | TableIds | BucketsNum | ReplicationNum | DistCols | IsStable | 5+-------------+--------------+--------------+------------+----------------+----------+----------+ 6| 10005.10008 | 10005_group1 | 10007, 10040 | 10 | 3 | int(11) | true | 7+-------------+--------------+--------------+------------+----------------+----------+----------+- GroupId:一个 Group 的全集群唯一标识,前半部分为 db id,后半部分为 group id。
- GroupName:Group 的全名。
- TabletIds:该 Group 包含的 Table 的 id 列表。
- BucketsNum:分桶数。
- ReplicationNum:副本数。
- DistCols:Distribution columns,即分桶列类型。
- IsStable:该 Group 是否稳定(稳定的定义,见
Colocation 副本均衡和修复一节)。
-
通过以下命令可以进一步查看一个 Group 的数据分布情况:
SQL1SHOW PROC '/colocation_group/10005.10008'; 2 3+-------------+---------------------+ 4| BucketIndex | BackendIds | 5+-------------+---------------------+ 6| 0 | 10004, 10002, 10001 | 7| 1 | 10003, 10002, 10004 | 8| 2 | 10002, 10004, 10001 | 9| 3 | 10003, 10002, 10004 | 10| 4 | 10002, 10004, 10003 | 11| 5 | 10003, 10002, 10001 | 12| 6 | 10003, 10004, 10001 | 13| 7 | 10003, 10004, 10002 | 14+-------------+---------------------+- BucketIndex:分桶序列的下标。
- BackendIds:分桶中数据分片所在的 BE 节点 id 列表。
-
显示现在各种作业的任务总量,及失败的数量。
SQL1mysql> show proc '/tasks'; 2+-------------------------+-----------+----------+ 3| TaskType | FailedNum | TotalNum | 4+-------------------------+-----------+----------+ 5| CREATE | 0 | 0 | 6| DROP | 0 | 0 | 7| PUSH | 0 | 0 | 8| CLONE | 0 | 0 | 9| STORAGE_MEDIUM_MIGRATE | 0 | 0 | 10| ROLLUP | 0 | 0 | 11| SCHEMA_CHANGE | 0 | 0 | 12| CANCEL_DELETE | 0 | 0 | 13| MAKE_SNAPSHOT | 0 | 0 | 14| RELEASE_SNAPSHOT | 0 | 0 | 15| CHECK_CONSISTENCY | 0 | 0 | 16| UPLOAD | 0 | 0 | 17| DOWNLOAD | 0 | 0 | 18| CLEAR_REMOTE_FILE | 0 | 0 | 19| MOVE | 0 | 0 | 20| REALTIME_PUSH | 0 | 0 | 21| PUBLISH_VERSION | 0 | 0 | 22| CLEAR_ALTER_TASK | 0 | 0 | 23| CLEAR_TRANSACTION_TASK | 0 | 0 | 24| RECOVER_TABLET | 0 | 0 | 25| STREAM_LOAD | 0 | 0 | 26| UPDATE_TABLET_META_INFO | 0 | 0 | 27| ALTER | 0 | 0 | 28| INSTALL_PLUGIN | 0 | 0 | 29| UNINSTALL_PLUGIN | 0 | 0 | 30| Total | 0 | 0 | 31+-------------------------+-----------+----------+ 3226 rows in set (0.01 sec) -
显示整个集群的副本状态。
SQL1mysql> show proc '/cluster_health/tablet_health'; 2+----------+---------------------------+-----------+------------+-------------------+----------------------+----------------------+--------------+----------------------------+-------------------------+-------------------+---------------------+----------------------+----------------------+------------------+-----------------------------+-----------------+-------------+------------+ 3| DbId | DbName | TabletNum | HealthyNum | ReplicaMissingNum | VersionIncompleteNum | ReplicaRelocatingNum | RedundantNum | ReplicaMissingInClusterNum | ReplicaMissingForTagNum | ForceRedundantNum | ColocateMismatchNum | ColocateRedundantNum | NeedFurtherRepairNum | UnrecoverableNum | ReplicaCompactionTooSlowNum | InconsistentNum | OversizeNum | CloningNum | 4+----------+---------------------------+-----------+------------+-------------------+----------------------+----------------------+--------------+----------------------------+-------------------------+-------------------+---------------------+----------------------+----------------------+------------------+-----------------------------+-----------------+-------------+------------+ 5| 25852112 | default_cluster:bowen | 1920 | 1920 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 6| 25342914 | default_cluster:bw | 128 | 128 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 7| 2575532 | default_cluster:cps | 1440 | 1440 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 16 | 0 | 8| 26150325 | default_cluster:db | 38374 | 38374 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 453 | 0 | 9+----------+---------------------------+-----------+------------+-------------------+----------------------+----------------------+--------------+----------------------------+-------------------------+-------------------+---------------------+----------------------+----------------------+------------------+-----------------------------+-----------------+-------------+------------+ 104 rows in set (0.01 sec)查看某个数据库下面的副本状态,如 DbId 为 25852112 的数据库。
SQL1mysql> show proc '/cluster_health/tablet_health/25852112'; -
报告和诊断集群管控问题
SQL1MySQL > show proc "/diagnose"; 2+-----------------+----------+------------+ 3| Item | ErrorNum | WarningNum | 4+-----------------+----------+------------+ 5| cluster_balance | 2 | 0 | 6| Total | 2 | 0 | 7+-----------------+----------+------------+ 8 92 rows in set查看副本均衡迁移问题
SQL1MySQL > show proc "/diagnose/cluster_balance"; 2+-----------------------+--------+-------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------+------------+ 3| Item | Status | Content | Detail Cmd | Suggestion | 4+-----------------------+--------+-------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------+------------+ 5| Tablet Health | ERROR | healthy tablet num 691 < total tablet num 1014 | show proc "/cluster_health/tablet_health"; | <null> | 6| BeLoad Balance | ERROR | backend load not balance for tag {"location" : "default"}, low load backends [], high load backends [10009] | show proc "/cluster_balance/cluster_load_stat/location_default/HDD" | <null> | 7| Disk Balance | OK | <null> | <null> | <null> | 8| Colocate Group Stable | OK | <null> | <null> | <null> | 9| History Tablet Sched | OK | <null> | <null> | <null> | 10+-----------------------+--------+-------------------------------------------------------------------------------------------------------------+---------------------------------------------------------------------+------------+ 11 125 rows in set
关键词
Plain Text
1SHOW, PROC
