Pular para o conteúdo principal

Atualize um workspace Databricks para Unity Catalog

Esta página fornece uma visão geral de como atualizar um workspace que não sejaUnity Catalog para o Unity Catalog. Também fornece instruções para migrar do Hive metastore legado, DBFS e das versões não suportadas Databricks Runtime .

Visão geral das etapas de atualização​

Para atualizar para o Unity Catalog, o senhor deve:

  1. provisionamento de identidades (usuários, grupos e entidades de serviço) diretamente no seu site Databricks account, se o senhor ainda não estiver fazendo isso. Desative qualquer provisionamento de identidade no nível workspace.
  2. Converta todos os grupos workspace-local em grupos de nível account. Unity Catalog centraliza o gerenciamento de identidade no nível account.
  3. Anexe o site workspace a um metastore Unity Catalog. Se não houver um metastore para a região workspace, um administrador do account deverá criar um.
  4. Atualize as tabelas e visualize gerenciar em Hive metastore para Unity Catalog.
  5. Conceda a usuários, grupos ou entidades de serviço de nível accountacesso às tabelas atualizadas.
  6. Atualize as consultas e o Job para fazer referência às novas tabelas Unity Catalog em vez das antigas tabelas Hive metastore.
  7. Migrar arquivos, notebooks e scripts do DBFS.
  8. Atualize o recurso compute ativo para versões compatíveis Databricks Runtime .
  9. Desative o acesso a recursos legados em seu espaço de trabalho. Consulte Desativar o acesso a recursos legados em seu espaço de trabalho.

Requisitos​

Antes de começar, o senhor deve se familiarizar com os conceitos básicos do Unity Catalog, incluindo metastores e armazenamento gerenciado. Consulte O que é o Unity Catalog?

Você também deve confirmar que atende aos seguintes requisitos:

  • Para a maioria das etapas de configuração, o senhor deve ser um administrador do Databricks account . Para qualquer tarefa a seguir para a qual existam outros requisitos de permissão, eles estão listados na documentação específica da tarefa.

Atualize para as demonstrações do Unity Catalog​

Assista às seguintes demonstrações guiadas curtas para ver uma tarefa de atualização d key em ação. Cada demonstração abrange uma etapa específica e contém links para documentação detalhada, quando aplicável.

Como alternativa, é possível seguir a demonstração Use UCX para atualizar para Unity Catalog.

provisionamento de usuários, grupos e entidades de serviço para o seu account​

Unity Catalog faz referência a account-level identities. Antes de anexar um metastore ao seu site workspace, o senhor deve fazer o seguinte:

Converter workspace-local groups para account-level groups​

Consulte Migrar workspacegrupos -local para accountgrupos.

Anexe seu site workspace a um metastore​

Se o seu workspace não estiver habilitado para Unity Catalog (anexado a um metastore), a próxima etapa dependerá de o senhor já ter ou não um metastore Unity Catalog definido para a sua região workspace:

  • Se o seu account já tiver um metastore Unity Catalog definido para a sua região workspace, o senhor pode simplesmente anexar o seu workspace ao metastore existente. Acesse Enable a workspace for Unity Catalog.
  • Se não houver um metastore Unity Catalog definido para a região workspace, o senhor deverá criar um metastore e, em seguida, anexar o workspace. Vá para Criar um metastore do Unity Catalog.

Atualize as tabelas em seu site Hive metastore para tabelas Unity Catalog​

Se o seu workspace estava em serviço antes de ser habilitado para Unity Catalog, ele tem um Hive metastore que provavelmente contém dados que o senhor deseja continuar a usar. Databricks recomenda que o senhor atualize as tabelas gerenciadas pelo Hive metastore para o metastore Unity Catalog.

Opção 1: Federar e, em seguida, atualizar as tabelas estrangeiras.​

