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>
]
通过标签值正则表达式过滤数据。
示例
指定_series
和index
目录的路径
$ 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 的保留策略。如果要将数据导入集群或需要不同的保留持续时间,最终用户可能需要在重新导入之前更改此设置。
这个页面有帮助吗?
感谢您的反馈!