Compartir a través de


Grupos de SQL personalizados

Aplicable a:✅ Punto final de análisis SQL y Almacén en Microsoft Fabric

Los grupos de SQL personalizados permiten a los administradores tener más control sobre cómo se asignan los recursos de proceso de back-end a su almacén y al punto de conexión de SQL Analytics en un área de trabajo.

Diagrama del motor de SQL con grupos de SQL personalizados.

Fabric Data Warehouse proporciona administración de cargas de trabajo autónomas que separa los recursos de proceso en grupos de SQL internos que se escalan de forma independiente en función de la demanda.

De forma predeterminada, los límites de aislamiento son ingesta (SELECT tipos de instrucciones no) y procesamiento de consultas (SELECT instrucciones). Con grupos de SQL personalizados, los administradores pueden:

  • Cambie el número de límites de aislamiento (agregue más grupos de SQL personalizados).
  • Cree clasificaciones de cargas de trabajo personalizadas específicas del nombre de aplicación.
  • Controlar la asignación de recursos de cada grupo a través de un porcentaje máximo de recursos.

Casos de uso de grupos de SQL personalizados

Los grupos de SQL personalizados tienen dos casos de uso principales: proteger las cargas de trabajo contra la competencia de recursos y proteger contra la restricción de capacidad de Fabric debido a un alto consumo.

Competir con cargas de trabajo con los grupos de cargas de trabajo autónomas

Este escenario se aplica cuando las distintas cargas de trabajo compiten por los recursos, lo que provoca que las cargas de trabajo críticas pierdan los objetivos de rendimiento.

Escenario de ejemplo

  • Una carga de trabajo de informes empresariales se realiza de forma subóptima cuando las consultas de usuario ad hoc se ejecutan desde el editor de consultas SQL en el portal de Fabric.

Enfoque recomendado

  • Divida estas cargas de trabajo en dos grupos de SQL personalizados independientes.
  • Asigne un porcentaje mayor de recursos al grupo que atiende a la aplicación de informes empresariales, lo que garantiza que hay más recursos disponibles para la aplicación crítica para la empresa.

Restricción de capacidad debido a un alto consumo

Este escenario se aplica cuando el consumo de alta capacidad de Fabric provoca una limitación que afecta al rendimiento general del almacenamiento.

Escenario de ejemplo

Enfoque recomendado

  • Reduzca el porcentaje total de recursos asignado al almacén afectado.
  • Supervise si este cambio reduce la limitación de consultas y mejora el rendimiento general.

Diferencias entre la administración de cargas de trabajo autónomas y los grupos de SQL personalizados

Tema Administración autónoma de cargas de trabajo Grupos de SQL personalizados
Configuración Ninguno (fuera de la caja) - Interfaz de usuario web
- API
Permisos N/A Administrador del área de trabajo
Ámbito Área de trabajo: incluye el almacenamiento y el punto de conexión de SQL Analytics. Área de trabajo: incluye el almacenamiento y el punto de conexión de SQL Analytics.
Método de clasificación Tipo de declaración (SELECT u otro) - Nombre de la aplicación
- Expresión regular de nombre de aplicación
Unidad de medida N/A Porcentaje de los nodos de back-end totales
Grupos de SQL SELECT u otros Asignación definida por el usuario
Capacidad ampliable Administrado por Fabric (hasta 12 veces por grupo de SQL, 24 veces en total) Definido por el usuario en función del porcentaje de nodos de back-end asignados. La cantidad total de recursos sigue siendo de 24 veces.

Capacidad ampliable

Los grupos de SQL personalizados permiten a un administrador configurar el porcentaje máximo de recursos como la cantidad de recursos de proceso que se pueden asignar. El factor de expansión del tamaño del SKU de capacidad será aplicado y usado según el porcentaje especificado para cada pool.

Clasificadores

Un clasificador es un atributo de una solicitud SQL que informa al sistema de cómo enrutar al grupo de SQL adecuado.

Fabric Data Warehouse proporciona tres maneras de clasificar las solicitudes:

