## Proc 系统
Proc 系统被设计为主要面向系统管理人员,方便其查看系统内部的一些运行状态。如表的tablet状态、集群均衡状态、各种作业的状态等等。是一个非常实用的功能。关于 Proc 系统介绍,可以参阅我们之前的文章: [Doris 功能介绍-Proc系统]
本文为 proc 目录系列介绍文章之一,介绍 "/dbs" 目录。
### proc "/dbs"
"/dbs" 目录主要用于查看 Doris 集群中各个数据库以及其中的表的元数据信息。这些信息包括表结构、分区、物化视图、数据分片和副本等等。通过这个目录和其子目录,可以清楚的展示集群中的表元数据情况,以及定位一些如数据倾斜、副本故障等问题。
> 以下示例我们使用 SHOW PROC 语句进行展示。使用Web页面查看同理。
SHOW PROC "/dbs";
第1级目录,展示集群中所有数据库的信息。
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)
* DbId:数据库id。
* DbName:数据库名称,其前缀 default_cluster 目前无意义,可以忽略。
* TableNum:数据库下表的数量。
* Quota:数据库的存储空间配额,默认1TB。
* LastConsistencyCheckTime:最近一次一致性检查的时间。
* ReplicaQuota:数据库的分片数量配额。
SHOW PROC "/dbs/DbId";
第2级目录,展示集群中指定数据库的下的表信息。
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 |+---------+-----------+----------+---------------------+--------------+--------+------+--------------------------+--------------+
* TableId:表id。
* TableName:表名称。
* IndexNum:表物化视图的数量(物化视图包含base表本身)。
* PartitionColumnName:分区列名称。NULL表示无分区。
* PartitionNum:分区个数。无分区表的分区个数为1。
* State:表的状态。如在进行 Alter *** 作时,表的状态为 ALTER。
* Type:表类型。Doris 的表为 OLAP,而外部表可能有 MySQL、ES、Hive 等等。
* LastConsistencyCheckTime:最近一次一致性检查的时间。
* ReplicaCount:副本总数。该总数为(分区数 * 分桶数 * 副本数)。
SHOW PROC "/dbs/DbId/TableId";
第3级目录,展示集群中指定表的信息目录。
mysql> show proc "/dbs/10003/10063";+-----------------+| Nodes |+-----------------+| partitions || temp_partitions || index_schema |+-----------------+
* partitions:进入分区信息目录。这一目录线路主要用于查看表的数据分片信息。
* temp_partition:进入临时分区信息目录。这一目录线路主要用于查看表的数据分片信息。
* index_scheme:进入表结构目录。
SHOW PROC "/dbs/DbId/TableId/partitions";
SHOW PROC "/dbs/DbId/TableId/temp_partitions";
第4级目录,展示集群中指定表的分区信息。partitions 展示正式分区, temp_partitions展示临时分区。
mysql> show proc "/dbs/10003/10069/partitions"G*************************** 1. row *************************** PartitionId: 10067 PartitionName: p1 VisibleVersion: 1 VisibleVersionTime: 2021-04-29 22:57:27 VisibleVersionHash: 0 State: NORMAL PartitionKey: k2 Range: [types: [INT]; keys: [-2147483648]; ..types: [INT]; keys: [10]; ) DistributionKey: k1 Buckets: 1 ReplicationNum: 1 StorageMedium: HDD CooldownTime: 9999-12-31 23:59:59LastConsistencyCheckTime: NULL DataSize: .000 IsInMemory: false
* PartitionId:分区id。
* PartitionName:分区名称。
* VisibleVersion:当前已生效的数据版本号。
* VisibleVersionHash:已废弃。无意义。
* State:分区状态。在进行 Alter *** 作时,分区状态为 ALTER。
* PartitionKey:分区列名称。
* Range:分区范围。types 表示类型,keys 表示范围值。左闭右开。
* DistributionKey:分桶列名称。
* Buckets:分桶数。
* ReplicationNum:这个分区下数据分片的副本数。
* StorageMedium:分级存储时,该分区当前的存储介质。
* CooldownTime:分级存储时,该分区数据进行介质间数据迁移的时间。
* LastConsistencyCheckTime:最近一次一致性检查的时间。
* DataSize:分区数据存储大小。该大小为分区下所有数据副本的总大小。
* IsInMemory:是否是内存分区。
SHOW PROC "/dbs/DbId/TableId/partitions/PartitionId";
第5级目录,展示集群中指定分区的物化视图信息。
mysql> show proc "/dbs/10003/10069/partitions/10067";+---------+-----------+--------+--------------------------+| IndexId | IndexName | State | LastConsistencyCheckTime |+---------+-----------+--------+--------------------------+| 10070 | tbl2 | NORMAL | NULL |+---------+-----------+--------+--------------------------+
* IndexId:物化视图Id。
* IndexName:物化视图名称。base表也是一种物化视图,其名称和表名相同。
* State:物化视图状态。在进行 Alter *** 作时,物化视图状态为 ALTER。
* LastConsistencyCheckTime:最近一次一致性检查的时间。
SHOW PROC "/dbs/DbId/TableId/partitions/PartitionId/IndexId";
第6级目录,展示集群中指定物化视图中的数据分片信息。
mysql> show proc "/dbs/10003/10069/partitions/10067/10070"G*************************** 1. row *************************** TabletId: 10071 ReplicaId: 10072 BackendId: 10002 SchemaHash: 1759126708 Version: 1 VersionHash: 0 LstSuccessVersion: 1 LstSuccessVersionHash: 0 LstFailedVersion: -1 LstFailedVersionHash: 0 LstFailedTime: NULL DataSize: 0 RowCount: 0 State: NORMALLstConsistencyCheckTime: NULL CheckVersion: -1 CheckVersionHash: -1 VersionCount: 1 PathHash: 4154193535572215294 metaUrl: http://10.81.85.89:8042/api/meta/header/10071/1759126708 CompactionStatus: http://10.81.85.89:8042/api/compaction/show?tablet_id=10071&schema_hash=1759126708
* TabletId:数据分片ID。
* ReplicaId:副本ID。这里会展示一个数据分片的所有副本,每个副本都有不同的ID。
* BackendId:副本所在BE节点的ID。
* SchemaHash:已废弃,无意义。
* Version:该副本的生效数据版本号。
* VersionHash:已废弃,无意义。
* LstSuccessVersion:最后一次成功生效的数据版本号。
* LstSuccessVersionHash:已废弃,无意义。
* LstFailedVersion:最后一次失败的数据版本号。-1表示无失败。
* LstFailedVersionHash:已废弃,无意义。
* LstFailedTime:最后一次失败的时间。
* DataSize:副本数据大小。
* RowCount:副本中的数据行数。该行数为统计行数,不代表精确的数据行。
* State:副本状态。进行ALTER *** 作时,状态为 ALTER。
* LstConsistenycCheckTime:最近一次一致性检查的时间。
* CheckVersion:最近一次一致性检查使用的数据版本号。
* CheckVersionHash:已废弃,无意义。
* VersionCount:该副本的数据版本数,通常用于判断是否有数据版本堆积。
* PathHash:副本所在磁盘的路径Hash。
* metaUrl:副本元信息查看url。可以直接复制这个url在浏览器打开,查看副本的元信息。
* CompactionUrl:副本Comacption状态。可以直接复制这个url在浏览器打开,查看副本的版本详情和Compaction状态。
SHOW PROC "/dbs/DbId/TableId/partitions/PartitionId/IndexId/TabletID";
第7级目录,展示集群中指定数据分片的副本信息。
该级信息内容和上一级内容完全一致,不同在于这一级仅展示指定分片的副本信息。
mysql> show proc "/dbs/10003/10069/partitions/10067/10070/10071"G*************************** 1. row *************************** ReplicaId: 10072 BackendId: 10002 Version: 1 VersionHash: 0 LstSuccessVersion: 1LstSuccessVersionHash: 0 LstFailedVersion: -1 LstFailedVersionHash: 0 LstFailedTime: NULL SchemaHash: 1759126708 DataSize: 0 RowCount: 0 State: NORMAL IsBad: false VersionCount: 1 PathHash: 4154193535572215294 metaUrl: http://10.81.85.89:8042/api/meta/header/10071/1759126708 CompactionStatus: http://10.81.85.89:8042/api/compaction/show?tablet_id=10071&schema_hash=1759126708
SHOW PROC "/dbs/DbId/TableId/index_schema";
第4级目录,展示集群中指定表的所有物化视图。
mysql> show proc "/dbs/10003/10069/index_schema";+---------+-----------+---------------+------------+---------------------+-------------+------------------+| IndexId | IndexName | SchemaVersion | SchemaHash | ShortKeyColumnCount | StorageType | Keys |+---------+-----------+---------------+------------+---------------------+-------------+------------------+| 10070 | tbl2 | 0 | 1759126708 | 2 | COLUMN | DUP_KEYS(k1, k2) |+---------+-----------+---------------+------------+---------------------+-------------+------------------+
* IndexId:物化视图id。
* IndexName:物化视图名称。base表也是一种物化视图,其名称和表名相同。
* SchemaVersion:表结构版本。通常进行一次 Schema Change 后,版本会递增。
* SchemaHash:已废弃,无意义。
* ShortKeyColumnCount:前缀索引的列数。
* StorageType:存储格式,目前仅有 COLUMN,即列存。
* Key:物化视图的存储模型,如 DUP_KEYS 表示 Duplicate Key 明细模型。其后列名称为存储模型的排序列或主键列。
SHOW PROC "/dbs/DbId/TableId/index_schema/IndexId";
第5级目录,展示集群中指定物化视图的表结果。这一级的结果和 DESC tbl_name; 语句的结果一致。
mysql> show proc "/dbs/10003/10069/index_schema/10070";+-------+------+------+------+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+------+------+------+---------+-------+| k1 | INT | Yes | true | NULL | || k2 | INT | Yes | true | NULL | |+-------+------+------+------+---------+-------+
* Field:列名。
* Type:列类型。
* Null:是否允许为 null。
* Key:是否是 Key 列。对于Duplicate Key 明细模型。这里表示是否是排序列。
* Default:默认值。
* Extra:一些额外信息,如在 Aggregation Key 聚合模型下,会显示 value 列的聚合类型,如 SUM、MIN、MAX 等等。
END
proc "/dbs" 最主要的功能是查看表的分片信息。我们经常会在排查数据倾斜、副本状态、导入任务失败等问题时使用该功能。我们会在后续 问题排查 相关文章中进一步介绍如何使用这些信息排查问题。
【Doris Weekly】2021.04.13~2021.04.26 【Doris Weekly】2021.03.22 ~ 2021.04.11 【Doris Weekly】2020.03.08~2021.03.21
Doris 功能介绍-Proc 系统 Doris 功能介绍-导入分析 Doris 功能介绍-查询分析
百度数据仓库 Powered by Doris
基于 Apache Doris 的企业级数据仓库 托管服务
全新UI支持,更有新用户0元试用3个月优惠活动
登陆百度智能云官网搜索Doris,马上试用!
百度 Doris 团队,诚邀对开源软件、分布式数据库感兴趣的小伙伴们
我们虚位以待!
简历发送至: [email protected]
欢迎扫码关注:
Apache Doris(incubating)官方公众号
相关链接:
Apache Doris官方网站:
http://doris.incubator.apache.org
Apache Doris Githu b:
https://github.com/apache/incubator-doris
Apache Doris 开发者邮件组:
本文分享自微信公众号 - ApacheDoris(gh_80d448709a68)。
如有侵权,请联系 [email protected] 删除。
本文参与“ OSC源创计划 ”,欢迎正在阅读的你也加入,一起分享。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)