当前位置: 首页 > news >正文

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 ./output

if [ $# -ne 4 ]; then
  echo "错误:参数数量不正确!"
  echo "用法: $0 <标签名称> <开始日期> <结束日期> <输出目录>"
  exit 1
fi

TAG="$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 ]; then
  echo "错误:开始日期不能晚于结束日期!"
  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" ]; then
    echo "警告:${CURRENT_DATE} 无数据,删除空文件"
    rm -f "$OUTPUT_FILE"
  fi
  

done

echo "导出完成!"



# 记录结束时间
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


相关文章:

  • 【结肠息肉AI论文集】Shallow Attention Network for Polyp Segmentation
  • Flutter容器组件深度解析
  • C++基础精讲-02
  • idea里面不能运行 node 命令 cmd 里面可以运行咋回事啊
  • 北京大学DeepSeek内部研讨系列:AI在新媒体运营中的应用与挑战|122页PPT下载方法
  • Excel通过VBA脚本去除重复数据行并保存
  • 2025年常见渗透测试面试题- PHP考察(题目+回答)
  • Kotlin 通用请求接口设计:灵活处理多样化参数
  • HackMyVM-Hotel
  • springboot返回所有接口详细信息
  • 2.Spring-注解开发定义bean/纯注解开发/Spring整合MyBatis(p21-p30)
  • 【动手学深度学习】现代卷积神经网络:ALexNet
  • vue实现目录锚点且滚动到指定区域时锚点自动回显——双向锚点
  • [特殊字符] 企业级Docker私有仓库实战:3步搭建Harbor安全仓库,镜像管理从此高效无忧
  • 【Vue 3 + Element Plus 实现产品标签的动态添加、删除与回显】
  • 【AI提示词】竞品分析专家
  • 解决IDEA中自动生成返回值带final修饰的问题
  • 揭秘大数据 | 19、软件定义的世界
  • 基于 C语言 的信号量实现与应用
  • C# 状态模式深度解析:构建灵活的状态驱动系统
  • 外包做一个网站一般多少钱/百度舆情监测平台
  • 武汉网站网站建设/抖音搜索seo排名优化
  • 厦门一个平台做网站啥的/十大软件免费下载网站排行榜
  • 网络公关公司有哪些/佛山百度快速排名优化
  • 潍坊外贸网站制作/软件开发交易平台
  • 天津交通网站建设/今天重大新闻国内最新消息