jueves, marzo 02, 2006

Georeferencias: almacenamiento


Hoy he leido un thread interesante en python-es. Va sobre el almacenaciento de georeferencias en una BD.
Quien pregunta parece que de momento está usando Berkeley BD. Comenta tb. que opción muy rapida de acceso es usar la estructura de directorios (aunque tiene sus desventajas). Por ejemplo para acceder a 1000, irias a 1/0/0/0.record (vamos como los indices de FAST).

En python se accede a dicha BD a través del módulo bsddb. Los creadores de la BDB son Sleepycat Software (adquiridos por Oracle).

Los difefentes métodos que acceso que soporta la BD son:
  • Hash
  • BTree
  • Recno
  • Queue
Otro producto que mencionan es pytables. Adjunto un comentario de Francesc Altet (de carabos, la empresa creadora):

"Pues aunque PyTables no es puro Python (si quieres velocidades altas de I/O casi siempre has de ir a parar a hacer extensiones en C), si que es multiplataforma (ha sido probado en Windows, MacOSX, GNU/Linux FreeBSD y múltiples Unix más). El acceso a los datos se hace a través de arboles binarios (a nivel de la libreria HDF5 de la cual depende), con lo que el acceso a los registros es muy rápido.
Ademés, PyTables suporta indexación de columnas.

Respecto a la limitación en la cantidad de recursos usados, PyTables está diseñado para trabajar perfectamente con tablas de más de mil millones de filas en entornos de memoria realistas, así que con tablas del orden de millones, no deberías de tener problemas.
Además, PyTables usa objetos numarray como contenedores de datos, con lo que el consumo de memoria se hace óptimo, especialmente cuando quieres mantener gran cantidad de información. Finalmente, PyTables también soporta compresión de datos transparente, con lo que puedes mantener tus bases de datos comprimidas y leerlas sin necesidad de que
ocupen más espacio del necesario.

Para ejemplos de cómo funciona PyTables te recomiendo que le eches un vistazo a los tutoriales que vienen en la documentación:

http://pytables.sourceforge.net/html-doc/usersguide3.html

Aunque, naturalmente, lo mejor es que lo descargues y lo pruebes por tí mismo. Así te aseguras de que no te están vendiendo la moto ;-)"


Y ya para acabar... gadfly: que es una base de datos relacional implementada en python basada en SQL.

Concluyendo.... un thread de muy interesante lectura.

Actualización

Unos links:


Actualización 2

El thread ha continuado algo (los archivos de la lista aquí).

No hay comentarios: