22-meta.md 13.5 KB
Newer Older
G
gccgdb1234 已提交
1 2 3 4 5
---
sidebar_label: 元数据库
title: 元数据库
---

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

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

G
gccgdb1234 已提交
14
Note: 由于 SHOW 语句已经被开发者熟悉和广泛使用,所以它们仍然被保留。
G
gccgdb1234 已提交
15 16 17

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

18
## INS_DNODES
G
gccgdb1234 已提交
19 20 21

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

22 23 24 25 26 27 28 29 30
| #   |    **列名**    | **数据类型** | **说明**                  |
| --- | :------------: | ------------ | ------------------------- |
| 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    | 创建时间                  |
G
gccgdb1234 已提交
31

32
## INS_MNODES
G
gccgdb1234 已提交
33 34 35 36 37 38 39 40 41 42 43

提供 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    | 创建时间           |

44
## INS_MODULES
G
gccgdb1234 已提交
45 46 47 48 49 50 51 52 53

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

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

54
## INS_QNODES
G
gccgdb1234 已提交
55 56 57 58 59

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

| #   |  **列名**   | **数据类型** | **说明**     |
| --- | :---------: | ------------ | ------------ |
60
| 1   |     id      | SMALLINT     | qnode id     |
G
gccgdb1234 已提交
61 62 63
| 2   |  endpoint   | BINARY(134)  | qnode 的地址 |
| 3   | create_time | TIMESTAMP    | 创建时间     |

64
## INS_CLUSTER
G
gccgdb1234 已提交
65

66
存储集群相关信息。
G
gccgdb1234 已提交
67

68 69 70 71 72
| #   |  **列名**   | **数据类型** | **说明**   |
| --- | :---------: | ------------ | ---------- |
| 1   |     id      | BIGINT       | cluster id |
| 2   |    name     | BINARY(134)  | 集群名称   |
| 3   | create_time | TIMESTAMP    | 创建时间   |
G
gccgdb1234 已提交
73

74
## INS_DATABASES
G
gccgdb1234 已提交
75

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

78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
| #   |       **列名**       | **数据类型**     | **说明**                                         |
| --- | :------------------: | ---------------- | ------------------------------------------------ |
| 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
G
gccgdb1234 已提交
122 123 124 125 126 127 128 129 130 131 132 133

提供用户创建的索引的相关信息。也可以使用 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。 |

134
## INS_STABLES
G
gccgdb1234 已提交
135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150

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

| #   |   **列名**    | **数据类型** | **说明**                 |
| --- | :-----------: | ------------ | ------------------------ |
| 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 聚合函数          |

151
## INS_TABLES
G
gccgdb1234 已提交
152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167

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

| #   |   **列名**    | **数据类型** | **说明**         |
| --- | :-----------: | ------------ | ---------------- |
| 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)   | 表类型           |

168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191
## 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 的值               |

## USER_STREAMS

提供用户创建的流计算的相关信息。

| #   |  **列名**   | **数据类型** | **说明**                    |
| --- | :---------: | ------------ | --------------------------- |
| 1   | stream_name | BINARY(192)  | 流计算名称                  |
| 2   |  user_name  | BINARY(23)   | 创建流计算的用户            |
| 3   | dest_table  | BINARY(192)  | 流计算写入的目标表          |
| 4   | create_time | TIMESTAMP    | 创建时间                    |
| 5   |     sql     | BLOB         | 创建流计算时提供的 SQL 语句 |

## INS_USERS
G
gccgdb1234 已提交
192 193 194 195 196 197 198 199 200

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

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

201 202 203 204 205
## INS_GRANTS

TODO

## INS_VGROUPS
G
gccgdb1234 已提交
206 207 208

系统中所有 vgroups 的信息。

209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242
| #   | **列名**  | **数据类型** | **说明**                     |
| --- | :-------: | ------------ | ---------------------------- |
| 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          | TODO                         |
| 12  | file_size | INT          | TODO                         |
| 13  |   tsma    | TINYINT      | TODO                         |

## 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)   | 该配置项的值 |