123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222 |
- """
- """
- from influxdb import InfluxDBClient
- import datetime
- import time
- class Client(InfluxDBClient):
- def __init__(self, host='fra-middleware-influx', port=8086, database='vms'):
- """
- 内部访问:
- host: fra-middleware-influx
- port: 8086
- 远程访问:
- host: 192.168.30.59
- port: 7080
- """
- """
- def filter
- def remove
- def append
- def add
- def write
- def read
- def save
- def add
- def set
- def get
- def put
- def craete
- def delete
- def update
- def select
- """
- self.database = database
- super().__init__(host, port, 'admin', 'admin', database)
- self.create_database(database)
- def add_item(self, table, key_dict=dict(), value_dict=dict()):
- """保存单条"""
- _points = [
- {
- 'measurement': table,
- 'time': datetime.datetime.now().isoformat('T'),
- 'tags': key_dict,
- 'fields': value_dict
- }
- ]
- return self.write_points(_points, database=self.database)
- def add_items(self, table, key_list=list(), value_list=list()):
- """保存多条"""
- _points = list()
- for key, value in zip(key_list, value_list):
- _point = {
- 'measurement': table,
- 'time': datetime.datetime.now().isoformat('T'),
- 'tags': key,
- 'fields': value
- }
- _points.append(_point)
- return self.write_points(_points, database=self.database)
- def filter_by_time_range(self, table, start_ts, end_ts):
- """按时时间筛选"""
- start_at = time.strftime('%Y-%m-%dT%H:%M:%SZ', time.localtime(start_ts))
- end_at = time.strftime('%Y-%m-%dT%H:%M:%SZ', time.localtime(end_ts))
- sql = f"select * from {table} "
- sql += f"where time >= '{start_at}' and time <= '{end_at}'"
- sql += f'order by time desc;'
- result = self.query(sql, database=self.database)
- return result.get_points()
- def remove_one(self, table, k, v):
- """按时时间筛选"""
- sql = f"delete from {table} where \"{k}\"=\"{v}\";"
- return self.query(sql, database=self.database)
- def delete_table(self, table):
- return self.drop_measurement(table)
- if __name__ == '__main__':
- """
- sudo python3 -m pip install influxdb
- sudo python3 /home/server/projects/taiwuict/cscec-8bur-vms/supplement-python/clients/db_influx.py
- """
- import time
-
-
-
-
-
-
- xdb = Client(host='192.168.1.242', port=7080, database='vms')
-
- s = time.time() - (86400 * 100)
- e = time.time()
- out = xdb.filter_by_time_range('FaceLog', s, e)
- for i in out:
- print(i)
- break
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
|