Analizza i metadati Vertex ML

Puoi usare Vertex ML Metadata per monitorare e analizzare i metadati prodotti dai tuoi sistemi di machine learning (ML). Monitorando questi metadati, è più facile analizzare il comportamento del tuo sistema ML. Questo può aiutarti a comprendere i cambiamenti nelle prestazioni del tuo sistema o a confrontare gli artefatti prodotti dal tuo sistema ML.

Se non hai mai utilizzato Vertex ML Metadata, leggi l'introduzione a Vertex ML Metadata per scoprire di più sul monitoraggio e sull'analisi dei metadati del flusso di lavoro ML.

Scopri come eseguire query per Vertex ML Metadata che vuoi analizzare nei seguenti modi:

  • Esegui una query per tutti gli artefatti, le esecuzioni o il contesto che corrispondono ai tuoi criteri di filtro.
  • Query per gli artefatti di input e di output di un'esecuzione insieme agli eventi, utilizzati per collegare gli artefatti all'esecuzione.
  • Query per il sottografico di derivazione di un contesto. Questa query restituisce gli artefatti e le esecuzioni di un contesto, insieme agli eventi che collegano gli artefatti alle esecuzioni.

Query per artefatti, esecuzioni e contesti

Puoi utilizzare l'SDK Vertex AI per Python o l'API REST per eseguire query su artefatti, esecuzioni e record di contesto utilizzando i filtri per creare query come le seguenti:

  • Quali versioni di un modello addestrato hanno raggiunto una determinata soglia di qualità?
  • Quale set di dati viene utilizzato in una determinata pipeline?

Le seguenti sezioni dimostrano come creare filtri e come eseguire query su artefatti, esecuzioni e contesti.

Panoramica della sintassi dei filtri

Le seguenti sezioni descrivono come utilizzare i filtri per eseguire query su artefatti, esecuzioni e contesti.

Campi

I seguenti campi sono supportati quando filtri artefatti, esecuzioni e contesti.

Artefatto Esecuzione Contesto
name
display_name
schema_title
create_time
update_time
metadata
state
uri

Il filtro deve essere racchiuso tra virgolette. Le virgolette che fanno parte del filtro devono essere precedute dal carattere di escape slash.

Operatori di confronto

Puoi utilizzare i seguenti operatori di confronto nei filtri: =, !=, <, >, >=, <=.

Ad esempio, utilizza i filtri seguenti per trovare tutti gli artefatti in cui il nome visualizzato è my_artifact.

REST

display_name=\"my_artifact\"

Python

"display_name=\"my_artifact\""

Per i campi stringa, puoi applicare filtri ai caratteri jolly con il carattere *.

Per i campi del timestamp come create_time e update_time, devi formattare la data utilizzando il formato RFC 3339, ad esempio:

REST

create_time=\"2021-05-11T12:30:00-08:00\"

Python

"create_time=\"2021-05-11T12:30:00-08:00\""

Operatori logici

Puoi utilizzare gli operatori logici AND e OR per combinare i filtri in modo da creare una query complessa.

L'esempio seguente mostra come eseguire query per artefatti di tipo ai_platform.model e un campo metadata precision con un valore numerico maggiore di 0,9.

REST

schema_title=\"ai_platform.Model\"+AND+metadata.precision.number_value>0.9

Python

"create_time=\"schema_title=\"ai_platform.Model\" AND metadata.precision.number_value>0.9"

Filtra in base ai metadati utilizzando l'operatore di attraversamento

Il campo metadata è un'istanza di google.protobuf.Struct il cui formato è definito nello schema specificato nel campo schema_title. google.protobuf.Struct è una struttura di dati che mappa le chiavi alle istanze google.protobuf.Value. La struttura dei dati google.protobuf.Value archivia i valori in campi diversi a seconda del tipo di dati. Ad esempio:

  • di stringhe sono memorizzate come metadata.FIELD_NAME.string_value,
  • numeri sono memorizzati come metadata.FIELD_NAME.number_value,
  • sono memorizzati come metadata.FIELD_NAME.bool_value.

Per applicare un filtro in base a metadata, devi utilizzare l'operatore di attraversamento per passare al campo in base a cui vuoi applicare il filtro. L'operatore di attraversamento utilizza il seguente formato.

