Question

Je fais des requêtes en Python sur une grande base de données pour obtenir des statistiques sur la base de données. Je veux que ces statistiques pour pouvoir les utiliser être que les autres programmes en mémoire sans passer à une base de données.

Je pensais à la façon de les structurer, et après avoir essayé de mettre en place des dictionnaires imbriqués complexes, je me suis rendu qu'une bonne représentation serait une table SQL. Je ne veux pas stocker le dos de données dans la base de données persistantes, cependant. Y a-t-il des mises en œuvre en mémoire d'une base de données SQL qui supports les données avec l'interrogation syntaxe SQL?

Était-ce utile?

La solution

SQLite3 pourrait fonctionner. L'interface Python prend en charge la mise en œuvre en mémoire que les offres API SQLite3 C.

De la spécification:

  

Vous pouvez également fournir le nom spécial   : Mémoire:. Pour créer une base de données dans la mémoire RAM

Il est aussi relativement pas cher avec des transactions, en fonction de ce que vous faites. Pour y aller, juste:

import sqlite3
conn = sqlite3.connect(':memory:')

Vous pouvez alors procéder comme vous utilisiez une base de données régulièrement.

En fonction de vos données - si vous pouvez obtenir avec clé / valeur (chaînes, hash, listes, ensembles, jeux triés, etc.) - Redis pourrait être une autre option pour explorer (comme vous l'avez mentionné que vous vouliez partager avec d'autres programmes).

Autres conseils

Je suppose que, SQLite3 sera la meilleure option, alors.

Si possible, jetez un oeil à memcached . (Pour la paire valeur clé, éclairage rapide!)

UPDATE 1:

HSQLDB pour les tables SQL LIKE. (Pas de support de python)

Vous pourriez éventuellement utiliser une base de données comme SQLite . Il est pas à proprement parler dans la mémoire, mais il est assez léger et serait complètement séparé de votre base de données principale.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top