SQL Datawarehouse 101 – Parte 1

Visitas: 929

Vamos a comenzar con esta serie de posts dedicados a esta tecnología que brinda Microsoft hace ya un tiempo y cobra mucho valor en estas épocas de volúmenes masivos de información.

Azure SQL Datawarehouse es un servicio Cloud de Microsoft Azure, que ofrece una base de datos relacional con procesamiento paralelo masivo (MPP) capaz de procesar volúmenes masivos de datos.

Bien, hasta ahí la definición de diccionario para este componente de la familia de SQL Server de Microsoft. Pero para entender a este hermano mayor de SQL Server, tendremos que hacer un mínimo de historia y repaso de la arquitectura de Procesamiento Paralelo Masivo (MPP) y como esta difiere con la arquitectura tradicional de SQL Server (SMP o Symmetric Multi-Processing ).

Arquitectura de Procesamiento MPP y SMP

Vamos las definiciones de ambas arquitecturas y como se componen.

SMP: Symmetric Multi-Processing, es un sistema multi-procesador con un alto nivel de acoplamiento donde cada procesador comparte los recursos. Estos recursos son un único Sistema Operativo (OS), Memoria, Dispositivos de I/O e interconectados en un BUS común.

Dicho de una manera simple y sencilla, se trata de un servidor de arquitectura tradicional que conocemos normalmente en las implementaciones de SQL Server.

Fig. 1 Arquitectura SMP

MPP: Massively Parallel Processing , es el procesamiento coordinado de una única tarea realizara por múltiples procesadores, que utilizan sus propio Sistema Operativo y Memoria y que se comunica con cada otro utilizando una interfaz de mensajería. Esta arquitectura se puede implementar con un sub-sistema de disco de tipo shared-nothing (discos locales) o shared-disk (discos en un arreglo, SAN, NAS, etc.)

En la arquitectura Shared-Nothing, no existe ningún punto de contención en el sistema completo y los nodos no comparten recursos de memoria o almacenamiento, Los datos son particionados horizontalmente por cada nodo, para que cada uno de éstos tenga un sub-set de filas de cada tabla almacenada en la base de datos. De esta forma cada nodo procesará solo la porción de registros que posee en sus discos. Los sistemas basados en esta arquitectura pueden escalar en forma masiva ya que no poseen un un punto “cuello de botella” que pueda afectar la performance de todo el sistema.

Fig. 2 Arquitectura MPP shared-nothing

SQL Data Warehouse Componentes y Características

Bien, ahora que ya repasamos la arquitectura MPP, podemos decir que SQL Data Warehouse es un sistema de base de datos distribuido de Procesamiento Paralelo Masivo (MPP, definición larga y de diccionario :-))

Por debajo del capot, el motor de SQL Data Warehouse distribuye los datos en muchas unidades de procesamiento y un almacenamiento shared-nothing (claro que siempre con un criterio! Y tratando de que se haga lo más parejo posible, salvo que nosotros le indiquemos otra cosa, que ya veremos más adelante).

Los datos se almacenan en forma redundante en una capa de Storage de tipo Premium (recordemos que es un servicio de Azure) que a su vez se vincula dinámicamente con los nodos de computo que ejecutan las consultas.

SQL Data Warehouse trabaja bajo el concepto de “división y conquista” para ejecutar cargas de trabajo y querys complejos. Los requerimientos son recibidos por un solo nodo llamado Control Node, el cual optimiza y prepara la distribución del trabajo, para luego enviarlos a los otros servidores que se llaman Compute Nodes, los cuales trabajan en paralelo.

Debido a la arquitectura desacoplada de Almacenamiento y Cómputo, y al ser un servicio de Azure, SQL Datawarehouse puede cumplir con los siguientes:

  • Aumentar o reducir el tamaño del almacenamiento en forma independiente a los recursos de cómputo
  • Aumentar o reducir la capacidad del cómputo sin mover datos
  • Pausar la capacidad de cómputo dejando intactos los datos, y en consecuencia solo pagar por el almacenamiento
  • Reactivar la capacidad de cómputo durante las horas de operación  del negocio

Fig. 3 SQL Datawarehouse detalles de componentes

Control node: El Control node administra y es el encargado de optimizar los querys. Es la capa de presentación que interactúa con todas las aplicaciones y conexiones. En un SQL Data Warehouse, el Control node internamente no es otra cosa que una instancia de Azure SQL Database, y una vez que nos conectamos a él se puede ver que es lo mismo que una conexión a SQL Server tradicional. La diferencia es que el Control node coordina todo el movimiento de datos y el procesamiento requerido para ejecutar los querys en forma paralela sobre los datos distribuidos. Cuando se envía un query T-SQL a ejecutar,  el Control node lo transforma en querys separados para que puedan ejecutarse en paralelo en cada Compute Node.

