homework-jianmu/docs/zh/12-taos-sql/22-meta.md

17 KiB
Raw Blame History

sidebar_label title description
元数据 元数据 Information_Schema 数据库中存储了系统中所有的元数据信息

TDengine 内置了一个名为 INFORMATION_SCHEMA 的数据库,提供对数据库元数据、数据库系统信息和状态的访问,例如数据库或表的名称,当前执行的 SQL 语句等。该数据库存储有关 TDengine 维护的所有其他数据库的信息。它包含多个只读表。实际上,这些表都是视图,而不是基表,因此没有与它们关联的文件。所以对这些表只能查询,不能进行 INSERT 等写入操作。INFORMATION_SCHEMA 数据库旨在以一种更一致的方式来提供对 TDengine 支持的各种 SHOW 语句(如 SHOW TABLES、SHOW DATABASES所提供的信息的访问。与 SHOW 语句相比,使用 SELECT ... FROM INFORMATION_SCHEMA.tablename 具有以下优点:

  1. 可以使用 USE 语句将 INFORMATION_SCHEMA 设为默认数据库
  2. 可以使用 SELECT 语句熟悉的语法,只需要学习一些表名和列名
  3. 可以对查询结果进行筛选、排序等操作。事实上,可以使用任意 TDengine 支持的 SELECT 语句对 INFORMATION_SCHEMA 中的表进行查询
  4. TDengine 在后续演进中可以灵活的添加已有 INFORMATION_SCHEMA 中表的列,而不用担心对既有业务系统造成影响
  5. 与其他数据库系统更具互操作性。例如Oracle 数据库用户熟悉查询 Oracle 数据字典中的表

Note: 由于 SHOW 语句已经被开发者熟悉和广泛使用,所以它们仍然被保留。

本章将详细介绍 INFORMATION_SCHEMA 这个内置元数据库中的表和表结构。

INS_DNODES

提供 dnode 的相关信息。也可以使用 SHOW DNODES 来查询这些信息。

# 列名 数据类型 说明
1 vnodes SMALLINT dnode 中的实际 vnode 个数
2 support_vnodes SMALLINT 最多支持的 vnode 个数
3 status BINARY(10) 当前状态
4 note BINARY(256) 离线原因等信息
5 id SMALLINT dnode id
6 endpoint BINARY(134) dnode 的地址
7 create TIMESTAMP 创建时间

INS_MNODES

提供 mnode 的相关信息。也可以使用 SHOW MNODES 来查询这些信息。

# 列名 数据类型 说明
1 id SMALLINT mnode id
2 endpoint BINARY(134) mnode 的地址
3 role BINARY(10) 当前角色
4 role_time TIMESTAMP 成为当前角色的时间
5 create_time TIMESTAMP 创建时间

INS_MODULES

提供组件的相关信息。也可以使用 SHOW MODULES 来查询这些信息

# 列名 数据类型 说明
1 id SMALLINT module id
2 endpoint BINARY(134) 组件的地址
3 module BINARY(10) 组件状态

INS_QNODES

当前系统中 QNODE 的信息。也可以使用 SHOW QNODES 来查询这些信息。

# 列名 数据类型 说明
1 id SMALLINT qnode id
2 endpoint BINARY(134) qnode 的地址
3 create_time TIMESTAMP 创建时间

INS_CLUSTER

存储集群相关信息。

# 列名 数据类型 说明
1 id BIGINT cluster id
2 name BINARY(134) 集群名称
3 create_time TIMESTAMP 创建时间

INS_DATABASES

提供用户创建的数据库对象的相关信息。也可以使用 SHOW DATABASES 来查询这些信息。

# 列名 数据类型 说明
1 name BINARY(32) 数据库名
2 create_time TIMESTAMP 创建时间
3 ntables INT 数据库中表的数量,包含子表和普通表但不包含超级表
4 vgroups INT 数据库中有多少个 vgroup
6 replica INT 副本数
7 quorum BINARY(3) 强一致性
8 duration INT 单文件存储数据的时间跨度
9 keep INT 数据保留时长
10 buffer INT 每个 vnode 写缓存的内存块大小,单位 MB
11 pagesize INT 每个 VNODE 中元数据存储引擎的页大小,单位为 KB
12 pages INT 每个 vnode 元数据存储引擎的缓存页个数
13 minrows INT 文件块中记录的最大条数
14 maxrows INT 文件块中记录的最小条数
15 comp INT 数据压缩方式
16 precision BINARY(2) 时间分辨率
17 status BINARY(10) 数据库状态
18 retention BINARY (60) 数据的聚合周期和保存时长
19 single_stable BOOL 表示此数据库中是否只可以创建一个超级表
20 cachemodel BINARY(60) 表示是否在内存中缓存子表的最近数据
21 cachesize INT 表示每个 vnode 中用于缓存子表最近数据的内存大小
22 wal_level INT WAL 级别
23 wal_fsync_period INT 数据落盘周期
24 wal_retention_period INT WAL 的保存时长
25 wal_retention_size INT WAL 的保存上限
26 wal_roll_period INT wal 文件切换时长
27 wal_segment_size wal 单个文件大小

INS_FUNCTIONS

用户创建的自定义函数的信息。

# 列名 数据类型 说明
1 name BINARY(64) 函数名
2 comment BINARY(255) 补充说明
3 aggregate INT 是否为聚合函数
4 output_type BINARY(31) 输出类型
5 create_time TIMESTAMP 创建时间
6 code_len INT 代码长度
7 bufsize INT buffer 大小

INS_INDEXES

提供用户创建的索引的相关信息。也可以使用 SHOW INDEX 来查询这些信息。

# 列名 数据类型 说明
1 db_name BINARY(32) 包含此索引的表所在的数据库名
2 table_name BINARY(192) 包含此索引的表的名称
3 index_name BINARY(192) 索引名
4 column_name BINARY(64) 建索引的列的列名
5 index_type BINARY(10) 目前有 SMA 和 FULLTEXT
6 index_extensions BINARY(256) 索引的额外信息。对 SMA 类型的索引,是函数名的列表。对 FULLTEXT 类型的索引为 NULL。

INS_STABLES

提供用户创建的超级表的相关信息。

# 列名 数据类型 说明
1 stable_name BINARY(192) 超级表表名
2 db_name BINARY(64) 超级表所在的数据库的名称
3 create_time TIMESTAMP 创建时间
4 columns INT 列数目
5 tags INT 标签数目
6 last_update TIMESTAMP 最后更新时间
7 table_comment BINARY(1024) 表注释
8 watermark BINARY(64) 窗口的关闭时间
9 max_delay BINARY(64) 推送计算结果的最大延迟
10 rollup BINARY(128) rollup 聚合函数

INS_TABLES

提供用户创建的普通表和子表的相关信息

# 列名 数据类型 说明
1 table_name BINARY(192) 表名
2 db_name BINARY(64) 数据库名
3 create_time TIMESTAMP 创建时间
4 columns INT 列数目
5 stable_name BINARY(192) 所属的超级表表名
6 uid BIGINT 表 id
7 vgroup_id INT vgroup id
8 ttl INT 表的生命周期
9 table_comment BINARY(1024) 表注释
10 type BINARY(20) 表类型

INS_TAGS

# 列名 数据类型 说明
1 table_name BINARY(192) 表名
2 db_name BINARY(64) 该表所在的数据库的名称
3 stable_name BINARY(192) 所属的超级表表名
4 tag_name BINARY(64) tag 的名称
5 tag_type BINARY(64) tag 的类型
6 tag_value BINARY(16384) tag 的值

INS_USERS

提供系统中创建的用户的相关信息。

# 列名 数据类型 说明
1 user_name BINARY(23) 用户名
2 privilege BINARY(256) 权限
3 create_time TIMESTAMP 创建时间

INS_GRANTS

提供企业版授权的相关信息。

# 列名 数据类型 说明
1 version BINARY(9) 企业版授权说明official(官方授权的)/trial(试用的)
2 cpu_cores BINARY(9) 授权使用的 CPU 核心数量
3 dnodes BINARY(10) 授权使用的 dnode 节点数量
4 streams BINARY(10) 授权创建的流数量
5 users BINARY(10) 授权创建的用户数量
6 accounts BINARY(10) 授权创建的帐户数量
7 storage BINARY(21) 授权使用的存储空间大小
8 connections BINARY(21) 授权使用的客户端连接数量
9 databases BINARY(11) 授权使用的数据库数量
10 speed BINARY(9) 授权使用的数据点每秒写入数量
11 querytime BINARY(9) 授权使用的查询总时长
12 timeseries BINARY(21) 授权使用的测点数量
13 expired BINARY(5) 是否到期true到期false未到期
14 expire_time BINARY(19) 试用期到期时间

INS_VGROUPS

系统中所有 vgroups 的信息。

# 列名 数据类型 说明
1 vgroup_id INT vgroup id
2 db_name BINARY(32) 数据库名
3 tables INT 此 vgroup 内有多少表
4 status BINARY(10) 此 vgroup 的状态
5 v1_dnode INT 第一个成员所在的 dnode 的 id
6 v1_status BINARY(10) 第一个成员的状态
7 v2_dnode INT 第二个成员所在的 dnode 的 id
8 v2_status BINARY(10) 第二个成员的状态
9 v3_dnode INT 第三个成员所在的 dnode 的 id
10 v3_status BINARY(10) 第三个成员的状态
11 nfiles INT 此 vgroup 中数据/元数据文件的数量
12 file_size INT 此 vgroup 中数据/元数据文件的大小
13 tsma TINYINT 此 vgroup 是否专用于 Time-range-wise SMA1: 是, 0: 否

INS_CONFIGS

系统配置参数。

# 列名 数据类型 说明
1 name BINARY(32) 配置项名称
2 value BINARY(64) 该配置项的值

INS_DNODE_VARIABLES

系统中每个 dnode 的配置参数。

# 列名 数据类型 说明
1 dnode_id INT dnode 的 ID
2 name BINARY(32) 配置项名称
3 value BINARY(64) 该配置项的值

INS_TOPICS

# 列名 数据类型 说明
1 topic_name BINARY(192) topic 名称
2 db_name BINARY(64) topic 相关的 DB
3 create_time TIMESTAMP topic 的 创建时间
4 sql BINARY(1024) 创建该 topic 时所用的 SQL 语句

INS_SUBSCRIPTIONS

# 列名 数据类型 说明
1 topic_name BINARY(204) 被订阅的 topic
2 consumer_group BINARY(193) 订阅者的消费者组
3 vgroup_id INT 消费者被分配的 vgroup id
4 consumer_id BIGINT 消费者的唯一 id

INS_STREAMS

# 列名 数据类型 说明
1 stream_name BINARY(64) 流计算名称
2 create_time TIMESTAMP 创建时间
3 sql BINARY(1024) 创建流计算时提供的 SQL 语句
4 status BIANRY(20) 流当前状态
5 source_db BINARY(64) 源数据库
6 target_db BIANRY(64) 目的数据库
7 target_table BINARY(192) 流计算写入的目标表
8 watermark BIGINT watermark详见 SQL 手册流式计算
9 trigger INT 计算结果推送模式,详见 SQL 手册流式计算