PolarSearch vous permet d'utiliser la fonctionnalité de snapshot pour sauvegarder les données d'index d'un cluster vers votre propre bucket Object Storage Service (OSS) ou pour restaurer des données depuis un bucket OSS. Cette fonctionnalité peut être utilisée pour la migration de données entre clusters ainsi que pour la sauvegarde et la récupération personnalisées des clusters PolarSearch. Elle offre une solution flexible et économique pour la protection et le transfert des données.
Cette fonctionnalité est actuellement en version préliminaire. Pour l'utiliser, submit a ticket afin de l'activer.
Prérequis
-
Votre version de PolarSearch doit être la 3.0.0.0.0 ou une version ultérieure.
RemarqueVous pouvez accéder à PolarSearch via l'endpoint de recherche pour vérifier votre version de PolarSearch dans le champ
version.number. Vous avez activé Alibaba Cloud Object Storage Service (OSS) et créé un bucket pour stocker les snapshots.
Un utilisateur RAM disposant de la politique
AliyunOSSFullAccessest requis. Pour plus d'informations, consultez la rubrique Ajouter des autorisations à un utilisateur RAM.
Facturation
La fonctionnalité de snapshot est gratuite. Le stockage des fichiers de snapshot dans votre bucket OSS entraîne des frais de stockage et de requête. Pour plus d'informations, consultez la rubrique Présentation de la facturation OSS.
Enregistrer un référentiel de snapshot
Avant d'utiliser la fonctionnalité de snapshot, vous devez enregistrer un référentiel de snapshot et l'associer à votre bucket OSS. Utilisez l'API suivante pour créer le référentiel :
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"
}
}
Description des paramètres
Paramètre | Description |
| Nom personnalisé du référentiel. |
|
Type du référentiel. La valeur doit être définie sur |
| Endpoint de votre bucket OSS. Pour plus d'informations, consultez la rubrique Régions et endpoints. |
| Nom de votre bucket OSS. |
| (Facultatif) Chemin du répertoire racine dans le bucket OSS où les fichiers de snapshot sont stockés. |
| Région où se trouve le bucket. |
|
|
Votre AccessKey ID. |
|
|
Votre AccessKey Secret. |
|
|
(Facultatif) Jeton STS pour votre rôle RAM. Important
Si vous utilisez un jeton STS, vous devez également définir les paramètres |
|
|
(Facultatif) Indique s'il faut compresser les fichiers de métadonnées de snapshot, tels que les mappings et les paramètres d'index. Ce paramètre n'affecte pas les fichiers de données. La valeur par défaut est false. |
|
|
(Facultatif) Limite de taille pour les téléchargements fragmentés lors du processus de snapshot. Les données dépassant cette taille sont téléchargées vers OSS par fragments. La valeur par défaut est 1 Go. |
Exemple
Remplacez les paramètres de la commande suivante par vos propres informations.
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}"
}
}'
Créer un snapshot : sauvegarder des données vers OSS
Une fois que vous avez enregistré un référentiel de snapshots, créez un snapshot pour un index spécifique à l'aide de l'API suivante :
PUT /_snapshot/{repo-name}/{snapshot-name}?wait_for_completion=true
{
"indices": "{index-name}",
"ignore_unavailable":false
}
Description des paramètres
Catégorie de paramètre | Nom du paramètre | Description |
Paramètre de requête |
| Indique s'il faut attendre la fin de l'opération de snapshot. La valeur par défaut est
|
Paramètres du corps de la requête |
| Les indexes à sauvegarder. Vous pouvez utiliser le caractère générique ( Remarque L'utilisation du caractère générique ( |
| Indique s'il faut ignorer un index inexistant et poursuivre le snapshot. La valeur par défaut est | |
| Indique s'il faut autoriser les snapshots partiels. Si la valeur est définie sur |
Exemple
Remplacez les paramètres de la commande suivante par vos propres informations.
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
}'
Consulter les snapshots
Utilisez l'API suivante pour consulter les informations relatives à tous les snapshots de votre référentiel de snapshots OSS :
GET /_snapshot/{repo-name}/_all?pretty
Exemple
Remplacez les paramètres de la commande suivante par vos propres informations.
curl -X GET "https://{pc-endpoint}:3001/_snapshot/{repo-name}/_all?pretty" -u "{username}:{passwd}"
Restauration des données
Exécutez la commande suivante pour restaurer les données d'index à partir d'un snapshot spécifique :
Pour restaurer un snapshot d'un cluster PolarSearch vers un autre cluster PolarSearch, le cluster cible doit enregistrer le même référentiel de snapshots que le cluster source. Si la restauration s'effectue au sein du même cluster PolarSearch, il n'est pas nécessaire de procéder à un nouvel enregistrement ; vous pouvez lancer directement la restauration des données.
POST /_snapshot/{repo-name}/{snapshot-name}/_restore?wait_for_completion=true
{
"indices": "{index-name}",
"ignore_unavailable": true
}
Paramètres
Catégorie de paramètre | Nom du paramètre | Description |
Paramètre de requête |
| Indique s'il faut attendre la fin de la restauration du snapshot. La valeur par défaut est
|
Paramètres du corps de la requête |
| Spécifie les index à restaurer. Le caractère générique |
| Indique s'il faut ignorer un index inexistant et poursuivre la création du snapshot. La valeur par défaut est | |
| Indique s'il faut créer un snapshot partiel. Si la valeur est définie sur | |
| Remplace les paramètres d'index du snapshot lors de la restauration. Vous pouvez par exemple modifier le nombre de réplicas pour qu'il corresponde à la configuration du cluster de destination. | |
| Liste des paramètres d'index à ignorer lors de la restauration. Cette option est généralement utilisée pour ignorer les paramètres spécifiques au cluster source. |
Exemple
Remplacez les paramètres de la commande suivante par vos propres informations.
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
}'