云原生数据仓库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查询需要的列信息。