Saltar al contenido
Categoría: Copilot
2024-06-27

Copilot en Azure SQL Database ¿El fin de los DBA?

Copilot en Azure SQL el fin de los DBA

Bienvenidos/as a un nuevo post en el blog de Aleson ITC. Si estás aquí es por que sabes que la IA se ha convertido en un actor fundamental en el futuro de todas las compañias, y si la tuya utiliza SQL Server también va a poder disfrutar de todas las ventajas que aporta. Hoy hablaremos de Microsoft Copilot en Azure SQL Database.

¿Qué es Microsoft Copilot para Azure SQL Database?

Microsoft Copilot para Azure SQL Database es una herramienta que integra capacidades de IA con Azure SQL Database para mejorar la administración y funcionamiento de aplicaciones que utilicen SQL.

Está orientado a administradores de bases de datos (DBA) y desarrolladores, ayudándoles en gestión de bases de datos, resolución de problemas y a escribir consultas SQL más eficientes.

Que incluye la versión preliminar

Hay que tener en cuenta, que a fecha de redacción de este post, Copilot para Azure SQL DB se encuentra en versión preview, por lo que el conjunto de funcionalidades disponibles es pequeño frente a las previstas en un futuro. Actualmente incluye dos experiencias principales:

  • Integración de Microsoft Copilot en Azure: Agrega asistencia y capacidades de administración de bases de datos y resolución de problemas.
  • Lenguaje natural a query SQL: Traducción de consultas de lenguaje natural a SQL en el editor de consultas de Azure Portal.

Vamos a profundizar un poco en cada una de estas experiencias, para ello he creado una Azure SQL Database con los datos de ejemplo de AdventureWorksLT.

Integración de Microsoft Copilot en Azure

El acceso a Copilot en Azure se realiza desde el portal, en el botón disponible en la barra superior.

Microsoft Copilot en Azure SQL Database

Es recomendable que antes de abrir Copilot, te hayas dirigido al recurso de tu Azure SQL Database donde quieras probarlo, de lo contrario, y si dispones de varias, lo primero que hará cuando le escribas un prompt, es preguntarte sobre que Azure SQL DB quieres actuar.

La integración está preparada para dar respuesta sobre múltiples áreas dentro de SQL Server, tales como configuración, conexiones, querys lentas, índices, query store, estadísticas, rendimiento, backups… En este enlace puedes encontrar muchos prompts de ejemplo. Algunos de ellos son:

  • Ayúdame a encontrar índices fragmentados.
  • ¿Por qué funciona lenta mi base de datos?
  • Comprueba las principales sesiones bloqueadas.
  • ¿Cuándo se creó la copia de seguridad más reciente?

Por ejemplo, voy a preguntarle sobre problemas de fragmentación en índices:

Copilot en Azure SQL DataBase

Vemos que al momento nos da información sobre los índices que habría que desfragmentar. Ahora vamos a pedirle el script para solucionarlo.

Copilot en Azure SQL DataBase

Se puede ver como da la información perfectamente para solucionar el problema.

Lenguaje natural a query SQL

Ahora que ya hemos visto como funciona la integración con Azure Copilot, vamos a probar la traducción de lenguaje natural a TSQL que está diponible en el editor de consultas del portal de Azure.

Lo primero es dirigirnos a nuestra Azure SQL Database y después al apartado Query Editor.

Azure SQL Database - apartado Query Editor

Una vez hayamos hecho login y hagamos click en New Query, veremos el botón con texto Launch inline copilot

Usar Copilot en Azure SQL Database

Al pulsar, nos aparecen nuevas opciones sobre las que vamos a ampliar un poco la información:

Chat con Copilot en Azure SQL Database
  1. El cuadro de texto donde introduciremos en lenguaje natural la consulta que necesitamos. A fecha de redacción de este post únicamente se permite texto en Inglés
  2. Un mensaje advirtiendo que el código puede contener errores y que actualmente solo permite la creación de SELECT.
  3. Si quieres que Copilot únicamente busque en algunas tablas, aquí puedes indicarlo.
  4. Nos muestra que es una funcionalidad en Public Preview.

