Características de SQL Server en Linux

Completado

Para justificar una migración SQL Server a los titulares del presupuesto, es útil saber qué características de SQL Server pueden proporcionar una ventaja competitiva para los sistemas.

Imagine que, después de investigar qué es SQL Server en Linux, quiere asegurarse de que las características actuales disponibles cumplen los requisitos de Wide World Importers para el procesamiento de datos existentes y futuros.

Aquí obtendrá información sobre las características principales de SQL Server en Linux.

Rendimiento

SQL Server en Linux admite las necesidades competitivas de rendimiento transaccional rápido y el análisis con capacidad de respuesta, mediante una solución de procesamiento analítico transaccional híbrido (HTAP). En HTAP se usan algunas de las principales tecnologías de rendimiento de SQL Server:

Procesamiento de transacciones en línea (OLTP) en memoria

Mediante la combinación de tablas optimizadas para memoria y procedimientos almacenados compilados, Wide World Importers podría mejorar significativamente el rendimiento de sus tablas transaccionales, por ejemplo, mediante la escritura y lectura del estado de la sesión para el sitio web de comercio electrónico.

Índice de almacén de columnas

SQL Server admite datos de filas y de columnas comprimidas. Las tablas transaccionales también pueden tener un índice de almacén de columnas que se usa en lugar del almacén de filas al escribir consultas analíticas. El uso de índices de almacén de columnas permitiría que el conjunto de datos de análisis actual conservara el rendimiento transaccional y también ejecutara consultas de informes en tiempo real sobre los datos operativos.

Almacén de consultas

El equipo de DBA completa una tarea de optimización del rendimiento mensual para asegurarse de que se usan los planes de consulta correctos. Supervisan el rendimiento de las consultas y revierten los planes de consulta en los que los cambios en los planes de ejecución han afectado al rendimiento. El equipo también informa al responsable de desarrollo sobre las 10 consultas que tardan más en ejecutarse y comprueba los bloqueos de recursos. El Almacén de consultas admite todas estas tareas y se puede habilitar con Transact-SQL:

ALTER DATABASE <database name>
SET QUERY_STORE (OPERATION_MODE = READ_WRITE);

Ajuste automático y procesamiento de consultas inteligentes

Puede habilitar la corrección automática de la selección de plan después de habilitar el Almacén de consultas. Con el ajuste automático habilitado, SQL Server supervisa el rendimiento de las consultas. Si un nuevo plan de consulta es peor que la versión anterior, puede reemplazarlo por la versión anterior que funciona mejor. La opción está disponible en el nivel de base de datos, con una instrucción ALTER:

ALTER DATABASE <database name>
SET AUTOMATIC_TUNING ( FORCE_LAST_GOOD_PLAN = ON );

El Procesamiento de consultas inteligentes (IQP) es un conjunto de características, muchas de ellas nuevas en SQL Server 2019, que mejoran y optimizan de forma automática el rendimiento de la carga de trabajo. Entre las características de IQP se incluyen las siguientes:

  • Combinaciones adaptables: SQL Server selecciona de forma dinámica un tipo de combinación durante el tiempo de ejecución en función del número real de filas de entrada.
  • Recuento aproximado distintivo: SQL Server proporciona un recuento aproximado de resultados distintos para escenarios de macrodatos a fin de ejecutar ese tipo de consultas con un alto rendimiento y una carga de memoria baja.
  • Comentarios de concesión de memoria: Si una consulta tiene operaciones que se desbordan en el disco, SQL Server puede agregar más memoria para las operaciones posteriores. Del mismo modo, si una consulta desperdicia más de la mitad de la memoria que tiene asignada, SQL Server puede reducirla.
  • Compilación diferida de variable de tabla: SQL Server usa la cardinalidad real de una variable de tabla en su primera compilación en lugar de una estimación fija.

IQP no requiere que vuelva a escribir ningún código ni que cambie el esquema de la base de datos para aprovechar el rendimiento de forma óptima. Todo lo que tiene que hacer es actualizar una base de datos al nivel de compatibilidad 150 o posterior:

ALTER DATABASE <database name> SET COMPATIBILITY_LEVEL = 150;

Seguridad

SQL Server en Linux admite características de seguridad avanzadas como Always Encrypted, seguridad de nivel de fila y enmascaramiento dinámico de datos para proteger los datos en disco, en memoria o en tránsito. Todas estas características se admiten en todas las ediciones, incluida la edición Standard:

  • Cifrado de datos transparente (TDE) cifra los datos en reposo cuando se almacenan en archivos de base de datos. Los datos están protegidos frente a usuarios malintencionados en la base de datos y en las copias de seguridad.

  • Always Encrypted garantiza que solo los usuarios que poseen datos puedan verlos y procesarlos. Los usuarios que administran datos, como los administradores de base de datos, no pueden verlos. Si usa Always Encrypted:

    • Puede consultar los datos cifrados sin descifrarlos primero.
    • Los datos se protegen en reposo, cuando se mueven a la memoria del servidor y cuando pasan del servidor a la aplicación cliente de confianza.
    • El cifrado y descifrado tienen lugar en el controlador de cliente, de modo que el proceso es transparente para las aplicaciones cliente.
    • Solo las aplicaciones de confianza y los propietarios de los datos pueden acceder a ellos. Los desarrolladores de aplicaciones y los administradores de base de datos no tienen acceso a la clave de cifrado de columnas (CEK).
  • La auditoría realiza el seguimiento de los eventos que se producen en el motor de base de datos y de quién los ha ejecutado. Los eventos auditados se pueden almacenar en registros de eventos o archivos de auditoría, y se pueden usar para investigar problemas como ataques e infracciones de datos.

  • La seguridad de nivel de fila controla el acceso a filas específicas de una tabla, en función de quién ejecute la consulta. Puede controlar quién accede a los datos, por ejemplo, por pertenencia a grupos o contexto de ejecución.

  • El Enmascaramiento dinámico de datos enmascara una parte de los datos. Hay cuatro tipos diferentes de máscaras disponibles: enmascaramiento de todos los datos de una columna, de las direcciones de correo electrónico, enmascaramiento de números aleatorios para datos numéricos y enmascaramiento de cadenas personalizado. Puede usar el enmascaramiento de cadenas personalizado, por ejemplo, para enmascarar todos los dígitos excepto los cuatro últimos en un número del seguro social.

  • Detección y clasificación de datos identifica y etiqueta los datos confidenciales de las bases de datos, como los datos personales, e informa sobre ellos. Se trata de una herramienta incluida en SQL Server Management Studio (SSMS) que facilita el cumplimiento de la legislación de privacidad de datos y la protección de las bases de datos que contienen los datos más valiosos. Detección y clasificación de datos es un servicio que forma parte del paquete Advanced Data Security (ADS).

  • Evaluación de vulnerabilidades identifica vulnerabilidades en las bases de datos. Una vez que conozca los puntos débiles que la configuración del servidor y los diseños de bases de datos pueden causar, puede mitigarlos y evitar ataques comunes. Evaluación de vulnerabilidad es otro servicio de ADS.

Agente SQL Server

Agente SQL Server ejecuta trabajos de mantenimiento y tareas automatizadas programadas. Agente SQL Server admite las tres cargas de trabajo siguientes:

  • Trabajos de Transact-SQL
  • Correo electrónico de base de datos
  • Trasvase de registros

Agente SQL Server está deshabilitado de forma predeterminada, pero se instala y se puede habilitar mediante la utilidad mssql-conf de línea de comandos.

sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true
sudo systemctl restart mssql-server

Alta disponibilidad

SQL Server tiene muchas maneras de especificar el nivel de tolerancia a errores aceptable. SQL Server en Linux admite grupos de disponibilidad Always On e instancias de clúster de conmutación por error Always On. Las dos opciones requieren el paquete mssql-server-ha instalado en cada servidor. Linux admite la agrupación en clústeres a través de Pacemaker, que es un equivalente a los clústeres de conmutación por error de Windows Server (WSCF), aunque no se integra de forma estrecha en el sistema operativo del host.

Si hay más flexibilidad para el tiempo de inactividad que se acepta, el trasvase de registros a través del Agente SQL puede proporcionar estados de espera semiactiva, que se usan para recuperarse de la pérdida del servidor.

Otra solución para SQL Server en Linux es su capacidad de ejecutarse en contenedores orquestados mediante herramientas como Kubernetes. Las herramientas de orquestación garantizan que siempre haya un nodo que ejecute SQL Server. Si se produce un error en ese nodo, se arranca otra instancia de forma automática. Cuando se requiere una disponibilidad más sólida, se puede ejecutar un grupo de disponibilidad Always On en contenedores.

Otras características importantes

PolyBase

