云原生数据仓库MySQL版的元数据库分为记载性能相关信息的performance_schema库和记载元数据的information_schema库,并和MySQL的元数据库有一定的兼容性,但并不是100%一致。

查询元数据库可以直接在JDBC连接中使用SQL语句进行查询。查询云原生数据仓库MySQL版中某表近期的10次数据导入的状态,示例如下:

SELECT state 
FROM information_schema.current_job
WHERE table_schema='db_name' 
  AND table_name='table_name' 
ORDER BY start_time DESC 
LIMIT 10

SCHEMATA

SCHEMATA表提供了关于数据库的信息。

FIELD TYPE ALLOW_NULL PK DEFAULT_VALUE COMMENT
CLUSTER_NAME varchar(16) NO NULL 集群名称
CATALOG_NAME varchar(16) YES NULL CATALOG名称
SCHEMA_NAME varchar(64) NO NULL SCHEMA名称
DEFAULT_CHARACTER_SET_NAME varchar(64) YES UTF-8 默认字符集
DEFAULT_COLLATION_NAME varchar(64) YES OFF 默认排序规则
id int(11) NO PRI NULL ID
CREATOR_ID varchar(64) YES NULL 创建者ID
CREATOR_NAME varchar(64) YES NULL 创建者名称
SQL_PATH varchar(255) YES NULL SQL路径
DOMAIN_URL varchar(255) YES NULL 域URL
QUERY_TYPE varchar(64) YES NULL 查询类型
DISABLED tinyint(1) YES 0 禁用标记
LOAD_DISABLED tinyint(1) YES 0 禁止装载标记
TABLE_COUNT int(11) YES NULL 表个数
TABLE_GROUP_COUNT int(11) YES NULL 表组个数
MAX_TABLE_COUNT_LIMIT int(11) YES 256 最大表个数限制
MAX_TABLE_GROUP_COUNT_LIMIT int(11) YES 256 最大表组个数限制
QPS int(11) YES -1 每秒查询数
LOAD_FACTOR double YES -1 装载因子
INITIAL_CAPACITY int(11) YES -1 初始化大小
INCREMENTAL_CAPACITY int(11) YES -1 增量大小
DB_ASSIGN_STRATEGY varchar(255) YES NULL 数据库分配策略
SHARED tinyint(1) YES 0 是否是共享实例
CREATE_TIME timestamp NO CURRENT_TIMESTAMP 创建时间
UPDATE_TIME timestamp NO 0000-00-0000:00:00 修改时间

如果用户需要了解当前数据库的基本信息包括当前表的个数,表组的个数,最大表的限制,最大表组的限制,每秒查询数等信息的时候可以查询这张表。例如:

  SELECT CLUSTER_NAME, SCHEMA_NAME, DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME, TABLE_COUNT, TABLE_GROUP_COUNT, MAX_TABLE_COUNT_LIMIT, MAX_TABLE_GROUP_COUNT_LIMIT, QPS FROM information_schema.schemata WHERE SCHEMA_NAME = 'xxx';

TABLES

TABLES表提供数据库表信息。该部分数据包括表的元数据与部分表对应数据的元数据,如分区信息等。

FIELD TYPE ALLOW_NULL PK DEFAULT_VALUE COMMENT
CLUSTER_NAME varchar(16) NO PRI NULL 集群名称
TABLE_SCHEMA varchar(128) NO PRI NULL 所属SCHEMA的名称
TABLE_GROUP varchar(128) YES NULL 所属表组的名称
TABLE_NAME varchar(128) NO PRI NULL 表名称
TABLE_SCHEMA_ID varchar(128) YES NULL 所属SCHEMA的ID
TABLE_GROUP_ID varchar(128) YES NULL 所属表组的ID
TABLE_ID varchar(128) YES NULL 表的ID
TABLE_TYPE varchar(128) YES NULL 标记:分区表PARTITION_TABLE、维度表DIMENSION_TABLE
UPDATE_TYPE varchar(128) YES NULL 标记:批量表batch、实时表realtime
ONLINE_GROUP varchar(128) YES NULL 在线分组
PARTITION_TYPE varchar(128) YES NULL 分区类型:DIM、HASH
PARTITION_COLUMN varchar(128) YES NULL 分区列名称
PARTITION_COUNT int(11) YES NULL 分区数量
IS_SUB_PARTITION tinyint(1) YES NULL 标记:是否是二级分区
SUB_PARTITION_TYPE varchar(128) YES NULL 二级分区类型
SUB_PARTITION_COLUMN varchar(128) YES NULL 二级分区列名称
SUB_PARTITION_COUNT int(11) YES NULL 二级分区数量
CREATE_TIME timestamp NO CURRENT_TIMESTAMP 创建时间
UPDATE_TIME timestamp NO 0000-00-0000:00:00 更新时间
CREATOR_ID varchar(128) YES NULL 创建者ID
CREATOR_NAME varchar(128) YES NULL 创建者名称
CURRENT_VERSION bigint(20) YES NULL 当前版本
PREVIOUS_VERSION bigint(20) YES NULL 上一版本
MIN_REDUNDANCY int(11) YES 2 最小副本数
COMMENTS varchar(255) YES NULL 说明
CLUSTER_BY_COLUMNS varchar(255) YES NULL 聚簇列名称
PRIMARY_KEY_COLUMNS varchar(255) YES NULL 主键列名称
MAX_COLUMN_COUNT_LIMIT int(11) YES 990 列最多个数限制
EXECUTE_TIMEOUT int(11) YES 30000 执行超时时间
from_ctas tinyint(1) YES NULL 是否创建于CTAS
  • 如果用户需要了解某一个表的基本信息包括表的类型,一级分区键,二级分区键,分区类型,批量表或是实时表等信息的时候可以查询这张表。例如:

      SELECT CLUSTER_NAME, TABLE_SCHEMA, TABLE_GROUP, TABLE_NAME, TABLE_TYPE, ONLINE_GROUP, PARTITION_TYPE, PARTITION_COLUMN, PARTITION_COUNT, SUB_PARTITION_TYPE, SUB_PARTITION_COLUMN, SUB_PARTITION_COUNT FROM information_schema.tables WHERE TABLE_SCHEMA = 'xxx' AND TABLE_GROUP = 'xxx' AND TABLE_NAME = 'xxx';
  • 如果不知道具体的表名,只是希望了解某一个SCHEMA下有多少张不同类型的表,可以查询这张表。例如:

      SELECT DISTINCT TABLE_GROUP, TABLE_NAME FROM information_schema.tables WHERE TABLE_SCHEMA = 'xxx';
  • 如果希望了解某一个SCHEMA下面哪些表是维度表,哪些表是分区表,可以查询这张表。例如:

      SELECT TABLE_GROUP, TABLE_NAME FROM information_schema.tables WHERE TABLE_SCHEMA = 'xxx' AND TABLE_TYPE = 'DIMENSION_TABLE';
  • 如果希望了解某一个SCHEMA下面哪些表是批量表,哪些表是实时表,可以查询这张表。例如:

      SELECT TABLE_GROUP, TABLE_NAME FROM information_schema.tables WHERE TABLE_SCHEMA = 'xxx' AND UPDATE_TYPE = 'realtime';

