sábado, 29 de octubre de 2016

Big Data de Microsoft

¿Qué es Big Data?



"Big Data" es un término para la recolección de conjuntos de datos tan grandes y complejos que no pueden ser fácilmente manejados por tecnologías tradicionales de almacenamiento de datos. Big Data es el mundo de datos que existe fuera del almacén de datos tradicional. Es generado por dispositivos; blogs, redes sociales; aplicaciones móviles; clickstreams; ATM, RFID y sensores; tiempo meteorológico, tráfico, y cotizaciones de los mercados; y mucho más. Big Data es des-estructurado, no filtrado y no relacional. Big Data no se genera por las operaciones propias de la empresa.

Big Data es valioso para el negocio, ya que aporta datos a la empresa de su entorno en el mundo en el que opera, compite, y vende. Big Data ofrece la oportunidad a la empresa de obtener datos externos en tiempo real para mejorar, optimizar y mover el negocio hacia nuevos objetivos.
Big Data es alto volumen, alta velocidad y / o activos de gran variedad de información que requieren nuevas formas de procesamiento de cualquier tipo de dato, permitir la toma de decisiones mejorada, así como la visión y la optimización de procesos. 

Los escenarios comunes para Big Data


La popularidad de los grandes volúmenes de datos se basa predominantemente en una oleada de nuevos escenarios, fuentes de datos y oportunidades para integrar los datos no relacionales desde fuera de la empresa en su análisis de negocio.

Big Data de Microsoft

sábado, 22 de octubre de 2016

Planes de ejecución con SQL Server. IV Planes de ejecución de texto

Los planes de ejecución gráficos son muy útiles porque son muy fáciles de leer. Sin embargo, gran parte de los datos de los operadores no son inmediatamente visibles, para ver el conjunto completo tenemos que echar un vistazo a la ventana de propiedades. Pero podemos ver el plan completo conplanes de ejecución de  XML.

Antes de XML se utilizaban los planes de texto, estos actualmente están es desuso pero veremos algunas instrucciones por compatibilidad. Las nuevas versiones de SQL Server sólo se proporcionarán planes de texto en formato XML.

Para ver el plan de ejecución estimado de texto, sólo hay que escribir el comando. 

SET SHOWPLAN_ALL ON;

Esta instrucción pone en modo on a SQL Server para recopilar la información de ejecución para todas las sentencias SQL posteriores, pero esas declaraciones en realidad no se han ejecutado aun. Por lo tanto, tenemos el plan estimado. Es muy importante poner  SHOWPLAN_ALL  a OFF después de que capturar la información que se necesita. Si se nos olvidamos de esto no se ejecutarán las instrucciones SQL server.

A partir de este momento cualquier sentencia que ejecutemos mostrará su plan estimado de ejecución.


Para desactivarlo basta con ejecutar el comando 

SET SHOWPLAN_ALL OFF;


Obtener el plan textual real 

Para obtener el plan de texto real ejecutamos la sentencia

SET STATISTICS PROFILE ON


A partir de este momento cualquier sentencia que ejecutemos vendrá acompañada de su plan real de ejecución.
Para desactivarlo 

SET STATISTICS PROFILE OFF

Interpretación de los planes de texto 


Cuando hemos ejecutado una select sencilla con el plan textual activa nos ha mostrado algo de este tipo.

Planes de ejecución de texto

sábado, 15 de octubre de 2016

El Data Warehousing en la actualidad

El Data Warehouse es un marco para gestionar mejor, entender y sacar provecho de los datos generados por el negocio. El almacén de datos tradicional tiraba de  los datos en un "depósito de la verdad", esquema impulsado para el análisis y la presentación de informes, y funcionó muy bien durante muchos años. Sin embargo, el mundo de los datos está evolucionando rápidamente en formas que están transformando la industria y las empresas están considerando nuevos enfoques de inteligencia empresarial (BI).
El data Warehouse tradicional está siendo presionado por el creciente peso del volumen explosivo de datos, la variedad de tipos de datos y la velocidad de procesamiento en tiempo real así también de cómo estos los datos se están utilizando para crecer y operar el negocio. 

El almacenamiento de datos ha alcanzado el punto de inflexión más importante desde su creación. La empresa moderna necesita una arquitectura lógica que pueda escalar sin problemas para satisfacer estas demandas de volumen con una potencia de procesamiento en tiempo real y capacidad de manejar cualquier tipo de datos para conectar rápidamente el negocio con información valiosa. Esto significa que el data warehouse tradicional tiene que evolucionar hacia un data warehouse moderno.
El  data warehouse tradicional fue diseñado para ser un repositorio central de todos los datos de una empresa. Los datos dispares de sistemas transaccionales como  ERP, CRM y aplicaciones de línea de negocio debían ser adaptadas para extraer los datos (ETL) e introducirlo en el almacén dentro de un esquema relacional global. La estructura de datos era predecible y el procesamiento y presentación de informes de calidad optimizada. Sin embargo para la preparación de consultas se necesitaba gran medida el apoyo de tecnologías de la información TI basadas en el procesamiento por lotes programados.
La llegada de  la Web 2.0 aumentó significativamente los datos relacionados con la empresa generados a través de comercio electrónico, registros web, marketing en buscadores, y otras fuentes. Las Empresas ampliaron las operaciones de ETL para compensar las nuevas fuentes de datos, en última instancia, también  expandieron el modelo.
Sin embargo, incluso con estas complejidades crecientes, el valor de negocio principal del almacén de datos tradicional era la capacidad de realizar un análisis histórico y la presentación de informes procedentes de una fuente confiable y completa de datos.

El Data Warehousing en la actualidad

sábado, 8 de octubre de 2016

Planes de ejecución con SQL Server III, planes de ejecución gráficos

Los planes de ejecución nos ayudarán a escribir código SQL eficiente, solucionar problemas de SQL o monitorear e informar sobre nuestros sistemas.
Aquí se pueden consultar las dos partes previas:

Planes de ejecución con SQL Server I

Planes de ejecución con SQL Server II


Permisos requeridos para ver los planes de ejecución


Para generar planes de ejecución de consultas es necesario tener los permisos necesarios dentro de la base de datos. El administrador de base de datos tendrá generalmente todos los permisos pero para dar permisos a cualquier usuario se puede ejecutar.

GRANT SHOWPLAN TO [nombre de usuario]
Esta acción permitirá a un usuario ver los planes de ejecución para la base de datos.


Trabajar con los planes de ejecución gráficos


Comenzaremos con una de las consultas más simples posibles,

SELECT * FROM dbo.tbNombretabla

Ver el plan estimado

Vamos a ver el plan de ejecución estimado en forma gráfica que ha generado el optimizador de consultas.
Es posible averiguar la estimación del plan más óptimo calculada por el optimizador de una delas siguientes maneras, primero hay que seleccionar la consulta a analizar y después:

• Hacer clic en el icono plan de ejecución estimado en la barra de herramientas.


Planes de ejecución con SQL Server


sábado, 1 de octubre de 2016

Administración de la seguridad con SQL Server: IV Permisos de acceso a objetos

Permisos de acceso a objetos


El último filtro en el proceso de seguridad es la posibilidad de habilitar permisos para manejar cada uno de los objetos de una base de datos de SQL Server. Una vez que un login id tiene acceso a una base de datos mediante un username, todavía puede definirse qué sentencias podrá ejecutar y sobre qué objetos de la base de datos.

Existen tres tipos de permisos: de objeto, de sentencia e implícitos

-Permisos de objeto permiten utilizar y modificar los objetos existentes. Por ejemplo, se podrá dar permiso para añadir o eliminar una tabla, o para realizar sobre ella una consulta.

- Permisos de sentencia permiten ejecutarlas, sin limitar  ese permiso de ejecución a un objeto en particular. Suelen referirse a sentencias de creación o eliminación de objetos.

- Permisos implícitos. Son los que se da a los miembros de las funciones del servidor preestablecidas (como la sysadmin), y a los propietarios de bases de datos. Este tipo de usuarios tienen permisos no modificables, que son los que entran en la categoría de implícitos.


Arquitectura de permisos


Quién tiene permisos y quién puede otorgarlos


Por defecto, tras la creación de la base de datos sólo el propietario de la base de datos (los miembros de db_owner y los agrupados bajo el usuario dbo) tienen permisos para crear objetos en la misma. Esta facultad no suele transmitirse a otros usuarios, pues se supone que éstos son los únicos con permisos para modificar su estructura.
Una vez se crea un objeto en la base de datos, tan sólo el creador del objeto y los administradores (sysadmin) tienen permisos para manipulado. Por defecto, el administrador posee todos los permisos para todos los objetos.
El comando DENY hace que un usuario no tenga permiso para un acceso a un objeto. El comando REVOKE sólo afecta al usuario o función en que se ejecute, permitiendo que otros comandos GRANT en otras entidades que incluyan al mismo usuario puedan deshacer su efecto.


La tabla sysprotects


Cada vez que se otorga un permiso, se añade una fila a la tabla de sistema sysprotects, presente en todas las bases de datos. Esta tabla contiene las siguientes informaciones:

Id: ID del objeto para el que se otorga permiso.
Uid: ID del usuario o función al que se otorga permiso.
Action: Permiso que se otorga.

Este último puede ser:

REFERENCES
SELECT
INSERT
DELETE
UPDATE
CREATE TABLE
CREATE DATABASE
CREATE VIEW
CREATE PROCEDURE
EXECUTE
BACKUP/RESTORE DATABASE
CREATE DEFAULT
BACKUP/RESTORE LOG
CREATE RULE

Protecttype: Tipo de protección ante la posibilidad de que el permiso pueda transmitirse.
Column: Indica las columnas a las que se aplica el permiso.
Grantor: Identificador del usuario que ejecutó la sentencia GRANT o DENY que motivó que se añadiese la fila de la tabla.


Permisos a objetos


Hay dos formas de dar permisos de acceso a datos, una de ellas es hacerlo a través de permitir, revocar o denegar el trabajo con cada uno de los objetos. Esto permite dar permisos a tablas, columnas de tabla, vistas, etc. Los permisos pueden darse a través del Administrador Corporativo a través de la ejecución de procedimientos almacenados del sistema. Es posible dar permisos para ejecutar las siguientes sentencias sobre cada uno de los objetos.


Permisos para tablas

SELECT
UPDATE
DELETE
INSERT
DRI
(Declarative Referential Integrity)
DRI permite crear un objeto que tenga relaciones de integridad referencial con el objeto al que damos permisos.


Permisos para columnas


SELECT
UPDATE


Permisos para vistas


SELECT
UPDATE
DELETE
INSERT


Permisos para procedimientos almacenados


 
EXECUTE


Dar permisos a objetos con el Administrador Corporativo


Para dar, denegar o retirar permisos a objetos desde el Administrador Corporativo. Situarse sobre la base de datos en la que se encuentra el objeto.
Situarse sobre el objeto, sea una tabla, una vista o un procedimiento almacenado. Sobre el objeto pulsar botón derecho del ratón lo que muestra el un menú, pulsar en propiedades, esto nos abre un cuadro de diálogo con varias  pestañas, entre ellas la de permisos la cual nos muestra los tipos de  permiso que tiene el objeto.
Permisos de acceso a objetos