Pianificazione delle esecuzioni dei job di Data Science

In questa esercitazione viene utilizzato Data Integration per pianificare le esecuzioni dei job per i job di Data Science.

I task chiave includono come:

  • Creare un job con un artifact del job Data Science.
  • Impostare un task REST per creare un job con le stesse specifiche del job creato con l'artifact.
  • Impostare una schedulazione e assegnarla al task REST.
  • Chiedere allo scheduler dei task di creare i job di Data Science.
Diagramma di un utente connesso da un computer locale a un compartimento Oracle Cloud Infrastructure denominato compartimento data-science-work. L'utente crea un artifact del job, hello_world_job.py, e lo invia a un progetto Data Science. Il progetto Data Science si chiama DS Project e il lavoro si chiama hello_world_job. In un altro workflow, da un'area di lavoro Data Integration denominata hello_world_workspace, viene pubblicato un hello_world_REST_task nell'applicazione Scheduler dell'area di lavoro. L'applicazione Scheduler contiene hello_world_task_schedule che invia le istanze hello_world_job al progetto DS. Il file hello_world_task_schedule contiene un file hello_world_task e un file hello_world_schedule, suggerendo che la pianificazione del task provenga da hello_world_schedule. Il progetto DS visualizza le esecuzioni di JOB pianificate provenienti dall'applicazione Scheduler, denominata HELLO WORLD JOB RUN.

1. Prepara

Creare e impostare gruppi dinamici, criteri, un compartimento e un progetto Data Science per l'esercitazione.

Imposta risorse

Eseguire l'esercitazione sulla configurazione manuale di una tenancy di Data Science con le seguenti specifiche:

Nota

Se in precedenza è stata eseguita la configurazione manuale di una tenancy di Data Science, assicurarsi di leggere i passi successivi e di incorporare i criteri applicabili a questa esercitazione.
  1. Eseguire tutti i passi del Passo 1. Creazione di un gruppo di utenti e denominazione del gruppo, data-scientists.
  2. Eseguire tutti i passi descritti nel passo 2. Creare un compartimento e assegnare un nome al compartimento per il lavoro data-science-work.
  3. Nella pagina dei dettagli del compartimento data-science-work copiare <data-science-work-compartment-ocid> .
  4. Seguire tutti i passi del Passo 3. Creazione di una VCN e una subnet. Questo passo è obbligatorio per questa esercitazione. Nel compartimento data-science-work, utilizzare la procedura guidata per creare una VCN con il nome datascience-vcn.
  5. Nel passo 4. Creazione di criteri, creare un criterio nel compartimento data-science-work denominato data-science-policy e aggiungere solo i criteri seguenti:
    allow group data-scientists to manage all-resources in compartment data-science-work 
    allow service datascience to use virtual-network-family in compartment data-science-work

    Il primo criterio fornisce i diritti amministrativi per il compartimento, in cui è possibile gestire tutte le risorse dei servizi OCI.

  6. Nel passo 5. Creazione di un gruppo dinamico con criteri, creare un gruppo dinamico denominato data-science-dynamic-group con le tre regole di corrispondenza seguenti:
    Sostituire <data-science-work-compartment-ocid> con l'OCID copiato nel passo 3.
    ALL {resource.type='datasciencenotebooksession', resource.compartment.id='<data-science-work-compartment-ocid>'}
    ALL {resource.type='datasciencemodeldeployment', resource.compartment.id='<data-science-work-compartment-ocid>'}
    ALL {resource.type='datasciencejobrun', resource.compartment.id='<data-science-work-compartment-ocid>'}
    Nota

    È necessaria solo l'ultima regola di corrispondenza per la risorsa datasciencejobrun utilizzata in questa esercitazione. Aggiungere le altre risorse di Data Science da preparare per l'utilizzo delle sessioni notebook e delle distribuzioni dei modelli.
  7. Per il Passo 5, creare un criterio denominato data-science-dynamic-group-policy nel compartimento root (tenancy). Selezionare Mostra editor manuale e aggiungere i criteri seguenti per il gruppo-data-science-dynamic:
    allow dynamic-group data-science-dynamic-group to manage all-resources in compartment data-science-work
    allow dynamic-group data-science-dynamic-group to read compartments in tenancy
    allow dynamic-group data-science-dynamic-group to read users in tenancy
  8. Per passo 6. Creazione di una sessione notebook, creare un progetto nel compartimento data-science-work denominato DS Project e saltare la creazione di una sessione notebook.
    Nota

    In questa esercitazione è possibile assegnare un nome al progetto Data Science, al progetto DS e successivamente al progetto Data Integration DI Project. Non assegnare un nome al progetto Initial Project come indicato al Passo 6.