A abordagem recomendada é primeiro federar seu Hive metastore como um catálogo externo e, em seguida, atualizar as tabelas externas no local. Esse processo em duas etapas permite migrar tabelas sem mover dados, preservando o histórico, a configuração, as permissões e a visualização das tabelas.

Primeiro, federarize seu Hive metastore como um catálogo externo no Unity Catalog. Isso permite que você acesse suas tabelas existentes por meio do Unity Catalog e as prepare para a atualização.

Para obter instruções sobre como federar seu Hive metastore, consulte FederaçãoHive metastore : habilitar Unity Catalog para governar tabelas registradas em um Hive metastore.

nota

Se você optar por não atualizar suas tabelas e quiser continuar trabalhando permanentemente com o catálogo federado, poderá fazê-lo. No entanto, Databricks recomenda concluir a atualização para aproveitar ao máximo os recursos do Unity Catalog .

Após federar seu Hive metastore, você pode atualizar as tabelas externas para tabelas Unity Catalog sem qualquer movimentação de dados. Esse fluxo de trabalho atualiza as tabelas existentes, preservando a história, configuração, permissões e visualização da tabela.

A Databricks recomenda a atualização para uma tabela gerenciada para desbloquear a otimização preditiva do Unity Catalog, que inclui manutenção automática (compactação, clustering, vacuum) e melhorias de desempenho. Para atualizar uma tabela externa para uma tabela gerenciada pelo Unity Catalog, faça a execução do seguinte comando com MOVE. Isso converte a tabela no local e desabilita o acesso à tabela de origem no catálogo externo:

SQL
ALTER TABLE <foreign_catalog>.<schema>.<table_name> SET MANAGED MOVE;

Alternativamente, para atualizar uma tabela externa para uma tabela externa do Unity Catalog, faça a execução do seguinte comando:

SQL
ALTER TABLE <foreign_catalog>.<schema>.<table_name> SET EXTERNAL;

Após a migração das suas tabelas e quando você não depender mais da federação para o seu catálogo externo, você poderá remover a conexão com o catálogo externo:

SQL
ALTER CATALOG <foreign_catalog> DROP CONNECTION;

Para mais detalhes sobre este fluxo de trabalho, consulte Tabelas externas usando SQL.

Opção 2: Atualize as tabelas diretamente​

Se você optar por não usar o fluxo de trabalho de atualização baseado em federação, poderá atualizar as tabelas diretamente usando SYNC ou CREATE TABLE AS SELECT. Consulte as tabelas de atualização Hive e visualize-as no Unity Catalog.

Conceder acesso a tabelas atualizadas ou federadas​

Conceda aos usuários de nível account, grupos ou entidades de serviço acesso às novas tabelas. Consulte gerenciar privilégios em Unity Catalog.

Atualize as consultas e o Job para trabalhar com suas tabelas atualizadas e caminhos para os dados​

Enquanto estiver fazendo a transição do workspace-local Hive metastore para o Unity Catalog, o senhor pode continuar a usar consultas e trabalhos que fazem referência aos dados registrados no Hive metastore, usando a federaçãoHive metastore (recomendado) ou a sintaxe descrita em Trabalhar com o legado Hive metastore juntamente com o Unity Catalog. No entanto, eventualmente, o senhor deve atualizar todas as consultas e trabalhos para usar as tabelas e a sintaxe do site Unity Catalog.

Da mesma forma, atualize as consultas e o trabalho que usam acesso baseado em caminho aos arquivos para usar os Unity Catalog volumes.

Para obter recomendações detalhadas, consulte Atualizar trabalho quando o senhor atualizar o espaço de trabalho legado para Unity Catalog.

Desative o acesso ao DBFS.​

Como parte da migração para Unity Catalog , Databricks recomenda desativar o acesso ao DBFS em seu espaço de trabalho. Isso garante que todos os dados e fluxo de trabalho sejam regidos pelo Unity Catalog e que você aproveite ao máximo os recursos do Unity Catalog .

