Saltar al contenido

Microsoft SQL 2016: ¿Evolución o Revolución?

Más que una revolución, una evolución muy importante, una nueva pieza orientada a la integración total de datos off-line y on-line; esto es en primera análisis lo que estamos observando en la nueva versión SQL en preview para los “iniciados” desde algunos meses. En pocas palabras vamos a explicar las novedades más importantes desde una perspectiva más bien orientada al Business Intelligence y a la forma de trabajar los datos para obtener informes de rendimiento.sql-server-2016-download

Las novedades en Analysis Services

SQL Server 2016 realiza varias mejoras a Analysis Services, la plataforma de modelado, las herramientas de BI, la integración de SharePoint, y BI híbrido se han añadido o mejorado. SQL Server 2016 Analysis Services también proporciona paridad funcional con SharePoint y Excel. Las mejoras incluyen un mejor rendimiento con las jerarquías no naturales, relational OLAP distinct count, drill-through queries, processing, query process separation y semi-additive measures.
Para los primeros usuarios de Analysis Services modo tabular (SSAS), será un alivio saber que se está haciendo una actualización muy importante en esta nueva versión. Hay optimizaciones del motor de consulta que mejoran el rendimiento de consulta directa, el procesamiento paralelo de partición, el modelado avanzado con el filtrado bidireccional.

In-memory online transaction processing (OLTP)

El procesamiento de transacciones en línea (OLTP) fue introducido por primera vez en SQL Server 2014, pero Microsoft SQL Server 2016 elimina algunas de las limitaciones de SQL Server 2014. Por ejemplo, en SQL Server 2014, las tablas de memoria optimizado se fijó en 256 GB de memoria. SQL Server 2016 eleva el límite superior de las tablas de memoria optimizados 2 TB. Dentro de la memoria también se supone que las transacciones en SQL Server 2016 se van a ejecutar 30 veces más rápido que en SQL Server 2014.

Es muy pronto para decretar la muerte de OLAP

Algunos entusiastas de la OLTP han decretado que con SQL Server 2016 se han enviado los cubos OLAP a la papelera de la historia. Las características y las funcionalidades de Analysis Services 2016 parecen ir en esta dirección pero en diferentes proyectos OLAP sigue siendo más certero.

Query Store, todo bajo control

Un problema común a muchas organizaciones que se enfrentan al actualizar versiones de SQL Server son los cambios en el optimizador de consultas. Sin pruebas exhaustivas, esto ha sido tradicionalmente un problema difícil de identificar y resolver. La función “Query Store” mantiene un historial de los planes de ejecución de consultas con sus datos de rendimiento, y rápidamente identifica las instancias más lentas, permitiendo a los administradores o desarrolladores un control y desarrollo continuo en búsqueda de la mejora de rendimiento. Query Store se configura a nivel de base de datos individual.

sql-20162Polybase para el Big Data

Hadoop y grandes volúmenes de datos han centrado toda la atención en estos últimos años. Quizá algo fue un bombo de la industria siempre en búsqueda de fomentar nuevas inversiones en tecnología, pero hay que reconocer que Hadoop es una forma escalable y rentable para almacenar grandes cantidades de datos. Por los no-iniciados… Hadoop es un framework que ejecuta aplicaciones en grandes clusters de hardware dedicado. El framework proporciona a las aplicaciones de forma transparente fiabilidad y movilidad de datos. Hadoop implementa un paradigma computacional llamado map/reduce, donde la aplicación se divide en muchos pequeños fragmentos de trabajo, cada uno de los cuales se pueden ejecutar o volver a ejecutar en cualquier nodo del clúster.
Microsoft había introducido Polybase, un conector de SQL Server para Hadoop (y Azure Blob Storage) a su dispositivo de almacenamiento de Analytics Platform System ya en 2015. Pero ahora Microsoft ha incorporado esa funcionalidad en defecto en las instalaciones. Esta característica le beneficiará si su procesamiento de datos regular consiste en tratar con un montón de grandes archivos de texto – que pueden ser almacenados en Azure Blob de almacenamiento o Hadoop, y se tratarán como si fueran tablas de bases de datos. Esto quiere decir que vamos a poder utilizar estos datos en un proceso ETL como si de un cubo OLAP se tratase.

