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