2010-11-15 9 views
20

Después de leer mi otra pregunta, Using a Relational Database for Schema-Less Data, comencé a preguntarme si un sistema de archivos es más apropiado que una base de datos relacional para almacenar y consultar datos sin esquema.Uso de un sistema de archivos (no una base de datos) para datos sin esquema: mejores prácticas

En lugar de simplemente construir un sistema de archivos sobre MySQL, ¿por qué no simplemente guardar los datos directamente en el sistema de archivos? La indexación debe ser resuelta, pero los sistemas de archivos modernos son muy estables, tienen excelentes características como replicación, instantáneas e instalaciones de respaldo, y son flexibles para almacenar datos sin esquema.

Sin embargo, no puedo encontrar any ejemplos de alguien que usa un sistema de archivos en lugar de una base de datos.

¿Dónde puedo encontrar más recursos sobre cómo implementar una base de datos sin esquema (o "documentada") como una capa sobre un sistema de archivos? ¿Alguien está usando un sistema de archivos moderno como una base de datos sin esquemas?

Respuesta

0

Una cosa que es posible que desee tener en cuenta es el tipo de datos BFILE de Oracle, que es un puntero a un archivo en el disco. Tal vez eso podría ser lo mejor de ambos mundos? El servidor Microsoft SQL no parece ofrecer esta capacidad.

+0

SQL Server ofrece el modificador 'FILESTREAM' en las columnas' varbinary (max) ', que permiten que los datos se almacenen en la fila o en un archivo del disco, según el tamaño de los datos. –

+0

Gracias, no sabía que –

0

Hay un gran ejemplo de implementación en el S3 de Amazon.

http://aws.amazon.com/s3/

Este tipo de aplicación es donde muchas empresas se están moviendo hacia, ya que las escalas fundamentalmente mejor que una lata de base de datos relacional. El enfoque es simple, y funciona, y para algunos problemas, es una gran solución. En el caso del S3 de Amazon, es especialmente bueno para el almacenamiento en la nube, si no desea tener que preocuparse por las molestias de almacenar los datos usted mismo.

1

Le invitamos a echar un vistazo a nuestro Solid File System, que es un producto de sistema de archivos virtual con soporte integrado para metadatos de archivos y mecanismo de búsqueda similar a SQL que busca a través de estos datos. También lea el article que describe los beneficios de almacenar diferentes tipos de datos en diferentes tipos de almacenamientos.

+0

Solo el enlace a su propia biblioteca o tutorial no es una buena respuesta. Vincularlo, explicar por qué soluciona el problema, proporcionar un código sobre cómo hacerlo y negar que lo escribió lo convierte en una mejor respuesta. Ver: [** ¿Qué significa "buena" autopromoción? **] (http://meta.stackexchange.com/q/182212/200235) – JonasCz

14

Sí, un sistema de archivos podría tomarse como un caso especial de un sistema de base de datos similar a NOSQL. Puede tener algunas limitaciones que se deben considerar durante cualquier decisión de diseño:

pros: - - simple, intuitivo.

  • aprovecha los años de ajuste y algoritmos de caché
  • copia de seguridad fácil, potencialmente agrupación fácil

cosas en que pensar:

  • riqueza de metadatos - qué tipos de los datos lo almacenan, ¿cómo lo deja que los consulta, puede tener jerárquico o multivaluado UED atributos de velocidad

  • de metadatos consulta - no todos los de fs están particularmente bien optimizados con aparte de tamaño nada, fechas.

  • incapacidad para consultas de unión (aunque que es más o menos común a NoSQL)

  • uso del almacenamiento ineficientes (a menos que el sistema de archivos realiza subasignaciones bloque, por lo general va golpe 4-16K por artículo almacenado independientemente de su tamaño)

  • que no tenga el tipo de algoritmo de caché desea por su estructura de directorios
  • tiende a ser menos sintonizable, etc.
  • las soluciones de copia de seguridad pueden tener problemas dependiendo de cómo almacene las cosas: demasiado profundo, demasiados elementos por nodo, etc., que podrían obviar una obvia ventaja de de tal estructura. de bloqueo para un sistema de archivos local de obras bastante bien, por supuesto, si se llama a los rutinas adecuadas, pero no necesariamente para un fileesytem base de la red (los problemas se han resuelto en varias maneras, pero es sin duda un problema de diseño )
Cuestiones relacionadas