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.

Antes de começar

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.

Para atualizar uma tabela externa para uma tabela de gerenciamento Unity Catalog , execute o seguinte comando:

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

Databricks recomenda a atualização para uma tabela gerenciada para desbloquear a otimização preditiva Unity Catalog , que inclui manutenção automática (compactação, clustering, vacuum) e melhorias de desempenho. Para atualizar uma tabela externa para uma tabela externa Unity Catalog , execute o 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 precisar mais da federação com o seu catálogo externo, você poderá remover a conexão:

SQL
ALTER CATALOG <foreign_catalog> DROP CONNECTION;

Para obter mais detalhes sobre este fluxo de trabalho, consulte Converter uma tabela estrangeira em uma tabela Unity Catalog.

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.

o passo 1: 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.

o passo 2: 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 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 ?.

o passo 3: 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

Se você tiver um grande número de arquivos ou arquivos maiores que alguns GB, considere usar a CLI do Databricks ou uma cópia distribuída usando o Apache Spark para paralelizar a movimentação. O comando Databricks CLI fs cp pode copiar diretórios recursivamente.

o passo 4: 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.

o passo 5: Limpar montagens 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.