Você pode usar os scriptsDBFS Scanner, desenvolvidos pela Databricks Labs, para analisar seu uso atual DBFS e decidir, para cada item, se deve registrá-lo no local (usando um local externo), migrá-lo para o Unity Catalog ou arquivá-lo, caso não precise mais dele. Databricks Labs é um repo público GitHub que não tem suporte direto da Databricks.

As seções a seguir descrevem como migrar diferentes ativos do DBFS para o Unity Catalog.

Migrar arquivos armazenados no DBFS​

Se você tiver arquivos brutos, como Parquet, CSV, JSON ou imagens armazenados na DBFS root (por exemplo, em /FileStore ou outros diretórios DBFS root ) ou em armazenamento cloud montado no DBFS (em /mnt/...), migre-os usando volumes Unity Catalog e acesse-os usando locais externos.

Os passos a seguir descrevem como migrar arquivos do DBFS para volumes Unity Catalog . Para obter mais informações sobre quando usar volumes em vez de arquivos workspace , consulte Recomendações para arquivos em volumes e arquivos workspace.

Configurar um local externo​

Para registrar o ativo no Unity Catalog, configure um local externo Unity Catalog para o contêiner ou caminho de armazenamento cloud onde os arquivos residem atualmente. Você pode fazer isso usando o Catalog Explorer, o comando SQL , Terraform ou a CLI Databricks .

Para obter instruções detalhadas, consulte Conectar-se ao armazenamento de objetos cloud usando Unity Catalog.

Criar um volume​

Os volumes do Unity Catalog oferecem uma maneira controlada de organizar arquivos. A Databricks recomenda o uso de volumes para gerenciar todos os dados não tabulares. Você pode criar um volume externo em um esquema que faça referência a um subcaminho do seu local externo. Por exemplo:

SQL
USE CATALOG main;
USE SCHEMA data;
CREATE EXTERNAL VOLUME IF NOT EXISTS raw_files
LOCATION 'my_data_loc/csv-files/';

Todos os arquivos nesse caminho agora estão acessíveis através do local externo e são regidos pelas permissões Unity Catalog .

Para obter mais informações, consulte O que são volumes Unity Catalog ?.

Copiar arquivos da DBFS root​

Se seus arquivos estavam armazenados anteriormente na DBFS root, copie-os para o caminho de armazenamento cloud . Por exemplo, em um Notebook:

Python
dbutils.fs.cp(
"dbfs:/FileStore/tables/data.csv",
"/Volumes/main/data/raw_files/data.csv"
)
dica

If you have a large number of files or files larger than a few GB, consider using the Databricks CLI or a distributed copy using Apache Spark to parallelize the move. The Databricks CLI fs cp command can recursively copy directories.

Verificar arquivos migrados​

Após a migração, liste e leia os arquivos dos volumes usando o comando padrão:

Python
# List files in the volume
dbutils.fs.ls("/Volumes/main/data/raw_files/")

# Read a CSV file into a DataFrame
df = spark.read.option("header", True).csv(
"/Volumes/main/data/raw_files/2024-01-01-data.csv"
)

Este código requer as permissões apropriadas Unity Catalog no volume ou local externo e um recurso compute que suporte Unity Catalog. O Unity Catalog garante que o usuário principal que lê o arquivo tenha permissão READ no volume ou local externo.

Limpar montagens do DBFS​

Após verificar se os arquivos no novo local estão acessíveis, unmount os pontos de montagem DBFS antigos para evitar confusão ou uso acidental:

Python
dbutils.fs.unmount("/mnt/oldpath")

Considere bloquear ou excluir os dados na DBFS root caso tenham sido movidos, pois deixar cópias pode levar a atualizações inconsistentes ou riscos de segurança.

Migrar workspace ativo do DBFS​