Compute nodes: Cada Compute node es el músculo detrás del SQL Data Warehouse. Cada uno de éstos, son instancias Azure SQL Database que almacenan los datos y procesan los querys. Cada vez que se añade información,  el SQL Data Warehouse distribuye los registros en cada Compute node que posee la implementación. Estos Compute nodes son los que trabajan en paralelo para ejecutar cada query sobre la porción local de datos que posee cada uno. Luego de procesar, estos le pasan los resultados al Control node. Y para finalizar el Control node realizar las agregaciones de todas las partes para devolver el resultado final.

Storage: Toda la información es almacenada en Azure  Blob storage. Cuando los Compute nodes trabajan con los datos, estos escriben y leen directamente desde y hacia al blob storage. Debido a la característica de Azure storage que pude expandirse transparente y ampliamente, , SQL Data Warehouse hereda esta característica. Además, dado que el almacenamiento y el cómputo se encuentran separados, SQL Data Warehouse puede escalar el almacenamiento en forma independiente de escalar los nodos de cómputo y vice-versa (maximizando el costo y eficiencia de uso de la solución). Asimismo, Azure Blob storage es una solución de almacenamiento que es completamente tolerante a fallos, y automatiza el proceso de  backup y restore.

Data Movement Service: El servicio de Data Movement  (DMS) es el encargado de “mover” los datos entre los nodos. El DMS otoga a los Compute nodes acceso a los datos que necesitan para los joins y las agregaciones . El DMS no es un servicio de Azure, es un servicio de Windows que se ejecuta al lado del servicio de Azure SQL Database en todos los nodos.. El DMS es un proceso background que no puede ser accedido en forma directa. Sin embargo, se pueden ver los query plans y observar las operaciones del DMS, ya que el movimiento de datos es requerido normalmente para ejecutar un query en paralelo.

Resumen

Como hemos podido ver, SQL Datawarehouse es más que una sola caja corriendo un gran SQL Server, es una arquitectura distribuida y con el corazón en el servicio de DMS y el Control Node. Si bien existen ofertas de Hardware de DELL o HP para ejecutar esta arquitectura on-premises, el beneficio completo se ve en el servicio de Azure ya que a diferencia de on-premises se puede escalar y disminuir tanto la capacidad de cómputo como el almacenamiento, y en consecuencia se maximiza la performance y el costo al mismo tiempo.

Y desde mi perspectiva, el punto más importante es que toda la solución utiliza código T-SQL, lo que permite apalancar cualquier solución existente de SQL Server (con algún cambio menor obviamente) y utilizar la potencia de procesamiento en paralelo.

En las próximas series, veremos cómo aprovisionar un entorno de SQL Datawarehouse en Azure y como probar las distintas características del motor.

Links y Referencias

SQL DW: https://azure.microsoft.com/es-es/services/sql-data-warehouse/

Doc. Producto: https://docs.microsoft.com/es-es/azure/sql-data-warehouse/

TRIAL: https://azure.microsoft.com/en-us/services/sql-data-warehouse/extended-trial/?wt.mc_id=AID627566_QSG_SCL_183831&utm_source=t.co&utm_medium=referral

Webcast – SQLArgentina – OnLine Series – SQL Server 2017 Mejoras impulsadas por la comunidad

Visitas: 198

Webinar que llevamos a cabo con Javier Villegas el 15 de Julio de 2017.

SQL Server 2017 Mejoras impulsadas por la comunidad

Con SQL Server 2017 Microsoft incorpora nuevas funcionalidades propuestas por la comunidad de profesionales de Data Platform, hablaremos acerca de las mismas así como también sobre las funcionalidades más destacadas de la próxima versión de SQL

Links a Materiales:

Lanzamiento de SQL Server 2017 Release Candidate 1

Visitas: 191

El equipo de SQL Server en Microsoft ha estado trabajando a un ritmo tremendo.

Apenas a un año y un poco mas del lanzamiento de SQL Server 2016 , la versión 2017 ya ha alcanzado el primer Release Candidate.
Esto significa que el trabajo de desarrollo de la nueva versión de SQL Server se ha completado en la mayoría de las características necesarias para proporcionar el rendimiento y la seguridad requerida para la industria de SQL Server como así también en las nuevas tecnologías de contenedores Windows, Linux y Docker.

