文档说明

Influx Inspect磁盘实用工具

查看等效的 InfluxDB v2 文档: influxd inspect.

Influx Inspect 是一个 InfluxDB 磁盘实用工具,可用于

  • 查看磁盘分片详细信息的详细信息。
  • 从分片导出数据到 InfluxDB 行协议,可将其重新插入到数据库中。
  • 将 TSM 索引分片转换为 TSI 索引分片。

influx_inspect 实用工具

语法

influx_inspect [ [ command ] [ options ] ]

-help 是默认命令,并打印工具的语法和使用信息。

influx_inspect 命令

以下是 influx_inspect 命令的总结,其中包含每个命令的详细信息链接。

  • buildtsi: 将内存中(基于 TSM)的分片转换为 TSI。
  • check-schema: 检查分片之间的类型冲突。
  • deletetsm: 批量从原始 TSM 文件中删除度量。
  • dumptsi: 导出 TSI 文件的低级详细信息。
  • dumptsm: 导出 TSM 文件的低级详细信息。
  • dumptsmwal: 从 WAL 文件中导出所有数据。
  • export: 以 InfluxDB 行协议格式从分片中导出原始数据。
  • merge-schema: 合并来自 check-schema 命令的一组模式文件。
  • report: 显示分片级别报告。
  • report-db: 估算数据库的 InfluxDB Cloud(TSM)基数。
  • report-disk: 报告分片和度量的磁盘使用情况。
  • reporttsi: 报告度量和分片的基数。
  • verify: 验证 TSM 文件的完整性。
  • verify-seriesfile: 验证系列文件的完整性。
  • verify-tombstone: 验证墓碑的完整性。

buildtsi

构建 TSI(时间序列索引)磁盘分片索引文件和相关系列文件。索引写入临时位置,直到完成,然后移动到永久位置。如果发生错误,则此操作将回退到原始内存索引。

注意: 仅用于离线转换。 当启用TSI时,新分片使用TSI索引。现有分片将继续作为基于TSM的分片,直到离线转换。

语法
influx_inspect buildtsi -datadir <data_dir> -waldir <wal_dir> [ options ]

注意: 使用您将要运行数据库的用户账户执行buildtsi命令,或者确保运行命令后权限匹配。

选项

可选参数用括号括起来。

[ -batch-size ]

写入索引的批大小。默认值为10000

警告: 设置此值可能会对性能和堆大小产生不利影响。

[ -compact-series-file ]

不会重建索引。 压缩现有系列文件,包括离线系列。遍历每个段的系列,并将索引中的非Tombstoned系列重写到段旁边的新的.tmp文件中。一旦所有段都转换完毕,临时文件将覆盖原始段。

[ -concurrency ]

分配给分片索引构建的工作线程数。默认值为GOMAXPROCS值。

[ -database <db_name> ]

数据库名称。

-datadir <data_dir>

data目录的路径。

[ -max-cache-size ]

在开始拒绝写入之前缓存的最大大小。此值覆盖[data] cache-max-memory-size的配置设置。默认值为1073741824

[ -max-log-file-size ]

日志文件的最大大小。默认值为1048576

[ -retention <rp_name> ]

保留策略的名称。

[ -shard <shard_ID> ]

分片的标识符。

[ -v ]

标志,用于启用详细输出模式。

-waldir <wal_dir>

WAL(写入前日志)文件的目录。

示例

转换节点上的所有分片
$ influx_inspect buildtsi -datadir ~/.influxdb/data -waldir ~/.influxdb/wal
转换数据库的所有分片
$ influx_inspect buildtsi -database mydb -datadir ~/.influxdb/data -waldir ~/.influxdb/wal
转换特定分片
$ influx_inspect buildtsi -database stress -shard 1 -datadir ~/.influxdb/data -waldir ~/.influxdb/wal

check-schema

检查分片之间的类型冲突。

语法

influx_inspect check-schema [ options ]

选项

[ -conflicts-file <string> ]

应写入冲突数据的文件名。默认为conflicts.json

[ -path <string> ]

位于fields.idx文件的目录路径。默认为当前工作目录.

