Verwenden Sie Elasticsearch, um Indexdaten regelmäßig zu löschen

Verwenden Sie Elasticsearch, um Indexdaten regelmäßig zu löschen

1. Manchmal verwenden wir ES

Aufgrund begrenzter Ressourcen oder geschäftlicher Anforderungen möchten wir nur Daten aus dem aktuellsten Zeitraum speichern. Daher ist es erforderlich, die Daten zu einem festgelegten Zeitpunkt zu löschen.

2. Schreiben Sie ein Skript

vim del_es_by_day.sh
#!/bin/bash
#Geplante Löschung des Elasticsearch-Index#Autor Menard 2019-3-25
Datum = `Datum -d "-7 Tage" "+%Y.%m.%d"`
/usr/bin/curl -v --user elastic:password -XDELETE "http://192.168.10.201:9200/*-$date"

Ausführbare Berechtigungen hinzufügen chmod +x del_es_by_day.sh

3. Erstellen Sie einen Index zum Testen

test machen-2019.03.18
Index setzen-2019.03.18 

4. Führen Sie das Skript Testergebnisse aus und Sie können sehen, dass die Löschung erfolgreich ist

5. Erledigen Sie geplante Aufgaben

crontab -e
00 01 * * * /workspace/script/del_es_by_day.sh

Ergänzung: Geplante Sicherung und Wiederherstellung von Indexdaten durch Elasticsearch

Geplantes Backup-Skript

Geplante Linux-Aufgaben verwenden den Cron-Dienst zur Ausführung

Schreiben von Cron-Ausdrücken für geplante Aufgaben

crontab -e #Geben Sie die Bearbeitung der geplanten Cron-Aufgabe ein

Geplante Aufgaben

*/1 * * * * /opt/scheduler/es_bk.sh >> /opt/scheduler/bk_log.txt 2>&1

Das Skript es_bk.sh im Verzeichnis /opt/scheduler/ wird jede Minute ausgeführt und der Dateninhalt wird in die Datei bk.log.txt im Verzeichnis /opt/scheduler geschrieben.

Überprüfen Sie den Inhalt des Skripts es_bk.sh

#!/bin/bash
echo '=======================================start========================================'
#Löschen Sie den Backup-Snapshot curl -i -X ​​​​DELETE localhost:9200/_snapshot/es_backup/snapshot01
#Erneut sichern curl -i -X ​​​​PUT localhost:9200/_snapshot/es_backup/snapshot01
echo '=======================================Ende==========================================='

Für ES-Sicherungsdaten ist ein Snapshot der zu sichernden Indexdaten erforderlich. Es muss ein Snapshot-Name angegeben werden und es kann nicht der gleiche Snapshot verwendet werden. Daher muss vor jeder Sicherung der alte Snapshot gelöscht und anschließend erneut gesichert werden.

ES-Sicherung und -Wiederherstellung

Erstellen Sie ein Backup-Repository (Verzeichnis)

mkdir -p /bk/es/data
#Berechtigungen ändern chmod -R 777 bk

Ändern Sie die Datei elasticsearch.yml und geben Sie den Lagerort an

Senden Sie eine Anfrage zum Initialisieren des Repositorys

curl -i -H ""'Inhaltstyp:application/json;charset=UTF-8'"" -X PUT --data '{"Typ": "fs","Einstellungen": {"Standort": "/bk/es/data"}}' localhost:9200/_snapshot/es_backup

es_backup ist der Backup-Namespace und kann beliebig angegeben werden

Erstellen des ersten Snapshots

curl -i -X ​​​​PUT localhost:9200/_snapshot/es_backup/snapshot01

Wir werden es_backup verwenden, um alle Indexdaten von es auf snapshot01 zu sichern. Natürlich können wir auch nur den angegebenen Index sichern.

curl -i -H ""'Content-Type:application/json;charset=UTF-8'"" -X PUT --data '{"indices": "'bk_user_index_server'"}' localhost:9200/_snapshot/es_backup/snapshot01

Geplante Aufgaben neu starten

systemctl Neustart cron

Index wiederherstellen

Zuordnung wiederherstellen

curl -i -H ""'Content-Type:application/json;charset=UTF-8'"" -X POST --data '{"indices": "'bk_user_index_server'"}' localhost:9200/_snapshot/es_backup/snapshot01/_restore

Alles wiederherstellen

curl -i -X ​​​​POST localhost:9200/_snapshot/es_backup/snapshot01/_restore

Das Obige ist meine persönliche Erfahrung. Ich hoffe, es kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden. Sollten dennoch Fehler oder unvollständige Überlegungen vorliegen, freue ich mich über eine Korrektur.

Das könnte Sie auch interessieren:
  • Implementierung der Indexaktion zur Elasticsearch-Quellcodeanalyse
  • Detaillierte Erläuterung der Shard-Zuweisung des Elasticsearch Recovery-Index
  • Beispiele für die grundlegenden Operationen zum Hinzufügen, Löschen, Ändern und Abfragen des Elasticsearch-Dokumentindex
  • Invertierter Index und Indexoperationen von Elasticsearch
  • ElasticSearch vernünftige Zuweisung des Indexfragmentierungsprinzips
  • ElasticSearch fügt Index-Codebeispielanalyse hinzu
  • Quellcodebeispiel für die Indexdatenfunktion von Elasticsearch

<<:  Detaillierte Erläuterung der MySQL-Indexauswahl und -Optimierung

>>:  CSS simuliert Float, um den Effekt eines zentrierten Textes zu erzielen, der das Bild links und rechts umgibt

Artikel empfehlen

MySQL 5.7.20 Green Edition Installation Detailliertes grafisches Tutorial

Lassen Sie uns zunächst verstehen, was MySQL ist....

So bedienen Sie Datei- und Ordnerberechtigungen unter Linux

Linux-Dateiberechtigungen Überprüfen wir zunächst...

Natives JS zur Realisierung eines springenden Balls

Aus einer Laune heraus habe ich eine Fallstudie ü...

Zwei Verwendungen von iFrame-Tags in HTML

Ich habe kürzlich an einem Projekt gearbeitet – B...

Detaillierte Erläuterung der Datentypprobleme bei der JS-Array-Indexerkennung

Als ich ein WeChat-Applet-Projekt schrieb, gab es...

Lösung für 1067, wenn Mysql in Windows startet

Ich habe erst vor ein paar Tagen mit der Arbeit b...