乐于分享
好东西不私藏

挖到宝了!让小龙虾啃完 Doris 源码,我得到了比官方文档还全系统表字典

挖到宝了!让小龙虾啃完 Doris 源码,我得到了比官方文档还全系统表字典

学习新数据库,一份详尽的系统库数据字典,往往是最可靠的导航地图。过去学习传统关系型时,DBA 通常需要在数百页的官方文档中反复查找、比对,才能逐渐拼凑出系统表、视图和内部结构的全貌。

以往这种工作DBA 往往需要花费数周时间逐个模块阅读源码、记录和校对。Ai 时代,阅读、编写代码的门槛骤降,数据库的学习方式也发生了改变。只需要将数据库的源码投喂给大模型,AI Agent 几分钟内完成这项枯燥而耗时的工作。指令很如下:

请分析 Apache Doris 本地xxx目录下的源代码,找到代码中三个系统库mysql、information_schema、__internal_schema 下所有系统表每个字段的具体含义。要求:1. 列出该表所有字段名称;2. 逐一说明每个字段的定义、数据类型、代表的业务含义;3. 标注字段的枚举值有哪些,每个枚举值的含义;4. 尽量引用代码中的注释或定义原文,保证准确性。

小龙虾在几分钟完成了整个过程,并生成了一份异常完整的系统字典。

图片来自 Apache Doris Dcument 

令人意外,这份 Ai Agent 基于源码挖掘的文档,居然比官方文档还要全面。比如上图官方文档中,__internal_schema  系统库显示只有三个表,实际上还存在histogram_statistics 表。不知道是我理解不到位,还是 Apache Doris 社区的官方文档有遗漏。

