2012-07-25 20 views
5

Recientemente, nuestro equipo estaba buscando a FILESTREAM para ampliar las capacidades de nuestra aplicación propietaria. El objetivo principal de esta aplicación es administrar los diversos archivos PDF, imágenes y documentos en todas las piezas que fabricamos. Nuestra aplicación ASP utiliza algunas herramientas de terceros para permitir la visualización de estos archivos. Actualmente tenemos 980 GB de datos en el Fileserver. Tenemos alrededor de 200 GB de datos binarios en SQL Server que nos gustaría extraer, ya que no está funcionando bien, por lo tanto, FILESTREAM parece ser un buen compromiso para los dos principales problemas de almacenamiento/acceso a los datos.FILESTREAM/FILETABLE Aclaraciones para la implementación

Algunas cosas no son exactamente claro para nosotros:

  1. FILESTREAM pueden o no pueden almacenar sus datos en una unidad que no está conectado localmente. Ya tenemos un servidor de archivos con un RAID 10 (unidades de 1.5TB). Este servidor almacena todos los documentos en este momento, ¿tendríamos que mover estas unidades al servidor SQL para FILESTREAM? Eso sería un problema difícil de solucionar ya que el servidor también se está duplicando como servidor de aplicaciones (dos máquinas virtuales en un servidor físico).

  2. FILETABLE almacena los metadatos comunes sobre los archivos, pero ¿dónde está almacenada la parte de texto completo para permitir la búsqueda de archivos como doc/docx? ¿Esto está separado? ¿Puede agregar criterios libremente a esto para buscar? Si es así, cualquier enlace para aclarar sería apreciado.

  3. ¿Se puede hacer referencia a FILETABLE en otra tabla con una clave externa?

Gracias de antemano

EDIT: Para los que tienen estas preguntas este vídeo en la web lo cubría todo y más en términos de explicar filestream 2008-2012 y las cavets a tener en cuenta (lo haría en serio lo rep si Podría): http://channel9.msdn.com/Events/TechDays/Techdays-2012-the-Netherlands/2270

En conclusión, no usaremos FILESTREAM, ya que sería una gran subida para acomodar la inversión.

EDIT 2:

Update para # 1 - Después de una cuidadosa evaluación de FileTable además de FILESTREAM que tiene una combinación ganadora. Tuvimos que mover los archivos al nuevo servidor (no fue tan doloroso ya que estaban en la misma máquina virtual). Honestamente, se tomó más tiempo para escribir una herramienta de extracción para volcar los datos binarios dentro de SQL al sistema de archivos.

Update para # 2 - Este fue separado pero de nuevo Bob tenido un excelente seminario para explicar esto: http://channel9.msdn.com/Events/TechEd/Europe/2012/DBI411

Update para # 3 - El uso de TFT herencia reciclamos la tabla Docs teníamos (menos los enormes blob binario), que requirieron muy pocos cambios en nuestras aplicaciones heredadas. Este fue un gran resultado para el equipo desarrollador.

Respuesta

3

La ubicación en la que están almacenados los archivos para FileTables tiene que ser local, o al menos debe aparecer en SQL Server como local para que un controlador san astuto pueda engañarlo. Como las cosas de FileTables se basan en FILESTREAM, imagino que las limitaciones son las mismas.

La búsqueda de tablas de archivos se realiza a través de la función de contenido que está documentada on MSDN el criterio de búsqueda utiliza la misma sintaxis que FULLTEXT buscando AFAIK.

Para todos los fines y propósitos, FileTable es una tabla típica, por lo que se puede unir, buscar o lo que sea.Lo único es que debe usar algunas funciones del servidor sql para cambiar las guías de FILESTREAM a algo más útil, como una ruta de archivo.

+0

Spot on. Nos encontramos con un pequeño inconveniente ya que usamos el marco de la entidad. Recurrimos a usar una tecla programable (como en ninguna restricción FK) para el stream_id. El diseñador EF ignora por completo los FileTables. Acabamos de crear un pequeño proyecto ADO.Net en nuestro proyecto principal para realizar la carga/descarga de documentos. – jjhayter

Cuestiones relacionadas