Link: https://blogs.technet.microsoft.com/dataplatforminsider/2017/07/17/first-release-candidate-of-sql-server-2017-now-available/

A probar!

Novedades en Power BI – Junio 2017

Visitas: 223

Durante Mayo, además de la publicación Update tradicional mensual del servicio de Power BI y Power BI Desktop, Microsoft ha anunciado un nuevo nivel de servicio: Power BI Premium.

Power BI Premium

Cuál fue el anuncio de los primeros días de mayo?

Microsoft ha anunciado la llegada del servicio Power BI Premium, que se trata un nuevo nivel de servicio basado en Capacidad (tal como otros servicios SaaS de Microsoft, ej. Azure  SQL Database) que incluirá lo siguiente:

  • Flexibilidad para publicar reportes dentro de toda una organización, sin que esta tenga la necesidad de licenciar individualmente por usuario
  • Mejor escalabilidad y performance a través de la posibilidad de obtener capacidad dedicada por tenant de Power BI
  • Soporte para mantener publicaciones de reportes Power BI on-premises (instalado en servidores locales) con el nuevo servicio de Power BI Report Server.
  • Adicionalmente se anunció también el lanzamiento de Power BI apps, que es la evolución de los content packs de reportes y dashboards pre-definidos que ayudan a los usuarios a descubrir y explorar la información a nivel de toda la compañía

Que es Power BI Premium ? Y cómo funcionará?

Power BI Premium  se trata del servicio de Power BI como lo conocemos (con algunas cosas más..), pero que tiene una garantía de capacidad de procesamiento exclusiva asignada a cada organización, con Hardware dedicado y exclusivo (obviamente totalmente administrado por Microsoft como servicio SaaS).

De esta forma, las organizaciones pueden dedicar capacidad exclusiva de Power BI, basada en las necesidades de procesamiento, cantidad de usuarios u otros factores, pudiendo asimismo aumentar o disminuir la capacidad en forma dinámica.

Diferencias de  Power BI Premium y Power BI Pro

La gran diferencia de Power BI Premium es que elimina las restricciones en los tamaños de los Data Sets (10 GB en Power BI Pro) y la tasa de refrescos (8 por día Power BI Pro), y al ser tenants dedicados provee una gran aislamiento a nivel de hardware.

Recordemos que los modelos Power BI, están basados en Cubos en Memoria de tecnología Vertipaq y esto requiere de CPU y Memoria RAM para poder ejecutarse.

Power BI Premium también permite publicar los reportes PBIX a todos los miembros de una organización; sin que estos requieran licenciamiento individual; mediante la creación de Power BI Apps o bien mediante la instalación de un Power BI Report Server (ya lo describiremos más adelante).

Power BI Pro debe ser licenciados para aquellos usuarios que publican los reportes, los comparten y realizan colaboración en otros reportes de Power BI.

En resumen, lo que se puede realizar con Power BI Pro es:

  • Editar y guardar vistas personalizadas
  • Crear dashboards personales
  • Exportar y analizar datos en Excel o Power BI Desktop
  • Exportar a PowerPoint
  • Compartir dashboards y colaborar con Grupo Office 365

 

Las novedades : Power BI Report Server y Power BI Apps

Power BI Report Server

Power BI Report Server estará disponible como parte de del servicio Power BI Premium y será compatible con reportes SSRS, lo que permitirá el deploy y distribución de reporte interactivos Power BI (pbix) – y los tradicionales paginados SSRS – en servidores locales (on-premises) para todos los usuarios de la organización sin necesidad que estos tengan licenciamiento de Power BI.

Esto le permitirá a las organizaciones poder utilizar la potencia de Power BI (sin tener que distribuir la aplicación Power BI Desktop) y a la vez aquellas que no puedan utilizar la nube para publicar reportes seguir utilizando Power BI en sus ambientes locales.

Algunas capacidades de Power BI como dashboards en real-time , natural language query, y otros servicios no estarán disponibles como parte de Power BI Report Server.

Esto ya lo habíamos visto como un preview público, para utilizarlo en Azure como una máquina virtual ya pre-configurada y que ahora ya tiene fecha de lanzamiento oficial.

Power BI Apps

A partir de este anuncio, se encuentra disponible Power BI apps, que es un servicio para mejorar como los usuarios descubren y explorar la información de la organización.

Power BI apps permite de una manera simple, realizar el deploy de dashboards y reportes  a personas o grupos especificos o bien a toda la organización.