mysql> use __internal_schemaReading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changedmysql> mysql> show tables;+-----------------------------+| Tables_in___internal_schema |+-----------------------------+| audit_log                   || column_statistics           || histogram_statistics        || table_statistics            |+-----------------------------+4 rows in set (0.01 sec)mysql> desc histogram_statistics;+-------------+----------------+------+-------+---------+---------+| Field       | Type           | Null | Key   | Default | Extra   |+-------------+----------------+------+-------+---------+---------+| id          | varchar(4096)  | No   | true  | NULL    |         || catalog_id  | varchar(64)    | No   | true  | NULL    |         || db_id       | varchar(64)    | No   | true  | NULL    |         || tbl_id      | varchar(64)    | No   | true  | NULL    |         || idx_id      | varchar(64)    | No   | true  | NULL    |         || col_id      | varchar(64)    | No   | true  | NULL    |         || sample_rate | double         | No   | false | NULL    | REPLACE || buckets     | varchar(65533| No   | false | NULL    | REPLACE || update_time | datetime       | No   | false | NULL    | REPLACE |+-------------+----------------+------+-------+---------+---------+9 rows in set (0.00 sec)mysql> 

以下是小龙虾整理结果,有需要的可以下载。

Doris 系统库系统数据字典整理

分析版本: Apache Doris 4.0.4-rc01分析时间: 2026-03-21源码位置: fe/fe-core/src/main/java/org/apache/doris/catalog/

本文档整理了 Doris 数据库三个系统库的数据字典信息:

  1. information_schema – MySQL 兼容的系统元数据库

  2. mysql – MySQL 兼容的用户权限库

  3. __internal_schema – Doris 内部统计信息库


一、information_schema 库

information_schema 是 Doris 为兼容 MySQL 而实现的系统库,用于存储数据库元数据信息。该库中的表定义在 SchemaTable.java 中。

1.1 tables 表

存储数据库中所有表的信息。

重要字段说明:

  • TABLE_SCHEMA/TABLE_NAME: 标识表所属的数据库和表名,是最常用的查询条件

  • TABLE_TYPE: 表类型,取值包括 BASE TABLE(普通表)、VIEW(视图)、SYSTEM VIEW(系统视图)

  • ENGINE: 存储引擎,Doris 中通常为 Doris

  • TABLE_ROWS: 表的估计行数,用于查询优化器评估

  • DATA_LENGTH: 数据占用空间大小(字节)

  • TABLE_COMMENT: 表注释信息

字段名 数据类型 业务含义
TABLE_CATALOG VARCHAR(512) 表所属目录,通常为 def
TABLE_SCHEMA VARCHAR(64) 表所属数据库名,查询时常用过滤条件
TABLE_NAME VARCHAR(64) 表名
TABLE_TYPE VARCHAR(64) 表类型:BASE TABLE/VIEW/SYSTEM VIEW
ENGINE VARCHAR(64) 存储引擎
VERSION BIGINT 版本号
ROW_FORMAT VARCHAR(10) 行格式
TABLE_ROWS BIGINT 表的估计行数
AVG_ROW_LENGTH BIGINT 平均行长度(字节)
DATA_LENGTH BIGINT 数据总长度(字节)
MAX_DATA_LENGTH BIGINT 最大数据长度
INDEX_LENGTH BIGINT 索引长度
DATA_FREE BIGINT 空闲空间
AUTO_INCREMENT BIGINT 自增当前值
CREATE_TIME DATETIME 创建时间
UPDATE_TIME DATETIME 更新时间
CHECK_TIME DATETIME 检查时间
TABLE_COLLATION VARCHAR(32) 表字符集排序规则
CHECKSUM BIGINT 校验和
CREATE_OPTIONS VARCHAR(255) 创建选项
TABLE_COMMENT VARCHAR(2048) 表注释

1.2 columns 表

存储所有表的列信息。

重要字段说明:

  • TABLE_SCHEMA/TABLE_NAME/COLUMN_NAME: 定位列的三要素

  • ORDINAL_POSITION: 列在表中的物理顺序,从 1 开始

  • IS_NULLABLE: 是否可为空,YES 或 NO

  • DATA_TYPE: 数据类型,如 intvarchardatetime 等

  • COLUMN_KEY: 列键类型,PRI(主键)、UNI(唯一键)、MUL(普通索引)

  • EXTRA: 额外属性,如 auto_incrementdefault_generated 等

  • COLUMN_COMMENT: 列注释

字段名 数据类型 业务含义
TABLE_CATALOG VARCHAR(512) 目录名
TABLE_SCHEMA VARCHAR(64) 数据库名
TABLE_NAME VARCHAR(64) 表名
COLUMN_NAME VARCHAR(64) 列名
ORDINAL_POSITION BIGINT 列在表中的位置(从1开始)
COLUMN_DEFAULT VARCHAR(1024) 默认值
IS_NULLABLE VARCHAR(3) 是否可为空:YES/NO
DATA_TYPE VARCHAR(64) 数据类型
CHARACTER_MAXIMUM_LENGTH BIGINT 字符最大长度
CHARACTER_OCTET_LENGTH BIGINT 字符字节长度
NUMERIC_PRECISION BIGINT 数值精度
NUMERIC_SCALE BIGINT 数值小数位
DATETIME_PRECISION BIGINT 日期时间精度
CHARACTER_SET_NAME VARCHAR(32) 字符集名
COLLATION_NAME VARCHAR(32) 排序规则名
COLUMN_TYPE VARCHAR(32) 列类型完整定义
COLUMN_KEY VARCHAR(3) 键类型:PRI/UNI/MUL
EXTRA VARCHAR(27) 额外信息:auto_increment 等
PRIVILEGES VARCHAR(80) 权限信息
COLUMN_COMMENT VARCHAR(1024) 列注释
COLUMN_SIZE BIGINT 列大小
DECIMAL_DIGITS BIGINT 小数位数
GENERATION_EXPRESSION VARCHAR(64) 生成表达式
SRS_ID BIGINT 空间参考系统ID

1.3 schemata 表

存储数据库(schema)信息。

字段名 数据类型 业务含义
CATALOG_NAME VARCHAR(512) 目录名
SCHEMA_NAME VARCHAR(32) 数据库名
DEFAULT_CHARACTER_SET_NAME VARCHAR(32) 默认字符集
DEFAULT_COLLATION_NAME VARCHAR(32) 默认排序规则
SQL_PATH VARCHAR(512) SQL路径
DEFAULT_ENCRYPTION VARCHAR(3) 默认加密设置

1.4 views 表

存储视图信息。

字段名 数据类型 业务含义
TABLE_CATALOG VARCHAR(512) 目录名
TABLE_SCHEMA VARCHAR(64) 数据库名
TABLE_NAME VARCHAR(64) 视图名
VIEW_DEFINITION VARCHAR(8096) 视图定义SQL
CHECK_OPTION VARCHAR(8) 检查选项
IS_UPDATABLE VARCHAR(3) 是否可更新
DEFINER VARCHAR(77) 定义者
SECURITY_TYPE VARCHAR(7) 安全类型
CHARACTER_SET_CLIENT VARCHAR(32) 客户端字符集
COLLATION_CONNECTION VARCHAR(32) 连接排序规则

1.5 statistics 表

存储表的索引统计信息,对应 MySQL 的 SHOW INDEX 信息。

重要字段说明:

  • NON_UNIQUE0 表示唯一索引,1 表示非唯一索引

  • INDEX_NAME: 索引名称,主键索引名为 PRIMARY

  • SEQ_IN_INDEX: 列在复合索引中的顺序

  • CARDINALITY: 索引基数,表示该索引列不同值的数量估计,用于优化器评估

字段名 数据类型 业务含义
TABLE_CATALOG VARCHAR(512) 目录名
TABLE_SCHEMA VARCHAR(64) 数据库名
TABLE_NAME VARCHAR(64) 表名
NON_UNIQUE BIGINT 是否非唯一:0=唯一,1=非唯一
INDEX_SCHEMA VARCHAR(64) 索引所在数据库
INDEX_NAME VARCHAR(64) 索引名
SEQ_IN_INDEX BIGINT 列在索引中的顺序
COLUMN_NAME VARCHAR(64) 列名
COLLATION VARCHAR(1) 排序方式:A=升序,D=降序
CARDINALITY BIGINT 基数(不同值数量估计)
SUB_PART BIGINT 前缀索引长度
PACKED VARCHAR(10) 打包方式
NULLABLE VARCHAR(3) 是否可为空
INDEX_TYPE VARCHAR(16) 索引类型:BTREE, HASH等
COMMENT VARCHAR(16) 索引注释
INDEX_COMMENT VARCHAR(1024) 索引详细注释

1.6 table_constraints 表

存储表的约束信息。

字段名 数据类型 业务含义
CONSTRAINT_CATALOG VARCHAR(512) 约束目录
CONSTRAINT_SCHEMA VARCHAR(64) 约束数据库
CONSTRAINT_NAME VARCHAR(64) 约束名
TABLE_SCHEMA VARCHAR(64) 表数据库
TABLE_NAME VARCHAR(64) 表名
CONSTRAINT_TYPE VARCHAR(64) 约束类型:PRIMARY KEY/UNIQUE/FOREIGN KEY/CHECK

1.7 key_column_usage 表

存储键列的使用信息,用于查看主键、外键等约束涉及的列。

字段名 数据类型 业务含义
CONSTRAINT_CATALOG VARCHAR(64) 约束目录
CONSTRAINT_SCHEMA VARCHAR(64) 约束数据库
CONSTRAINT_NAME VARCHAR(64) 约束名
TABLE_CATALOG VARCHAR(64) 表目录
TABLE_SCHEMA VARCHAR(64) 表数据库
TABLE_NAME VARCHAR(64) 表名
COLUMN_NAME VARCHAR(64) 列名
ORDINAL_POSITION BIGINT 位置
POSITION_IN_UNIQUE_CONSTRAINT BIGINT 在唯一约束中的位置
REFERENCED_TABLE_SCHEMA VARCHAR(64) 引用表数据库
REFERENCED_TABLE_NAME VARCHAR(64) 引用表名
REFERENCED_COLUMN_NAME VARCHAR(64) 引用列名

1.8 referential_constraints 表

存储外键约束信息。

字段名 数据类型 业务含义
CONSTRAINT_CATALOG VARCHAR(64) 约束目录
CONSTRAINT_SCHEMA VARCHAR(64) 约束数据库
CONSTRAINT_NAME VARCHAR(64) 约束名
UNIQUE_CONSTRAINT_CATALOG VARCHAR(64) 唯一约束目录
UNIQUE_CONSTRAINT_SCHEMA VARCHAR(64) 唯一约束数据库
UNIQUE_CONSTRAINT_NAME VARCHAR(64) 唯一约束名
MATCH_OPTION VARCHAR(64) 匹配选项
UPDATE_RULE VARCHAR(64) 更新规则:CASCADE/SET NULL/RESTRICT/NO ACTION
DELETE_RULE VARCHAR(64) 删除规则:CASCADE/SET NULL/RESTRICT/NO ACTION
TABLE_NAME VARCHAR(64) 表名
REFERENCED_TABLE_NAME VARCHAR(64) 被引用表名

1.9 partitions 表

存储分区信息,Doris 特有的扩展字段提供了丰富的分区元数据。

重要字段说明:

  • PARTITION_METHOD: 分区方式,如 RANGELISTHASH

  • PARTITION_EXPRESSION: 分区表达式

  • STATE: 分区状态

  • VISIBLE_VERSION/COMMITTED_VERSION: 数据版本信息,用于 MVCC

  • STORAGE_POLICY: 存储策略,用于分层存储

  • STORAGE_MEDIUM: 存储介质,SSD 或 HDD

字段名 数据类型 业务含义
PARTITION_ID BIGINT 分区ID
TABLE_CATALOG VARCHAR(64) 目录名
TABLE_SCHEMA VARCHAR(64) 数据库名
TABLE_NAME VARCHAR(64) 表名
PARTITION_NAME VARCHAR(64) 分区名
SUBPARTITION_NAME VARCHAR(64) 子分区名
PARTITION_ORDINAL_POSITION INT 分区位置
SUBPARTITION_ORDINAL_POSITION INT 子分区位置
PARTITION_METHOD VARCHAR(13) 分区方法:RANGE/LIST/HASH
SUBPARTITION_METHOD VARCHAR(13) 子分区方法
PARTITION_EXPRESSION VARCHAR(2048) 分区表达式
SUBPARTITION_EXPRESSION VARCHAR(2048) 子分区表达式
PARTITION_DESCRIPTION STRING 分区描述
TABLE_ROWS BIGINT 分区行数
AVG_ROW_LENGTH BIGINT 平均行长度
DATA_LENGTH BIGINT 数据长度
MAX_DATA_LENGTH BIGINT 最大数据长度
INDEX_LENGTH BIGINT 索引长度
DATA_FREE BIGINT 空闲空间
CREATE_TIME BIGINT 创建时间
UPDATE_TIME DATETIME 更新时间
CHECK_TIME DATETIME 检查时间
CHECKSUM BIGINT 校验和
PARTITION_COMMENT STRING 分区注释
NODEGROUP VARCHAR(256) 节点组
TABLESPACE_NAME VARCHAR(268) 表空间名
LOCAL_DATA_SIZE STRING 本地数据大小
REMOTE_DATA_SIZE STRING 远程数据大小
STATE STRING 分区状态
REPLICA_ALLOCATION STRING 副本分配
REPLICA_NUM INT 副本数
STORAGE_POLICY STRING 存储策略
STORAGE_MEDIUM STRING 存储介质:SSD/HDD
COOLDOWN_TIME_MS STRING 冷却时间(毫秒)
LAST_CONSISTENCY_CHECK_TIME STRING 最后一致性检查时间
BUCKET_NUM INT 分桶数
COMMITTED_VERSION BIGINT 已提交版本
VISIBLE_VERSION BIGINT 可见版本
PARTITION_KEY STRING 分区键
RANGE STRING 分区范围
DISTRIBUTION STRING 分布信息

1.10 session_variables / global_variables 表

存储会话级和全局级变量信息。

字段名 数据类型 业务含义
VARIABLE_NAME VARCHAR(64) 变量名
VARIABLE_VALUE VARCHAR(1024) 变量当前值
DEFAULT_VALUE VARCHAR(1024) 变量默认值
CHANGED VARCHAR(4) 是否已修改:YES/NO

1.11 character_sets / collations 表

存储支持的字符集和排序规则信息。

character_sets:

字段名 数据类型 业务含义
CHARACTER_SET_NAME VARCHAR(512) 字符集名
DEFAULT_COLLATE_NAME VARCHAR(64) 默认排序规则
DESCRIPTION VARCHAR(64) 描述
MAXLEN BIGINT 最大字节长度

collations:

字段名 数据类型 业务含义
COLLATION_NAME VARCHAR(512) 排序规则名
CHARACTER_SET_NAME VARCHAR(64) 字符集名
ID BIGINT 排序规则ID
IS_DEFAULT VARCHAR(64) 是否为默认
IS_COMPILED VARCHAR(64) 是否已编译
SORTLEN BIGINT 排序长度

1.12 engines 表

存储存储引擎信息。

字段名 数据类型 业务含义
ENGINE VARCHAR(64) 引擎名
SUPPORT VARCHAR(8) 支持级别:YES/NO/DEFAULT
COMMENT VARCHAR(80) 注释
TRANSACTIONS VARCHAR(3) 是否支持事务
XA VARCHAR(3) 是否支持XA事务
SAVEPOINTS VARCHAR(3) 是否支持保存点

1.13 routines / parameters 表

存储存储过程和函数信息(当前为模拟表,用于 BI 工具兼容)。


1.14 table_privileges / schema_privileges / user_privileges / column_privileges 表

存储各级别权限信息。

字段名 数据类型 业务含义
GRANTEE VARCHAR(81/128) 被授权者
TABLE_CATALOG VARCHAR(512) 目录名
TABLE_SCHEMA VARCHAR(64) 数据库名
TABLE_NAME VARCHAR(64) 表名
COLUMN_NAME VARCHAR(64) 列名(column_privileges)
PRIVILEGE_TYPE VARCHAR(64) 权限类型
IS_GRANTABLE VARCHAR(3) 是否可授权:YES/NO

1.15 triggers / events 表

存储触发器和事件信息(模拟表,用于 DataGrip 兼容)。


1.16 其他 Doris 特有系统表

rowsets 表

存储 BE 上的 rowset 信息,用于数据版本管理。

字段名 数据类型 业务含义
BACKEND_ID BIGINT BE节点ID
ROWSET_ID VARCHAR(64) Rowset ID
TABLET_ID BIGINT Tablet ID
ROWSET_NUM_ROWS BIGINT Rowset行数
TXN_ID BIGINT 事务ID
NUM_SEGMENTS BIGINT Segment数量
START_VERSION BIGINT 起始版本
END_VERSION BIGINT 结束版本
INDEX_DISK_SIZE BIGINT 索引磁盘大小
DATA_DISK_SIZE BIGINT 数据磁盘大小
CREATION_TIME DATETIME 创建时间
NEWEST_WRITE_TIMESTAMP DATETIME 最新写入时间
SCHEMA_VERSION INT Schema版本

backend_active_tasks 表

存储 BE 上的活跃任务信息。

字段名 数据类型 业务含义
BE_ID BIGINT BE节点ID
FE_HOST VARCHAR(256) FE主机
WORKLOAD_GROUP_ID BIGINT 负载组ID
QUERY_ID VARCHAR(256) 查询ID
TASK_TIME_MS BIGINT 任务耗时(毫秒)
TASK_CPU_TIME_MS BIGINT CPU耗时(毫秒)
SCAN_ROWS BIGINT 扫描行数
SCAN_BYTES BIGINT 扫描字节数
BE_PEAK_MEMORY_BYTES BIGINT 峰值内存
CURRENT_USED_MEMORY_BYTES BIGINT 当前使用内存
SHUFFLE_SEND_BYTES BIGINT Shuffle发送字节数
SHUFFLE_SEND_ROWS BIGINT Shuffle发送行数
QUERY_TYPE VARCHAR(256) 查询类型
SPILL_WRITE_BYTES_TO_LOCAL_STORAGE BIGINT Spill写入本地存储
SPILL_READ_BYTES_FROM_LOCAL_STORAGE BIGINT Spill读取本地存储

active_queries 表

存储活跃查询信息。

字段名 数据类型 业务含义
QUERY_ID VARCHAR(256) 查询ID
QUERY_START_TIME VARCHAR(256) 查询开始时间
QUERY_TIME_MS BIGINT 查询耗时(毫秒)
WORKLOAD_GROUP_ID BIGINT 负载组ID
DATABASE VARCHAR(256) 数据库
FRONTEND_INSTANCE VARCHAR(256) FE实例
QUEUE_START_TIME VARCHAR(256) 队列开始时间
QUEUE_END_TIME VARCHAR(256) 队列结束时间
QUERY_STATUS VARCHAR(256) 查询状态
USER VARCHAR(256) 执行用户
SQL STRING SQL语句

workload_groups 表

存储负载组配置信息。

字段名 数据类型 业务含义
ID BIGINT 负载组ID
NAME VARCHAR(256) 负载组名
MIN_CPU_PERCENT VARCHAR(256) 最小CPU百分比
MAX_CPU_PERCENT VARCHAR(256) 最大CPU百分比
MIN_MEMORY_PERCENT VARCHAR(256) 最小内存百分比
MAX_MEMORY_PERCENT VARCHAR(256) 最大内存百分比
MAX_CONCURRENCY BIGINT 最大并发数
MAX_QUEUE_SIZE BIGINT 最大队列大小
QUEUE_TIMEOUT BIGINT 队列超时时间
SCAN_THREAD_NUM BIGINT 扫描线程数
MAX_REMOTE_SCAN_THREAD_NUM BIGINT 最大远程扫描线程数
MIN_REMOTE_SCAN_THREAD_NUM BIGINT 最小远程扫描线程数
MEMORY_LOW_WATERMARK VARCHAR(256) 内存低水位
MEMORY_HIGH_WATERMARK VARCHAR(256) 内存高水位
COMPUTE_GROUP VARCHAR(256) 计算组
READ_BYTES_PER_SECOND BIGINT 每秒读取字节数
REMOTE_READ_BYTES_PER_SECOND BIGINT 每秒远程读取字节数

processlist 表

存储连接进程信息,兼容 MySQL SHOW PROCESSLIST

字段名 数据类型 业务含义
CurrentConnected VARCHAR(16) 当前是否连接
Id LARGEINT 连接ID
User VARCHAR(32) 用户名
Host VARCHAR(261) 客户端主机
LoginTime DATETIMEV2 登录时间
Catalog VARCHAR(64) Catalog
Db VARCHAR(64) 当前数据库
Command VARCHAR(16) 当前命令
Time INT 执行时间(秒)
State VARCHAR(64) 连接状态
QueryId VARCHAR(256) 查询ID
TraceId VARCHAR(256) Trace ID
Info VARCHAR(MAX) 正在执行的SQL
FE VARCHAR(64) FE节点
CloudCluster VARCHAR(64) 云集群

routine_load_jobs / load_jobs 表

存储 Routine Load 和导入任务信息。

routine_load_jobs:

字段名 数据类型 业务含义
JOB_ID STRING 任务ID
JOB_NAME STRING 任务名
CREATE_TIME STRING 创建时间
PAUSE_TIME STRING 暂停时间
END_TIME STRING 结束时间
DB_NAME STRING 数据库名
TABLE_NAME STRING 表名
STATE STRING 任务状态
CURRENT_TASK_NUM STRING 当前任务数
JOB_PROPERTIES STRING 任务属性
DATA_SOURCE_PROPERTIES STRING 数据源属性
CUSTOM_PROPERTIES STRING 自定义属性
STATISTIC STRING 统计信息
PROGRESS STRING 进度
LAG STRING 延迟
REASON_OF_STATE_CHANGED STRING 状态变更原因
ERROR_LOG_URLS STRING 错误日志URL
USER_NAME STRING 用户名
CURRENT_ABORT_TASK_NUM INT 当前中止任务数
IS_ABNORMAL_PAUSE BOOLEAN 是否异常暂停
COMPUTE_GROUP STRING 计算组

backend_tablets 表

存储 BE 上的 Tablet 信息。

字段名 数据类型 业务含义
BE_ID BIGINT BE节点ID
TABLET_ID BIGINT Tablet ID
REPLICA_ID BIGINT 副本ID
PARTITION_ID BIGINT 分区ID
TABLET_PATH STRING Tablet路径
TABLET_LOCAL_SIZE BIGINT 本地大小
TABLET_REMOTE_SIZE BIGINT 远程大小
VERSION_COUNT BIGINT 版本数
SEGMENT_COUNT BIGINT Segment数
NUM_COLUMNS BIGINT 列数
ROW_SIZE BIGINT 行大小
COMPACTION_SCORE INT Compaction分数
COMPRESS_KIND STRING 压缩类型
IS_USED BOOLEAN 是否在使用
IS_ALTER_FAILED BOOLEAN 是否Alter失败
CREATE_TIME DATETIME 创建时间
UPDATE_TIME DATETIME 更新时间
IS_OVERLAP BOOLEAN 是否有重叠

二、mysql 库

mysql 库是 Doris 为兼容 MySQL 而实现的系统库,主要用于存储用户权限相关信息。该库中的表定义在 MysqlDBTable.java 中。

源码注释说明:

/***  This class is used for MySQL compatibility.*  The mysqldump requires this database to make some*  command arguments like --all-databases work as expected.*  Native mysql has many system tables like slow_log under mysql database,*  but currently we do not create any tables under mysql database of doris.*  We will add useful system tables in the future.*/

2.1 user 表

存储用户账户和全局权限信息。

重要字段说明:

  • Host/User: 用户标识,MySQL 权限系统的标准格式

  • 各种 *_priv 字段: 全局权限标志,Y 表示有权限,N 或空表示无权限

    • Select_priv: 全局 SELECT 权限

    • Create_priv: 全局 CREATE 权限

    • Drop_priv: 全局 DROP 权限

    • Admin_priv: 管理员权限

    • Grant_priv: 可授权权限

字段名 数据类型 业务含义 取值范围
Host CHAR(255) 主机名/IP % 表示任意主机
User CHAR(32) 用户名
Node_priv CHAR(1) 节点管理权限 Y/N
Admin_priv CHAR(1) 管理员权限 Y/N
Grant_priv CHAR(1) 可授权权限 Y/N
Select_priv CHAR(1) 全局SELECT权限 Y/N
Load_priv CHAR(1) 全局LOAD权限 Y/N
Alter_priv CHAR(1) 全局ALTER权限 Y/N
Create_priv CHAR(1) 全局CREATE权限 Y/N
Drop_priv CHAR(1) 全局DROP权限 Y/N
Usage_priv CHAR(1) 连接权限 Y/N
Show_view_priv CHAR(1) 查看视图权限 Y/N
Cluster_usage_priv CHAR(1) 集群使用权限 Y/N
Stage_usage_priv CHAR(1) Stage使用权限 Y/N
ssl_type CHAR(9) SSL类型
ssl_cipher VARCHAR(MAX) SSL加密套件
x509_issuer VARCHAR(MAX) X509颁发者
x509_subject VARCHAR(MAX) X509主题
max_questions BIGINT 每小时最大查询数 0=无限制
max_updates BIGINT 每小时最大更新数 0=无限制
max_connections BIGINT 每小时最大连接数 0=无限制
max_user_connections BIGINT 用户最大并发连接数 0=无限制
plugin CHAR(64) 认证插件
authentication_string VARCHAR(MAX) 认证密码串
password_policy.expiration_seconds VARCHAR(32) 密码过期秒数
password_policy.password_creation_time VARCHAR(32) 密码创建时间
password_policy.history_num VARCHAR(32) 密码历史数量
password_policy.history_passwords VARCHAR(MAX) 历史密码
password_policy.num_failed_login VARCHAR(32) 失败登录次数
password_policy.password_lock_seconds VARCHAR(32) 密码锁定秒数
password_policy.failed_login_counter VARCHAR(32) 失败登录计数器
password_policy.lock_time VARCHAR(32) 锁定时间

2.2 procs_priv 表

存储存储过程和函数的权限信息。

字段名 数据类型 业务含义
Host CHAR(60) 主机名
Db CHAR(64) 数据库名
User CHAR(32) 用户名
Routine_name CHAR(64) 例程名
Routine_type CHAR(9) 例程类型:PROCEDURE/FUNCTION
Grantor CHAR(93) 授权者
Proc_priv CHAR(16) 例程权限
Timestamp CHAR(1) 时间戳

三、__internal_schema 库

__internal_schema 是 Doris 内部使用的系统库,用于存储统计信息、审计日志等内部数据。该库的表定义在 InternalSchema.java 和 InternalSchemaInitializer.java 中。

源码定义:

publicstaticfinalStringINTERNAL_DB_NAME="__internal_schema";

3.1 column_statistics 表(表级统计信息)

存储列级统计信息,用于查询优化器生成执行计划。

重要字段说明:

  • id: 统计信息唯一标识,格式为 catalog.db.table.index.column

  • catalog_id/db_id/tbl_id/idx_id/col_id: 层级标识

  • count: 行数估计

  • ndv: 不同值数量(Number of Distinct Values),用于选择性估算

  • null_count: NULL值数量

  • min/max: 列的最小/最大值,用于范围查询优化

  • data_size_in_bytes: 数据大小

字段名 数据类型 可空 业务含义
id VARCHAR(4096) NOT NULL 统计信息ID,格式:catalog.db.table.index.column
catalog_id VARCHAR(1024) NOT NULL Catalog ID
db_id VARCHAR(1024) NOT NULL 数据库ID
tbl_id VARCHAR(1024) NOT NULL 表ID
idx_id VARCHAR(1024) NOT NULL 索引ID
col_id VARCHAR(1024) NOT NULL 列ID
part_id VARCHAR(1024) NULLABLE 分区ID
count BIGINT NULLABLE 行数估计
ndv BIGINT NULLABLE 不同值数量(基数)
null_count BIGINT NULLABLE NULL值数量
min VARCHAR(MAX) NULLABLE 最小值
max VARCHAR(MAX) NULLABLE 最大值
data_size_in_bytes BIGINT NULLABLE 数据大小(字节)
update_time DATETIME NOT NULL 更新时间
hot_value STRING NULLABLE 热数据值

3.2 partition_statistics 表(分区级统计信息)

存储分区级别的统计信息。

字段名 数据类型 可空 业务含义
catalog_id VARCHAR(1024) NOT NULL Catalog ID
db_id VARCHAR(1024) NOT NULL 数据库ID
tbl_id VARCHAR(1024) NOT NULL 表ID
idx_id VARCHAR(1024) NOT NULL 索引ID
part_name VARCHAR(1024) NOT NULL 分区名
part_id BIGINT NOT NULL 分区ID
col_id VARCHAR(1024) NOT NULL 列ID
count BIGINT NULLABLE 行数
ndv HLL NOT NULL 不同值数量(HyperLogLog)
null_count BIGINT NULLABLE NULL值数量
min VARCHAR(MAX) NULLABLE 最小值
max VARCHAR(MAX) NULLABLE 最大值
data_size_in_bytes BIGINT NULLABLE 数据大小
update_time DATETIME NOT NULL 更新时间

3.3 histogram_statistics 表(直方图统计信息)

存储直方图统计信息,用于更精确的选择性估算。

字段名 数据类型 可空 业务含义
id VARCHAR(4096) NOT NULL 统计信息ID
catalog_id VARCHAR(1024) NOT NULL Catalog ID
db_id VARCHAR(1024) NOT NULL 数据库ID
tbl_id VARCHAR(1024) NOT NULL 表ID
idx_id VARCHAR(1024) NOT NULL 索引ID
col_id VARCHAR(1024) NOT NULL 列ID
sample_rate DOUBLE NOT NULL 采样率
buckets VARCHAR(MAX) NOT NULL 直方图桶数据(JSON格式)
update_time DATETIME NOT NULL 更新时间

3.4 audit_log 表(审计日志)

存储 SQL 审计日志,记录所有执行的查询信息。

重要字段说明:

  • query_id: 查询唯一标识

  • time: 执行时间

  • user/client_ip: 执行用户和客户端

  • state: 查询状态(OK/ERROR)

  • query_time: 查询耗时

  • cpu_time_ms: CPU耗时

  • peak_memory_bytes: 峰值内存

  • scan_rows/scan_bytes: 扫描数据量

  • stmt: SQL语句(最后一列,便于日志查看)

字段名 数据类型 可空 业务含义
query_id VARCHAR(2048) NULLABLE 查询ID
time DATETIMEV2(3) NULLABLE 执行时间
client_ip VARCHAR(128) NULLABLE 客户端IP
user

作者介绍

司马辽太杰,10 余年互联网、金融、运营商等行业数据库管理经验,擅长常见关系型、NoSQL、MPP 、云原生等类型数据库的架构设计和运维管理。工作之余,热爱历史、足球,也喜欢读点闲书。欢迎关注我的个人公众号“司马辽太杰”。有数据库方面需求随时联系。

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » 挖到宝了!让小龙虾啃完 Doris 源码,我得到了比官方文档还全系统表字典

猜你喜欢

  • 暂无文章