Tipo clasificador Descripción Configuración
Tipo de sentencia Clasifica las solicitudes en SELECT (consulta) o no-SELECT (todas las instrucciones DML, DDL) Solo administración de cargas de trabajo autónomas
Nombre de la aplicación - Aplicación (o nombre del programa) que se usa en la cadena de conexión al conectarse al punto de conexión de Fabric Warehouse o SQL Analytics.
: admite varios nombres de aplicación por grupo de SQL personalizado.
- 128 caracteres o menos
- Grupos de SQL personalizados mutuamente excluyentes
Solo grupos de SQL personalizados
Expresión regular para el nombre de la aplicación - Expresión regular que se usa para hacer coincidir el valor del nombre de la aplicación.
- Solo se evalúa el primer valor de la lista para la expresión regular.
Solo grupos de SQL personalizados

Directrices:

  • Solo se puede usar un tipo clasificador por área de trabajo. Todos los grupos de SQL personalizados de una sola área de trabajo deben usar el mismo clasificador.
  • En el caso de un clasificador de expresiones regulares de nombre de aplicación, si una solicitud satisface dos o más clasificaciones, la selección del grupo de SQL personalizado es aleatoria y no hay criterios de priorización.

Permisos

  • Los miembros del rol de área de trabajo Administrador pueden habilitar o deshabilitar grupos de SQL personalizados para un área de trabajo.
  • Los miembros del rol de espacio de trabajo Administrador pueden actualizar las configuraciones personalizadas del pool de SQL.

Configuración de grupos de SQL personalizados

Puede configurar grupos de SQL personalizados en Fabric Data Warehouse en el portal de Fabric o mediante llamadas API.

Monitor

Puede ver el nombre de la aplicación y el grupo de SQL que se registraron para una consulta en los campos program_name y sql_pool_name de la vista del sistema queryinsights.exec_requests_history.

Puede usar program_name como nombre de aplicación en un clasificador o en un patrón de expresión regular para un clasificador de nombres de aplicación.

Por ejemplo, para buscar todo el program_name y el correspondiente sql_pool_name en el historial reciente:

SELECT DISTINCT 
         program_name
        ,sql_pool_name
FROM queryinsights.exec_requests_history;

Puede identificar qué grupos de SQL están bajo presión consultando la queryinsights.sql_pool_insights vista.

Por ejemplo, busque períodos de tiempo en los que un grupo estaba bajo presión durante la semana pasada.

SELECT [timestamp]
        ,sql_pool_name
        ,max_resource_percentage
        ,is_pool_under_pressure
FROM queryinsights.sql_pool_insights
WHERE is_pool_under_pressure = 1
AND [timestamp] > DATEADD(WEEK, -1, GETDATE())
ORDER BY [timestamp] DESC, sql_pool_name;

Para agregar program_name valores mediante algunas métricas de costo de consulta, puede usar la consulta siguiente:

SELECT 
    program_name,
    sql_pool_name,
    [CPU] = SUM(allocated_cpu_time_ms), 
    [Disk] = SUM(data_scanned_disk_mb), 
    [Memory] = SUM(data_scanned_memory_mb), 
    [Remote storage] = SUM(data_scanned_remote_storage_mb)
FROM queryinsights.exec_requests_history
GROUP BY program_name, sql_pool_name
ORDER BY [CPU] desc, [Disk] desc, [Memory] desc, [Remote storage] desc;

Limitaciones

  • Un área de trabajo debe contener uno o varios almacenes o puntos de conexión de SQL Analytics antes de ejecutar las API.
  • Puede crear hasta ocho grupos de SQL personalizados por área de trabajo.
  • Cuando se quita un grupo de SQL personalizado mientras se ejecuta una consulta en el grupo, la consulta fallará con un mensaje de Request to perform an external distributed computation has failed with error "Query canceled by user.". Cambiar el tamaño de un grupo de SQL personalizado no causa fallos en las consultas.

Cambios en el tamaño de la capacidad del tejido

Cada área de trabajo tiene una capacidad con unidades de capacidad asociadas (RU), en función de la SKU que compre. La capacidad de ráfaga de los pools de SQL personalizados depende del tamaño de la SKU. Por lo tanto, al cambiar la capacidad, se altera la cantidad máxima de recursos disponibles en cada grupo de SQL personalizado.

Al cambiar el tamaño de la SKU de capacidad o asignar una capacidad diferente a un área de trabajo, si los grupos de SQL personalizados están habilitados, se escalan automáticamente al nuevo tamaño de SKU.

Si el escalado descendente fuerza un grupo de SQL a cero nodos asignados, el siguiente error se muestra en tiempo de ejecución: "El grupo de SQL asignado para esta consulta no tiene recursos y se debe volver a configurar". Un administrador debe volver a configurar grupos de SQL personalizados para quitar este error.

Paso siguiente