Aggiungi criterio di integrazione dati

Consente al servizio Data Integration di creare aree di lavoro.

  1. Aprire il menu di navigazione e fare clic su Identity e sicurezza. In Identità fare clic su Criteri.
  2. Nella navigazione a sinistra, in Ambito elenco, fare clic su data-science-work per il compartimento.
  3. Selezionare data-science-policy creato nel passo Imposta risorse.
  4. Selezionare Modifica istruzioni criteri.
  5. Selezionare Avanzate.
  6. In una nuova riga aggiungere la seguente istruzione:
    allow service dataintegration to use virtual-network-family in compartment data-science-work
  7. Selezionare Salva modifiche.
    Nota

    Il criterio precedente consente alla finestra di dialogo Crea area di lavoro del servizio Data Integration di elencare le VCN nel compartimento data-science-work, consentendo di assegnare una VCN all'area di lavoro quando la si crea. L'area di lavoro utilizza quindi questa VCN per le relative risorse.
Aggiungi integrazione dati a gruppo dinamico

In questo passo è possibile aggiungere aree di lavoro di Data Integration a data-science-dynamic-group. data-science-dynamic-group-policy consente a tutti i membri di questo gruppo dinamico di gestire data-science-family. In questo modo, le risorse dell'area di lavoro, come le pianificazioni dei task, possono creare i job di Data Science.

  1. Aprire il menu di navigazione e selezionare Identità e sicurezza. In Identità, selezionare Gruppi dinamici.
  2. Nella lista dei gruppi dinamici, selezionare il gruppo dinamico-data-science creato nel passo Imposta risorse.
  3. Selezionare Modifica tutte le regole di corrispondenza.
  4. Aggiungere la regola di corrispondenza seguente:
    ALL {resource.type='disworkspace', resource.compartment.id='<data-science-work-compartment-ocid>'}

    Sostituire <data-science-work-compartment-ocid> con l'OCID per il compartimento datascience-work.

    Suggerimento

    È possibile copiare <data-science-work-compartment-ocid> da un'altra regola nelle regole di corrispondenza data-science-dynamic-group, poiché tutte puntano al compartimento datascience-work.

    La regola di corrispondenza precedente indica che tutte le aree di lavoro di Data Integration create nel compartimento vengono aggiunte a data-science-dynamic-group. Il file data-science-dynamic-group-policy creato per data-science-dynamic-group ora si applica alle aree di lavoro in questo compartimento.

2. Imposta esecuzione job

Crea un artifact del job

Creare un artifact del job Python hello world da utilizzare nelle esecuzioni di job e job:

  1. Copiare il codice Python seguente in un file di testo.
    # simple job
    print("Hello world job!")
  2. Salvare il codice come hello_world_job.py sul computer locale.
Creare un job

Creare un job con l'artifact del job hello world:

  1. Aprire il menu di navigazione e selezionare Analytics e AI. In Machine Learning selezionare Data Science.
  2. Selezionare data-science-work per il compartimento.
  3. Selezionare il file DS Project creato nella sezione Imposta risorse di questa esercitazione.
  4. Selezionare Job.
  5. Selezionare Crea job.
  6. Impostare le seguenti opzioni:
    • Nome: hello_world_job
    • Carica artifact job: il file hello_world_job.py dalla sezione Crea un artifact job.
    • Configurazione predefinita: saltare
    • Forma di computazione:
      • Avvio rapido
      • VM.Standard2.1
    • Log: salta
    • Storage: 50
    • Risorse di rete: rete predefinita
  7. Selezionare Crea.
Riferimento: Creazione di job
Avviare l'esecuzione di un job

Eseguire hello_world_job:

