2013-04-09 6 views
0

Je cours un projet Scrapy et je suis à la recherche de la meilleure méthode pour stocker localement des données déjà grattées. Actuellement, je suis en utilisant AnyDBM mais je continue à obtenir l'erreur suivante après un certain temps de fonctionnement:Stocker des données localement en Python

bsddb.db.DBRunRecoveryError: (-30973, 'DB_RUNRECOVERY: Fatal error, run database recovery -- PANIC: fatal region error detected; run recovery')

Ce mon être quelque chose que je fais mal que je suis assez nouveau pour Python, mais je me demandais s'il y a une meilleure solution autre que Anydbm de toute façon.

Je stocke des ID numériques des pages que j'ai explorées, et je stockerai environ 500 000 enregistrements avec des plans pour un éventuel 3 à 4 millions de projets futurs.

AnyDBM est ce que je devrais coller ou devrais-je changer pour quelque chose de plus approprié pour le travail.

+0

Utilisez-vous/prévoyez-vous d'utiliser plusieurs threads/processus? – nvlass

Répondre

1

Par défaut python est livré avec sqlite3 qui est un très bon système de base de données. Il s'agit d'un pretty good tutorial dessus. Pour mettre la table en mémoire, utilisez:

conn = sqlite3.connect(":memory:") 
conn.isolation_level = None 
cur = conn.cursor() 
1

Cela ressemble à un bon ajustement pour sqlite, qui fait déjà partie de la bibliothèque standard de Python.

Questions connexes