Ahora vamos a probar que tal funciona la traducción. Esta es la lista de tablas y vistas:

Lista de Tablas en Azure SQL DataBase

El primer prompt de prueba es:

Spanish: Dime el nombre y apellido de todos los clientes cuya compañia contenga la palabra Bike, ordenalos en orden alfabético

English: Tell me the name and surname of all the customers whose company contains the word Bike, in alphabetical order

La respuesta muestra el Prompt, una explicación y la consulta generada.

Chatbot de Microsoft Copilot en Azure Database

Analizando la consulta, parece correcta, apunta a la tabla Customers, el filtro del where es correcto, el select también y el order by también.

SELECT FirstName, LastName
FROM [SalesLT].[Customer]
WHERE CompanyName LIKE '%Bike%'
ORDER BY LastName, FirstName;

Y si procedemos a ejecutarla, el dato que devuelve es el correcto, ordenado por LastName.

Resultado de consulta en Copilot para Azure DB

Vamos a complicarlo un poco añadiendo información nueva al segundo prompt:

Spanish: Dime el nombre, los apellidos, el nombre de empresa, el número de pedidos que han realizado y el importe total del pedido de todos los clientes cuya empresa contenga la palabra Bike, por orden alfabético.

English: Tell me the name, surname, company name, the number of orders they have placed, and the total amount of the order  of all the customers whose company contains the word Bike, in alphabetical order. 

La query generada cumple perfectamente con todo lo solicitado:

SELECT c.FirstName AS [Name], 
       c.LastName AS [Surname], 
       c.CompanyName, 
       COUNT(soh.SalesOrderID) AS [Number of Orders], 
       SUM(sod.LineTotal) AS [Total Amount of Orders]
FROM SalesLT.Customer AS c
JOIN SalesLT.SalesOrderHeader AS soh ON c.CustomerID = soh.CustomerID
JOIN SalesLT.SalesOrderDetail AS sod ON soh.SalesOrderID = sod.SalesOrderID
WHERE c.CompanyName LIKE '%Bike%'
GROUP BY c.FirstName, c.LastName, c.CompanyName
ORDER BY c.LastName, c.FirstName ASC;
Resultado de consulta en Copilot para Azure DB

Por último, vamos a complicar este tercer prompt un poco más.

Spanish: Dime el nombre, los apellidos, el nombre de empresa, el número de pedidos que han realizado y el importe total del pedido de todos los clientes cuya empresa contenga la palabra Bike, por orden alfabético. Añada también el número de caracteres que tiene el nombre de la empresa y si ese número es par o impar.

English: Tell me the name, surname, company name, the number of orders they have placed, and the total amount of the order  of all the customers whose company contains the word Bike, in alphabetical order. Also, add the number of characters the company name has, and whether that number is odd or even.

Nuevamente la consulta que nos devuelve es correcta:

SELECT 
    c.FirstName AS [Name],
    c.LastName AS [Surname],
    c.CompanyName,
    COUNT(soh.SalesOrderID) AS [Number of Orders],
    SUM(sod.LineTotal) AS [Total Order Amount],
    LEN(c.CompanyName) AS [Company Name Length],
    CASE WHEN LEN(c.CompanyName) % 2 = 0 THEN 'Even' ELSE 'Odd' END AS [Odd/Even]
FROM 
    SalesLT.Customer AS c
    INNER JOIN SalesLT.SalesOrderHeader AS soh ON c.CustomerID = soh.CustomerID
    INNER JOIN SalesLT.SalesOrderDetail AS sod ON soh.SalesOrderID = sod.SalesOrderID
WHERE 
    c.CompanyName LIKE '%Bike%'
GROUP BY 
    c.FirstName,
    c.LastName,
    c.CompanyName
ORDER BY 
    c.CompanyName ASC;