Stretch Database

En los ultimos años hemos estado notando un notable reducción de coste de almacenamiento. Si bien puede ser barato comprar una unidad de 3 TB en Amazon, no se puede decir lo mismo de almacenamiento local (las SSD siguen siendo caras). Microsoft está tratando de ayudar a reducir el almacenamiento (y los costos de su procesamiento) con una función híbrida llamada «Stretch Database» Los fundamentos de la Base de Datos de tipo Strech son que una parte de las tablas se moverá en una base de datos SQL Azure en la nube de forma segura. Al consultar estas tablas, el optimizador de consultas sabe qué filas son en su servidor y las filas que están en Azure, y divide la carga de trabajo en consecuencia. El procesamiento de consultas en las filas Azure tiene lugar en Azure lo que la única latencia es para el retorno de las filas través de la red. Como mejora adicional, sólo se le cobrará por la base de datos SQL Azure en cuando se utiliza para consultas. Usted, sin embargo, paga por el almacenamiento de Azure Blob, que, en general, es mucho más barato que el almacenamiento empresarial local. Para saber mas de esta nueva modalidad de SQL 2016 os aconsejo este link.

Soporte JSON el nuevo XML…

Además de apoyar la consulta directa a Hadoop, SQL Server 2016 añade soporte Java Script Object Notation (JSON). Varias otras bases de datos de gran tamaño han añadido la posibilidad de utilizar JSON en los últimos años y muchos lo prefieren a XML. Al ser JSON un formato muy extendido para el intercambio de datos, se han desarrollado API para distintos lenguajes (por ejemplo ActionScript, C, C++, C#, ColdFusion, Common Lisp, Delphi, E, Eiffel, Java, JavaScript, ML, Objective-C, Objective CAML, Perl, PHP, Python, Rebol, Ruby, Lua y Visual FoxPro) que permiten parsear, generar, transformar y procesar este tipo de datos. La forma en que esto se lleva a cabo en SQL 2016 es muy similar a la forma en soporte XML con la capacidad para mover rápidamente los datos JSON en tablas.

Row Level Security

Una característica que otras bases de datos han tenido durante muchos años, y SQL Server ha carecido de forma nativa es la capacidad de proporcionar seguridad a nivel de fila (SPI). Esto restringe que los usuarios pueden ver qué datos en una tabla, sobre la base de una función. SQL Server 2016 introduce esta característica, que es muy útil en entornos multi-usuario, donde es posible que desee limitar el acceso a datos basado en ID de cliente. En entorno Business Intelligence por ejemplo hay datos sensibles que a veces tienen que estar controlados. Por ejemplo igual no queremos que el dato de compras aparezca a los usuarios del departamento de ventas. Normalmente esto se controla desde la parte servidor de una aplicación de BI ahora esto se puede controlar directamente en la base de datos, era algo que todo el mundo esperaba.

Always Encrypted: Todo cifrado, todo controlado…

Es de actualidad últimamente hablar de alguna compañía que denuncia una importante fuga de datos. Encriptar es algo que normalmente funciona, pero muchas empresas no saben hacerlo o no le dan la justa importancia. La filosofía de SQL Server ha apoyado durante mucho tiempo tanto el cifrado de niveles de columna, cifrado en reposo, y el cifrado en tránsito. Lo complicado es que todos estos tuvieron que ser configurado de forma independiente creando un proceso complejo donde es muy fácil equivocarse. Always Encrypted es una nueva funcionalidad que mejora mucho este proceso.

Para los más tecnicos recomendamos estos artículos:

http://www.netmind.es/knowledge-center/novedades-sql-2016/