Quando si crea un job, si impostano l'infrastruttura e gli artifact per il job. Successivamente, si crea un'esecuzione di job che esegue il provisioning dell'infrastruttura, esegue l'artifact del job e, al termine del job, annulla il provisioning e distrugge le risorse utilizzate.

  1. Nella pagina hello_world_job, selezionare Avvia esecuzione job.
  2. Selezionare il compartimento data-science-work .
  3. Nome dell'esecuzione del job, hello_world_job_run_test.
  4. Saltare le sezioni Override configurazione log e Override configurazione job.
  5. Selezionare Start.
  6. Nel trail che visualizza la pagina corrente, che ora è la pagina dei dettagli dell'esecuzione del job, selezionare Esecuzione job per tornare indietro e ottenere la lista delle esecuzioni dei job.
  7. Per hello_world_job_run_test, attendere che lo stato passi da Accettato a In corso e infine a Riuscito prima di passare al passo successivo.
Riferimento: Avvio delle esecuzioni dei job
Raccogli informazioni job

Per utilizzare hello_world_job per la pianificazione, è necessario preparare alcune informazioni sul job:

  1. Raccogli le seguenti informazioni dalla console di Oracle Cloud Infrastructure e copiale nel tuo notepad.
    • jobId: <data-science-hello-world-job-ocid>
      • In Data Science, andare alla pagina dei dettagli di hello_world_job e copiare l'OCID.
      • L'OCID inizia con ocid1.datasciencejob.
    • projectId: <data-science-project-ocid>
      • In Data Science, nella pagina dei dettagli del job hello_world_job, tornare a Job e copiare l'OCID del progetto DS.
      • L'OCID inizia con ocid1.datascienceproject.

    • compartmentId: <data-science-work-compartment-ocid>
      • Ottenere l'OCID dalla sezione Imposta risorse.
      • L'OCID inizia con ocid1.compartment.

  2. Area: <region-identifier>
    • Dalla barra di navigazione superiore della console, trova la tua area. Ad esempio, Stati Uniti occidentali (Phoenix).
    • Trova il sito <region-identifier> della tua regione da Aree e domini di disponibilità. Esempio: us-phoenix-1.

3. Imposta il task

Per una relazione visiva dei componenti, fare riferimento al diagramma dello scheduler.

Creare un'area di lavoro

Creare un'area di lavoro per ospitare un progetto con un task che crea esecuzioni di job.

  1. Aprire il menu di navigazione e selezionare Analytics e AI. In Data lake selezionare Integrazione dati.
  2. Selezionare Aree di lavoro.
  3. Selezionare data-science-work per il compartimento.
  4. Selezionare Crea area di lavoro.
  5. Saltare gli input facoltativi e impostare le seguenti opzioni:
    • Nome: hello_world_workspace
    • Selezione della rete:
      • Abilita rete privata: selezionato
      • VCN: la rete datascience-vcn creata nella sezione Imposta risorse.
      • sottorete: Private Subnet-datascience-vcn
  6. Selezionare Crea.

    Dopo aver impostato l'area di lavoro su Attiva, andare al passo successivo.

Riferimento: Creazione di aree di lavoro
Nota

Questa area di lavoro utilizza datascience-vcn e il job Data Science creato utilizza l'opzione Networking predefinito disponibile in Data Science. Poiché hai concesso al servizio Data Integration l'accesso a tutte le risorse nel compartimento data-science-work, non importa che le VCN siano diverse. Data Integration dispone di uno scheduler in datascience-vcn, creando esecuzioni di job nella VCN di rete di rete predefinita.
Aggiorna nome progetto

Nel file hello_world_workspace aggiornare il nome del progetto generato dal sistema.

  1. Nell'area di lavoro, hello_world_workspace, selezionare il progetto generato dal sistema, Il mio primo progetto.
  2. Selezionare Modifica.
  3. Modificare il nome del progetto da Primo progetto personale in DI Project.
  4. In Descrizione, immettere:
    Data Integration project to host the hello_world_REST_task.
  5. Selezionare Salva modifiche.
Nota

È possibile modificare il nome del progetto in modo che sia chiaro che il progetto è un progetto Data Integration e non un progetto Data Science.
Crea un task REST nell'area di lavoro

Creare un task e definire i parametri dell'API REST per la creazione di un'esecuzione job.

  1. Nel trail che visualizza la pagina corrente, tornare all'area di lavoro hello_world_workspace.
  2. Nel pannello Azioni rapide del hello_world_workspace, selezionare Crea task REST.
  3. Nome del task, hello_world_REST_task.
  4. In Progetto o cartella, selezionare Progetto ID.
  5. Configura i dettagli dell'API REST:
    • Metodo HTTP: POST
    • URL: trovare l'endpoint e il percorso API per l'URL:
      • Dall'API di Data Science, copiare l'endpoint API per la propria area. L'endpoint deve includere il file <region-identifier> copiato nella sezione Raccogli informazioni job.
        https://datascience.<region-identifier>.oci.oraclecloud.com
      • Da POST /<REST_API_version>/jobRuns, copiare il comando POST per CreateJobRun.
        /<REST_API_version>/jobRuns
      • Mettere insieme le due sezioni:
        https://datascience.<region-identifier>.oci.oraclecloud.com/<REST_API_version>/jobRuns
        Ad esempio:
        https://datascience.us-phoenix-1.oci.oraclecloud.com/20190101/jobRuns
    • Richiesta: selezionare il collegamento Richiesta per attivarlo, quindi creare il corpo con i seguenti attributi da CreateJobRunDetails Riferimento:
      {
          "projectId": "<data-science-project-ocid>",
          "compartmentId": "<data-science-work-compartment-ocid>",
          "jobId": "<data-science-hello-world-job-ocid>",
          "definedTags": {},
          "displayName": "HELLO WORLD JOB RUN",
          "freeformTags": {},
          "jobConfigurationOverrideDetails": {
          "jobType": "DEFAULT"
          }
      }

      Nel corpo Richiesta, sostituire i campi con parentesi con le informazioni della sezione Raccogli informazioni job.

      Ad esempio:

      {
          "projectId": "ocid1.datascienceproject.oc1....",
          "compartmentId": "ocid1.compartment.oc1.....",
          "jobId": "ocid1.datasciencejob.oc1....",
          "definedTags": {},
          "displayName": "HELLO WORLD JOB RUN",
          "freeformTags": {},
          "jobConfigurationOverrideDetails": {
          "jobType": "DEFAULT"
          }
      }
    • Selezionare Avanti, rivedere le condizioni predefinite e mantenere le opzioni predefinite:

      Condizione di operazione riuscita: SYS.RESPONSE_STATUS >= 200 AND SYS.RESPONSE_STATUS < 300

  6. Selezionare Configura.
  7. Per Autenticazione, Configurare le opzioni riportate di seguito.
    • Autenticazione: principal risorsa OCI
    • Origine autenticazione: area di lavoro
  8. Selezionare Configura.
  9. Saltare la configurazione del pannello Parametri (facoltativo).
  10. Selezionare Convalida task.
  11. Dopo aver ottenuto Convalida: riuscita, fare clic su Crea.

Dopo che l'area di lavoro mostra che il task REST è stato creato con esito positivo, fare clic su Salva e chiudi.

Nota

Nel corpo della richiesta del task REST, assegnare i valori ai parametri necessari per la creazione di un'esecuzione di job. Utilizzare gli stessi valori di hello_world_job creati in Data Science nella sezione Crea un job di questa esercitazione.

Riferimenti:

Crea un'applicazione

Crea un'applicazione scheduler che esegue il task REST in base a una pianificazione.

  1. Nell'area di lavoro hello_world_workspace, nel pannello Azioni rapide selezionare Crea applicazione.
  2. Nome dell'applicazione, Scheduler Application.
  3. Selezionare Crea.
Aggiungi task REST all'applicazione

Aggiungere il file hello_world_REST_task al file Scheduler Application:

  1. Nel trail che visualizza la pagina corrente, passare all'area di lavoro hello_world_workspace e selezionare il collegamento Progetti.
  2. Selezionare Progetto ID.
  3. Selezionare Task.
  4. Nell'elenco Task, selezionare il menu Azioni (tre punti) per hello_world_REST_task, quindi selezionare Pubblica nell'applicazione.
  5. Per Nome applicazione, selezionare Applicazione scheduler.
  6. Selezionare Pubblica.
Esegui il task

Prima di pianificare hello_world_REST_task, eseguire il test del task eseguendolo manualmente:

  1. Nell'area di lavoro hello_world_workspace, selezionare il collegamento Applicazioni.
  2. Selezionare Applicazione scheduler.
  3. Per confermare la pubblicazione del task, vedere se hello_world_REST_task è elencato nei task per questa applicazione.
  4. Nell'elenco dei task selezionare il menu Azioni (tre punti) per hello_world_REST_task, quindi fare clic su Esegui.
  5. Nell'elenco Esecuzioni selezionare l'esecuzione più recente, hello_world_REST_task_<id> .

    Ad esempio:

    hello_world_REST_task_1651261399967_54652479

  6. Attendere che lo stato dell'esecuzione passi da Non avviato a Operazione riuscita.
    Nota

    Risoluzione dei problemi
    • Se si ottiene lo stato Errore, tornare al progetto e controllare l'URL e il corpo della richiesta del task REST, inclusi gli OCID assegnati al task REST. Effettuare le operazioni riportate di seguito.
      1. Aggiornare l'URL hello_world_REST_task o il corpo della richiesta con le correzioni.
      2. Annullare la pubblicazione e pubblicare hello_world_REST_task.
      3. Ripetere tutti i passi di questa sezione.
Controllare l'esecuzione del job

Verificare che l'esecuzione del job di Data Science visualizzi il task eseguito da Data Integration.

  1. Aprire il menu di navigazione e selezionare Analytics e AI. In Machine Learning selezionare Data Science.
  2. Selezionare il compartimento data-science-work .
  3. Selezionare il valore DS Project creato nella sezione Imposta risorse.
  4. Selezionare Job.
  5. Selezionare hello_world_job.
  6. Trovare HELLO WORLD JOB RUN nell'elenco delle esecuzioni dei job.
    HELLO WORLD JOB RUN indica l'esecuzione del job denominata quando si imposta hello_world_REST_task.
  7. Attendere che lo stato cambi da Accettato, In corso e infine Riuscito.
Riferimento: Avvio delle esecuzioni dei job

4. Pianifica ed esegui il task

Creare una pianificazione per l'esecuzione del file hello_world_REST_task pubblicato.

Creare una pianificazione
  1. Aprire il menu di navigazione e selezionare Analytics e AI. In Data lake selezionare Integrazione dati.
  2. Selezionare Aree di lavoro.
  3. Selezionare il compartimento data-science-work .
  4. Selezionare il hello_world_workspace.
  5. Selezionare Applicazioni, quindi Scheduler Application.
  6. Nel pannello di navigazione a sinistra selezionare Programmi.
  7. Selezionare Crea pianificazione.
  8. Impostare le seguenti opzioni:
    • Nome: hello_world_schedule
    • Identificativo: HELLO_WORLD_SCHEDULE
    • Fuso orario: UTC

      Assicurarsi di mantenere il valore predefinito del fuso orario universale:

      (UTC+00:00) Coordinated Universal Time (UTC)

    • Frequenza: ogni ora
      • Ripeti ogni: 1 (1 ora)
      • Minuti: 0
      • Riepilogo: alle 0 minuti di ogni ora
      Suggerimento

      Controllare l'ora e modificare l'opzione Minuti: impostandola su 5 minuti dopo l'ora corrente. Ad esempio, se l'ora corrente è 11:15, impostare Minuti su 20. In questo modo, non è necessario attendere 45 minuti per visualizzare l'esecuzione del job. Questa esercitazione utilizza zero minuti per le sezioni successive.
  9. Selezionare Crea.
Nota

  • In questo passo è possibile impostare una pianificazione in Scheduler Application. Nel passo successivo è possibile associare la pianificazione al file hello_world_REST_task.

Riferimento: pianificazione dei task pubblicati

Pianificazione del task

Assegnare il file hello_world_schedule al file hello_world_REST_task pubblicato:

  1. In hello_world_workspace, fare clic su Applicazioni, quindi su Scheduler Application .
  2. Nel pannello di navigazione a sinistra selezionare Task.
  3. Selezionare hello_world_REST_task.
  4. Selezionare Crea pianificazione task.
  5. Impostare le seguenti opzioni:
    • Nome: hello_world_REST_task_schedule
    • Identificativo: HELLO_WORLD_REST_TASK_SCHEDULE
    • Descrizione: assegnare il valore hello_world_schedule al valore hello_world_REST_task pubblicato.
    • Abilita pianificazione task: selezionato

      L'opzione Abilita avvia lo scheduler non appena viene creata o salvata la pianificazione dei task.

    • Pianificazione: selezionare hello_world_schedule, quindi fare clic su Seleziona per tornare alla schermata precedente.
    • Saltare la configurazione della sezione Configura pianificazione task.
  6. Selezionare Crea e chiudi.
Verifica esecuzioni task
  1. Nell'elenco Pianificazioni task, selezionare hello_world_REST_task_schedule creato nella sezione Pianifica task.
  2. Nei dettagli della pianificazione dei task, trovare il valore per il campo Esecuzione successiva.
    Ad esempio,

    Esempio: Next run: Mon, Sep 19, 2022, 22:40:00 UTC

  3. Tradurre l'ora per l'esecuzione successiva dal fuso orario UTC al fuso orario dell'utente.
  4. Dopo aver raggiunto il tempo di esecuzione indicato nella sezione Esecuzione successiva, selezionare Aggiorna finché nella sezione Esecuzioni non viene visualizzata un'esecuzione.
    Esempio: hello_world_REST_task_schedule_<some-id>
Controllare le esecuzioni dei job

Verificare che l'esecuzione del job di Data Science visualizzi il task pianificato da Data Integration.

  1. Aprire il menu di navigazione e selezionare Analytics e AI. In Machine Learning selezionare Data Science.
  2. Selezionare il compartimento data-science-work .
  3. Selezionare il file DS Project creato nella sezione Prepara di questa esercitazione.
  4. Nel pannello di navigazione a sinistra selezionare Job.
  5. Selezionare hello_world_job.
  6. Nella lista di esecuzioni job, attendere che l'istanza HELLO WORLD JOB RUN venga elencata con la data pianificata.
  7. Selezionare HELLO_WORLD_JOB_RUN.
  8. Copiare il valore di Creato da in un blocco note.

    Esempio: ocid1.disworkspace.oc1.phx....

  9. Aprire il menu di navigazione e selezionare Analytics e AI. In Data lake selezionare Integrazione dati.
  10. Selezionare Aree di lavoro.
  11. Nell'elenco delle aree di lavoro, selezionare il menu Azioni per hello_world_workspace.
  12. Selezionare Copia OCID, quindi copiare l'OCID dell'area di lavoro e confrontarlo con il valore copiato per Autore creazione, nel passo 8.
    I due OCID sono uguali.
    Nota

    L'autore dei job è l'OCID dell'area di lavoro Integrazione dati, hello_world_workspace.
  13. (Facoltativo) Interagire con altri task, quindi tornare tra un'ora per l'esecuzione del job successivo.
    Nota

    Se si desidera eseguire job che si trovano a meno di un'ora di distanza, creare diverse pianificazioni orarie con minuti diversi. Ad esempio, affinché le pianificazioni siano distanti 15 minuti, creare quattro pianificazioni orarie: minuti-0, minuti-15, minuti-30 e minuti-45. Quindi, per hello_world_REST_task, creare una pianificazione task per ogni pianificazione. Ad esempio, una pianificazione attività per la pianificazione minuti-15, un'altra pianificazione attività per la pianificazione minuti-30.
Arresta esecuzioni job

Dopo aver ricevuto uno o più job eseguiti, questa esercitazione viene completata. Ora è possibile disabilitare lo scheduler e arrestare le nuove esecuzioni di job.

  1. In hello_world_workspace, fare clic su Applicazioni, quindi su Scheduler Application .
  2. Nel pannello di navigazione a sinistra selezionare Task.
  3. Selezionare hello_world_REST_task.
  4. Nell'elenco delle pianificazioni dei task fare clic su hello_world_REST_task_schedule.
  5. Selezionare Disable.
  6. Nella finestra di dialogo di conferma selezionare Disabilita.
  7. Se sono state create più pianificazioni task per questa esercitazione, disabilitarle tutte.