TDengine INFORMATION_SCHEMA 元数据系统表完全指南:从视图结构到源码级运维实践

发布时间:2026/9/12 6:47:41
TDengine INFORMATION_SCHEMA 元数据系统表完全指南:从视图结构到源码级运维实践 TDengine INFORMATION_SCHEMA 元数据系统表完全指南从视图结构到源码级运维实践【免费下载链接】TDengineHigh-performance, scalable time-series database designed for Industrial IoT (IIoT) scenarios项目地址: https://gitcode.com/GitHub_Trending/tde/TDengineTDengine 内置INFORMATION_SCHEMA只读数据库以标准关系表形式暴露集群元数据、系统信息与运行状态是替代和超越SHOW命令的声明式查询入口。本文以 官方系统信息文档 为主体结合仓库源码systable.h、systable.c、mndInfoSchema.c逐表拆解列结构、权限模型与底层实现读者读完后可熟练用SELECT完成集群巡检、容量审计、任务监控与排障。INFORMATION_SCHEMA 是什么TDengine 内置名为information_schema的只读数据库用于访问数据库元数据、系统信息和状态例如数据库与表名、当前正在执行的 SQL 等。它包含多张只读表这些表本质上是视图view而非基表base table它们没有关联的数据文件只能被查询不支持INSERT等写操作。从实现上看系统表的 schema 定义集中存放在 source/common/src/systable.c 中例如dnodesSchema、userDBSchema而 mnode 启动时通过mndInitInfos()调用getInfosDbMeta()读取这些定义注册到内存哈希表pMnode-infosMeta中见 mndInfoSchema.c。也就是说你查询到的每一列都对应源码里一条SSysDbTableSchema记录名称、类型、字节长度、是否sysInfo敏感列。与 SHOW 命令的对比优势INFORMATION_SCHEMA以更一致的形式提供了与各种 SHOW 命令 等价的信息例如SHOW TABLES、SHOW DATABASES。与SHOW相比使用SELECT ... FROM INFORMATION_SCHEMA.tablename具有以下优势可以使用USE将INFORMATION_SCHEMA设置为默认数据库使用熟悉的SELECT语法只需知道表名和列名可以对结果进行过滤和排序使用 TDengine 支持的任何SELECT功能未来可以在现有表上新增列不影响已有应用查询模型更接近其他数据库系统的数据字典如 Oracle。注意SHOW语句仍被保留供熟悉它的用户使用。两者的关系在 mnode 层是统一的——mndShow.c 中SHOW DNODES/MNODES/...最终都路由到对应的TSDB_INS_TABLE_*系统表。权限模型SYSINFO 与关键字的反引号转义sysinfo 权限位多张系统表要求用户具备SYSINFO权限sysinfo 1才能查看例如INS_ANODES、INS_DNODES、INS_USERS等。在源码中这类表的列被标记为COL_IS_SYSINFO见 mndInfoSchema.c当sysinfo为 0 时mndBuildInsTableSchema()会直接返回TSDB_CODE_PAR_PERMISSION_DENIED拒绝获取 schema。用户的sysinfo属性可在INS_USERS表中查询1为可查看系统信息0为不可查看。关键字列必须使用反引号转义部分系统表的列名本身就是 SQL 关键字查询时必须用反引号转义例如查询test数据库中vgroup的数量SELECT vgroups FROM information_schema.ins_databases WHERE name test;本文后续表格中所有标注“关键字需反引号转义”的列均同理。集群与节点类系统表INS_ANODES / INS_ANODES_FULL分析节点INS_ANODES提供分析节点anode的地址、状态、创建与更新时间等价于SHOW ANODES。#列名数据类型说明1idINTID2urlVARCHAR(128)URL3statusVARCHAR(10)当前状态4create_timeTIMESTAMP创建时间5update_timeTIMESTAMP更新时间INS_ANODES_FULL提供分析节点上加载的算法详情类型、名称、状态、备注等价于SHOW ANODES FULL。#列名数据类型说明1idINTID2typeVARCHAR(24)类型3algoVARCHAR(64)算法4statusVARCHAR(10)当前状态5noteVARCHAR(256)备注INS_BNODES桥接节点提供集群中每个bnode桥接节点的 ID、地址、协议和创建时间等价于SHOW BNODES。#列名数据类型说明1idINTID2endpointVARCHAR(134)地址3protocolVARCHAR(14)协议4create_timeTIMESTAMP创建时间INS_CLUSTER集群信息提供当前集群的 ID、名称、运行时长、版本和许可证过期时间等价于SHOW CLUSTER。#列名数据类型说明1idBIGINT集群 ID2nameVARCHAR(40)集群名称3uptimeINT运行时长秒4create_timeTIMESTAMP创建时间5versionVARCHAR(10)版本6expire_timeTIMESTAMP过期时间INS_DNODES / INS_MNODES / INS_QNODES / INS_SNODES各类数据节点INS_DNODES提供每个dnode数据节点的 ID、地址、vnode容量和运行状态等价于SHOW DNODES。#列名数据类型说明1idINTdnodeID2endpointVARCHAR(134)dnode地址3vnodesSMALLINT实际vnode数量关键字需反引号转义4support_vnodesSMALLINT支持的最大vnode数量5statusVARCHAR(10)当前状态6create_timeTIMESTAMP创建时间7reboot_timeTIMESTAMP最近一次重启时间8noteVARCHAR(256)离线原因等信息9machine_idVARCHAR(24)机器 ID企业版INS_MNODES提供每个mnode管理节点的 ID、地址、角色和状态等价于SHOW MNODESINS_QNODES提供qnode查询节点的 ID、地址和创建时间等价于SHOW QNODESINS_SNODES提供snode流处理节点的 ID、地址和副本关系等价于SHOW SNODES。以上表的列均含sysInfo标记非SYSINFO用户无法查看。-- 巡检所有 dnode 的负载与状态 SELECT id, endpoint, vnodes, support_vnodes, status, reboot_time FROM information_schema.ins_dnodes;INS_ARBGROUPS仲裁组提供仲裁组中副本dnode、同步状态和分配的 token 信息等价于SHOW ARBGROUPS。表中v1_dnode/v2_dnode为两个副本成员所在dnodeis_sync标识同步状态assigned_dnode/assigned_token/assigned_acked为仲裁分配信息。#列名数据类型说明1db_nameVARCHAR(64)数据库名2vgroup_idINTvgroupID3v1_dnodeSMALLINT第一个成员dnode4v2_dnodeSMALLINT第二个成员dnode5is_syncBOOL是否同步6check_sync_codeVARCHAR(98)同步校验码7assigned_dnodeSMALLINT分配的dnode8assigned_tokenVARCHAR(32)分配的 token9assigned_ackedSMALLINT分配的 ack元数据与结构类系统表INS_DATABASES数据库配置与状态42 列全解提供用户数据库的配置和状态信息例如副本数、保留策略、缓存设置和 WAL 相关参数等价于SHOW DATABASES。这是最常用也最庞大的系统表下表完整列出全部 42 列#列名数据类型说明1nameVARCHAR(64)数据库名2create_timeTIMESTAMP创建时间3vgroupsINT数据库中的vgroup数关键字需反引号转义4ntablesBIGINT库内表数量含子表与普通表不含超级表5replicaTINYINT副本数关键字需反引号转义6strictVARCHAR(4)已弃用参数7durationVARCHAR(10)单个文件数据时间跨度关键字内部以分钟存储结果可能显示为天/小时8keepVARCHAR(32)数据保留时长关键字内部以分钟存储9bufferINT每个vnode写缓存内存块大小MB10pagesizeINT每个 VNODE 元数据存储引擎页大小KB11pagesINT每个vnode元数据存储引擎缓存页数12minrowsINT文件块最小记录数13maxrowsINT文件块最大记录数14compTINYINT数据压缩方式15precisionVARCHAR(2)时间精度16statusVARCHAR(10)数据库状态17retentionsVARCHAR(60)数据聚合间隔与保留时长18single_stableBOOL是否只允许建一个超级表19cachemodelVARCHAR(11)是否缓存最近子表数据到内存20cachesizeINT每个vnode缓存最近子表数据的内存大小21cacheshardbitsINTlast-value LRU 缓存分片位数实际分片数为2^cacheshardbits-1 表示系统根据cachesize自动计算22wal_levelTINYINTWAL 级别23wal_fsync_periodINT数据落盘周期24wal_retention_periodINTWAL 保留时长秒25wal_retention_sizeBIGINTWAL 保留上限26stt_triggerSMALLINT触发文件合并的落盘文件数27table_prefixSMALLINT存储引擎按表名分配 VNODE 时忽略的前缀长度28table_suffixSMALLINT存储引擎按表名分配 VNODE 时忽略的后缀长度29tsdb_pagesizeINT时序数据存储引擎页大小30keep_time_offsetINTKEEP时间偏移31ss_chunkpagesINT共享存储 chunk 页数32ss_keeplocalVARCHAR(10)共享存储本地保留策略33ss_compactTINYINT共享存储压缩配置34with_arbitratorTINYINT是否启用仲裁35encrypt_algorithmVARCHAR(16)加密算法36compact_intervalVARCHAR(12)自动压缩间隔37compact_time_rangeVARCHAR(24)自动压缩时间范围38compact_time_offsetVARCHAR(4)自动压缩时间偏移39is_auditBOOL是否为审计数据库40ownerVARCHAR(24)所有者41allow_dropBOOL是否允许删除42sec_levelTINYINT安全级别从源码看这些列在 systable.c 的userDBSchema中逐一定义如vgroups为 INT 且带sysInfo true标记ntables为 BIGINT 且sysInfo false并会被mndDb.c等 mnode 模块在数据库创建/变更时实时填充。值得注意的是duration、keep内部以分钟存储展示时按需转为天/小时因此基于这些列做计算时需注意单位换算。INS_TABLES / INS_STABLES / INS_COLUMNS / INS_TAGS表结构元数据INS_TABLES提供普通表和子表的结构与属性所属超级表、vgroup、TTL、表类型等价于SHOW TABLES。表类型type取值可区分普通表、子表等ttl为表生命周期关键字。INS_STABLES提供超级表结构与属性列数、标签数、备注、所有者、安全级别等价于SHOW STABLES。其中tags为标签数关键字watermark为窗口关闭时间关键字max_delay为推送计算结果的最大延迟关键字rollup为 rollup 聚合函数关键字uid为超级表 UIDisvirtual标识是否为虚拟超级表。INS_COLUMNS提供表列的名称、类型、长度、精度以及虚拟表列的数据来源。col_source仅对虚拟表列存在标识虚拟表列的数据来源为db_name.table_name.col_name。INS_TAGS提供表标签的名称、类型和值用于基于标签的检索与元数据校验。除子表外也包含基础表和虚拟基础表的标签此时stable_name列为NULL等价于SHOW TAGS。-- 列出 test 库中每个超级表的列数与标签数 SELECT stable_name, columns, tags FROM information_schema.ins_stables WHERE db_name test; -- 按列名反查某列所在的表 SELECT db_name, table_name, col_type, col_length FROM information_schema.ins_columns WHERE col_name ts;INS_INDEXES / INS_VIEWS / INS_FUNCTIONS / INS_RSMAS / INS_TSMASINS_INDEXES已创建的索引名称、所在库表、列名与索引类型如 SMA、tag等价于SHOW INDEXES。INS_VIEWS视图名称、库名、定义 SQL、参数与目标表等价于SHOW VIEWS。INS_FUNCTIONSUDF 的名称、类型、语言、函数体与版本等价于SHOW FUNCTIONS。其中func_version初始为 0每次替换函数时加 1。INS_RSMASRSMA 定义名称、源表、聚合间隔与函数列表等价于SHOW RSMAS。INS_TSMAS时序 SMATSMA名称、源/目标表、聚合间隔与创建 SQL等价于SHOW TSMAS。INS_USERS / INS_USERS_FULL / INS_ROLES 与权限类表INS_USERS提供系统用户基本属性是否超级用户、是否启用、是否可查看系统信息等等价于SHOW USERS。super、enable、sysinfo、createdb、totp均为 0/1 标志allowed_host为 IP 白名单allowed_datetime为允许登录的时间窗口roles为已授予的角色。INS_USERS_FULL提供完整用户配置包括密码策略password_life_time、password_reuse_time、password_reuse_max、password_lock_time、password_grace_time、failed_login_attempts、会话限制session_per_user、connect_time、connect_idle_timeout、call_per_session、vnode_per_call、token 数量allow_token_num等等价于SHOW USERS FULL。INS_ROLES提供角色名称、启用状态、类型与子角色等价于SHOW ROLESINS_ROLE_PRIVILEGES提供角色权限详情权限类型、作用域、库表范围、条件INS_ROLE_COLUMN_PRIVILEGES提供授予角色的列级权限详情INS_USER_PRIVILEGES提供用户权限详情包括列权限。INS_TOKENS / INS_SUBSCRIPTIONS / INS_TOPICSINS_TOKENS用户访问令牌的名称、所属用户、提供者、启用状态与过期时间等价于SHOW TOKENS。INS_SUBSCRIPTIONS主题订阅关系消费者组、分配的vgroup、消费进度、已消费行数等价于SHOW SUBSCRIPTIONS。INS_TOPICS已创建数据订阅主题的名称、库、创建 SQL 与 schema等价于SHOW TOPICS。存储、容量与数据分布类系统表INS_DISK_USAGE磁盘用量汇总按数据库和vgroup汇总 WAL、多级存储、缓存和元数据的磁盘占用单位 KB等价于SHOW DISK_INFO。data1/data2/data3分别对应一级/二级/三级存储上的数据文件大小cache_rdb为 last/last_row 文件大小table_meta为元数据文件大小ss为共享存储占用raw_data为估算的原始数据大小。-- 查看各数据库各级存储的实际占用KB SELECT db_name, vgroup_id, wal_size, data1, data2, data3, cache_rdb, table_meta FROM information_schema.ins_disk_usage ORDER BY raw_data DESC;INS_VGROUPS / INS_VNODES数据分片与副本状态INS_VGROUPS提供每个vgroup的成员分布、副本状态、缓存信息和 WAL 相关位置等价于SHOW VGROUPS。v1_dnode~v4_dnode及对应vN_status、vN_applied/committed描述各成员的分布与同步位置tables为组内表数关键字is_ready标识是否就绪cacheload/cacheelements描述缓存状态keep_version表示该vgroup中大于等于该版本的 WAL 日志不会被自动删除。INS_VNODES提供每个vnode的dnode、数据库、角色状态和恢复进度等价于SHOW VNODES。role_time为最近一次选举时间unapplied为未应用的请求数buffer_segment_used/buffer_segment_size描述缓冲段用量。-- 排查 vgroup 副本是否就绪 SELECT vgroup_id, db_name, v1_dnode, v1_status, v2_dnode, v2_status, is_ready FROM information_schema.ins_vgroups WHERE is_ready false;INS_FILESETS / INS_TABLE_FIXED_DISTRIBUTED文件集与块分布INS_FILESETS提供数据文件集的时间范围、大小、最近压缩时间与是否需要压缩。should_compact为 true 表示需要压缩。INS_TABLE_FIXED_DISTRIBUTED提供表数据块的分布与压缩统计用于分析数据倾斜与存储特性等价于SHOW TABLE DISTRIBUTED。其中block_dist_64~block_dist_other系列列给出按行数分桶64/128/256/512/1024/2048/4096/其他的数据块数量分布compression_ratio为压缩比total_blocks/total_size为块总数与总大小。INS_CPU_ALLOCATIONCPU 核分配提供每个dnode上管理、写入和读取线程的 CPU 核分配情况仅在启用enableCpuAffinity时数据有效等价于SHOW CPU_ALLOCATION。thread_category取值为management、write或readcores为分配给该类别核数禁用时为 0core_ids为逗号分隔的核 ID 列表禁用时为-enabled标识该类别是否启用 CPU 亲和性。任务与运行态监控类系统表后台任务三兄弟COMPACTS / RETENTIONS / SCANSTDengine 的压缩compaction、数据保留retention和扫描scan三类后台任务均采用「总览表 明细表」结构并各自等价于SHOW COMPACTS、SHOW RETENTIONS、SHOW SCANSINS_COMPACTS/INS_COMPACT_DETAILS压缩任务及每个vgroup/dnode的进度、完成状态与剩余时间INS_RETENTIONS/INS_RETENTION_DETAILS数据保留任务及明细trigger_mode为触发模式type为类型INS_SCANS/INS_SCAN_DETAILS数据扫描任务及明细。三张明细表结构高度一致均包含number_fileset文件集数、finished已完成数、progress(%)进度百分比和remain_time(s)剩余秒数可用于实时跟踪任务进度-- 查看当前压缩任务进度 SELECT compact_id, vgroup_id, dnode_id, number_fileset, finished, progress(%), remain_time(s) FROM information_schema.ins_compact_details;INS_STREAMS / INS_STREAM_TASKS / INS_STREAM_RECALCULATES流处理观测INS_STREAMS提供流处理任务名称、数据库、状态、snode分布和错误信息等价于SHOW STREAMS。除基础信息外还包含一批一分钟粒度的运行时指标#列名说明12realtime_lag_ms最慢有效 entry Reader 的实时处理延迟毫秒13input_rows_per_sec_1m最近完整 60 秒窗口内逻辑输入速率行/秒14output_rows_per_sec_1m最近完整 60 秒窗口内成功投递的最终结果速率行/秒15runner_result_latency_avg_1m_ms最近完整 60 秒窗口内 Runner 形成结果的平均耗时毫秒16history_progress_pct历史数据处理进度0~100一分钟指标在任务产生第一个完整 60 秒窗口之前为NULL引用外部数据源的流没有 WAL 进度因此realtime_lag_ms为NULL未启用历史数据处理时history_progress_pct为NULL。相关解释与排障指导见 流处理可观测性与排障。INS_STREAM_TASKS提供内部流处理任务的部署位置、类型、状态与最近更新时间INS_STREAM_RECALCULATES提供流重算任务的时间范围、进度与 ID。重算记录的保留策略为终态记录自 mnode 首次观察到终态起保留 1 小时每个流最多保留 100 条终态记录Pending/Running记录不计入该上限记录保存在内存中不保证进程重启后存活。未完成的请求会另行持久化服务或流任务重启/重新部署后可恢复。INS_TRANSACTIONS 系列元数据事务INS_TRANSACTIONS当前正在执行的元数据事务的阶段、操作对象、失败次数与最近执行信息等价于SHOW TRANSACTIONSINS_TRANSACTION_DETAILS元数据事务中每个动作的对象类型、目标、结果与详情等价于SHOW TRANSACTIONINS_TRANSACTION_LOGS已完成的元数据事务历史创建者、状态、类型、完成时间等价于SHOW TRANSACTION LOGSINS_TRANSACTION_ORPHANS孤儿事务检测结果关联vgroup、首次/最近检测时间、上报次数等价于SHOW TRANSACTION ORPHANS。快照与共享存储SNAP_SEND / SSMIGRATESINS_SNAP_SEND_FILESETS提供快照复制期间按文件集的读写量、进度与传输类型INS_SNAP_SEND_VNODES提供按vnode的文件集传输进度与耗时。INS_SSMIGRATES提供共享存储迁移进度已迁移vgroup与文件集等价于SHOW SSMIGRATES。安全、加密与授权类系统表INS_ENCRYPTIONS每个dnode的加密密钥状态等价于SHOW ENCRYPTIONSINS_ENCRYPT_ALGORITHMS系统可用加密算法的名称、类型、来源与描述等价于SHOW ENCRYPT_ALGORITHMSINS_ENCRYPT_STATUS当前加密范围、算法与加密状态等价于SHOW ENCRYPT_STATUSINS_GRANTS/INS_GRANTS_FULL/INS_GRANTS_LOGS企业版许可证概览许可时序点数、dnode/vnode配额、存储上限、逐项许可证详情、许可证激活/吊销/机器绑定日志分别等价于SHOW LICENCES、SHOW GRANTS FULL、SHOW GRANTS LOGSINS_MACHINES绑定许可证的机器 ID、dnode数与版本等价于SHOW CLUSTER MACHINESINS_SECURITY_POLICIES安全策略名称、模式、操作符与最近更新时间等价于SHOW SECURITY_POLICIESINS_MOUNTS数据库挂载名称、dnode、路径与创建时间等价于SHOW MOUNTSINS_EXT_SOURCES联邦查询使用的外部数据源连接信息、数据库/schema 与选项等价于SHOW EXTERNAL SOURCESINS_CONFIGS当前生效的系统配置参数名与值等价于SHOW CLUSTER VARIABLES其中value列是关键字需反引号转义INS_DNODE_VARIABLES每个dnode上的配置参数含作用域、类别、描述等价于SHOW DNODE VARIABLES。虚拟表Virtual Table相关系统表TDengine 的虚拟表功能由一组专用系统表支撑其中多张表带sysInfo限制INS_VIRTUAL_CHILD_COLUMNS虚拟子表列与源表列的引用关系包括引用版本ref_versionINS_VIRTUAL_TABLES_REFERENCING虚拟表列到源表列的引用含校验错误码与消息err_code/err_msg等价于SHOW VTABLE VALIDATEINS_VSTABLE_INHERITS虚拟超级表之间的继承关系父/子超级表名与 UID等价于SHOW VTABLE INHERITS。Xnode 数据接入类系统表INS_XNODESXnode 数据接入节点的地址、状态、创建与更新时间等价于SHOW XNODESINS_XNODE_AGENTSXnode Agent 的名称、token、状态、创建与更新时间等价于SHOW XNODE AGENTSINS_XNODE_JOBSXnode 作业分片的配置、父任务、状态与失败原因等价于SHOW XNODE JOBSINS_XNODE_TASKSXnode 数据接入任务的来源、目标、状态、标签与创建者等价于SHOW XNODE TASKS。完整系统表速查清单下表按功能域汇总本仓库 systable.h 中定义的全部information_schema表TSDB_INS_TABLE_*宏与文档章节一一对应功能域系统表节点与集群ins_anodes, ins_anodes_full, ins_bnodes, ins_cluster, ins_dnodes, ins_mnodes, ins_qnodes, ins_snodes, ins_arbgroups, ins_mounts, ins_xnodes, ins_xnode_agents, ins_xnode_jobs, ins_xnode_tasks库表元数据ins_databases, ins_tables, ins_stables, ins_columns, ins_tags, ins_indexes, ins_views, ins_functions, ins_rsmas, ins_tsmas, ins_virtual_child_columns, ins_virtual_tables_referencing, ins_vstable_inherits用户与权限ins_users, ins_users_full, ins_roles, ins_role_privileges, ins_role_column_privileges, ins_user_privileges, ins_tokens存储与容量ins_disk_usage, ins_vgroups, ins_vnodes, ins_filesets, ins_table_fixed_distributed, ins_cpu_allocation后台任务ins_compacts, ins_compact_details, ins_retentions, ins_retention_details, ins_scans, ins_scan_details, ins_ssmigrates, ins_snap_send_filesets, ins_snap_send_vnodes流处理ins_streams, ins_stream_tasks, ins_stream_recalculates订阅与主题ins_subscriptions, ins_topics元数据事务ins_transactions, ins_transaction_details, ins_transaction_logs, ins_transaction_orphans安全与授权ins_encryptions, ins_encrypt_algorithms, ins_encrypt_status, ins_grants, ins_grants_full, ins_grants_logs, ins_machines, ins_security_policies配置ins_configs, ins_dnode_variables, ins_ext_sources小结INFORMATION_SCHEMA是 TDengine 运维与开发的统一元数据入口它把散落在各SHOW命令中的信息收敛为可过滤、可排序、可关联的标准关系表配合SYSINFO权限模型与关键字列反引号转义规则即可安全使用。对需要深度排障的场景建议将本指南与 SHOW 命令参考 对照阅读并以 systable.c 和 mndInfoSchema.c 作为实现级依据可随时在仓库中确认每一列的精确语义与权限标记。【免费下载链接】TDengineHigh-performance, scalable time-series database designed for Industrial IoT (IIoT) scenarios项目地址: https://gitcode.com/GitHub_Trending/tde/TDengine创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考