Los usuarios de negocio, puede fácilmente instalar estas Apps y navegar el contenido que está centralizado en estas aplicaciones, las cuales pueden ser actualizadas en forma automática.

Esto estará disponible dentro la opción de Workspaces, donde se podrán crear Workspaces de Aplicaciones y luego agregar los dashboards y reportes para cada aplicación.

 

Licenciamiento Power BI Premium

Power BI Premium se licencia por capacidad, mientras que Power BI Pro se licencia por usuario.

Pero…siempre están los peros…para poder utilizar Power BI Premium, se necesita al menos licenciar adicionalmente un usuario con Power BI Pro.

Esto es un requisito para publicar, compartir y colaborar en reportes y dashdboards.

Hasta la fecha, Power BI Premium se puede comprar en base de Virtual Cores y con facturación mensual:

Configuración de Nodo                            Virtual Cores         Precio Mensual

Power BI Premium P1                                                  8            $4,995

Power BI Premium P2                                                16            $9,995

Power BI Premium P3                                                32            $19,995

Y para activarlo, se podrá ver como un Add-On al servicio Power BI Pro en el portal de Office 365.

Licenciamiento Power BI Report Server

Para obtener el Power BI Report Server, se deberá contratar Power BI Premium o bien contar licenciamiento previo de SQL Server Enterprise Edition con Software Assurance que tiene como beneficio la posibilidad de instalar este componente.

Licenciamiento Power BI Pro y Power BI Free

Con este anuncio, se simplifica la diferencia entre Power BI Pro y el servicio Free, con algunas salvedades.

A partir del 1 de junio, el servicio Free tendrá las mismas capacidades que el servicio Power BI Pro, excepto las funciones de Compartir y Colaboración, que serán exclusivas para los usuarios de Power BI Pro.

Los usuarios de Power BI Free se beneficiarán con el acceso a todos los datasources, la ampliación de los límites de almacenamiento y más cantidad de refresh de contenido, en forma efectiva a partir del 1ro de junio

El software de Power BI Desktop quedará disponible en forma gratuita y seguirá con su ciclo de actualizaciones mensuales.

Disponibilidad

El servicio Power BI Premium se encontrará disponible, de acuerdo a lo que anunció Microsoft al final del segundo trimestre del año en todas las geografías donde el servicio de Power BI esté actualmente soportado.

Conclusión

Sin dudas Power BI , es uno de los servicios que más cambios a esta fecha ha tenido, y motivado en parte por la gran comunidad a su alrededor y por otro lado el foco que tiene Microsoft en estas áreas de Analytics.

Por otro lado, al abrir más y nuevas formas de implementar el servicio, se abren nuevas preguntas de licenciamiento para cada caso y escenario de uso que habrá que analizar puntualmente.

Links de Utilidad y Referencia:

https://aka.ms/pbipremiumwhitepaper

https://powerbi.microsoft.com/en-us/power-bi-premium/

https://powerbi.microsoft.com/en-us/blog/distribute-to-large-audiences-with-power-bi-apps/

https://powerbi.microsoft.com/en-us/documentation/powerbi-whitepapers/

Charlas – SQL 2016 Upgrade & Mission Critical

Visitas: 174

El pasado 9 y 28 de Marzo, realizamos en conjunto con Microsoft Argentina dos desayunos con charlas acerca de las capacidades de SQL Server 2016 para Misión Crítica y todas las buenas prácticas para realizar un upgrade a esta versión.

Para el evento de Upgrade, contamos con Lucas Fernandez (@lucashfernandez) donde repasamos todos los caminos y buenas prácticas para realizar un upgrade minimizando riesgos antes y después de la actualización. También vimos las herramientas nuevas para realizar assestments (DMA y DEA).

En la charla de Misión Crítica, me acompañó Javier Villegas (@javier_vill), gran amigo y ahora reconocido MVP Data Platform, donde vimos los features de SQL 2016 para alta disponibilidad y repasamos casos de implementación de Always On para HA y Disaster Recovery.

Los links al material los pueden ver en los siguientes Links:

Upgrade a SQL 2016 : http://sqlargentina.pass.org/Home.aspx?EventID=6679

SQL 2016 para Misión Crítica : http://sqlargentina.pass.org/Home.aspx?EventID=6753

Muchas gracias a todos los que nos acompañaron y los sponsors de las charlas: Microsoft Argentina (@MSFTArgentina) y Precision IT (@precisionit_AR)