This commit is contained in:
DingZQ
2025-05-05 20:52:07 +08:00
parent 24226123d6
commit ce557a7c6c

View File

@@ -1,4 +1,4 @@
from influxdb_client import InfluxDBClient, BucketsApi, WriteApi, OrganizationsApi, Point, QueryApi, WriteOptions
from influxdb_client import InfluxDBClient, BucketsApi, WriteApi, OrganizationsApi, Point, QueryApi, WriteOptions, DeleteApi
from typing import List, Dict
from datetime import datetime, timedelta, timezone
from influxdb_client.client.write_api import SYNCHRONOUS, ASYNCHRONOUS
@@ -3489,7 +3489,29 @@ def upload_cleaned_SCADA_data_to_influxdb(file_path: str, bucket: str="SCADA_dat
write_api.close()
client.close()
# 2025/05/05 DingZQ
# 删除某一天的数据
def delete_data(delete_date: str, bucket: str) -> None:
"""
删除某一天的数据
:param delete_date: 删除的日期,格式为 'YYYY-MM-DD'
:param bucket: 选择要删除数据的bucket
:return:
"""
client = get_new_client()
if not client.ping():
print("{} -- Failed to connect to InfluxDB.".format(datetime.now().strftime('%Y-%m-%d %H:%M:%S')))
start_time = (datetime.strptime(delete_date, "%Y-%m-%d") - timedelta(days=1)).replace(hour=16, minute=0, second=0, tzinfo=timezone.utc).isoformat()
stop_time = datetime.strptime(delete_date, "%Y-%m-%d").replace(hour=15, minute=59, second=59, tzinfo=timezone.utc).isoformat()
# 构造删除谓词InfluxDB Delete API 要求的 SQL-like 语句)
# 注意:字段名用 _fieldmeasurement 用 _measurement标签直接写标签名
predicate = f'date="{delete_date}"'
delete_api: DeleteApi = client.delete_api()
delete_api.delete(start=start_time, stop=stop_time, predicate=predicate, bucket=bucket)
# 示例调用
if __name__ == "__main__":
@@ -3618,7 +3640,10 @@ if __name__ == "__main__":
# print(leakage)
# 示例upload_cleaned_SCADA_data_to_influxdb
upload_cleaned_SCADA_data_to_influxdb(file_path='./标准cleaned_demand_data.csv')
# upload_cleaned_SCADA_data_to_influxdb(file_path='./标准cleaned_demand_data.csv')
# 示例delete_data
delete_data(delete_date='2025-05-04', bucket='SCADA_data')
# 示例query_cleaned_SCADA_data_by_device_ID_and_timerange
# result = query_cleaned_SCADA_data_by_device_ID_and_timerange(query_ids_list=['9485'], start_time='2024-03-24T00:00:00+08:00',