PolarSearch では、スナップショット機能を使用して、クラスターからご自身の Object Storage Service (OSS) バケットにインデックスデータをバックアップしたり、OSS バケットからデータを復元したりできます。この機能は、クラスター間のデータ移行や PolarSearch クラスターのカスタムバックアップと復元に使用できます。これにより、データ保護と転送のための柔軟で低コストなソリューションが提供されます。
この機能は現在ベータ版です。この機能を使用するには、チケットを送信して有効化についてお問い合わせください。
前提条件
ご利用の PolarSearch のバージョンが 2.19.3 以降である必要があります。
説明検索エンドポイント経由で PolarSearch にアクセスし、
version.numberフィールドでクラスターのバージョンを確認できます。Alibaba Cloud Object Storage Service (OSS) を有効化し、スナップショットを保存するためのバケットを作成済みであること。
RAM ユーザーを作成し、このユーザーに
AliyunOSSFullAccess権限ポリシーを付与済みであること。詳細については、「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 ロールのセッショントークン。 重要 セッショントークンを使用する場合、 |
| (オプション) インデックスマッピングや設定などのスナップショットメタデータファイルを圧縮するかどうかを指定します。この設定はデータファイルには影響しません。 デフォルト値: 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
}'