Ejecución de consulta de Microsoft Copilot en Azure SQL Database

Se puede decir que Copilot ha pasado la prueba con bastante buena nota, el truco está en ser claro con el prompt y tratar de dar todo el detalle necesario.

Información de interés

Para finalizar, os dejo aquí algunos datos que he ido recopilando y que creo que serán de ayuda.

  • Copilot en Azure SQL Database no utilizará los datos de tus bases de datos para entrenar a modelos de Open AI.
  • De momento Copilot solo está disponible para Azure SQL Database, se espera que proximamente llegue al resto del portfolio de SQL Server, empezando por Managed Instance y continuando con las versiones On Premise.
  • Mientras esté en Preview, Copilot será gratuito. No hay información del precio futuro que tendrá.

Mi opinión

Copilot para SQL se va a convertir en una herramienta indispensable en el día a día, y con esta evolución que estamos teniendo, en pocos meses/años la profesión de programador y de DBA va a sufrir un gran cambio reduciendo mucho el tiempo necesario para realizar las tareas.

Me despido, espero que te haya gustado mucho el post, te invito a seguirme en LinkedIn para estar al tanto de todas las novedades en el área de Data y Analytics.

¿Tienes problemas con tu base de datos? ¿Te planteas adoptar Copilot en tu empresa? Somos expertos en Data y podemos ayudarte.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Complete este formulario para recibir la guía de Windows Server en Azure
*Obligatorio
Complete este formulario para recibir la guía de Windows Server en Azure
Gracias por rellenar el formulario [name]. ¡Aquí tienes tu eBook Gratis!
Complete este formulario para recibir 4 best practices to implement a comprehensive Zero Trust security approach
*Obligatorio
Complete este formulario para recibir 4 best practices to implement a comprehensive Zero Trust security approach
Gracias por rellenar el formulario [name]. ¡Aquí tienes tu eBook Gratis!
Complete este formulario para recibir Cloud Migration Essentials
*Obligatorio
Complete este formulario para recibir Cloud Migration Essentials
Gracias por rellenar el formulario [name]. ¡Aquí tienes tu eBook Gratis!
Complete este formulario para recibir Cloud security Advice for Nonprofit Leaders
*Obligatorio
Complete este formulario para recibir Cloud security Advice for Nonprofit Leaders
Gracias por rellenar el formulario [name]. ¡Aquí tienes tu eBook Gratis!
Complete este formulario para recibir Prevent data leaks with Microsoft 365 Business Premium
*Obligatorio
Complete este formulario para recibir Prevent data leaks with Microsoft 365 Business Premium
Gracias por rellenar el formulario [name]. ¡Aquí tienes tu eBook Gratis!
Complete this form to recieve the guide of Windows Server on Azure
*Required
Complete this form to recieve the guide of Windows Server on Azure
Thank you for filling out the form [name]. Here's your Free eBook!
Complete this form to recieve 4 best practices to implement a comprehensive Zero Trust security approach
*Required
Complete this form to recieve 4 best practices to implement a comprehensive Zero Trust security approach
Thank you for filling out the form [name]. Here's your Free eBook!
Complete this form to recieve Cloud Migration Essentials
*Required
Complete this form to recieve Cloud Migration Essentials
Thank you for filling out the form [name]. Here's your Free eBook!
Complete this form to recieve Cloud security Advice for Nonprofit Leaders
*Required
Complete este formulario para recibir Cloud security Advice for Nonprofit Leaders
Thank you for filling out the form [name]. Here's your Free eBook!
Complete this form to recieve Prevent data leaks with Microsoft 365 Business Premium
*Obligatorio
Complete this form to recieve Prevent data leaks with Microsoft 365 Business Premium
Thank you for filling out the form [name]. Here's your Free eBook!
Complete this form to recieve Cloud Migration Simplified Ebook.
*Obligatorio
Complete this form to recieve Prevent data leaks with Microsoft 365 Business Premium
Thank you for filling out the form [name]. Here's your Free eBook!