22-meta.md 10.1 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 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82

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

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

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

## MODULES

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

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

## QNODES

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

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

## USER_DATABASES

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

TODO

| #   |  **列名**   | **数据类型** | **说明**                                         |
| --- | :---------: | ------------ | ------------------------------------------------ |
| 1   |    name     | BINARY(32)   | 数据库名                                         |
| 2   | create_time | TIMESTAMP    | 创建时间                                         |
| 3   |   ntables   | INT          | 数据库中表的数量,包含子表和普通表但不包含超级表 |
| 4   |   vgroups   | INT          | 数据库中有多少个 vgroup                          |
| 5   |   replica   | INT          | 副本数                                           |
| 6   |   quorum    | INT          | 写成功的确认数                                   |
| 7   |    days     | INT          | 单文件存储数据的时间跨度                         |
| 8   |    keep     | INT          | 数据保留时长                                     |
| 9   |   buffer    | INT          | 每个 vnode 写缓存的内存块大小,单位 MB           |
| 10  |   minrows   | INT          | 文件块中记录的最大条数                           |
| 11  |   maxrows   | INT          | 文件块中记录的最小条数                           |
83 84
| 12  |  wal_level   | INT          | WAL 级别                                         |
| 13  | walfsync_period    | INT          | 数据落盘周期                                     |
G
gccgdb1234 已提交
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 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179
| 14  |    comp     | INT          | 数据压缩方式                                     |
| 15  |  precision  | BINARY(2)    | 时间分辨率                                       |
| 16  |   status    | BINARY(10)   | 数据库状态                                       |

## USER_FUNCTIONS

TODO

## USER_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。 |

## USER_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 聚合函数          |

## 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 语句 |

## USER_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)   | 表类型           |

## USER_USERS

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

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

## VGROUPS

系统中所有 vgroups 的信息。

| #   |  **列名**  | **数据类型** | **说明**                     |
| --- | :--------: | ------------ | ---------------------------- |
| 1   |   vg_id    | INT          | vgroup id                    |
| 2   |  db_name   | BINARY(32)   | 数据库名                     |
| 3   |   tables   | INT          | 此 vgroup 内有多少表         |
| 4   |   status   | BINARY(10)   | 此 vgroup 的状态             |
| 5   |  onlines   | INT          | 在线的成员数目               |
| 6   |  v1_dnode  | INT          | 第一个成员所在的 dnode 的 id |
| 7   | v1_status  | BINARY(10)   | 第一个成员的状态             |
| 8   |  v2_dnode  | INT          | 第二个成员所在的 dnode 的 id |
| 9   | v2_status  | BINARY(10)   | 第二个成员的状态             |
| 10  |  v3_dnode  | INT          | 第三个成员所在的 dnode 的 id |
| 11  | v3_status  | BINARY(10)   | 第三个成员的状态             |
| 12  | compacting | INT          | compact 状态                 |