2011-07-12 6 views
3

Mon robot d'exploration analyse tous les sites Web et obtient des informations sur les métadonnées. Je vais ensuite exécuter un script pour nettoyer les URL et les stocker dans Amazon RDS.Quelle banque de données dois-je utiliser pour stocker des données temporaires à partir de robots d'exploration?

Mon problème est quelle banque de données dois-je utiliser pour stocker des données à des fins de nettoyage (Supprimer les URL indésirables). Je ne veux pas que le robot atteigne l'Amazon RDS, ce qui le ralentirait.

Dois-je utiliser Amazon SimpleDB? Ensuite, je peux lire depuis SimpleDB, nettoyer l'URL et la déplacer vers Amazon RDS.

Répondre

1

Vous pouvez toujours utiliser une base de données, mais le problème concerne l'accès au disque. Chaque fois que vous faites un accès au disque pour lire un tas d'URLs les désinfecter et les écrire à nouveau sur un autre DB qui est un autre accès au disque. Ce processus est OK si vous n'êtes pas concerné par les performances. Une solution est que vous pouvez utiliser n'importe quelle structure de données aussi simple qu'une liste, stocker un groupe ou des URL qui ont un fil qui se réveille lorsque la liste atteint un seuil nettoie les URL et que vous pouvez écrire ces URL sur Amazon RDS.

+0

Le problème est que je pourrais le stocker dans des listes, mais le script de désinfection pourrait être un travailleur indépendant résidant dans une autre machine. Je ne pense pas que l'accès au disque à simpledb serait un problème. La principale préoccupation est le RDS puisque c'est aussi face à face. Je prévoyais d'assainir les données périodiquement par lots. Cela vous semble-t-il bon? – Sarvesh

+0

Lorsque le script de nettoyage lit les URL de la base de données simple, comment va-t-il garder trace du nombre d'URL lues depuis la base de données et comment prévoyez-vous de supprimer les URL incorrectes que vous avez déjà lues? – Drew

+0

J'utiliserais probablement une liste pour aller chercher les urls de simpledb, nettoyer et ne déplacer que celles valides dans RDS. Je mettrais à jour un drapeau dans le simpledb pour chaque enregistrement s'il est valide ou mis à jour dans RDS. – Sarvesh

Questions connexes