elasticsearchを使用してインデックスデータを定期的に削除する

elasticsearchを使用してインデックスデータを定期的に削除する

1. ESを使うこともある

リソースが限られている、またはビジネス上のニーズにより、最新の期間のデータのみを保存したいため、スケジュールされた時間にデータを削除する必要があります。

2. スクリプトを書く

vim del_es_by_day.sh
#!/bin/bash
#elasticsearch インデックスのスケジュールされた削除#author menard 2019-3-25
date=`date -d "-7日" "+%Y.%m.%d"`
/usr/bin/curl -v --user elastic:password -XDELETE "http://192.168.10.201:9200/*-$date"

実行権限を追加する chmod +x del_es_by_day.sh

3. テスト用のインデックスを作成する

テストを実行-2019.03.18
インデックスを付ける-2019.03.18 

4. スクリプトのテスト結果を実行すると、削除が成功したことがわかります。

5. スケジュールされたタスクを実行する

crontab -e
00 01 * * * /ワークスペース/スクリプト/del_es_by_day.sh

補足: Elasticsearch のスケジュールされたバックアップ インデックス データとリカバリ

スケジュールされたバックアップ スクリプト

Linuxのスケジュールされたタスクはcronサービスを使用して実行します

スケジュールされたタスクの cron 式の作成

crontab -e #cronスケジュールタスク編集に入る

スケジュールされたタスク

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

/opt/scheduler/ ディレクトリ内の es_bk.sh スクリプトは 1 分ごとに実行され、データの内容は /opt/scheduler ディレクトリ内の bk.log.txt ファイルに書き込まれます。

es_bk.shスクリプトの内容を確認する

#!/bin/bash
エコー '============================================================================='
#バックアップスナップショットを削除します curl -i -X ​​DELETE localhost:9200/_snapshot/es_backup/snapshot01
#再度バックアップ curl -i -X ​​PUT localhost:9200/_snapshot/es_backup/snapshot01
エコー '============================================================================'

ES バックアップ データには、バックアップするインデックス データのスナップショットが必要です。スナップショット名を指定する必要があり、同じスナップショットは使用できません。そのため、各バックアップの前に古いスナップショットを削除し、再度バックアップする必要があります。

ES バックアップとリカバリ

バックアップリポジトリ(ディレクトリ)を作成する

mkdir -p /bk/es/data
#権限を変更する chmod -R 777 bk

elasticsearch.ymlファイルを変更し、倉庫の場所を指定します。

リポジトリを初期化するためのリクエストを送信する

curl -i -H ""'Content-Type:application/json;charset=UTF-8'"" -X PUT --data '{"type": "fs","settings": {"location": "/bk/es/data"}}' localhost:9200/_snapshot/es_backup

es_backupはバックアップ名前空間であり、任意に指定できます。

最初のスナップショットを作成する

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

es_backup を使用して、es のすべてのインデックス データを snapshot01 にバックアップします。 もちろん、指定したインデックスのみをバックアップすることもできます。

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

スケジュールされたタスクを再開する

systemctl 再起動 cron

インデックスを復元

割り当てを復元する

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

すべてを復元

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

上記は私の個人的な経験です。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。間違いや不備な点がありましたら、遠慮なくご指摘ください。

以下もご興味があるかもしれません:
  • Elasticsearch ソースコード分析インデックスアクション実装
  • Elasticsearch Recoveryインデックスのシャード割り当ての詳細な説明
  • Elasticsearch ドキュメント インデックスの基本操作の追加、削除、変更、クエリの例
  • Elasticsearch の逆インデックスとインデックス操作
  • ElasticSearch のインデックス断片化の合理的な割り当て原則
  • ElasticSearch にインデックスコード例の分析機能を追加
  • Elasticsearch インデックス データ関数のソース コード例

<<:  MySQLのインデックス選択と最適化の詳細な説明

>>:  CSSはフロートをシミュレートして、画像の左右を囲む中央テキストの効果を実現します。

推薦する

Mysql で期間の交差をクエリする方法

MySQLクエリ期間の交差使用シナリオデータベース テーブルには、starttime と endti...

Webデザインの経験:ナビゲーションシステムをシンプルにする

<br />友人と話し合っていたとき、フレームワークのレイヤー設計の中で最も核となるのは...

1つのSQL文でMySQLの重複排除が完了し、1つが保持されます。

数日前、ある要件に取り組んでいたとき、MySQL で重複レコードをクリーンアップする必要がありました...

MySQLログに関する知識のまとめ

目次SQL実行順序ビンログ何ですかいつ生産されるのか何の役に立つんだディスクはいつドロップされますか...

MySQL マスタースレーブ構成の学習ノート

● 新しいプロジェクトのセキュリティを確保するためにクラウド データを購入する予定でした。 Alib...

MySQLを5.7にアップグレードすると、WordPressはデータをインポートするときにエラー1067を報告します

最近MySQLを5.7にアップグレードしましたが、WordPressでデータのインポート時にエラーが...

インタビューの質問: ホーリー グレイル レイアウトとダブル ウィング レイアウトの違い

序文今日は、聖杯レイアウトとダブルウィングレイアウト、そしてそれらの違いについてお話しします。この2...

MySQL InnoDBストレージエンジンについて簡単に説明します

序文:ストレージ エンジンはデータベースの中核です。MySQL の場合、ストレージ エンジンはプラグ...

MySQL SQL ステートメントが遅い場合の一般的な原因と解決策

1. インデックス不足または無効なインデックスによるクエリの遅延数千万件のデータを含むテーブルで、イ...

MySQL で URL タイムゾーンの罠を回避する方法

序文最近、MySQL 6.0.x 以降の jar を使用する場合、コード URL リンクで serv...

VMware 12 での Ubuntu 16.04 インストール チュートリアル

この記事では、VMware 12でのUbuntu 16.04のインストールチュートリアルを参考までに...

MySQL でのトランザクションの使用方法

基礎トランザクションは、SQL ステートメントのグループに対するアトミック操作です。つまり、グループ...

Zabbix の psk 暗号化と zabbix_get 値の組み合わせ

Zabbix バージョン 3.0 以降、Zabbix サーバー、Zabbix プロキシ、Zabbix...

初心者のためのウェブサイト構築入門 - ウェブサイト構築に必要な条件とツール

今日は、初心者の次のような質問に答えます。学ぶ勇気さえあれば、自分のウェブサイトを構築するのは簡単で...

Linuxターミナルでの一般的なMySQL操作コマンドの詳細な説明

仕える: # chkconfig --list すべてのシステム サービスを一覧表示します # ch...