欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > influxdb数据导出笔记

influxdb数据导出笔记

2025/4/19 8:06:37 来源:https://blog.csdn.net/DraGon_HooRay/article/details/147112992  浏览:    关键词:influxdb数据导出笔记

influx query ‘from(bucket: “byt-grid-data”)
|> range(start: 2025-04-01T00:00:00Z, stop: 2025-04-02T23:59:59Z)
|> filter(fn: ® => r[“_measurement”] == “byt-gzsn-hsxn-sc-dcs”)
|> filter(fn: ® => r[“_field”] == “F_ACT_FZZ02_FB_O”)
|> filter(fn: ® => r[“host”] == “host1”)
|> toFile(file: “/tmp/restored_data.csv”)’

influx query ‘from(bucket: “byt-grid-data”)
|> range(start: 2025-04-01T00:00:00Z, stop: 2025-04-01T00:59:59Z)
|> filter(fn: ® => r[“_measurement”] == “byt-gzsn-hsxn-sc-dcs”)
|> filter(fn: ® => r[“_field”] == “F_ACT_FZZ02_FB_O”)
|> filter(fn: ® => r[“host”] == “host1”)’ > /tmp/t001.csv

查询InfluxDB并返回带注释的CSV

influx query ‘from(bucket: “byt-grid-data”)
|> range(start: 2025-04-10T00:00:00Z, stop: 2025-04-11T01:00:00Z)
|> filter(fn: ® => r[“_measurement”] == “byt-gzsn-hsxn-sc-dcs”)
|> filter(fn: ® => r[“_field”] == “F_ACT_FZZ02_FB_O”)
|> filter(fn: ® => r[“host”] == “host1”)
|> timeShift(duration: 8h)’ --raw > /tmp/t002.csv

influx query ‘from(bucket: “byt-grid-data”)
|> range(start: 2025-04-10T00:00:00+08:00, stop: 2025-04-11T00:00:00+08:00)
|> filter(fn: ® => r[“_measurement”] == “byt-gzsn-hsxn-sc-dcs”)
|> filter(fn: ® => r[“_field”] == “F_ACT_FZZ02_FB_O”)
|> filter(fn: ® => r[“host”] == “host1”)
|> timeShift(duration: 8h)’ --raw > /tmp/t002.csv

登陆ftp

lftp -u hl,Admin@123 -p 63036 122.224.62.130

惠水西南边缘端

核心脚本

/root/bin/export_influx.sh

#!/bin/bash# 使用方法: ./export_influx.sh <标签名称> <开始日期> <结束日期> <输出目录>
# 示例: ./export_influx.sh F_ACT_FZZ02_FB_O 2025-04-01 2025-04-03 ./outputif [ $# -ne 4 ]; thenecho "错误:参数数量不正确!"echo "用法: $0 <标签名称> <开始日期> <结束日期> <输出目录>"exit 1
fiTAG="$1"
START_DATE="$2"
END_DATE="$3"
OUTPUT_DIR="$4"# 创建输出目录
OUTPUT_DIR="$OUTPUT_DIR"/"$TAG"
mkdir -p "$OUTPUT_DIR"# 日期格式校验
date -d "$START_DATE" +%Y-%m-%d >/dev/null 2>&1 || { echo "无效的开始日期格式"; exit 1; }
date -d "$END_DATE" +%Y-%m-%d >/dev/null 2>&1 || { echo "无效的结束日期格式"; exit 1; }# 将日期转换为秒数(用于循环)
START_SEC=$(date -d "$START_DATE" +%s)
END_SEC=$(date -d "$END_DATE" +%s)if [ $START_SEC -gt $END_SEC ]; thenecho "错误:开始日期不能晚于结束日期!"exit 1
fi# 记录开始时间
start_time_p=$(date +%s)
echo "开始时间: $(date -d @"$start_time_p" '+%Y-%m-%d %H:%M:%S')"# 按天循环处理
current_sec=$START_SEC
while [ $current_sec -lt $END_SEC ]; do# 获取当前循环日期CURRENT_DATE=$(date -d @$current_sec +%Y-%m-%d)# 增加一天current_sec=$((current_sec + 86400))STOP_DATE=$(date -d @$current_sec +%Y-%m-%d)# 生成时间范围(当日00:00:00到次日00:00:00)START_TIME="${CURRENT_DATE}T00:00:00+08:00"STOP_TIME="${STOP_DATE}T00:00:00+08:00"# 生成输出文件名OUTPUT_FILE="${OUTPUT_DIR}/${CURRENT_DATE}.csv"echo "正在导出 ${CURRENT_DATE} 的数据到 ${OUTPUT_FILE}..."# 执行查询命令influx query "from(bucket: \"byt-grid-data\")|> range(start: $START_TIME, stop: $STOP_TIME)|> filter(fn: (r) => r[\"_measurement\"] == \"byt-gzsn-hsxn-sc-dcs\")|> filter(fn: (r) => r[\"_field\"] == \"$TAG\")|> filter(fn: (r) => r[\"host\"] == \"host1\")|> timeShift(duration: 8h)" --raw > "$OUTPUT_FILE"# 检查文件是否为空if [ ! -s "$OUTPUT_FILE" ]; thenecho "警告:${CURRENT_DATE} 无数据,删除空文件"rm -f "$OUTPUT_FILE"fidoneecho "导出完成!"# 记录结束时间
end_time_p=$(date +%s)# 计算耗时
elapsed_time=$((end_time_p - start_time_p))# 格式化耗时
days=$((elapsed_time / 60 / 60 / 24))
hours=$((elapsed_time / 60 / 60 % 24))
minutes=$((elapsed_time / 60 % 60))
seconds=$((elapsed_time % 60))# 打印耗时
echo "开始时间: $(date -d @"$start_time_p" '+%Y-%m-%d %H:%M:%S')"
echo "结束时间: $(date -d @"$end_time_p" '+%Y-%m-%d %H:%M:%S')"
printf "耗时: %02dd%02dh%02dm%02ds\n" $days $hours $minutes $seconds

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词