[ -schema-file <string> ]

应写入模式数据的文件名。默认为schema.json

deletetsm

使用deletetsm -measurement从原始TSM文件(指定分片)中删除测量。使用deletetsm -sanitize从原始TSM文件(指定分片)中删除所有包含不可打印Unicode字符的标签和字段键。

警告: 仅在InfluxDB实例离线(influxd服务未运行)时使用deletetsm命令。

语法

influx_inspect deletetsm -measurement <measurement_name> [ arguments ] <path>
<path>

.tsm文件的路径,默认位于data目录。

指定路径时,通配符(*)可以替换一个或多个字符。

选项

需要指定-measurement-sanitize标志。

-measurement

要从中删除TSM文件的测量名称。

-sanitize

标志,用于从TSM文件中删除所有包含不可打印Unicode字符的键。

-v

可选。启用详细日志记录的标志。

示例

从单个分片中删除测量

从单个分片中删除测量h2o_feet

./influx_inspect deletetsm -measurement h2o_feet /influxdb/data/location/autogen/1384/*.tsm
从数据库中的所有分片中删除测量

从数据库的所有分片中删除测量h2o_feet

./influx_inspect deletetsm -measurement h2o_feet /influxdb/data/location/autogen/*/*.tsm

dumptsi

输出TSI文件的底层详细信息,包括.tsl日志文件和.tsi索引文件。

语法

influx_inspect dumptsi [ options ] <index_path>

如果没有指定选项,则为每个文件提供摘要统计信息。

选项

可选参数用括号括起来。

-series-file <series_path>

数据库data目录下_series目录的路径。必需。

[ -series ]

输出原始系列数据。

[ -measurements ]

输出原始测量数据。

[ -tag-keys ]

输出原始标签键

[ -tag-values ]

输出原始标签值

[ -tag-value-series ]

为每个标签值输出原始系列。

[ -measurement-filter <regular_expression> ]

通过测量正则表达式过滤数据。

[ -tag-key-filter <regular_expression> ]

通过标签键正则表达式过滤数据。

[ -tag-value-filter <regular_expression> ]

通过标签值正则表达式过滤数据。

示例

指定_seriesindex目录的路径
$ influx_inspect dumptsi -series-file /path/to/db/_series /path/to/index
指定_series目录和一个index文件的路径
$ influx_inspect dumptsi -series-file /path/to/db/_series /path/to/index/file0
指定_series目录和多个index文件的路径
$ influx_inspect dumptsi -series-file /path/to/db/_series /path/to/index/file0 /path/to/index/file1 ...

dumptsm

输出关于TSM文件的底层详细信息,包括TSM(.tsm)文件和WAL(.wal)文件。

语法

influx_inspect dumptsm [ options ] <path>
<path>

.tsm文件的路径,默认位于data目录。

选项

可选参数用括号括起来。

[ -index ]

用于输出原始索引数据的标志。默认值为false

[ -blocks ]

用于输出原始块数据的标志。默认值为false

[ -all ]

用于输出所有数据的标志。注意:这可能会打印大量信息。默认值为false

[ -filter-key <key_name> ]

仅显示与该键子字符串匹配的索引数据和块数据。默认值为""

dumptsmwal

仅从一个或多个WAL(.wal)文件中输出所有条目,并排除TSM(.tsm)文件。

语法

influx_inspect dumptsmwal [ options ] <wal_dir>

选项

可选参数用括号括起来。

[ -show-duplicates ]

用于显示具有重复或顺序错误的时戳的键的标志。如果用户使用客户端设置的时戳写入点,则可以写入多个具有相同时戳(或时间递减时戳)的点。

export

将InfluxDB中所有TSM文件导出为行协议数据格式。此输出文件可以使用influx命令导入。

语法

influx_inspect export [ options ]

选项

可选参数用括号括起来。

[ -compress ]

使用gzip压缩输出数据的标志。默认值为false

[ -database <db_name> ]

要导出的数据库名称。默认值为""

-datadir <data_dir>

data目录的路径。默认值为"$HOME/.influxdb/data"

[ -end <timestamp> ]

时间范围的结束时间戳。必须是RFC3339格式

RFC3339需要非常具体的格式。例如,为了表示没有时区偏移(UTC+0),必须在秒后包含Z或+00:00。有效的RFC3339格式示例包括

无偏移

YYYY-MM-DDTHH:MM:SS+00:00
YYYY-MM-DDTHH:MM:SSZ
YYYY-MM-DDTHH:MM:SS.nnnnnnZ (fractional seconds (.nnnnnn) are optional)

有偏移

YYYY-MM-DDTHH:MM:SS-08:00
YYYY-MM-DDTHH:MM:SS+07:00

注意:有偏移时,避免用Z替换+或-符号。这可能会导致错误或打印Z(ISO 8601行为)而不是时区偏移。

[ -lponly ]

仅以行协议格式输出数据。不包含注释或数据定义语言(DDL),如CREATE DATABASE

[ -out <export_dir> ]

导出文件的存储位置。默认值为"$HOME/.influxdb/export"

[ -retention <rp_name> ]

导出时使用的保留策略名称。默认值为""

[ -start <时间戳> ]

时间范围开始的时间戳。时间戳字符串必须为RFC3339格式

[ -waldir <wal_dir> ]

WAL目录的路径。WAL的默认路径为"$HOME/.influxdb/wal"

示例

导出所有数据库并压缩输出
influx_inspect export -compress
从特定数据库和保留策略导出数据
influx_inspect export -database mydb -retention autogen
输出文件
# DDL
CREATE DATABASE MY_DB_NAME
CREATE RETENTION POLICY autogen ON MY_DB_NAME DURATION inf REPLICATION 1

# DML
# CONTEXT-DATABASE:MY_DB_NAME
# CONTEXT-RETENTION-POLICY:autogen
randset value=97.9296104805 1439856000000000000
randset value=25.3849066842 1439856100000000000

merge-schema

合并check-schema命令的多个模式文件。

语法

influx_inspect merge-schema [ options ]

选项

[ -conflicts-file <string> ]

应写入冲突数据的文件名。默认为conflicts.json

[ -schema-file <string> ]

输出文件的名称。默认为schema.json

report

显示所有分片的数据系列元数据。默认位置是$HOME/.influxdb

语法

influx_inspect report [ options ] <path>

选项

可选参数用括号括起来。

<path>

InfluxDB data目录的路径。

[ -pattern "<正则表达式/通配符>" ]

匹配包含文件的正则表达式或通配符模式。默认值为""

[ -detailed ]

报告详细基数估计的标志。默认值为false

[ -exact ]

报告确切基数计数而不是估计的标志。默认值为false。注意:这可能需要大量内存。

report-db

使用report-db命令来估计在迁移到InfluxDB Cloud (TSM)时数据库中数据的系列基数。InfluxDB Cloud (TSM)包括字段键在系列键中,因此唯一的字段键会影响总基数。InfluxDB 1.x数据库中的数据总系列基数可能与迁移到InfluxDB Cloud (TSM)时相同数据的系列基数不同。

语法

influx_inspect report-db [ options ]

选项

[ -c <int> ]

设置工作并发数。默认为1

-db-path <string>

必需:数据库的路径。

[ -detailed ]

在命令输出中包含字段、标签的计数。

[ -exact ]

报告确切的基数计数而不是估计。这种计算方法可能需要大量内存。

[ -rollup <string> ]

指定基数“汇总”级别——基数报告的粒度

  • t:总计
  • d:数据库
  • r:保留策略
  • m:测量(默认)

report-disk

使用report-disk命令来审查指定目录中每个分片和测量中的TSM文件磁盘使用情况。用于容量规划和识别哪个测量或分片占用了最多的磁盘空间。默认目录路径为~/.influxdb/data/

按数据库(db)、保留策略(rp)、分片(shard)、tsm文件(tsm_file)和测量(measurement)计算总磁盘大小。

语法

influx_inspect report-disk [ options ] <data_dir>

选项

可选参数用括号括起来。

[ -detailed ]

按测量报告磁盘使用情况。

reporttsi