TABLE_GROUPS

该表存储了所有的表组的详细信息。

FIELD TYPE ALLOW_NULL PK DEFAULT_VALUE COMMENT
CLUSTER_NAME varchar(16) NO PRI NULL 集群名称
TABLE_SCHEMA varchar(64) NO PRI NULL 所属SCHEMA
TABLE_GROUP varchar(64) NO PRI NULL 表组名称
TABLE_SCHEMA_ID varchar(64) YES NULL 所属SCHEMA的ID
TABLE_GROUP_ID varchar(64) YES NULL 所属表组的ID
CREATOR_ID varchar(64) YES NULL 创建者ID
CREATOR_NAME varchar(64) YES NULL 创建者名称
CREATE_TIME timestamp NO CURRENT_TIMESTAMP 创建时间
UPDATE_TIME timestamp NO 0000-00-0000:00:00 更新时间
TABLE_COUNT int(11) YES NULL 包含表的数量
MAX_TABLE_COUNT_LIMIT int(11) YES 256 最大表数量限制
MIN_REDUNDANCY int(11) YES 2 最小副本数
EXECUTE_TIMEOUT bigint(20) YES 30000 执行超时时间
  • 如果希望了解某一个SCHEMA下面有多少个不同的表组,可以根据TABLE_SCHEMA查询TABLE_GROUP列。
  • 如果希望了解某一个表组下包含了多少张表,可以根据TABLE_SCHEMA查询TABLE_COUNT列。

COLUMNS

该表存储了所有的表中字段的详细信息。

FIELD TYPE ALLOW_NULL PK DEFAULT_VALUE COMMENT
CLUSTER_NAME varchar(16) NO PRI NULL 集群名称
TABLE_CATALOG varchar(8) YES NULL CATALOG名称
TABLE_SCHEMA varchar(64) NO PRI NULL 所属SCHEMA
TABLE_GROUP varchar(64) YES NULL 所属表组
TABLE_NAME varchar(64) NO PRI NULL 所属表名
COLUMN_NAME varchar(64) NO PRI NULL 列名
ORDINAL_POSITION int(11) YES NULL 在表中的位置
COLUMN_DEFAULT varchar(255) YES NULL 默认列
IS_NULLABLE tinyint(1) YES 1 是否允许空
DATA_TYPE int(11) YES NULL 数据类型名称
TYPE_NAME varchar(64) YES NULL 列类型名称
CHARACTER_MAXIMUM_LENGTH int(11) YES NULL 字符最大长度
CHARACTER_OCTET_LENGTH int(11) YES NULL 字符八进制长度
NUMERIC_PRECISION int(11) YES NULL 数值精度
NUMERIC_SCALE int(11) YES NULL 数值范围
COLUMN_TYPE varchar(64) YES NULL 列类型
COLUMN_COMMENT varchar(255) YES NULL 列说明
DISABLE_INDEX tinyint(1) YES 0 是否禁用索引
DISABLE_DETAIL tinyint(1) YES 0 禁用细节
IS_PRIMARYKEY tinyint(1) YES 0 是否是主键
IS_PRESORT tinyint(1) YES NULL 是否是预分类
PRESORT_ORDER smallint(6) YES NULL 预分类订单
IS_VIRTUAL tinyint(1) YES 0 是否虚拟
IS_MULTIVALUED tinyint(1) YES NULL 是否是多值列
DELIMITER varchar(64) YES NULL 分隔符
IS_DELETED tinyint(1) YES 0 是否被删除
INDEXES varchar(255) YES NULL 索引
CREATE_TIME timestamp NO CURRENT_TIMESTAMP 创建时间
UPDATE_TIME timestamp NO 0000-00-0000:00:00 更新时间

如果希望了解某一个表包含的所有列信息,可以根据TABLE_CATALOG,TABLE_GROUP和TABLE_SCHEMA查询需要的列信息。