Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Se è stato configurato un esperimento MLflow per archiviare tracce in Unity Catalog durante la versione beta usando il formato collegato allo schema (catalog.schema), è possibile eseguire la migrazione di tali tracce al formato di prefisso tabella (catalog.schema.table_prefix) introdotto con la versione di anteprima pubblica.
Databricks consiglia il formato di prefisso di tabella per tutti i carichi di lavoro di traccia UC nuovi ed esistenti. Offre query di intervallo di tempo più veloci, tipi di attributi più avanzati, una tabella di annotazioni dedicate e supporto per più destinazioni di traccia per ogni schema.
La migrazione copia intervalli e annotazioni (tag, valutazioni, metadati) utilizzando Spark SQL.
Identificare gli esperimenti che usano il formato precedente
Gli esperimenti che archiviano le tracce in Unity Catalog usano uno dei due formati seguenti:
-
Schema collegato (usato durante la versione beta): la destinazione della traccia dell'esperimento è un percorso composto da due parti (
catalog.schema). I dati di traccia vengono archiviati in tabelle con nome fisso comemlflow_experiment_trace_otel_spansemlflow_experiment_trace_otel_logs. I tag, le valutazioni e i metadati vengono archiviati come eventi di log nella tabella dei log. -
Prefisso tabella (usato durante la versione di anteprima pubblica e versioni successive): la destinazione di traccia dell'esperimento è un percorso in tre parti (
catalog.schema.table_prefix). I dati di traccia vengono archiviati in tabelle con spazi dei nomi con prefisso, ad esempio<table_prefix>_otel_spans, e le annotazioni includono una tabella dedicata.
Se lo schema del catalogo Unity contiene tabelle denominate mlflow_experiment_trace_otel_spans e mlflow_experiment_trace_otel_logs, l'esperimento usa il formato collegato allo schema precedente ed è idoneo per la migrazione.
Prerequisiti
Un'area di lavoro abilitata per il Catalogo di Unity.
Un cluster Azure Databricks che esegue Databricks Runtime 15.3 o versione successiva.
Il pacchetto
databricks-agentsPython:pip install "databricks-agents>=1.10.0"Le autorizzazioni seguenti:
-
USE_CATALOGeUSE_SCHEMAnel catalogo sorgente e nello schema. -
USE_CATALOG,USE_SCHEMA, eMODIFYnel catalogo di destinazione e nello schema.
-
Passaggio 1: Creare un esperimento di destinazione
Creare un esperimento collegato a una posizione predefinita della tabella di Unity Catalog. Le tracce di cui è stata eseguita la migrazione vengono archiviate qui. Per informazioni dettagliate sull'installazione completa, vedere Setup: Create an experiment with a Unity Catalog trace location (Configurare: Creare un esperimento con un percorso di traccia del catalogo Unity).
import mlflow
from mlflow.entities.trace_location import UnityCatalog
experiment = mlflow.set_experiment(
experiment_name="/Workspace/Users/<user>/<experiment_name>",
trace_location=UnityCatalog(
catalog_name="<destination_catalog>",
schema_name="<destination_schema>",
table_prefix="<table_prefix>",
),
)
print(f"Experiment ID: {experiment.experiment_id}")
Salvare l'ID dell'esperimento. Utilizzarlo per configurare notebook, compiti o modelli distribuiti, al fine di memorizzare le tracce nella nuova destinazione.
Passaggio 2: Cambiare i log delle tracce e fermare le operazioni di scrittura nell'esperimento di origine
Aggiornare notebook, processi o modelli distribuiti per registrare le tracce al nuovo esperimento creato nel passaggio 1. In questo modo, le nuove tracce passano direttamente alle tabelle di destinazione.
Important
Interrompere tutte le scritture sull'esperimento di origine prima di eseguire la migrazione. Le tracce scritte nelle tabelle di origine durante la migrazione potrebbero non essere copiate. Verificare che nessun notebook, attività o modelli di apprendimento automatico distribuiti registrino attivamente tracce nell'esperimento sorgente.
Se si vuole eseguire prima un'esecuzione a secco, è possibile ignorare questo passaggio ed eseguire la migrazione senza cambiare i carichi di lavoro di produzione.
Passaggio 3: Eseguire la migrazione
In un notebook Azure Databricks nel cluster eseguire quanto segue:
from databricks.migrations.v1_to_v2 import V1ToV2SqlMigration
migration = V1ToV2SqlMigration(
v1_source_schema="<source_catalog>.<source_schema>",
v2_destination_prefix="<destination_catalog>.<destination_schema>.<table_prefix>",
)
migration.run()
Sostituire i segnaposto:
-
<source_catalog>.<source_schema>: Il catalogo e lo schema di Unity Catalog in cui sono memorizzate le tabelle di tracciamento dell'origine. -
<destination_catalog>.<destination_schema>.<table_prefix>: il catalogo Unity Catalog, lo schema e il prefisso di tabella per la destinazione. Deve corrispondere al percorso configurato nel passaggio 1.
La migrazione è idempotente. Se l'operazione ha esito negativo, ad esempio a causa di un timeout del cluster, è possibile eseguirla di nuovo in modo sicuro. Le righe già migrate vengono ignorate automaticamente.
Al termine della migrazione, le tracce sono disponibili nel nuovo esperimento di destinazione. Le tabelle di origine non vengono modificate dalla migrazione e possono essere conservate come backup.