-
Notifications
You must be signed in to change notification settings - Fork 181
/
Copy pathreset-bktree.sh
61 lines (53 loc) · 1.77 KB
/
reset-bktree.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#!/bin/bash
# Default connection details
REDIS_HOST="localhost"
REDIS_PORT="6379"
REDIS_PASSWORD=""
CLICKHOUSE_HOST="localhost"
CLICKHOUSE_PORT="8123"
CLICKHOUSE_USER="default"
CLICKHOUSE_PASSWORD="password"
CLICKHOUSE_DB="default"
# Function to print usage
usage() {
echo "Usage: $0 -d <dataset_id> [-rh <redis_host>] [-rp <redis_port>] [-rw <redis_password>] [-ch <clickhouse_host>] [-cp <clickhouse_port>] [-cu <clickhouse_user>] [-cw <clickhouse_password>] [-cd <clickhouse_db>]"
exit 1
}
# Parse command line arguments
while getopts "d:rh:rp:rw:ch:cp:cu:cw:cd:" opt; do
case $opt in
d) DATASET_ID="$OPTARG" ;;
rh) REDIS_HOST="$OPTARG" ;;
rp) REDIS_PORT="$OPTARG" ;;
rw) REDIS_PASSWORD="$OPTARG" ;;
ch) CLICKHOUSE_HOST="$OPTARG" ;;
cp) CLICKHOUSE_PORT="$OPTARG" ;;
cu) CLICKHOUSE_USER="$OPTARG" ;;
cw) CLICKHOUSE_PASSWORD="$OPTARG" ;;
cd) CLICKHOUSE_DB="$OPTARG" ;;
*) usage ;;
esac
done
# Check if dataset_id is provided
if [ -z "$DATASET_ID" ]; then
echo "Error: dataset_id is required"
usage
fi
# Construct Redis CLI command
REDIS_CMD="redis-cli -h $REDIS_HOST -p $REDIS_PORT"
if [ -n "$REDIS_PASSWORD" ]; then
REDIS_CMD="$REDIS_CMD -a $REDIS_PASSWORD"
fi
# Delete key from Redis
echo "Deleting key *$DATASET_ID from Redis..."
$REDIS_CMD DEL "*$DATASET_ID"
# Delete row from ClickHouse
echo "Deleting row with dataset_id=$DATASET_ID from ClickHouse..."
clickhouse-client \
--host "$CLICKHOUSE_HOST" \
--port "$CLICKHOUSE_PORT" \
--user "$CLICKHOUSE_USER" \
--password "$CLICKHOUSE_PASSWORD" \
--database "$CLICKHOUSE_DB" \
--query "ALTER TABLE dataset_words_last_processed DELETE WHERE dataset_id = '$DATASET_ID'"
echo "Cleanup completed for dataset_id: $DATASET_ID"