5

influxdb查看日数据增量

 2 years ago
source link: https://www.ishells.cn/archives/influxdb%E6%9F%A5%E7%9C%8B%E6%97%A5%E6%95%B0%E6%8D%AE%E5%A2%9E%E9%87%8F
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

influxdb查看日数据增量

11 次访问 2021-09-28
枕头下臭袜子
Scroll Down

业务上有使用influxdb收集一些数据,想要看一下日数据增量大概多少,但是没找到什么有效的手段能够直接看到日数据增量

思索了一下选择了曲线救国的方法,从influxdb中导出某些时间段的日数据,以此达到估算日数据增量的目的

对influxdb不是很熟悉,从参考一看到可以使用influx_inspect export命令将数据导出到指定目录

# 执行时间为 9.26 日influx_inspect export \-datadir "/var/lib/influxdb/data" \-waldir "/var/lib/influxdb/wal"  \-out " temporary_influxdb_data " \-database telegraf \-start 2021-09-25T08:00:01Z
 influx_inspect export     -datadir "XXXXX"               # influxdb 默认的数据存储位置    -waldir  "XXXXX"               # influxdb 默认的数据交换位置    -out     "XXXXX"               # 导出数据文件的文件名    -database XXXXX                # 指定要导出数据的数据库    -start 2021-09-25T08:00:01Z    # 指定要导出的数据的起始时间

image.png

执行该命令导出 9.25-9.26 的数据足足有 5G ,按理说数据量应该达不到这么大,于是又根据参考二使用了另一个命令influxd backup

# influxd backup -h Creates a backup copy of specified InfluxDB OSS database(s) and saves the files in an Enterprise-compatibleformat to PATH (directory where backups are saved).  Usage: influxd backup [options] PATH     -portable # 以较新的InfluxDB Enterprise兼容格式生成备份文件。强烈建议所有InfluxDB OSS用户使用。            Required to generate backup files in a portable format that can be restored to InfluxDB OSS or InfluxDB             Enterprise. Use unless the legacy backup is required.    -host <host:port> # InfluxDB OSS实例的主机和端口。默认值为'127.0.0.1:8088'。远程连接所必需。例:-host 127.0.0.1:8088            InfluxDB OSS host to back up from. Optional. Defaults to 127.0.0.1:8088.    -db <name> # 要备份的数据库。如果未指定,则备份所有数据库。            InfluxDB OSS database name to back up. Optional. If not specified, all databases are backed up when             using '-portable'.    -rp <name> # 备份的保留策略。如果未指定,则默认为使用所有保留策略。如果指定,则需要使用 -database 指定数据库实例。            Retention policy to use for the backup. Optional. If not specified, all retention policies are used by             default.    -shard <id> # 要备份的分片的分片ID。如果指定,-retention <name> 则为必需。            The identifier of the shard to back up. Optional. If specified, '-rp <rp_name>' is required.    -start <2015-12-24T08:12:23Z>             # 设置备份数据的时间起点(RFC3339格式),不兼容-since。例:-start 2015-12-24T08:12:23Z            Include all points starting with specified timestamp (RFC3339 format).             Not compatible with '-since <timestamp>'.    -end <2015-12-24T08:12:23Z>            # 排除指定时间戳记(RFC3339格式)之后的所有结果,不兼容-since。如果不使用-start,则将从1970-01-01开始备份所有数据。例:-end 2015-12-31T08:12:23Z            Exclude all points after timestamp (RFC3339 format).             Not compatible with '-since <timestamp>'.    -since <2015-12-24T08:12:23Z>            # 在指定的时间戳记RFC3339格式之后执行增量备份。-start除非有旧版备份支持,否则请改用。建议使用 -start 参数。            Create an incremental backup of all points after the timestamp (RFC3339 format). Optional.             Recommend using '-start <timestamp>' instead.    -skip-errors # 跳过备份过程中发生的错误。            Optional flag to continue backing up the remaining shards when the current shard fails to backup.  
influxd backup -portable -db xxxxx -start 2021-09-26T11:01:23Z  -end 2021-09-27T11:01:23Z /tmp  1>/dev/null#

执行 backup 命令会生成一定的数据,并且创建保存到指定的目录中。
如图所示:

.meta文件是 metastore 副本数据,包涵用户名和密码
.tar.gz文件是分片副本数据
.manifest文件是json格式的,用于描述收集的备份数据内容说明

image.png

image.png

如上图所示,数据量大的时候压缩包也就500多MBit的数据量,实测解压后也就接近1GiB的数据。

influx_inspect exportinfluxd backup对比之下,数据量一下少了3、4个G,主要还是不熟悉,所以我猜测可能多出来的那一部分是wal的数据,于是参考三参考四知道了大概wal存的是什么数据。
image.png

随后又去influxdb数据目录看了一下文件格式,tsm类型,又根据tsm搜索了一波参考三参考五

1、https://blog.csdn.net/qq_40692113/article/details/96907645
2、https://juejin.cn/post/6844904193061289997#heading-11
3、https://blog.fatedier.com/2016/08/05/detailed-in-influxdb-tsm-storage-engine-one/
4、https://zhuanlan.zhihu.com/p/104349911
5、https://www.modb.pro/db/107200


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK