Compartir a través de


Programación de trabajos de importación de datos (versión preliminar)

SE APLICA A:Extensión ML de la CLI de Azure v2 (actual)SDK de Python azure-ai-ml v2 (actual)

En este artículo, aprenderá a programar mediante código importaciones de datos, usando la interfaz de usuario de programación para hacerlo. Puede crear una programación basada en el tiempo transcurrido. Las programaciones basadas en tiempo pueden controlar tareas rutinarias, como las importaciones de datos normales para mantenerlas actualizadas. Después de aprender a crear programaciones, aprenderá a recuperarlas y a actualizarlas y desactivarlas mediante los recursos de la CLI, el SDK y la interfaz de usuario de Studio.

Requisitos previos

Programación de la importación de datos

Para importar datos de forma periódica, debe crear una programación. Una Schedule asocia una acción de importación de datos con un desencadenador. El desencadenador puede ser un cron, que usa una expresión de cron para describir el retraso entre ejecuciones, o una recurrence, que especifica con qué frecuencia se va a desencadenar un trabajo. En cada caso, primero debe crear una definición de datos de importación. Para ello, puede emplear una importación de datos existente o una importación de datos definida en línea. Para obtener más información, visite Creación de una importación de datos en la CLI, el SDK y la interfaz de usuario.

Crear una programación

Creación de una programación basada en tiempo con el patrón de periodicidad

SE APLICA A: Extensión de ML de la CLI de Azure v2 (actual)

YAML: programación de una importación de datos con patrón de periodicidad

$schema: https://azuremlschemas.azureedge.net/latest/schedule.schema.json
name: simple_recurrence_import_schedule
display_name: Simple recurrence import schedule
description: a simple hourly recurrence import schedule

trigger:
  type: recurrence
  frequency: day #can be minute, hour, day, week, month
  interval: 1 #every day
  schedule:
    hours: [4,5,10,11,12]
    minutes: [0,30]
  start_time: "2022-07-10T10:00:00" # optional - default will be schedule creation time
  time_zone: "Pacific Standard Time" # optional - default will be UTC

import_data: ./my-snowflake-import-data.yaml

YAML: programación de la definición de importación de datos alineada con el patrón de periodicidad en el almacén de datos administrado

$schema: https://azuremlschemas.azureedge.net/latest/schedule.schema.json
name: inline_recurrence_import_schedule
display_name: Inline recurrence import schedule
description: an inline hourly recurrence import schedule

trigger:
  type: recurrence
  frequency: day #can be minute, hour, day, week, month
  interval: 1 #every day
  schedule:
    hours: [4,5,10,11,12]
    minutes: [0,30]
  start_time: "2022-07-10T10:00:00" # optional - default will be schedule creation time
  time_zone: "Pacific Standard Time" # optional - default will be UTC

import_data:
  type: mltable
  name: my_snowflake_ds
  path: azureml://datastores/workspacemanagedstore
  source:
    type: database
    query: select * from TPCH_SF1.REGION
    connection: azureml:my_snowflake_connection

Un trigger contiene estas propiedades:

  • (Obligatorio)type especifica que el tipo de programación, ya sea recurrence o cron. La siguiente sección contiene más información.

Después, ejecute este comando en la CLI:

> az ml schedule create -f <file-name>.yml

Nota

Estas propiedades se aplican a la CLI y al SDK:

  • (Obligatorio)frequency especifica la unidad de tiempo que describe la frecuencia con la que se activa la programación. Puede tener valores

    • minute
    • hour
    • day
    • week
    • month
  • (Obligatorio)interval especifica cada cuánto tiempo se activa la programación según la frecuencia, que es el número de unidades de tiempo que hay que esperar hasta que la programación se active de nuevo.

  • (Opcional) schedule define el patrón de periodicidad, que contiene hours, minutes y weekdays.

    • Cuando frequency es igual a day, un patrón puede especificar hours y minutes.
    • Cuando frequency es igual a week y month, un patrón puede especificar hours, minutes y weekdays.
    • hours debe ser un entero o una lista, desde 0 hasta 23.
    • minutes debe ser un entero o una lista, desde 0 hasta 59.
    • weekdays, una cadena o una lista de monday a sunday.
    • Si schedule se omite, los trabajos se desencadenan según la lógica de start_time, frequency y interval.
  • (Opcional) start_time describe la fecha y hora de inicio con una zona horaria. Si start_time se omite, start_time es igual al tiempo de creación del trabajo. En el caso de una hora de inicio del pasado, el primer trabajo se ejecuta en el siguiente tiempo de ejecución calculado.

  • (Opcional) end_time describe la fecha y hora de finalización con una zona horaria. Si end_time se omite, la programación continúa desencadenando trabajos hasta que la programación se deshabilite manualmente.

  • (Opcional) time_zone especifica la zona horaria de la periodicidad. Si se omite, la zona horaria predeterminada es UTC. Para obtener más información sobre los valores de zona horaria, vaya al apéndice de los valores de zona horaria.

Creación de una programación basada en tiempo con la expresión cron

YAML: programación de una importación de datos con la expresión cron

SE APLICA A: Extensión de ML de la CLI de Azure v2 (actual)

YAML: programación de la importación de datos con la expresión cron (versión preliminar)

$schema: https://azuremlschemas.azureedge.net/latest/schedule.schema.json
name: simple_cron_import_schedule
display_name: Simple cron import schedule
description: a simple hourly cron import schedule

trigger:
  type: cron
  expression: "0 * * * *"
  start_time: "2022-07-10T10:00:00" # optional - default will be schedule creation time
  time_zone: "Pacific Standard Time" # optional - default will be UTC

import_data: ./my-snowflake-import-data.yaml

YAML: programación de la definición de importación de datos insertada con la expresión cron (versión preliminar)

$schema: https://azuremlschemas.azureedge.net/latest/schedule.schema.json
name: inline_cron_import_schedule
display_name: Inline cron import schedule
description: an inline hourly cron import schedule

trigger:
  type: cron
  expression: "0 * * * *"
  start_time: "2022-07-10T10:00:00" # optional - default will be schedule creation time
  time_zone: "Pacific Standard Time" # optional - default will be UTC

import_data:
  type: mltable
  name: my_snowflake_ds
  path: azureml://datastores/workspaceblobstore/paths/snowflake/${{name}}
  source:
    type: database
    query: select * from TPCH_SF1.REGION
    connection: azureml:my_snowflake_connection

La sección trigger define los detalles de la programación y contiene las siguientes propiedades:

  • (Obligatorio)type especifica el tipo de programación cron.
> az ml schedule create -f <file-name>.yml

La lista continúa aquí:

  • (Obligatorio)expression usa una expresión crontab estándar para expresar una programación periódica. Una sola expresión se compone de cinco campos delimitados por espacios:

    MINUTES HOURS DAYS MONTHS DAYS-OF-WEEK

    • Un solo carácter comodín (*), que cubre todos los valores del campo. Un *, en días, se refiere a todos los días de un mes (que varía con el mes y el año).

    • El expression: "15 16 * * 1" del ejemplo anterior se refiere a las 16:15 todos los lunes.

    • Esta tabla enumera los valores válidos para cada campo:

      Campo Intervalo Comentario
      MINUTES 0-59 -
      HOURS 0-23 -
      DAYS - No se admite. El valor se ignora y se trata como *.
      MONTHS - No compatible. El valor se ignora y se trata como *.
      DAYS-OF-WEEK 0-6 Cero (0) significa domingo. También se aceptan nombres de días.
    • Para más información sobre las expresiones crontab, visite el Recurso de wiki de la expresión crontab en GitHub.

    Importante

    No se admiten DAYS ni MONTH. Si pasa uno de estos valores, se omitirá y se tratará como *.

  • (Opcional) start_time especifica la fecha y hora de inicio con la zona horaria de la programación. Por ejemplo, start_time: "2022-05-10T10:15:00-04:00" significa que la programación comienza desde las 10:15:00AM del 10-05-2022 en la zona horaria UTC-4. Si start_time se omite, start_time es igual a la hora de creación de la programación. En el caso de una hora de inicio del pasado, el primer trabajo se ejecuta en el siguiente tiempo de ejecución calculado.

  • (Opcional) end_time describe la fecha y hora de finalización con zona horaria. Si end_time se omite, la programación continúa desencadenando trabajos hasta que la programación se deshabilite manualmente.

  • (Opcional) time_zone especifica la zona horaria de la expresión. Si se omite time_zone, la zona horaria es UTC de forma predeterminada. Para obtener más información sobre los valores de zona horaria, vaya al apéndice de los valores de zona horaria.

Limitaciones:

  • Actualmente, la programación de Azure Machine Learning v2 no admite los desencadenadores basados en eventos.
  • Use el SDK o la CLI de Azure Machine Learning v2 para especificar un patrón de periodicidad complejo que contenga varias marcas de tiempo de desencadenador. La interfaz de usuario solo muestra el patrón complejo y no admite la edición.
  • Si establece la periodicidad en el día 31 de cada mes, la programación no desencadenará trabajos en meses con menos de 31 días.

Enumeración de programaciones en un área de trabajo

SE APLICA A: Extensión de ML de la CLI de Azure v2 (actual)

az ml schedule list

Comprobación de detalles de programación

SE APLICA A: Extensión de ML de la CLI de Azure v2 (actual)

az ml schedule show -n simple_cron_data_import_schedule

Actualización de una programación

SE APLICA A: Extensión de ML de la CLI de Azure v2 (actual)

az ml schedule update -n simple_cron_data_import_schedule  --set description="new description" --no-wait

Nota:

Para actualizar algo más que solo etiquetas o descripciones, se recomienda usar az ml schedule create --file update_schedule.yml

Deshabilitación de una programación

SE APLICA A: Extensión de ML de la CLI de Azure v2 (actual)

az ml schedule disable -n simple_cron_data_import_schedule --no-wait

Habilitación de una programación

SE APLICA A: Extensión de ML de la CLI de Azure v2 (actual)

az ml schedule enable -n simple_cron_data_import_schedule --no-wait

Eliminación de una programación

Importante

Se debe deshabilitar una programación antes de la eliminación. La acción de eliminar es permanente e irrecuperable. Después de eliminar una programación, nunca podrá acceder a ella ni recuperarla.

SE APLICA A: Extensión de ML de la CLI de Azure v2 (actual)

az ml schedule delete -n simple_cron_data_import_schedule

Compatibilidad con RBAC (control de acceso basado en rol)

Las programaciones se suelen usar para escenarios de producción. Para evitar problemas, es posible que los administradores del área de trabajo quieran restringir los permisos de creación y administración de programaciones dentro de un área de trabajo.

Actualmente hay tres reglas de acción relacionadas con las programaciones y puede configurarlas en Azure Portal. Para obtener más información, vaya a Administración del acceso a un área de trabajo de Azure Machine Learning.

Acción Descripción Regla
Lectura Obtener y enumerar programaciones en un área de trabajo de Machine Learning Microsoft.MachineLearningServices/workspaces/schedules/read
Escritura Crear, actualizar, deshabilitar y habilitar programaciones en el área de trabajo de Machine Learning Microsoft.MachineLearningServices/workspaces/schedules/write
Eliminar Eliminar una programación en el área de trabajo de Machine Learning Microsoft.MachineLearningServices/workspaces/schedules/delete

Pasos siguientes