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

js, um einen interessanten Countdown-Effekt zu erzielen

js interessanter Countdown-Fall. Zu Ihrer Informa...

So implementieren Sie eine Array-Lazy-Evaluation-Bibliothek in JavaScript

Inhaltsverzeichnis Überblick So erreichen Sie es ...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 5.7.11 Zip

1. Laden Sie das MySQL 5.7.11 Zip-Installationspa...

Verkürzen Sie die Seiten-Rendering-Zeit, damit die Seite schneller läuft

Wie kann die Seiten-Rendering-Zeit im Browser so ...

So verstehen Sie die semantische HTML-Struktur

Ich glaube, jeder kennt HTML und CSS, kennt die T...

Beispiel für das Erreichen eines Deckeneffekts mit dem WeChat-Applet

Inhaltsverzeichnis 1. Umsetzung 2. Probleme 3. Üb...

So implementieren Sie den neuen Operator von JavaScript selbst

Inhaltsverzeichnis Konstruktor neuer Operator Imp...

61 Dinge, die jeder Webentwickler wissen sollte

Normalerweise müssen Sie die Reden aller Teilnehme...

Telnet wird im Alpine-Image zu busybox-extras verschoben

Das Telnet im Alpine-Image wurde nach Version 3.7...

So installieren und implementieren Sie MySQL 8.0 unter CentOS8

Die offizielle Version 8.0.11 von MySQL 8 wurde v...

Zusammenfassung der Verwendung von TypeScript in React-Projekten

Vorwort Dieser Artikel konzentriert sich auf die ...

MySql implementiert die Seitenabfragefunktion

Zunächst müssen wir klarstellen, warum wir pagini...