PHP で Elasticsearch を使用したリアルタイムのデータ バックアップおよびリカバリ方法
1. 背景
インターネット アプリケーションの急速な発展に伴い、信頼性と信頼性を確保するためにデータのリアルタイム バックアップおよびリカバリが不可欠です。システムの耐久性非常に重要です。 Web 開発で広く使用されているスクリプト言語である PHP は、データ ストレージおよび検索エンジンとして Elasticsearch を使用しており、PHP が提供する機能と組み合わせることで、シンプルかつ効率的なリアルタイム データのバックアップおよび復元方法を実装できます。
2. Elasticsearch の概要
Elasticsearch は、高いスケーラビリティと耐障害性を備えたオープンソースの分散型検索および分析エンジンであり、大量のリアルタイム データを保存、検索、分析できます。 Lucene ベースの転置インデックス テクノロジを使用して、高速な全文検索とデータ集約を実現します。
3. Elasticsearch へのデータのバックアップ
- Elasticsearch のインストールと起動
まず、サーバーに Elasticsearch をインストールして起動する必要があります。 Elasticsearch の公式 Web サイト (https://www.elastic.co/cn/elasticsearch/) にアクセスして、対応するインストール パッケージをダウンロードし、公式ドキュメントに従ってインストールして開始できます。
- Elasticsearch の PHP 拡張機能をインストールする
Elasticsearch は、さまざまなプログラミング言語と対話するためのクライアント ライブラリを提供します。 PHP では、公式に提供されている Elasticsearch PHP クライアント (https://www.elastic.co/guide/en/elasticsearch/client/php-api/current/index.html) を使用できます。 Composer ツールを使用してクライアント ライブラリをインストールできます:
1 | composer require elasticsearch/elasticsearch
|
ログイン後にコピー
- Elasticsearch に接続
次のコードを使用して Elasticsearch に接続し、Elasticsearch インスタンスを取得します:
1 2 3 | require 'vendor/autoload.php' ;
$client = ElasticsearchClientBuilder::create()->build();
|
ログイン後にコピー
- インデックスとマッピングの作成
データを挿入する前に、まずインデックスを作成し、データのマッピングを定義する必要があります。次のコード例では、「my_index」という名前のインデックスを作成し、「my_type」という名前のドキュメント タイプを定義します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | $params = [
'index' => 'my_index' ,
'body' => [
'mappings' => [
'my_type' => [
'properties' => [
'title' => [ 'type' => 'text' ],
'content' => [ 'type' => 'text' ],
'timestamp' => [ 'type' => 'date' ]
]
]
]
]
];
$response = $client ->indices()->create( $params );
|
ログイン後にコピー
- データの挿入
次のコードを使用して、Elasticsearch にデータを挿入します。
1 2 3 4 5 6 7 8 9 10 11 | $params = [
'index' => 'my_index' ,
'type' => 'my_type' ,
'body' => [
'title' => 'Example Title' ,
'content' => 'Example Content' ,
'timestamp' => time()
]
];
$response = $client ->index( $params );
|
ログイン後にコピー
- データのクエリ
次のコードを使用してデータをクエリします:
1 2 3 4 5 6 7 8 9 10 11 12 13 | $params = [
'index' => 'my_index' ,
'type' => 'my_type' ,
'body' => [
'query' => [
'match' => [
'title' => 'Example'
]
]
]
];
$response = $client ->search( $params );
|
ログイン後にコピー
上記は、データを Elasticsearch にバックアップするプロセス全体です。実際に基づいて作成できます。対応する変更と拡張が必要です。
4. Elasticsearch からデータを復元する
Elasticsearch でデータが誤って紛失または削除された場合は、バックアップ データに基づいて復元できます。データを復元する方法は次のとおりです。
- バックアップ データをクエリする
次のコードを使用して、バックアップ データをクエリします。
1 2 3 4 5 6 7 8 9 10 11 12 13 | $params = [
'index' => 'my_backup_index' ,
'type' => 'my_type' ,
'body' => [
'query' => [
'match' => [
'title' => 'Example'
]
]
]
];
$response = $client ->search( $params );
|
ログイン後にコピー
- バックアップを再挿入します。データを Elasticsearch に再挿入します
次のコードを使用して、バックアップ データを Elasticsearch に再挿入します:
1 2 3 4 5 6 7 8 9 10 | foreach ( $response [ 'hits' ][ 'hits' ] as $hit ) {
$params = [
'index' => 'my_index' ,
'type' => 'my_type' ,
'id' => $hit [ '_id' ],
'body' => $hit [ '_source' ]
];
$client ->index( $params );
}
|
ログイン後にコピー
上記の手順により、バックアップ データを Elasticsearch に再挿入できます。データ復旧を実現します。
5. 結論
PHP と Elasticsearch を組み合わせることで、シンプルかつ効率的なリアルタイムのデータ バックアップおよびリカバリ方法を実装できます。 Elasticsearchにデータをバックアップすることで、データの安全性と信頼性を確保すると同時に、Elasticsearchの強力なクエリ機能と分析機能を利用して、データの迅速な検索と分析を容易に実現できます。
以上がPHP の Elasticsearch を使用したリアルタイム データのバックアップと復元方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。