REST

metadata.FIELD_NAME.TYPE_NAME=\"FILTER_VALUE\"

Python

"metadata.FIELD_NAME.TYPE_NAME=\"FILTER_VALUE\""

Ad esempio, considera una struttura di metadati simile alla seguente:

{
   "field_1": 5,
   "field_2": "example",
   "field_3": {
     ...
   },
   "field_4": [],
   "field_5": true,
}

Le seguenti query mostrano come utilizzare l'operatore di attraversamento per filtrare in base a questi metadati di esempio.

  • Filtra per i record che hanno metadata.field_1 con un valore inferiore a 5.

REST

metadata.field_1.number_value<5

Python

"metadata.field_1.number_value<5"
  • Filtra per i record che hanno metadata.field_2 con un valore uguale a example.

REST

metadata.field_2.string_value=\"example\"

Python

"metadata.field_2.string_value=\"example\""
  • Filtra per i record che hanno metadata.field_5 con un valore uguale a true.

REST

metadata.field_5.bool_value=true

Python

"metadata.field_5.bool_value=true"

Filtra i contesti in base alla relazione principale e secondaria

Puoi utilizzare l'operatore has per trovare i contesti principali o secondari di un determinato contesto.

L'operatore has utilizza il seguente formato:

  • "parent_contexts:\"CONTEXT_RESOURCE_NAME\""
  • "child_contexts:\"CONTEXT_RESOURCE_NAME\""

Il nome contesto deve essere il nome completo della risorsa, come il seguente: project/PROJECT/locations/LOCATION/metadataStores/METADATA-STORE/contexts/CONTEXT.

I seguenti filtri mostrano come utilizzare l'operatore has:

  • Filtra per tutti i contesti figlio della pipeline specificata.

REST

parent_contexts:\"project/12345/locations/us-central1/metadataStores/default/contexts/pipeline_1\"

Python

"parent_contexts:\"project/12345/locations/us-central1/metadataStores/default/contexts/pipeline_1\""
  • Filtra per tutti i contesti che sono padre della pipeline specificata.

REST

child_contexts:\"project/12345/locations/us-central1/metadataStores/default/contexts/pipeline_1\"

Python

"child_contexts:\"project/12345/locations/us-central1/metadataStores/default/contexts/pipeline_1\""

Filtra contesti, esecuzioni e artefatti per associazione e attribuzione

Puoi utilizzare la funzione in_context() per filtrare in base agli artefatti o alle esecuzioni associate a un contesto. Puoi utilizzare la funzione with_execution() per filtrare in base ad artefatti o contesti specifici associati a un'esecuzione. Allo stesso modo, puoi utilizzare la funzione with_artifact() per filtrare in base a esecuzioni o contesti specifici associati a un artefatto.

Le funzioni di filtro vengono utilizzate nel formato seguente.

  • "in_context(\"CONTEXT_RESOURCE_NAME\")"
  • "with_execution(\"EXECUTION_RESOURCE_NAME\")"
  • "with_artifact(\"ARTIFACT_RESOURCE_NAME\")"

Il contesto, l'esecuzione e i nomi degli artefatti devono essere il nome completo della risorsa, come il seguente.

  • project/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA-STORE/contexts/CONTEXT
  • project/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA-STORE/executions/EXECUTION
  • project/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA-STORE/artifacts/ARTIFACT

L'esempio seguente mostra come filtrare in base agli oggetti che si trovano nella pipeline specificata.

REST