Muchas organizaciones tienen datos en diferentes sistemas. Esto puede deberse a que diferentes equipos tuvieran requisitos distintos cuando seleccionaron su sistema, porque la empresa se haya fusionado con otra o por algún otro motivo histórico. Tradicionalmente ha sido difícil integrar los datos entre estos límites del sistema para responder a las preguntas de los usuarios.

Supongamos que tiene datos en SQL Server que registran las ventas de su catálogo de productos, pero los datos que registran cuánto cuesta fabricar sus productos están en una base de datos SAP HANA. Quiere crear un informe que analice los márgenes de beneficios. Necesitará información de las dos bases de datos. En el pasado, podía:

  • Usar un paquete de extracción, transformación y carga (ETL) para migrar datos de un sistema de bases de datos a otro.
  • Consultar las dos bases de datos y, después, escribir código personalizado para unir e integrar los resultados en un único informe.

Los dos enfoques son complejos y pueden requerir un tiempo de desarrollo significativo para conseguir que sean correctos.

Con PolyBase, puede crear una tabla externa en SQL Server. Una tabla externa es una conexión a un sistema externo y a un conjunto de información hospedado allí. Después de crearla, los clientes pueden enviar consultas a la tabla externa exactamente del mismo modo que harían con tablas internas. Las consultas JOIN pueden integrar datos de tablas externas con tablas internas. Como se aprecia, PolyBase puede quitar los límites que imponen los distintos sistemas a los datos y facilitar el análisis que necesita en los datos empresariales, independientemente de su ubicación.

Nota:

En los sistemas operativos Linux, PolyBase es compatible con SQL Server 2019 o versiones posteriores. Para usarlo, debe instalar el paquete mssql-server-polybase, además de SQL Server 2019.

Machine Learning Services

En el aprendizaje automático, se usan grandes conjuntos de datos para modelar el comportamiento de un sistema complejo. Cuando se ha desarrollado un modelo que predice con precisión el comportamiento observado del sistema, se usa para predecir cómo se podría comportar ese sistema en el futuro. Se han desarrollado bibliotecas de código sofisticadas, a menudo de código abierto, que permiten preparar el conjunto de datos, agregarle características, entrenar un modelo, evaluar la precisión del modelo entrenado e implementar esos modelos para que otros clientes los llamen. Estas bibliotecas se escriben en los lenguajes R y Python.

SQL Server Machine Learning Services permite ejecutar estos scripts de R y Python con los datos de las bases de datos de SQL Server. Puede agregar marcos conocidos de aprendizaje automático y de ciencia de datos, como PyTorch, TensorFLow, SciKit-Learn y otros.

Nota:

En los sistemas operativos Linux, SQL Server Machine Learning es compatible con SQL Server 2019 o versiones posteriores. Para usarlo, debe agregar paquetes adicionales. Por ejemplo, si quiere usar Python para todo el código de aprendizaje automático, instale el paquete mssql-mlservices-mlm-py-9.4.7. El paquete equivalente para R es install mssql-mlservices-mlm-r-9.4.7.

Compatibilidad con gráficos

SQL Server tiene compatibilidad nativa para almacenar y consultar datos basados en gráficos. SQL Server almacena los datos como una serie de entidades (nodos) y las relaciones (bordes) entre ellas.

Las búsquedas de texto completo permiten a los usuarios ejecutar consultas en datos de texto que respetan las reglas del lenguaje. Por ejemplo, al buscar la palabra "ejecutar", una búsqueda de texto completo devuelve resultados que incluyen variantes de esa palabra, como "ejecutado" y "en ejecución".

Esta característica no se instala de forma predeterminada. En Linux, instale el paquete mssql-server-fts para habilitarla.

Cargas de trabajo de ETL

Los paquetes de SQL Server Integration Services (SSIS) se pueden ejecutar en SQL Server en Linux. No están restringidos a ejecutarse solo en SQL Server en Linux. Estos paquetes también se pueden conectar a Microsoft SQL Server cuando se ejecuta en Windows de forma local o en la nube, o bien a SQL Server en ejecución en un contenedor.

Debe escribir y mantener paquetes SSIS en un equipo Windows en el que se ejecute SQL Server Data Tools.

Comprobación de conocimientos

1.

¿Qué características proporciona SQL Server en Linux para admitir la continuidad empresarial?

2.

Si los datos se cifran mediante Always Encrypted, ¿cuándo se descifrarán?