Gestion des tâches CDC
Une tâche CDC (Capture Data Change) permet de synchroniser les données d'une instance Milvus source avec une instance Milvus cible. Elle surveille les journaux d'opérations de la source et réplique en temps réel les modifications de données telles que les insertions, les suppressions et les opérations d'indexation vers la cible. Cela facilite la reprise après sinistre en temps réel ou l'équilibrage de charge actif-actif entre les déploiements Milvus.
Ce guide explique comment gérer les tâches CDC, notamment la création, la mise en pause, la reprise, la récupération de détails, l'établissement de listes et la suppression par le biais de requêtes HTTP.
Création d'une tâche
La création d'une tâche CDC permet de synchroniser les opérations de modification des données dans le Milvus source avec le Milvus cible.
Pour créer une tâche CDC :
curl -X POST http:_//localhost:8444/cdc \
-H "Content-Type: application/json" \
-d '{
"request_type": "create",
"request_data": {
"milvus_connect_param": {
"uri": "http://localhost:19530",
"token":"root:Milvus",
"connect_timeout": 10
},
"collection_infos": [
{
"name": "*"
}
]
}
}'
Remplacer localhost par l'adresse IP du serveur Milvus cible.
Paramètres:
milvus_connect_param: Paramètres de connexion du Milvus cible.
host: nom d'hôte ou adresse IP du serveur Milvus.
port: Numéro de port sur lequel le serveur Milvus est à l'écoute.
username: Nom d'utilisateur pour l'authentification auprès du serveur Milvus.
password: Mot de passe pour s'authentifier auprès du serveur Milvus.
enable_tls: Utilisation ou non du cryptage TLS/SSL pour la connexion.
connect_timeout: Délai d'attente en secondes pour l'établissement de la connexion.
collection_infos: Collections à synchroniser. Actuellement, seul un astérisque(*) est pris en charge, car Milvus-CDC se synchronise au niveau du cluster, et non des collections individuelles.
Réponse attendue :
{
"code": 200,
"data": {
"task_id":"xxxx"
}
}
Lister les tâches
Pour lister toutes les tâches CDC créées :
curl -X POST -H "Content-Type: application/json" -d '{
"request_type": "list"
}' http://localhost:8444/cdc
Remplacez localhost par l'adresse IP du serveur Milvus cible.
Réponse attendue :
{
"code": 200,
"data": {
"tasks": [
{
"task_id": "xxxxx",
"milvus_connect_param": {
"uri":"http://localhost:19530",
"connect_timeout": 10
},
"collection_infos": [
{
"name": "*"
}
],
"state": "Running"
}
]
}
}
Pause d'une tâche
Pour mettre en pause une tâche CDC :
curl -X POST -H "Content-Type: application/json" -d '{
"request_type":"pause",
"request_data": {
"task_id": "xxxx"
}
}' http://localhost:8444/cdc
Remplacer localhost par l'adresse IP du serveur Milvus cible.
Paramètres:
- task_id: ID de la tâche CDC à mettre en pause.
Réponse attendue :
{
"code": 200,
"data": {}
}
Reprendre une tâche
Pour reprendre une tâche CDC en pause :
curl -X POST -H "Content-Type: application/json" -d '{
"request_type":"resume",
"request_data": {
"task_id": "xxxx"
}
}' http://localhost:8444/cdc
Remplacer localhost par l'adresse IP du serveur Milvus cible.
Paramètres:
- task_id: ID de la tâche CDC à reprendre.
Réponse attendue :
{
"code": 200,
"data": {}
}
Récupérer les détails de la tâche
Pour récupérer les détails d'une tâche CDC spécifique :
curl -X POST -H "Content-Type: application/json" -d '{
"request_type":"get",
"request_data": {
"task_id": "xxxx"
}
}' http://localhost:8444/cdc
Remplacer localhost par l'adresse IP du serveur Milvus cible.
Paramètres:
- task_id: ID de la tâche CDC à interroger.
Réponse attendue :
{
"code": 200,
"data": {
"Task": {
"collection_infos": [
{
"name": "*"
}
],
"milvus_connect_param": {
"connect_timeout": 10,
"uri":"http://localhost:19530"
},
"state": "Running",
"task_id": "xxxx"
}
}
}
Supprimer une tâche
Pour supprimer une tâche CDC :
curl -X POST -H "Content-Type: application/json" -d '{
"request_type":"delete",
"request_data": {
"task_id": "30d1e325df604ebb99e14c2a335a1421"
}
}' http://localhost:8444/cdc
Remplacer localhost par l'adresse IP du serveur Milvus cible.
Paramètres:
- task_id: ID de la tâche CDC à supprimer.
Réponse attendue :
{
"code": 200,
"data": {}
}