Inicio > Sql Server 2005 - 2008 > FILESTREAM lo nuevo en tipo de dato Sql Server 2008

FILESTREAM lo nuevo en tipo de dato Sql Server 2008


 Una novedad de SQL Server 2008 en lo que a tipo de datos se refiere es la introducción del FILESTREAM esta nos trae solución a aquellos problemas, permitiéndole a las aplicaciones utilizar las API de streaming con el mismo rendimiento que el sistema de archivos, y a su vez mantener una consistencia transaccional el mismo esquema de seguridad entre la información estructurada y la no estructurada.

Características FILESTREAM :
 - Almacena grandes ficheros de datos binarios no estructurados directamente en un sistema de ficheros NTFS: documentos, imágenes, etc.
 - Se preserva el control por parte de la BD y la consistencia transaccional.

Un ejemplo de uso de FILESTREAM es  la posibilidad de controlar mediante la base de datos una carpeta de archivos de vídeo.

Detalle de las características de FILESTREAM :
 Especifica que la columna se ha de almacenar en el sistema de ficheros NTFS: 
  - La columna sigue siendo manejable mediante comandos T-SQL.
  - Se puede acceder desde el sistema de ficheros y desde la API del SO.
 Es un atributo de una columna varbinary(max).
 Se implementa como una columna varbinary(max) en la que los datos son guardados como BLOBs en el sistema de ficheros:
 EL tamaño máximo de los BLOBs viene limitado únicamente por el tamaño del volumen de almacenamiento.
 La limitación estándar de los tipos varbinary(max) de 2 GB no se aplican a estos BLOBs que se almacenan en el sistema de ficheros.

¿Cuándo es recomendable utilizar el tipo de datos FILESTREAM?

- Se necesita almacenar objetos que ocupan como media más de 1 MB.
- Es importante el acceso rápido en modo lectura.
- Se están desarrollando aplicaciones que utilizan una capa intermedia para la lógica de dichas aplicaciones.

Algunas limitaciones FILESTREAM:

- Creación de reflejo de la base de datos , la creación de reflejo de la base de datos no es compatible con FILESTREAM. No es posible crear un grupo de archivos FILESTREAM en el servidor principal.
- La creación de reflejo de la base de datos no puede configurarse para una base de datos que contiene grupos de archivos FILESTREAM.
- SQL Server Express es compatible con FILESTREAM. El límite de tamaño de base de datos de 4 GB no incluye el contenedor de datos de FILESTREAM.
- Cuando una tabla contiene una columna FILESTREAM, cada fila ha de tener un ID de fila único.
- Los contenedores FILESTREAM no pueden jerarquizarse.
- En Microsoft Clustering, los grupos de ficheros FILESTREAM deben estar en recursos compartidos de disco.
- Las columnas FILESTREAM solo pueden almacenar datos en volúmenes de disco locales, almacenamiento remoto en futuras versiones.
- No soporta columnas FILESTREAM en parámetros de tabla
- No soporta Database Mirroring

Seguridad :

- Solo la cuenta de servicio tiene permisos sobre el sistema de ficheros del contenedor FILESTREAM.
- Cuando una base de datos se abre, SQL Server retringe el acceso al contenedor/es FILESTREAM, excepto cuando el acceso se realiza desde transacciones T-SQL y la API OpenSqlFilestream
- Cuando la BBDD se cierra, los datos físicos del contenedor sen completamente accesibles y sujetos a la seguridad de Windows. Es recomendable asegurar los directorios que contienen FILESTREAMs para que los archivos no sean accidetalmente modificados o borrados.
- Desde un punto de vista SQL Server, la seguridad de los FILESTREAMs se realiza desde comandos DCL estandares.

Integracion con otras caracyteristicas

- No se soportan instantaneas de BBDD
  – Puedes crear instantánes de grupos de ficheros estándar (no-FILESTREAM)
  – Los grupos de ficheros FILESTREAM se marcan como offline para dichas instantáneas de BBDD
- No se soporta Replicación , Log Shipping

Habilitando FILESTREAM

 De manera visual a través del SQL Server Conguration Manager

Seleccionamos la instancia de SQL Server 2008 y a continuación Propiedades.

En la pestaña FILESTREAM marcamos la opción de habilitar FILESTREAM y a continuación el tipo de FILESTREAM que queremos utilizar, así como la carpeta compartida dónde se guardarán físicamente los datos

Ejemplo :

–Crea un tabla que contiene datos adicionales como FILESTREAM
CREATE TABLE dbo.Empleado
(
       ID_Empelado INT,
       Nombre VARCHAR(100),
       Apellidos VARCHAR(100),
       InfoAdicional VARBINARY(MAX) FILESTREAM
);

–Agrego el registro en la tabla
INSERT INTO dbo.Empleado
VALUES(1,‘Ricardo Alfredo’,’Huamán Suárez’, CAST(‘Aqui información adicional’ AS VARBINARY(MAX)))

About these ads
  1. george
    25 noviembre 2012 en 10:18 am | #1

    como hago para insertar la imagen o una foto

  2. Juan Carlos
    24 diciembre 2012 en 10:12 am | #2

    Ten en cuenta que al menos desde la versión SQL Server 2008 R2 una tabla con un campo con el modificador “FILESTREAM” debe tener una columna ROWGUID not null.

  3. 5 abril 2013 en 9:43 pm | #4

    Asi es …

  1. 23 abril 2010 en 3:17 am | #1
  2. 27 abril 2012 en 9:20 pm | #2

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

%d personas les gusta esto: