Migrar rastreamentos para o formato de tabela mais recente Unity Catalog
Se você configurou um experimento MLflow para armazenar rastreamentos no Unity Catalog durante a versão Beta usando o formato vinculado ao esquema (catalog.schema), você pode migrar esses rastreamentos para o formato de prefixo de tabela (catalog.schema.table_prefix) introduzido com a versão de Prévia Pública.
A Databricks recomenda o formato de prefixo de tabela para todas as cargas de trabalho de rastreamento UC, novas e existentes. Ele oferece consultas de intervalo de tempo mais rápidas, tipos de atributos mais ricos, uma tabela de anotações dedicada e suporte para vários destinos de rastreamento por esquema.
A migração copia os intervalos e a anotação (tags, avaliações, metadados) usando Spark SQL.
Identifique experimentos que utilizam o formato antigo.
Os experimentos que armazenam rastros no Unity Catalog usam um dos dois formatos a seguir:
- Vinculado ao esquema (usado durante a versão Beta): O destino do rastreamento do experimento é um caminho de duas partes (
catalog.schema). Os dados de rastreamento são armazenados em tabelas de nome fixo comomlflow_experiment_trace_otel_spansemlflow_experiment_trace_otel_logs. Etiquetas, avaliações e metadados são armazenados como eventos log na tabela logs . - Prefixo da tabela (usado durante a versão de pré-visualização pública e posteriormente): O destino do rastreamento do experimento é um caminho de três partes (
catalog.schema.table_prefix). Os dados de rastreamento são armazenados em tabelas com namespace de prefixo como<table_prefix>_otel_spanse a anotação tem uma tabela dedicada.
Se o seu esquema Unity Catalog contiver tabelas com os nomes mlflow_experiment_trace_otel_spans e mlflow_experiment_trace_otel_logs, o seu experimento usa o formato vinculado ao esquema mais antigo e é elegível para migração.
Pré-requisitos
-
Um workspace compatível com o Catálogo Unity.
-
Um cluster Databricks executando Databricks Runtime 15.3 ou superior.
-
O pacote Python
databricks-agents:Bashpip install "databricks-agents>=1.10.0" -
As seguintes permissões:
USE_CATALOGeUSE_SCHEMAno catálogo e esquema de origem .USE_CATALOG,USE_SCHEMAeMODIFYno catálogo e esquema de destino .
o passo 1: Criar um experimento de destino
Crie um experimento vinculado a um local com prefixo de tabela Unity Catalog . Os rastros migrados são armazenados aqui. Para obter detalhes completos sobre a configuração, consulte Configuração: Criar um experimento com um local de rastreamento Unity Catalog.
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}")
Salve o ID do experimento. Utilize-o para configurar seus modelos de Notebook, Job ou Implant para log rastreamentos no novo destino.
o passo 2: Alternar o registro de rastreamento e interromper as gravações no experimento de origem
Atualize seus modelos de Notebook, Job ou Implant para log rastreamentos do novo experimento criado na etapa 1. Isso garante que os novos rastreamentos sejam enviados diretamente para as tabelas de destino.
Interrompa todas as gravações no experimento de origem antes de executar a migração. Quaisquer registros gravados nas tabelas de origem durante a migração podem não ser copiados. Verifique se nenhum Notebook, Job ou modelo implantado está registrando ativamente rastreamentos para o experimento de origem.
Se você quiser fazer uma execução a seco primeiro, pode pular esta etapa e executar a migração sem alterar suas cargas de trabalho de produção.
o passo 3: execução da migração
Em um notebook Databricks no cluster, execute o seguinte:
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()
Substitua os marcadores de posição:
<source_catalog>.<source_schema>O catálogo e o esquema do Unity Catalog onde suas tabelas de rastreamento de origem estão armazenadas.<destination_catalog>.<destination_schema>.<table_prefix>: O catálogo Unity Catalog , o esquema e o prefixo da tabela para o destino. Isso deve corresponder à localização configurada na etapa 1.
A migração é idempotente. Se a operação falhar durante o processo (por exemplo, devido a um tempo limite do cluster), você pode executá-la novamente sem problemas. As linhas já migradas são ignoradas automaticamente.
Assim que a migração for concluída, seus rastreamentos estarão disponíveis no novo experimento de destino. As tabelas de origem não são modificadas pela migração e podem ser mantidas como backup.