暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Doris 功能介绍-Proc 系统-/dbs

ApacheDoris 2021-05-08
2080

## 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:59
          LastConsistencyCheckTime: 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: NORMAL
              LstConsistencyCheckTime: 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: 1
                LstSuccessVersionHash: 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 团队,诚邀对开源软件、分布式数据库感兴趣的小伙伴们

                    我们虚位以待!

                    简历发送至:talent-doris@baidu.com

                    欢迎扫码关注:

                    Apache Doris(incubating)官方公众号

                    相关链接:

                    Apache Doris官方网站:

                    http://doris.incubator.apache.org

                    Apache Doris Github:

                    https://github.com/apache/incubator-doris

                    Apache Doris 开发者邮件组:

                    dev@doris.apache.org

                                                                                               



                    文章转载自ApacheDoris,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                    评论