Alguns espaços de trabalho têm Notebooks, arquivos de código ou scripts de referência armazenados no DBFS. Isso pode incluir:

  • Notebook salvo como arquivos HTML ou DBC em /FileStore para compartilhamento
  • Scripts Python ou arquivos JAR usados em trabalhos Databricks
  • script de inicialização com escopo de computação (por exemplo, dbfs:/databricks/init/...)

Os notebooks e o código devem ser armazenados como arquivosworkspace ou em pastasGit, e não no DBFS. DBFS não oferece controle de acesso por arquivo e não deve ser usado para código-fonte ou Notebooks.

  • Notebook : Se você tiver Notebooks como arquivos no DBFS, importe-os para o workspace Databricks . Você pode fazer isso manualmente usando a função de importação da interface do usuário ou usando a CLI. Certifique-se de que as permissões do Notebook no workspace estejam configuradas corretamente para acesso da equipe. Doravante, armazene os Notebooks como objetos workspace ou em pastas Git e use Git para controle de versão.
  • ScriptsJob : Se os trabalhos estiverem configurados para executar um script Python do DBFS (por exemplo, um trabalho com um tipo de tarefa "script Python " referenciando dbfs:/mnt/scripts/my_etl.py), mova esses scripts para arquivosworkspace. gerenciá-los em uma pasta Git para controle de versão e acompanhamento de alterações.
  • Os artefatos de compilação e a biblioteca , como arquivos JAR e wheels Python , devem ser armazenados em volumes Unity Catalog .
  • Script de inicialização com escopo de computação : o script de inicialização com escopo de computação deve ser armazenado em volumes Unity Catalog . Veja O que são scripts de inicialização?

Localize e migre compute para versões e modos de acesso Databricks Runtime compatíveis.​

nota

Esta seção inclui consultas que acessam a tabela system.compute.clusters . Para acessar esta tabela do sistema, você deve ser um administrador account Databricks ou ter recebido permissões USE e SELECT no esquema do sistema compute . Consulte Conceder acesso às tabelas do sistema.

Como parte da migração Unity Catalog , Databricks recomenda atualizar todos compute e Jobs para Databricks Runtime 13.3 LTS ou superior e usar os modos de acesso Unity Catalog .

Para revisar manualmente os compute do seu workspace, acesse a página de recursos computacionais do workspace. Na seção computeuso geral , verifique a versão do Databricks Runtime de cada compute. Classifique ou filtre por versão para identificar clusters que executam versões anteriores à 13.3 LTS. Repita o processo para a seção computeJob , pois o Job também pode ser configurado para usar uma versão específica Databricks Runtime .

Para encontrar programaticamente versões de compute abaixo de 13.3 LTS, consulte a tabela system.compute.clusters . Por exemplo:

SQL
SELECT
workspace_id,
cluster_id,
dbr_version
FROM system.compute.clusters
WHERE
TRY_CAST(SPLIT(dbr_version, '\\.')[0] AS INT) < 13
OR (
TRY_CAST(SPLIT(dbr_version, '\\.')[0] AS INT) = 13
AND TRY_CAST(SPLIT(dbr_version, '\\.')[1] AS INT) < 3
);

Isso retornará uma lista de recursos compute de uso geral e compute de tarefas em execução com versões inferiores a 13.3 LTS.

Atualize compute para os modos de acesso suportados.​

Se você ainda tiver compute em execução no modo de acesso compartilhado sem isolamento, poderá atualizá-los para os modos de acesso compatíveis. Consulte Modos de acesso. Para consultar compute em execução no modo de acesso compartilhado sem isolamento, consulte a tabela system.compute.clusters . Por exemplo:

SQL
SELECT
workspace_id,
cluster_id,
dbr_version,
data_security_mode
FROM system.compute.clusters
WHERE data_security_mode IN ('NONE','NO_ISOLATION')
LIMIT 100;

Desative o acesso a recursos legados em seu espaço de trabalho.​

Após concluir a migração seguindo os passos acima, você pode desativar o acesso aos recursos legados em seu espaço de trabalho.