报告执行以下操作

  • 计算数据库中的总确切系列基数。
  • 按测量分段基数,并发出这些基数值。
  • 为数据库中的每个分片发出总确切基数。
  • 为每个分片分段每个测量中的确切基数。
  • 可选地限制每个分片的结果为“前n个”。

当基数发生变化,不清楚是哪个测量引起的,以及何时发生这种变化时,reporttsi命令非常有用。为每个测量和每个分片估算准确的基数分解将有助于回答这些问题。

语法

influx_inspect reporttsi -db-path <path-to-db> [ options ]

选项

可选参数用括号括起来。

-db-path <path-to-db>

数据库的路径。

[ -top <n> ]

将结果限制为每个分片中的指定前n个数。

性能

reporttsi 命令使用简单的切片/映射来存储低基数度量,这可以节省初始化位图的开销。对于高基数度量,工具使用roaring 位图,这意味着在运行工具时我们不需要在堆上存储所有系列 ID。从低基数到高基数表示的转换在工具运行时自动完成。

verify

验证 TSM 文件的完整性。

语法

influx_inspect verify [ options ]

选项

可选参数用括号括起来。

-dir <存储根目录>

存储根目录的路径。默认值是 "/root/.influxdb"

verify-seriesfile

验证系列文件的完整性。

语法

influx_inspect verify-seriesfile [ options ]

选项

可选参数用括号括起来。

[ -c <数量> ]

指定为此命令运行并发工作进程的数量。默认值等于 GOMAXPROCS 的值。如果性能受到影响,您可以设置一个更低的值。

[ -dir <路径> ]

指定根数据路径。默认为 ~/.influxdb/data

[ -db <数据库名称> ]

将验证系列文件限制在数据目录中指定的数据库。

[ -series-file <路径> ]

指定特定系列文件的路径;覆盖 -db-dir

[ -v ]

启用详细日志记录。

verify-tombstone

验证墓碑的完整性。

语法

influx_inspect verify-tombstone [ options ]

查找并验证指定目录路径下(默认为 ~/.influxdb/data)的所有墓碑。文件是顺序验证的。

选项

可选参数用括号括起来。

[ -dir <路径> ]

指定根数据路径。默认为 ~/.influxdb/data。此路径可以是任意的,例如,它不需要是 InfluxDB 数据目录。

[ -v ]

启用详细日志记录。确认正在验证文件,并在每 500 万条墓碑条目后显示进度。

[ -vv ]

启用非常详细日志记录。显示墓碑文件中每个系列键和时间范围的进度。时间戳以自纪元(1970-01-01T00:00:00Z)以来的纳秒为单位显示。

[ -vvv ]

启用非常非常详细日志记录。显示墓碑文件中每个系列键和时间范围的进度。时间戳以RFC3339 格式显示,具有纳秒精度。

关于详细日志记录的说明:较高的详细级别会覆盖较低的级别。

注意事项

在导出 TSM 块时,系统无法访问元数据存储。因此,它始终使用无限持续时间和复制因子为 1 的保留策略。如果要将数据导入集群或需要不同的保留持续时间,最终用户可能需要在重新导入之前更改此设置。


这个页面有帮助吗?

感谢您的反馈!


Flux 的未来

Flux 将进入维护模式。您可以继续像现在一样使用它,无需更改您的代码。

了解更多

InfluxDB v3 增强功能和 InfluxDB 集群版现已全面上市

新功能,包括更快的查询性能和管理工具,推动了 InfluxDB v3 产品线的进步。InfluxDB 集群版现已全面上市。

InfluxDB v3 性能和功能

InfluxDB v3 产品线在查询性能方面取得了显著提升,并提供了新的管理工具。这些增强包括一个操作仪表板来监控您的 InfluxDB 集群的健康状态,InfluxDB 云专用环境中的单点登录(SSO)支持,以及用于令牌和数据库的新管理 API。

了解新的 v3 增强功能


InfluxDB 集群版全面上市

InfluxDB 集群版现已全面上市,为您在自管理的堆栈中提供 InfluxDB v3 的功能。

与我们谈谈 InfluxDB 集群版