in_context(\"project/12345/locations/us-central1/metadataStores/default/contexts/pipeline_1\")

Python

"in_context(\"project/12345/locations/us-central1/metadataStores/default/contexts/pipeline_1\")"

Puoi utilizzare un carattere jolly * nelle funzioni di filtro per filtrare in base ai parametri di ciascuna risorsa. Ad esempio, puoi utilizzare quanto segue per filtrare tutte le esecuzioni che agiscono su un tipo di artefatto system.model.

REST

with_artifact(\"*\",\"schema_title='name.model'\")

Python

"with_artifact(\"*\",\"schema_title='name.model'\")"

Altri parametri supportati in base ai quali puoi applicare un filtro sono i seguenti:

  • input=true/false: filtra i tipi di artefatti di input o di output.
  • event_time: filtra gli orari degli eventi delle esecuzioni o degli artefatti.
  • Tutti gli altri campi filtro supportati

Puoi combinare i campi con operandi logici per creare query di filtro complesse. Tieni presente che la profondità massima supportata delle funzioni nidificate è 5.

Query sugli artefatti

Gli artefatti, come set di dati e modelli, rappresentano i dati utilizzati o prodotti dal tuo flusso di lavoro ML. Utilizza le seguenti istruzioni per eseguire una query sugli artefatti.

REST

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • LOCATION_ID: la tua regione.
  • PROJECT_ID: il tuo ID progetto.
  • METADATA_STORE: l'ID dell'archivio di metadati in cui viene creato l'artefatto. L'archivio di metadati predefinito è denominato default.
  • PAGE_SIZE: (facoltativo) il numero massimo di elementi da restituire. Se questo valore non viene specificato, il servizio restituisce un massimo di 100 record.
  • PAGE_TOKEN: (facoltativo) un token di pagina di una precedente chiamata a MetadataService.ListArtifacts. Specifica questo token per visualizzare la pagina dei risultati successiva.
  • FILTER: specifica le condizioni necessarie per includere un artefatto nel set di risultati.

Metodo HTTP e URL:

GET http://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/artifacts?pageSize=PAGE_SIZE&pageToken=PAGE_TOKEN&filter=FILTER

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti vedere un output simile al seguente. ARTIFACT_ID è l'ID del record di artefatto.

{
  "artifacts": [
    {
      "name": "projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/default/artifacts/ARTIFACT_ID",
      "displayName": "Example artifact",
      "uri": "gs://your_bucket_name/artifacts/dataset.csv",
      "etag": "67891011",
      "createTime": "2021-05-18T00:33:13.833Z",
      "updateTime": "2021-05-18T00:33:13.833Z",
      "state": "LIVE",
      "schemaTitle": "system.Dataset",
      "schemaVersion": "0.0.1",
      "metadata": {
        "payload_format": "CSV"
      },
      "description": "Description of the example artifact."
    },
    {
      "name": "projects/PROJECT_ID/locations/LOCATION/metadataStores/METADATA_STORE/artifacts/ARTIFACT_ID",
      "displayName": "Another example artifact",
      "uri": "gs://your_bucket_name/artifacts/dataset-2.csv",
      "etag": "67891012",
      "createTime": "2021-05-18T00:29:24.344Z",
      "updateTime": "2021-05-18T00:29:24.344Z",
      "state": "LIVE",
      "schemaTitle": "system.Dataset",
      "schemaVersion": "0.0.1",
      "metadata": {
        "payload_format": "CSV"
      },
      "description": "Description of the other example artifact."
    }
  ]
}

Python

Python

def list_artifact_sample(
    project: str,
    location: str,
    display_name_filter: Optional[str] = "display_name=\"my_model_*\"",
    create_date_filter: Optional[str] = "create_time>\"2022-06-11\"",
    order_by: Optional[str] = None,
):
    aiplatform.init(project=project, location=location)

    combined_filters = f"{display_name_filter} AND {create_date_filter}"
    return aiplatform.Artifact.list(
        filter=combined_filters,
        order_by=order_by,
    )

  • project: il tuo ID progetto. Puoi trovare questi ID nella pagina di benvenuto della console Google Cloud.
  • location: consulta l'elenco delle località disponibili.
  • display_name_filter: filtro da applicare al nome visualizzato durante l'elenco delle risorse con il formato "display_name=\"my_filter\"" .
  • create_date_filter: filtro da applicare al nome di create_date mentre elenchi le risorse con il formato "create_time>\"2022-06-11T12:30:00-08:00\"",.

Query per le esecuzioni

Le esecuzioni rappresentano una fase del flusso di lavoro ML, come la pre-elaborazione dei dati o l'addestramento di un modello. Utilizza le seguenti istruzioni per eseguire una query sulle esecuzioni.

REST

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • LOCATION_ID: la tua regione.
  • PROJECT_ID: il tuo ID progetto.
  • METADATA_STORE: l'ID dell'archivio di metadati in cui viene creata l'esecuzione. L'archivio di metadati predefinito è denominato default.
  • PAGE_SIZE: (facoltativo) il numero massimo di elementi da restituire. Se questo valore non viene specificato, il servizio restituisce un massimo di 100 record.
  • PAGE_TOKEN: (facoltativo) un token di pagina di una precedente chiamata a MetadataService.ListArtifacts. Specifica questo token per visualizzare la pagina dei risultati successiva.
  • FILTER: specifica le condizioni necessarie per includere un'esecuzione nel set di risultati.

Metodo HTTP e URL:

GET http://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/executions?pageSize=PAGE_SIZE&pageToken=PAGE_TOKEN&filter=FILTER

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti vedere un output simile al seguente. EXECUTION_ID è l'ID del record di esecuzione.

{
  "executions": [
    {
      "name": "projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/executions/EXECUTION_ID",
      "displayName": "Example execution 1",
      "etag": "67891011",
      "createTime": "2021-05-18T00:06:56.177Z",
      "updateTime": "2021-05-18T00:06:56.177Z",
      "schemaTitle": "system.Run",
      "schemaVersion": "0.0.1",
      "metadata": {},
      "description": "Description of the example execution."
    },
    {
      "name": "projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/executions/EXECUTION_ID",
      "displayName": "Example execution 2",
      "etag": "67891011",
      "createTime": "2021-05-18T00:04:49.659Z",
      "updateTime": "2021-05-18T00:04:49.659Z",
      "schemaTitle": "system.Run",
      "schemaVersion": "0.0.1",
      "metadata": {},
      "description": "Description of the example execution."
    }
  ]
}

Python

Python

def list_execution_sample(
    project: str,
    location: str,
    display_name_filter: Optional[str] = "display_name=\"my_execution_*\"",
    create_date_filter:  Optional[str] = "create_time>\"2022-06-11T12:30:00-08:00\"",
):
    aiplatform.init(
        project=project,
        location=location)

    combined_filters = f"{display_name_filter} AND {create_date_filter}"

    return aiplatform.Execution.list(filter=combined_filters)

  • project: il tuo ID progetto. Puoi trovare questi ID nella pagina di benvenuto della console Google Cloud.
  • location: consulta l'elenco delle località disponibili.
  • display_name_filter: filtro da applicare al nome visualizzato durante l'elenco delle risorse con il formato "display_name=\"my_filter\"" .
  • create_date_filter: filtro da applicare al nome di create_date mentre elenchi le risorse con il formato "create_time>\"2022-06-11T12:30:00-08:00\"",.

Query per contesti

I contesti ti consentono di raggruppare insiemi di esecuzioni, artefatti e altri contesti. Segui le seguenti istruzioni per eseguire una query per trovare contesti.

REST

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • LOCATION_ID: la tua regione.
  • PROJECT_ID: il tuo ID progetto.
  • METADATA_STORE: l'ID dell'archivio di metadati in cui viene creato il contesto. L'archivio di metadati predefinito è denominato default.
  • PAGE_SIZE: (facoltativo) il numero massimo di elementi da restituire. Se questo valore non viene specificato, il servizio restituisce un massimo di 100 record.
  • PAGE_TOKEN: (facoltativo) un token di pagina di una precedente chiamata a MetadataService.ListArtifacts. Specifica questo token per visualizzare la pagina dei risultati successiva.
  • FILTER: specifica le condizioni necessarie per includere un contesto nel set di risultati.

Metodo HTTP e URL:

GET http://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/contexts?pageSize=PAGE_SIZE&pageToken=PAGE_TOKEN&filter=FILTER

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti vedere un output simile al seguente. CONTEXT_ID è l'ID del record di contesto.

{
  "contexts": [
    {
      "name": "projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/contexts/CONTEXT_ID",
      "displayName": "Experiment 1",
      "etag": "67891011",
      "createTime": "2021-05-18T22:36:02.153Z",
      "updateTime": "2021-05-18T22:36:02.153Z",
      "parentContexts": [],
      "schemaTitle": "system.Experiment",
      "schemaVersion": "0.0.1",
      "metadata": {}
    },
    {
      "name": "projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/contexts/CONTEXT_ID",
      "displayName": "Pipeline run 1",
      "etag": "67891011",
      "createTime": "2021-05-18T22:35:02.600Z",
      "updateTime": "2021-05-18T22:35:02.600Z",
      "parentContexts": [],
      "schemaTitle": "system.PipelineRun",
      "schemaVersion": "0.0.1",
      "metadata": {}
    }
  ]
}

Query sugli artefatti di input e di output di un'esecuzione

Utilizza le seguenti istruzioni per eseguire query relative agli artefatti e alle esecuzioni nel contesto specificato, insieme agli eventi che collegano gli artefatti alle esecuzioni.

SDK Vertex AI per Python

Artefatti di input

Questo esempio di SDK Python prevede l'esecuzione di query sugli artefatti di input di un'esecuzione.

Python

def get_execution_input_artifacts_sample(
    execution: aiplatform.Execution
):
    return execution.get_input_artifacts()

Artefatti di output

Questo esempio di SDK Python prevede l'esecuzione di query sugli artefatti di output di un'esecuzione.

Python

def get_execution_output_artifacts_sample(
    execution: aiplatform.Execution
):
    return execution.get_output_artifacts()

REST

Questo esempio REST include l'esecuzione di query sugli artefatti di input e di output di un'esecuzione.

REST

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • LOCATION_ID: la tua regione.
  • PROJECT_ID: il tuo ID progetto.
  • METADATA_STORE: l'ID dell'archivio di metadati in cui viene creata l'esecuzione. L'archivio di metadati predefinito è denominato default.
  • EXECUTION_ID: l'ID del record di esecuzione.

Metodo HTTP e URL:

GET http://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/executions/EXECUTION_ID:queryExecutionInputsAndOutputs

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti vedere un output simile al seguente. EXECUTION_ID è l'ID del record di esecuzione. Se l'ID esecuzione non è specificato, Vertex ML Metadata ha creato un identificatore univoco per questa esecuzione. ARTIFACT_ID è l'ID del record di artefatto.

{
  "artifacts": [
    {
      "name": "projects/PROJECT_ID/locations/LOCATION/metadataStores/METADATA_STORE/artifacts/ARTIFACT_ID",
      "displayName": "Example artifact",
      "uri": "gs://your_bucket_name/artifacts/dataset.csv",
      "etag": "678901011",
      "createTime": "2021-05-18T00:29:24.344Z",
      "updateTime": "2021-05-18T00:29:24.344Z",
      "state": "LIVE",
      "schemaTitle": "system.Dataset",
      "schemaVersion": "0.0.1",
      "metadata": {
        "payload_format": "CSV"
      },
      "description": "Description of the example artifact."
    },
    {
      "name": "projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/artifacts/ARTIFACT_ID",
      "displayName": "Example artifact 2",
      "uri": "gs://your_bucket_name/artifacts/dataset.csv",
      "etag": "678901011",
      "createTime": "2021-05-18T00:33:13.833Z",
      "updateTime": "2021-05-18T00:33:13.833Z",
      "state": "LIVE",
      "schemaTitle": "system.Dataset",
      "schemaVersion": "0.0.1",
      "metadata": {
        "payload_format": "CSV"
      },
      "description": "Description of the example artifact."
    }
  ],
  "executions": [
    {
      "name": "projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/executions/EXECUTION_ID",
      "displayName": "Example execution 1",
      "etag": "678901011",
      "createTime": "2021-05-18T00:04:49.659Z",
      "updateTime": "2021-05-18T00:04:49.659Z",
      "schemaTitle": "system.Run",
      "schemaVersion": "0.0.1",
      "metadata": {},
      "description": "Description of the example execution."
    }
  ],
  "events": [
    {
      "artifact": "projects/PROJECT_ID/locations/LOCATION/metadataStores/METADATA_STORE/artifacts/ARTIFACT_ID",
      "execution": "projects/PROJECT_ID/locations/LOCATION/metadataStores/METADATA_STORE/executions/EXECUTION_ID",
      "eventTime": "2021-05-18T00:04:49.659Z",,
      "type": "INPUT",
    },
    {
      "artifact": "projects/PROJECT_ID/locations/LOCATION/metadataStores/METADATA_STORE/artifacts/ARTIFACT_ID",
      "execution": "projects/PROJECT_ID/locations/LOCATION/metadataStores/METADATA_STORE/executions/EXECUTION_ID",
      "eventTime": "2021-05-18T00:04:49.659Z",,
      "type": "OUTPUT",
    }
  ]
}

Query per il sottografico di derivazione di un contesto

Utilizza le seguenti istruzioni per eseguire query relative agli artefatti e alle esecuzioni nel contesto specificato, insieme agli eventi che collegano gli artefatti alle esecuzioni.

REST

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • LOCATION_ID: la tua regione.
  • PROJECT_ID: il tuo ID progetto.
  • METADATA_STORE: l'ID dell'archivio di metadati in cui viene creata l'esecuzione. L'archivio di metadati predefinito è denominato default.
  • (Facoltativo) CONTEXT_ID: l'ID del record di contesto.

Metodo HTTP e URL:

GET http://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/contexts/CONTEXT_ID:queryContextLineageSubgraph

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti vedere un output simile al seguente. EXECUTION_ID è l'ID del record di esecuzione. Se l'ID esecuzione non è specificato, Vertex ML Metadata ha creato un identificatore univoco per questa esecuzione. ARTIFACT_ID è l'ID del record di artefatto.

{
  "artifacts": [
    {
      "name": "projects/PROJECT_ID/locations/LOCATION/metadataStores/METADATA_STORE/artifacts/ARTIFACT_ID",
      "displayName": "Example artifact",
      "uri": "gs://your_bucket_name/artifacts/dataset.csv",
      "etag": "678901011",
      "createTime": "2021-05-18T00:29:24.344Z",
      "updateTime": "2021-05-18T00:29:24.344Z",
      "state": "LIVE",
      "schemaTitle": "system.Dataset",
      "schemaVersion": "0.0.1",
      "metadata": {
        "payload_format": "CSV"
      },
      "description": "Description of the example artifact."
    },
    {
      "name": "projects/PROJECT_ID/locations/LOCATION/metadataStores/METADATA_STORE/artifacts/ARTIFACT_ID",
      "displayName": "Example artifact 2",
      "uri": "gs://your_bucket_name/artifacts/dataset.csv",
      "etag": "678901011",
      "createTime": "2021-05-18T00:33:13.833Z",
      "updateTime": "2021-05-18T00:33:13.833Z",
      "state": "LIVE",
      "schemaTitle": "system.Dataset",
      "schemaVersion": "0.0.1",
      "metadata": {
        "payload_format": "CSV"
      },
      "description": "Description of the example artifact."
    }
  ],
  "executions": [
    {
      "name": "projects/PROJECT_ID/locations/LOCATION/metadataStores/METADATA_STORE/executions/EXECUTION_ID",
      "displayName": "Example execution 1",
      "etag": "678901011",
      "createTime": "2021-05-18T00:04:49.659Z",
      "updateTime": "2021-05-18T00:04:49.659Z",
      "schemaTitle": "system.Run",
      "schemaVersion": "0.0.1",
      "metadata": {},
      "description": "Description of the example execution."
    }
  ],
  "events": [
    {
      "artifact": "projects/PROJECT_ID/locations/LOCATION/metadataStores/METADATA_STORE/artifacts/ARTIFACT_ID",
      "execution": "projects/PROJECT_ID/locations/LOCATION/metadataStores/METADATA_STORE/executions/EXECUTION_ID",
      "eventTime": "2021-05-18T00:04:49.659Z",,
      "type": "INPUT",
    },
    {
      "artifact": "projects/PROJECT_ID/locations/LOCATION/metadataStores/METADATA_STORE/artifacts/ARTIFACT_ID",
      "execution": "projects/PROJECT_ID/locations/LOCATION/metadataStores/METADATA_STORE/executions/EXECUTION_ID",
      "eventTime": "2021-05-18T00:04:49.659Z",,
      "type": "OUTPUT",
    }
  ]
}

Passaggi successivi