PolarSearch は、スナップショット機能を使用して、クラスターから Object Storage Service (OSS) バケットにインデックスデータをバックアップしたり、OSS からデータを復元したりすることをサポートしています。この機能により、PolarSearch クラスター間のデータ移行や、カスタムでのバックアップと復元が可能になり、データ保護と転送のための柔軟で低コストなソリューションを提供します。
この機能は現在カナリアリリース段階です。この機能を使用するには、チケットを送信して Alibaba Cloud サポートに連絡し、アカウントでの機能有効化をリクエストしてください。
適用範囲
ご利用の PolarSearch のバージョンは 2.19.3 以降である必要があります。
説明PolarSearch には、検索エンドポイントを使用して PolarSearch にアクセスし、
version.numberで PolarSearch のバージョンを表示できます。Alibaba Cloud Object Storage Service (OSS) を有効にし、スナップショットを保存するためのバケットを作成済みであること。
Resource Access Management (RAM) ユーザーを準備し、その RAM ユーザーに
AliyunOSSFullAccessアクセスポリシーを付与します。詳細については、「RAM ユーザーへの権限付与」をご参照ください。
課金詳細
スナップショット機能は無料です。ただし、OSS バケットに保存されているスナップショットファイルには、OSS のストレージ料金とリクエスト料金が発生します。課金の詳細については、「OSS の課金概要」をご参照ください。
スナップショットリポジトリの登録
スナップショット機能を使用する前に、スナップショットリポジトリを登録して OSS バケットに関連付ける必要があります。次の API を使用してリポジトリを作成します。
PUT /_snapshot/{repo-name}
{
"type": "oss",
"settings": {
"endpoint": "{endpoint}",
"bucket": "{bucket-name}",
"base_path": "{path-name}",
"region": "{region}",
"access_key": "{your-AccessKey-ID}",
"secret_key": "{your-AccessKey-Secret}",
"session_token": "{your-STS-Token}"
}
}パラメーターの説明
パラメーター | 説明 |
| リポジトリ名。カスタマイズ可能です。 |
| リポジトリのタイプ。 |
| OSS バケットのエンドポイント。詳細については、「リージョンとエンドポイント」をご参照ください。 |
| OSS バケットの名前。 |
| (任意) スナップショットファイルを保存する OSS バケット内のルートディレクトリパスを指定します。 |
| バケットが配置されているリージョンを指定します。 |
| ご利用の AccessKey ID。 |
| ご利用の AccessKey Secret。 |
| (任意) RAM ロールの Security Token Service (STS) トークン。 重要 STS トークンを使用する場合は、 |
例
次のパラメーターを実際の情報に置き換えてください。
curl -X PUT "https://{pc-endpoint}:3001/_snapshot/{repo-name}" \
-u "{username}:{passwd}" \
-H "Content-Type: application/json" \
-d '{
"type": "oss",
"settings": {
"endpoint": "{endpoint}",
"bucket": "{bucket-name}",
"base_path": "{path-name}",
"region": "{region}",
"access_key": "{your-AccessKey-ID}",
"secret_key": "{your-AccessKey-Secret}"
}
}'
スナップショットの作成:OSS へのデータバックアップ
スナップショットリポジトリを登録した後、次のコマンドを実行して指定したインデックスのスナップショットを作成します。次の API を使用してスナップショットを作成します。
PUT /_snapshot/{repo-name}/{snapshot-name}?wait_for_completion=true
{
"indices": "{index-name}",
"ignore_unavailable":false
}パラメーターの説明
パラメーターカテゴリ | パラメーター名 | 説明 |
リクエストパラメーター |
| スナップショット操作が完了するまで同期的に待機するかどうか。デフォルトは
|
リクエストボディパラメーター |
| バックアップするインデックスを指定します。ワイルドカード文字 ( 説明 ワイルドカード文字 ( |
| 指定したインデックスが存在しない場合にそれを無視してスナップショットの作成を続行するかどうか。デフォルトは | |
| 部分的なスナップショットの作成を許可するかどうか。 |
例
次のパラメーターを実際の情報に置き換えてください。
curl -X PUT "https://{pc-endpoint}:3001/_snapshot/{repo-name}/{snapshot-name}?wait_for_completion=true" \
-u "{username}:{passwd}" \
-H "Content-Type: application/json" \
-d '{
"indices": "{index-name}",
"ignore_unavailable": false
}'スナップショットの表示
OSS スナップショットリポジトリ内のすべてのスナップショット情報を表示します。次の API を使用してリストを取得します。
GET /_snapshot/{repo-name}/_all?pretty例
次のパラメーターを実際の情報に置き換えてください。
curl -X GET "https://{pc-endpoint}:3001/_snapshot/{repo-name}/_all?pretty" -u "{username}:{passwd}"データの復元
次のコマンドを実行して、指定したスナップショットからインデックスデータを復元します。次の API を使用して復元操作を実行します。
ある PolarSearch クラスターから別の PolarSearch クラスターにスナップショットを解凍するには、送信先の PolarSearch クラスターは、ソース PolarSearch クラスターと同じ スナップショットリポジトリを登録する必要があります。 同じ PolarSearch クラスター内で解凍操作を実行する場合、再登録は不要で、データを直接解凍できます。
POST /_snapshot/{repo-name}/{snapshot-name}/_restore?wait_for_completion=true
{
"indices": "{index-name}",
"ignore_unavailable": true
}パラメーターの説明
パラメーターカテゴリ | パラメーター名 | 説明 |
リクエストパラメーター |
| スナップショットの復元が完了するまで同期的に待機するかどうか。デフォルトは
|
リクエストボディパラメーター |
| 復元するインデックスを指定します。ワイルドカード文字 ( |
| 指定したインデックスが存在しない場合にそれを無視してスナップショットの作成を続行するかどうか。デフォルトは | |
| 部分的なスナップショットの作成を許可するかどうか。 | |
| 復元時にスナップショット内のインデックス設定を上書きします。たとえば、復元先クラスターの構成に合わせてレプリカ数を変更します。 | |
| 復元時に無視するインデックス設定のリストを指定します。通常、元の固有の構成を無視するために使用されます。 |
例
次のパラメーターを実際の情報に置き換えてください。
curl -X POST "https://{pc-endpoint}:3001/_snapshot/{repo-name}/{snapshot-name}/_restore?wait_for_completion=true" \
-u "{username}:{passwd}" \
-H "Content-Type: application/json" \
-d '{
"indices": "{index-name}",
"ignore_unavailable": true
}'