PolarSearch では、スナップショット機能を使用してクラスターのインデックスデータをご利用の Object Storage Service (OSS) バケットにバックアップしたり、OSS バケットからデータを復元したりできます。この機能は、クラスター間のデータ移行や PolarSearch クラスター向けのカスタムバックアップと復元に利用でき、柔軟かつ低コストなデータ保護および転送ソリューションを提供します。
この機能は現在プレビュー段階です。機能をご利用になるには、チケットを送信して有効化する必要があります。
前提条件
-
PolarSearch のバージョンが 3.0.0.0.0 以降である必要があります。
説明version.numberフィールドで PolarSearch のバージョンを確認できます。検索エンドポイント経由で PolarSearch にアクセスしてください。 Alibaba Cloud Object Storage Service (OSS) を有効化し、スナップショットを保存するためのバケットを作成済みです。
-
AliyunOSSFullAccessポリシーがアタッチされた RAM ユーザーが必要です。詳細については、「RAM ユーザーへの権限追加」をご参照ください。
課金
スナップショット機能は無料です。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}",
"compress": true,
"chunk_size": "512mb"
}
}
パラメーターの説明
パラメーター | 説明 |
| リポジトリのカスタム名。 |
|
リポジトリのタイプ。必ず |
| OSS バケットのエンドポイント。詳細については、「リージョンとエンドポイント」をご参照ください。 |
| OSS バケットの名前。 |
| (省略可)スナップショットファイルを保存する OSS バケット内のルートディレクトリパス。 |
| バケットが配置されているリージョン。 |
|
|
ご利用の AccessKey ID。 |
|
|
ご利用の AccessKey Secret。 |
|
|
(省略可)ご利用の RAM ロールの STS トークン。 重要
STS トークンを使用する場合は、 |
|
|
(省略可)インデックスマッピングや設定などのスナップショットメタデータファイルを圧縮するかどうかを指定します。このパラメーターはデータファイルには影響しません。 デフォルトは false です。 |
|
|
(省略可)スナップショット作成時のチャンク分割アップロードのサイズ上限。このサイズを超えるデータは OSS にチャンク単位でアップロードされます。 デフォルトは 1 GB です。 |
例
次のコマンドのパラメーターを、ご利用の情報に置き換えてください。
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
}'
スナップショットの表示
次の API を使用して、OSS スナップショットリポジトリ内のすべてのスナップショットに関する情報を表示します。
GET /_snapshot/{repo-name}/_all?pretty例
次のコマンドのパラメーターを、ご利用の情報に置き換えてください。
curl -X GET "https://{pc-endpoint}:3001/_snapshot/{repo-name}/_all?pretty" -u "{username}:{passwd}"データの復元
次のコマンドを実行して、特定のスナップショットからインデックスデータを復元します。
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
}'