Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este tutorial se usa Azure Functions para administrar recursos de proceso para un grupo de SQL dedicado (anteriormente SQL DW) en Azure Synapse Analytics.
Para usar una aplicación de funciones de Azure con un grupo de SQL dedicado (anteriormente SQL DW), debe crear una Cuenta de Principal de Servicio. La cuenta de entidad de servicio necesita obtener acceso de colaborador en la misma suscripción que la instancia de grupo de SQL dedicado (anteriormente SQL DW).
Implementación del escalado basado en temporizador con una plantilla de Azure Resource Manager
Para implementar la plantilla, necesita la siguiente información:
- Nombre del grupo de recursos en el que se encuentra su instancia del grupo de SQL dedicado (anteriormente SQL DW).
- Nombre del servidor en el que se encuentra la instancia del grupo de SQL dedicado (anteriormente SQL DW)
- Nombre de la instancia del grupo de SQL dedicado (anteriormente SQL DW)
- Identificación de inquilino (Identificación de directorio) del ID de Microsoft Entra
- Id. de suscripción
- Id. de aplicación de la entidad de servicio
- Clave secreta del principal de servicio
Una vez que tenga la información anterior, implemente esta plantilla:
Una vez que haya implementado la plantilla, debe encontrar tres recursos nuevos: un plan gratuito de Azure App Service, un plan de Function App basado en el consumo y una cuenta de almacenamiento que controle el registro y la cola de operaciones. Siga leyendo las otras secciones para ver cómo modificar las funciones implementadas para adaptarlas a sus necesidades.
Cambio de la hora de la operación de escalado
Vaya a Function App Service. Si ha implementado la plantilla con los valores predeterminados, este servicio debe denominarse DWOperations. Una vez abierta la aplicación de funciones, debe observar que hay cinco funciones implementadas en Function App Service.
Seleccione DWScaleDownTrigger o DWScaleUpTrigger para escalar hacia abajo o hacia arriba. En el menú desplegable, seleccione Integrar.
Actualmente, el valor mostrado debe indicar %ScaleDownTime% o %ScaleUpTime%. Estos valores indican que la programación se basa en los valores definidos en la configuración de la aplicación. Por ahora, puede omitir este valor y cambiar la programación a su hora preferida en función de los pasos siguientes.
En el área de programación, agregue la expresión CRON que prefiera para reflejar la frecuencia con la que quiere que Azure Synapse Analytics se escale verticalmente.
El valor de
schedulees una expresión CRON que incluye estos seis campos:{second} {minute} {hour} {day} {month} {day-of-week}Por ejemplo, "0 30 9 * * 1-5" reflejaría un desencadenador cada día de la semana a las 9:30 a. m. Para obtener más información, visite los ejemplos de programación de horarios de Azure Functions.
Cambio del nivel de computación
Vaya a Function App Service. Si ha implementado la plantilla con los valores predeterminados, este servicio debe denominarse DWOperations. Una vez abierta la aplicación de funciones, debe observar que hay cinco funciones implementadas en Function App Service.
Seleccione DWScaleDownTrigger o DWScaleUpTrigger para escalar hacia abajo o hacia arriba el valor de cálculo. Al seleccionar las funciones, el panel debe mostrar el archivo index.js .
Cambie el valor de ServiceLevelObjective al nivel que desea y seleccione Guardar. ServiceLevelObjective es el nivel de proceso al que se escalará la instancia de almacenamiento de datos en función de la programación definida en la sección Integrar.
Use la pausa o la reanudación en lugar de la escala
Actualmente, las funciones activadas de forma predeterminada son DWScaleDownTrigger y DWScaleUpTrigger. Si quiere usar la funcionalidad de pausa y reanudación en su lugar, puede habilitar DWPauseTrigger o DWResumeTrigger.
Vaya al panel Funciones.
Seleccione el interruptor deslizante para los desencadenadores que desee habilitar.
Navegue hasta las pestañas Integrar pestañas para cambiar la programación de los respectivos desencadenadores.
Nota:
La diferencia funcional entre los desencadenadores de escalado y los desencadenadores de pausar y reanudar es el mensaje que se envía a la cola. Para obtener más información, consulte Adición de una nueva función de desencadenador.
Adición de una nueva función de desencadenador
Actualmente, solo hay dos funciones de escalado incluidas en la plantilla. Con estas funciones, en el transcurso de un día, solo puede reducir verticalmente y escalar horizontalmente una sola vez. Para un control más granular, como escalar horizontalmente varias veces al día o tener un comportamiento de escalado diferente durante los fines de semana, tendrá que agregar otro desencadenador.
Cree una nueva función en blanco. Seleccione el botón + situado cerca de la sección de Functions para mostrar el panel de plantillas de función.
En Lenguaje, seleccione JavaScript y, a continuación, seleccione TimerTrigger.
Asigne un nombre a la función y establezca la programación. La imagen muestra cómo se puede desencadenar la función cada sábado a medianoche (viernes por la noche).
Copie el contenido de index.js de una de las otras funciones de desencadenador.
Establezca la variable de operación en el comportamiento deseado de la manera siguiente:
// Resume the dedicated SQL pool (formerly SQL DW) instance var operation = { "operationType": "ResumeDw" } // Pause the dedicated SQL pool (formerly SQL DW) instance var operation = { "operationType": "PauseDw" } // Scale the dedicated SQL pool (formerly SQL DW)l instance to DW600c var operation = { "operationType": "ScaleDw", "ServiceLevelObjective": "DW600c" }
Programación compleja
En esta sección se muestra brevemente lo que es necesario para obtener una programación más compleja de las funcionalidades de pausa, reanudación y escalado.
Ejemplo 1
Escalar horizontalmente todos los días a las 8 a. m. en DW600c y reducir verticalmente a las 8 p. m. en DW200c.
| Function | Programación | Operación |
|---|---|---|
| Función1 | 0 0 8 * * * | var operation = {"operationType": "ScaleDw", "ServiceLevelObjective": "DW600c"} |
| Función2 | 0 0 20 * * * | var operation = {"operationType": "ScaleDw", "ServiceLevelObjective": "DW200c"} |
Ejemplo 2
Escalar horizontalmente todos los días a las 8 a. m. en DW1000c, reducir verticalmente una vez en DW600 a las 4 p. m. y reducir verticalmente a las 10 p. m. en DW200c.
| Function | Programación | Operación |
|---|---|---|
| Function1 | 0 0 8 * * * | var operation = {"operationType": "ScaleDw", "ServiceLevelObjective": "DW1000c"} |
| Función2 | 0 0 16 * * * | var operation = {"operationType": "ScaleDw", "ServiceLevelObjective": "DW600c"} |
| Function3 | 0 0 22 * * * | var operation = {"operationType": "ScaleDw", "ServiceLevelObjective": "DW200c"} |
Ejemplo 3
Escalar horizontalmente a las 8 a. m. en DW1000c y reducir verticalmente una vez en DW600c a las 4 p. m. los días laborables. Pausa el viernes 11 p. m., reanuda las 7 a.m. de lunes por la mañana.
| Function | Programación | Operación |
|---|---|---|
| Función1 | 0 0 8 * * 1-5 | var operation = {"operationType": "ScaleDw", "ServiceLevelObjective": "DW1000c"} |
| Function2 | 0 0 16 * * 1-5 | var operation = {"operationType": "ScaleDw", "ServiceLevelObjective": "DW600c"} |
| Function3 | 0 0 23 * * 5 | var operation = {"operationType": "PauseDw"} |
| Función4 | 0 0 7 * * 1 | var operation = {"operationType": "ResumeDw"} |
Pasos siguientes
Más información sobre la instancia de Azure Functions desencadenada mediante temporizador.
Consulte el repositorio de ejemplos del grupo de SQL dedicado (anteriormente SQL DW).