Analizzare i metadati Vertex ML

Puoi utilizzare Vertex ML Metadata per monitorare e analizzare i metadati prodotti dai tuoi sistemi di machine learning (ML). Monitorando questi metadati, diventa per semplificare l'analisi del comportamento del tuo sistema ML. Questo può aiutarti a comprendere le variazioni nelle prestazioni del sistema o può aiutarti a confrontare prodotto dal tuo sistema ML.

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

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

  • Esegui query per tutti gli artefatti, esecuzioni, o contesto che corrispondono criteri di filtro.
  • Query sugli artefatti di input e output di un'esecuzione insieme agli eventi, usato per collegare gli artefatti all'esecuzione.
  • Esegui una query per il sottografo di derivazione di un contesto. Questa query restituisce gli artefatti e le esecuzioni di un contesto, insieme 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 contesti, utilizzando i filtri per creare query come 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 spiegano come creare filtri e come per artefatti, esecuzioni e contesti.

Panoramica della sintassi dei filtri

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

Campi

I seguenti campi sono supportati per filtrare artefatti, esecuzioni i contesti.

Artefatto Esecuzione Contesto
name
display_name
schema_title
create_time
update_time
metadata
state
uri

Il filtro deve essere racchiuso tra virgolette. Qualsiasi citazione che faccia parte il filtro deve essere preceduto da una barra rovesciata.

Operatori di confronto

Nei filtri puoi utilizzare i seguenti operatori di confronto: =, !=, <, >, >= e <=.

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

REST

display_name=\"my_artifact\"

Python

"display_name=\"my_artifact\""

Per i campi stringa, puoi utilizzare i filtri con 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 e creare una 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"

Filtrare in base ai metadati utilizzando l'operatore di attraversamento

Il campo metadata è un'istanza google.protobuf.Struct il cui formato è definito nel schema specificato nel campo schema_title. google.protobuf.Struct è un struttura di dati che mappa le chiavi a google.protobuf.Value di Compute Engine. La struttura dati di google.protobuf.Value archivia in campi diversi in base al tipo di dati. Ad esempio:

  • le stringhe vengono memorizzate come metadata.FIELD_NAME.string_value,
  • numeri vengono memorizzati come metadata.FIELD_NAME.number_value,
  • I valori booleani sono memorizzati come metadata.FIELD_NAME.bool_value.

Per filtrare in base a metadata, devi utilizzare l'operatore di attraversamento per attraversare al campo in base a cui vuoi filtrare. 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 illustrano come utilizzare l'operatore di attraversamento per filtrare in base a di questi metadati di esempio.

  • Filtra in base ai record con metadata.field_1 con un valore inferiore a 5

REST

metadata.field_1.number_value<5

Python

"metadata.field_1.number_value<5"
  • Filtra in base ai record con metadata.field_2 con un valore uguale a esempio.

REST

metadata.field_2.string_value=\"example\"

Python

"metadata.field_2.string_value=\"example\""
  • Filtra in base ai record con 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 alle relazioni padre e figlio

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

L'operatore "ha" utilizza il seguente formato:

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

Il nome del contesto deve essere il nome completo della risorsa del contesto, ad esempio le seguenti: project/PROJECT/locations/LOCATION/metadataStores/METADATA-STORE/contexts/CONTEXT.

I seguenti filtri mostrano come utilizzare l'operatore has:

  • Filtra in base a tutti i contesti secondari 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 in base a tutti i contesti che sono un elemento 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 artefatti o esecuzioni associate a un contesto. Puoi utilizzare la funzione with_execution() per filtrare in base ad artefatti o contesti specifici associati a un dell'esecuzione. Analogamente, puoi utilizzare la funzione with_artifact() per filtrare per 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\")"

I nomi del contesto, dell'esecuzione e degli artefatti devono essere la risorsa completa come mostrato di seguito.

  • 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 nel una 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 ogni 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'\")"

Gli altri parametri supportati che puoi filtrare in base ai seguenti sono:

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

Puoi combinare i campi con operandi logici per creare query di filtro complesse. Tieni presente che il numero massimo di asset nidificati supportati la profondità della funzione è 5.

Query sugli artefatti

Gli artefatti, come set di dati e modelli, rappresentano i dati utilizzati o prodotti dai tuoi nel flusso di lavoro ML. Utilizza le seguenti istruzioni per eseguire 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 archivio di metadati in cui viene creato l'artefatto. L'archivio di metadati predefinito è denominato default.
  • PAGE_SIZE: (facoltativo) il numero massimo di artefatti da restituire. Se questo valore non è specificato, il servizio restituisce un massimo di 100 record.
  • PAGE_TOKEN: (facoltativo) un token di pagina di un file MetadataService.ListArtifacts precedente chiamata. Specifica questo token per visualizzare la pagina dei risultati successiva.
  • FILTER: specifica le condizioni necessarie per includere un artefatto nel risultato per iniziare.

Metodo HTTP e URL:

GET https://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 delle seguenti opzioni:

Dovresti vedere un output simile al seguente. ARTIFACT_ID è l'ID del record dell'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

from typing import Optional

from google.cloud import aiplatform


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 console Google Cloud pagina di benvenuto.
  • location: consulta l'elenco delle reti disponibili di località.
  • display_name_filter: filtro da applicare al nome visualizzato mentre elenca le risorse con il formato "display_name=\"my_filter\"" .
  • create_date_filter: filtro da applicare al nome create_date mentre elenca 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 addestrare un modello. Usa le seguenti istruzioni per eseguire 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 archivio di metadati in cui viene creata l'esecuzione. L'archivio di metadati predefinito è denominato default.
  • PAGE_SIZE: (facoltativo) il numero massimo di artefatti da restituire. Se questo valore non è specificato, il servizio restituisce un massimo di 100 record.
  • PAGE_TOKEN: (facoltativo) un token di pagina di un file MetadataService.ListArtifacts precedente chiamata. Specifica questo token per visualizzare la pagina dei risultati successiva.
  • FILTER: specifica le condizioni necessarie per includere un'esecuzione nel risultato per iniziare.

Metodo HTTP e URL:

GET https://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 delle seguenti 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

from typing import Optional

from google.cloud import aiplatform


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 console Google Cloud pagina di benvenuto.
  • location: consulta l'elenco delle reti disponibili di località.
  • display_name_filter: filtro da applicare al nome visualizzato mentre elenca le risorse con il formato "display_name=\"my_filter\"" .
  • create_date_filter: filtro da applicare al nome create_date mentre elenca le risorse con il formato "create_time>\"2022-06-11T12:30:00-08:00\"",.

Query sui contesti

I contesti consentono di raggruppare insiemi di esecuzioni, artefatti e altri contesti. Utilizza le funzionalità di le seguenti istruzioni per eseguire query sui 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 archivio di metadati in cui viene creato il contesto. L'archivio di metadati predefinito è denominato default.
  • PAGE_SIZE: (facoltativo) il numero massimo di artefatti da restituire. Se questo valore non è specificato, il servizio restituisce un massimo di 100 record.
  • PAGE_TOKEN: (facoltativo) un token di pagina di un file MetadataService.ListArtifacts precedente chiamata. 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 https://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 delle seguenti 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 output di un'esecuzione

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

SDK Vertex AI per Python

Artefatti di input

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

Python

from google.cloud import aiplatform


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

Artefatti di output

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

Python

from google.cloud import aiplatform


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

REST

Questo esempio REST include l'esecuzione di query sia sull'input che sull'output di un'esecuzione 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 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 https://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 delle seguenti opzioni:

Dovresti vedere un output simile al seguente. EXECUTION_ID è l'ID del di esecuzione del pod. Se l'ID esecuzione non è specificato, Vertex ML Metadata ha creato un identificatore univoco per questa esecuzione. ARTIFACT_ID è l'ID del record dell'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 sottografo di derivazione di un contesto

Utilizza le seguenti istruzioni per eseguire query sugli artefatti e sulle esecuzioni nel contesto specificato, oltre 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 archivio di metadati in cui viene creata l'esecuzione. L'archivio di metadati predefinito è denominato default.
  • CONTEXT_ID: (facoltativo) l'ID del record di contesto.

Metodo HTTP e URL:

GET https://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 delle seguenti opzioni:

Dovresti vedere un output simile al seguente. EXECUTION_ID è l'ID del di esecuzione del pod. Se l'ID esecuzione non è specificato, Vertex ML Metadata ha creato un identificatore univoco per questa esecuzione. ARTIFACT_ID è l'ID del record dell'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