写一个定时删两个小时前Clickhouse表的脚本,表名配置在配置文件中
时间: 2024-03-19 13:43:25 浏览: 119
好的,以下是一个基本的Python脚本,可以根据配置文件中的表名定时删除两个小时前的数据:
```python
import clickhouse_driver
from datetime import datetime, timedelta
import configparser
# 读取配置文件
config = configparser.ConfigParser()
config.read('config.ini')
table_name = config.get('settings', 'table_name')
# 连接Clickhouse数据库
conn = clickhouse_driver.connect(
host=config.get('database', 'host'),
port=config.getint('database', 'port'),
database=config.get('database', 'database'),
user=config.get('database', 'user'),
password=config.get('database', 'password')
)
# 计算删除的时间范围
now = datetime.now()
two_hours_ago = now - timedelta(hours=2)
# 删除数据
sql = f"ALTER TABLE {table_name} DELETE WHERE time < '{two_hours_ago.isoformat()}'"
cursor = conn.cursor()
cursor.execute(sql)
```
你可以将这个脚本保存为一个.py文件,并使用定时任务工具(比如cron)来定期运行。比如,你可以将以下命令添加到crontab中,每两个小时自动执行一次:
```
0 */2 * * * /usr/bin/python3 /path/to/your/script.py
```
这样,就可以每两个小时定时删除指定的Clickhouse表中两个小时前的数据了。
阅读全文