Atualizar tabelas e exibições do Hive para o Catálogo Unity

Este artigo descreve como atualizar tabelas e exibições registradas em seu metastore Hive local de espaço de trabalho existente para o Unity Catalog. Você pode atualizar uma tabela do Hive para uma tabela gerenciada ou uma tabela externa no Unity Catalog.

  • As tabelas gerenciadas são a maneira preferida de criar tabelas no Unity Catalog. O Unity Catalog gerencia totalmente seu ciclo de vida, layout de arquivo e armazenamento. O Unity Catalog também otimiza seu desempenho automaticamente. As tabelas gerenciadas sempre usam o formato de tabela Delta .

    As tabelas gerenciadas residem em um local de armazenamento gerenciado que você reserva para o Catálogo Unity. Devido a esse requisito de armazenamento, você deve usar CLONE ou CREATE TABLE AS SELECT (CTAS) se quiser copiar tabelas existentes do Hive para o Unity Catalog como tabelas gerenciadas.

  • As tabelas externas são tabelas cujo ciclo de vida dos dados, layout de arquivo e local de armazenamento não são gerenciados pelo Unity Catalog. Vários formatos de dados são suportados para tabelas externas.

    Normalmente, você usa tabelas externas somente quando também precisa de acesso direto aos dados usando computação que não seja Databricks (ou seja, não usando clusters Databricks ou armazéns SQL Databricks). As tabelas externas também são convenientes em cenários de migração, porque você pode registrar dados existentes no Unity Catalog rapidamente sem precisar copiar dados. Isso se deve ao fato de que os dados em tabelas externas não precisam residir em armazenamento gerenciado reservado.

Para obter mais informações sobre tabelas gerenciadas e externas no Unity Catalog, consulte Tabelas.

Opções de migração do Hive para o Catálogo Unity

Quando estiver pronto para migrar tabelas do Hive para o Unity Catalog, você terá várias opções, dependendo do seu caso de uso:

Ferramentas de migração Description Requisitos da tabela de colmeia Tabela do Catálogo Unity criada Por que devo usá-lo?
UCX Um conjunto abrangente de utilitários de linha de comando e outras ferramentas que avaliam a preparação do seu espaço de trabalho para a migração do Unity Catalog e executam fluxos de trabalho que migram identidades, permissões, locais de armazenamento e tabelas para o Unity Catalog. UCX está disponível no GitHub em databrickslabs/ucx. Tabelas Hive gerenciadas ou externas Gerenciado ou externo Você deseja uma ferramenta abrangente de planejamento de atualização do espaço de trabalho que vá além da atualização de tabelas do Hive para o Unity Catalog. Você deseja atualizar espaços de trabalho com grandes quantidades de dados no metastore do Hive. Você se sente confortável executando scripts. Se você quiser executar uma atualização em massa de tabelas do Hive para tabelas gerenciadas do Unity Catalog, essa é sua única opção. O UCX, como todos os projetos do Databricks Labs, é um repositório público do GitHub e não é suportado diretamente pelo Databricks.
Assistente de atualização do Catálogo Unity Um recurso do Catalog Explorer que permite copiar em massa esquemas inteiros (bancos de dados) e várias tabelas gerenciadas e externas do metastore do Hive para o metastore do Unity Catalog como tabelas externas. O assistente de atualização executa o SYNC comando nas tabelas selecionadas, deixando intactas as tabelas originais do Hive. Você tem a opção de agendar atualizações regulares para pegar alterações nas tabelas do Hive de origem. Tabelas Hive gerenciadas ou externas Apenas externo Você deseja atualizar rapidamente suas tabelas do Hive para tabelas externas no Unity Catalog, e prefere uma interface visual. A capacidade de agendar sincronizações regulares quando a tabela do Hive de origem é alterada o torna uma ferramenta útil para gerenciar um espaço de trabalho "híbrido" do Hive e do Unity Catalog durante a transição para o Unity Catalog.
Comando SYNC SQL SYNC permite copiar tabelas externas e tabelas gerenciadas (se as tabelas gerenciadas forem armazenadas fora do armazenamento do espaço de trabalho Databricks, às vezes conhecido como raiz DBFS) em seu metastore do Hive para tabelas externas no Unity Catalog. Você pode sincronizar tabelas individuais ou esquemas inteiros.

SYNC foi projetado para ser executado em um cronograma para pegar novas alterações no metastore do Hive e sincronizá-las com o Unity Catalog.
Tabelas Hive gerenciadas ou externas Apenas externo Você deseja atualizar rapidamente suas tabelas do Hive para tabelas externas no Unity Catalog, e prefere usar comandos SQL em vez de uma interface visual.

O agendamento de execuções regulares SYNC para atualizar as tabelas existentes do Catálogo Unity quando a tabela do Hive de origem é alterada o torna uma ferramenta útil para gerenciar um espaço de trabalho "híbrido" do Hive e do Catálogo Unity durante a transição para o Catálogo Unity.

Como você não pode usar SYNC para atualizar tabelas gerenciadas que estão no armazenamento do espaço de trabalho Databricks, use CREATE TABLE CLONE para essas tabelas.
Comando CREATE TABLE CLONE SQL CREATE TABLE CLONE permite que você atualize tabelas gerenciadas em seu metastore do Hive para tabelas gerenciadas no Unity Catalog. Você pode clonar tabelas individuais.

Os clones profundos são preferidos, porque copiam os dados da tabela de origem para o destino do clone, além dos metadados da tabela existente.
Tabelas Hive gerenciadas que estão no formato Delta, Parquet ou Iceberg. A clonagem de tabelas de origem Parquet e Iceberg tem alguns requisitos e limitações específicos: consulte Requisitos e limitações para clonagem de tabelas Parquet e Iceberg. Apenas gerido Você deseja migrar tabelas gerenciadas do Hive para tabelas gerenciadas do Unity Catalog para aproveitar ao máximo a governança de dados do Unity Catalog e suas tabelas do Hive atendem aos critérios listados na célula "Requisitos da tabela do Hive".

Se as tabelas do Hive não atenderem aos "requisitos da tabela do Hive", você poderá usar o comando CREATE TABLE AS SELECT SQL para atualizar uma tabela do Hive para uma tabela gerenciada pelo Unity Catalog. CLONE No entanto é quase sempre preferido. A clonagem tem uma sintaxe mais simples do que CREATE TABLE AS SELECT: você não precisa especificar particionamento, formato, invariantes, anulabilidade, fluxo COPY INTOe outros metadados, porque eles são clonados da tabela de origem.

Este artigo descreve como executar todos, exceto o processo de atualização orientado por UCX. O Databricks recomenda UCX para a maioria dos cenários de atualização de espaço de trabalho. No entanto, para casos de uso mais simples, você pode preferir uma ou mais das ferramentas descritas aqui.

Antes de começar

Esta seção descreve alguns dos impactos da migração para os quais você deve estar preparado, juntamente com permissões e requisitos de computação.

Entenda o impacto

Você deve estar ciente de que, ao modificar suas cargas de trabalho para usar as novas tabelas do Catálogo Unity, talvez seja necessário alterar alguns comportamentos:

  • O Unity Catalog gerencia partições de forma diferente do Hive. Os comandos do Hive que manipulam partições diretamente não são suportados em tabelas gerenciadas pelo Unity Catalog.
  • O histórico de tabelas não é migrado quando você executa CREATE TABLE CLONEo . Todas as tabelas no metastore do Hive que você clonar para o Unity Catalog serão tratadas como novas tabelas. Não é possível executar viagens no tempo do Delta Lake ou outras operações que dependem do histórico de pré-migração.

Para obter mais informações, consulte Trabalhar com o Unity Catalog e o metastore herdado do Hive.

Requisitos

Para executar migrações, você deve ter:

  • Um espaço de trabalho que tenha um metastore do Catálogo Unity e pelo menos um catálogo do Catálogo Unity. Consulte Configurar e gerenciar o catálogo Unity.

  • Privilégios nos catálogos do Catálogo Unity para os quais você está migrando tabelas. Esses requisitos de privilégio são enumerados no início de cada procedimento abordado neste artigo.

  • Para migração para tabelas externas do Unity Catalog: credenciais de armazenamento e locais externos definidos no Unity Catalog, e o CREATE EXTERNAL TABLE privilégio no local externo.

  • Acesso à computação do Azure Databricks que atenda aos dois requisitos a seguir:

    • Suporta Unity Catalog (armazéns SQL ou recursos de computação que usam o modo de usuário único ou acesso compartilhado).
    • Permite o acesso às tabelas no metastore do Hive.

    Como os recursos de computação que usam o modo de acesso compartilhado estão habilitados para controle de acesso à tabela herdada por padrão, isso significa que, se você usar esse modo de acesso, deverá ter privilégios de controle de acesso à tabela no metastore do Hive do qual está migrando. Você pode conceder acesso a si mesmo usando o seguinte comando SQL:

    GRANT all_privileges ON catalog hive_metastore TO `<user>`
    

    Como alternativa, você pode usar um recurso de computação no modo de acesso de usuário único.

Para obter mais informações sobre como gerenciar privilégios em objetos no metastore do Hive, consulte Privilégios do metastore do Hive e objetos protegíveis (legado). Para obter mais informações sobre como gerenciar privilégios em objetos no metastore do Unity Catalog, consulte Gerenciar privilégios no Unity Catalog.

Identificar tabelas gerenciadas pelo metastore do Hive

Para determinar se uma tabela está atualmente registrada no Catálogo Unity, verifique o nome do catálogo. As tabelas no catálogo hive_metastore são registradas no metastore do Hive local do espaço de trabalho. Quaisquer outros catálogos listados são regidos pelo Unity Catalog.

Para exibir as tabelas no catálogo usando o hive_metastore Gerenciador de Catálogos:

  1. Clique em Ícone do catálogoCatálogo na barra lateral.
  2. No painel de catálogo, navegue até o hive_metastore catálogo e expanda os nós do esquema.

Você também pode pesquisar uma tabela específica usando o campo de filtro no painel Catálogo.

Atualize um esquema ou várias tabelas do metastore do Hive para tabelas externas do Unity Catalog usando o assistente de atualização

Você pode copiar esquemas completos (bancos de dados) e várias tabelas externas ou gerenciadas do seu metastore Hive padrão do Azure Databricks para o metastore do Catálogo Unity usando o assistente de atualização do Catalog Explorer . As tabelas atualizadas serão tabelas externas no Catálogo Unity.

Para obter ajuda para decidir quando usar o assistente de atualização, consulte Opções de migração do Hive to Unity Catalog.

Requisitos

Requisitos relativos ao formato dos dados:

  • Consulte Tabelas externas.

Requisitos de computação:

  • Um recurso de computação que suporta o Unity Catalog. Consulte Antes de começar.

Requisitos de objeto e permissão do Catálogo Unity:

  • Uma credencial de armazenamento para uma identidade gerenciada do Azure ou entidade de serviço que autoriza o Catálogo Unity a acessar o caminho de local das tabelas.
  • Um local externo que faz referência à credencial de armazenamento que você acabou de criar e ao caminho para os dados em seu locatário de nuvem.
  • Permissão CREATE EXTERNAL TABLE nas localizações externas das tabelas a atualizar.

Requisitos de acesso à tabela Hive:

  • Se sua computação usa o modo de acesso compartilhado, você precisa acessar as tabelas no metastore do Hive, concedido usando o controle de acesso à tabela herdada. Consulte Antes de começar.

Processo de atualização de versão

  1. Clique em Ícone do catálogoCatálogo na barra lateral para abrir o Gerenciador de Catálogos.

  2. Selecione hive_metastore como seu catálogo e selecione o esquema (banco de dados) que você deseja atualizar.

    Selecionar base de dados

  3. Clique em Atualizar no canto superior direito da visualização de detalhes do esquema.

  4. Selecione todas as tabelas que deseja atualizar e clique em Avançar.

    Somente tabelas externas em formatos suportados pelo Unity Catalog podem ser atualizadas usando o assistente de atualização.

  5. Defina o catálogo de destino, o esquema (banco de dados) e o proprietário de cada tabela.

    Os usuários poderão acessar a tabela recém-criada no contexto de seus privilégios no catálogo e no esquema.

    Os proprietários de tabelas têm todos os privilégios na mesa, incluindo SELECT e MODIFY. Se você não selecionar um proprietário, as tabelas gerenciadas serão criadas com você como proprietário. O Databricks geralmente recomenda que você conceda a propriedade da tabela aos grupos. Para saber mais sobre a propriedade do objeto no Unity Catalog, consulte Manage Unity Catalog object ownership.

    Para atribuir o mesmo catálogo e esquema a várias tabelas, selecione as tabelas e clique no botão Definir destino .

    Para atribuir o mesmo proprietário a várias tabelas, selecione-as e clique no botão Definir proprietário .

  6. Analise as configurações da tabela. Para modificá-los, clique no botão Anterior .

  7. Clique em Criar consulta para atualização.

    Um editor de consultas aparece com instruções SQL geradas.

  8. Executar a consulta.

    Quando a consulta é concluída, os metadados de cada tabela são copiados do metastore do Hive para o Unity Catalog. Essas tabelas são marcadas como atualizadas no assistente de atualização.

  9. Defina o controle de acesso refinado usando a guia Permissões de cada nova tabela.

  10. (Opcional) Adicione comentários a cada tabela do Hive atualizada que aponte os usuários para a nova tabela do Catálogo Unity.

    Retorne à tabela original no hive.metastore catálogo para adicionar o comentário da tabela.

    Se você usar a sintaxe a seguir no comentário da tabela, os blocos de anotações e as consultas do editor de consultas SQL que fazem referência à tabela do Hive preterida exibirão o nome da tabela preterida usando texto tachado, exibirão o comentário como um aviso e fornecerão um link de Correção Rápida para o Assistente do Databricks, que pode atualizar seu código para fazer referência à nova tabela.

    This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
    

    Consulte Adicionar comentários para indicar que uma tabela do Hive foi migrada.

  11. Modifique suas cargas de trabalho para usar as novas tabelas.

    Se você adicionou um comentário à tabela original do Hive como o listado na etapa anterior opcional, poderá usar o link Correção Rápida e o Assistente Databricks para ajudá-lo a localizar e modificar cargas de trabalho.

Atualize uma única tabela Hive para uma tabela externa do Unity Catalog usando o assistente de atualização

Você pode copiar uma única tabela do metastore padrão do Hive para o metastore do Unity Catalog usando o assistente de atualização no Catalog Explorer

Para obter ajuda para decidir quando usar o assistente de atualização, consulte Opções de migração do Hive to Unity Catalog.

Requisitos

Requisitos relativos ao formato dos dados:

  • Consulte Tabelas externas.

Requisitos de computação:

  • Um recurso de computação que suporta o Unity Catalog. Consulte Antes de começar.

Requisitos de objeto e permissão do Catálogo Unity:

  • Uma credencial de armazenamento para uma identidade gerenciada do Azure ou entidade de serviço que autoriza o Catálogo Unity a acessar o caminho de local da tabela.
  • Um local externo que faz referência à credencial de armazenamento que você acabou de criar e ao caminho para os dados em seu locatário de nuvem.
  • Permissão CREATE EXTERNAL TABLE nas localizações externas das tabelas a atualizar.

Processo de atualização de versão

Para atualizar uma tabela externa:

  1. Clique em Ícone do catálogoCatálogo na barra lateral para abrir o Catalog Explorer.

  2. Selecione o banco de dados e, em seguida, a tabela que você deseja atualizar.

  3. Clique em Atualizar no canto superior direito da vista de detalhes da tabela.

  4. Selecione a tabela a ser atualizada e clique em Avançar.

  5. Selecione o catálogo de destino, o esquema (banco de dados) e o proprietário.

    Os usuários poderão acessar a tabela recém-criada no contexto de seus privilégios no catálogo e no esquema.

    Os proprietários de tabelas têm todos os privilégios na mesa, incluindo SELECT e MODIFY. Se você não selecionar um proprietário, a tabela gerenciada será criada com você como proprietário. O Databricks geralmente recomenda que você conceda a propriedade da tabela aos grupos. Para saber mais sobre a propriedade do objeto no Unity Catalog, consulte Manage Unity Catalog object ownership.

  6. Clique em Atualizar no canto superior direito da vista de detalhes da tabela.

  7. Selecione a tabela a ser atualizada e clique em Avançar.

    Os metadados da tabela agora são copiados para o Unity Catalog, e uma nova tabela foi criada. Agora você pode usar a guia Permissões para definir o controle de acesso refinado.

  8. Use a guia Permissões para definir o controle de acesso refinado.

  9. (Opcional) Adicione um comentário à tabela do Hive que aponte os usuários para a nova tabela do Catálogo Unity.

    Retorne à tabela original no hive.metastore catálogo para adicionar o comentário da tabela.

    Se você usar a sintaxe a seguir no comentário da tabela, os blocos de anotações e as consultas do editor de consultas SQL que fazem referência à tabela do Hive preterida exibirão o nome da tabela preterida usando texto tachado, exibirão o comentário como um aviso e fornecerão um link de Correção Rápida para o Assistente do Databricks, que pode atualizar seu código para fazer referência à nova tabela.

    This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
    

    Consulte Adicionar comentários para indicar que uma tabela do Hive foi migrada.

  10. Modifique cargas de trabalho existentes para usar a nova tabela.

    Se você adicionou um comentário à tabela original do Hive como o listado na etapa anterior opcional, poderá usar o link Correção Rápida e o Assistente Databricks para ajudá-lo a localizar e modificar cargas de trabalho.

    Nota

    Se você não precisar mais da tabela antiga, poderá soltá-la do metastore do Hive. Soltar uma tabela externa não modifica os arquivos de dados em seu locatário de nuvem.

Atualizar uma tabela do Hive para uma tabela externa do Unity Catalog usando SYNC

Você pode usar o SYNC comando SQL para copiar tabelas externas em seu metastore do Hive para tabelas externas no Unity Catalog. Você pode sincronizar tabelas individuais ou esquemas inteiros.

Você também pode usar SYNC para copiar tabelas gerenciadas pelo Hive armazenadas fora do armazenamento do espaço de trabalho Databricks (às vezes chamado de raiz DBFS) para tabelas externas no Unity Catalog. Não é possível usá-lo para copiar tabelas gerenciadas do Hive armazenadas no armazenamento do espaço de trabalho. Para copiar essas tabelas, use CREATE TABLE CLONE em vez disso.

O SYNC comando executa uma operação de gravação em cada tabela de origem que atualiza para adicionar propriedades de tabela adicionais para contabilidade, incluindo um registro da tabela externa do Unity Catalog de destino.

SYNC também pode ser usado para atualizar tabelas existentes do Catálogo Unity quando as tabelas de origem no metastore do Hive são alteradas. Isso o torna uma boa ferramenta para fazer a transição para o Unity Catalog gradualmente.

Para obter detalhes, consulte SYNC. Para obter ajuda para decidir quando usar o assistente de atualização, consulte Opções de migração do Hive to Unity Catalog.

Requisitos

Requisitos relativos ao formato dos dados:

  • Consulte Tabelas externas.

Requisitos de computação:

  • Um recurso de computação que suporta o Unity Catalog. Consulte Antes de começar.

Requisitos de objeto e permissão do Catálogo Unity:

  • Uma credencial de armazenamento para uma identidade gerenciada do Azure ou entidade de serviço que autoriza o Catálogo Unity a acessar o caminho de local das tabelas.
  • Um local externo que faz referência à credencial de armazenamento que você acabou de criar e ao caminho para os dados em seu locatário de nuvem.
  • Permissão CREATE EXTERNAL TABLE nas localizações externas das tabelas a atualizar.

Requisitos de acesso à tabela Hive:

  • Se sua computação usa o modo de acesso compartilhado, você precisa acessar as tabelas no metastore do Hive, concedido usando o controle de acesso à tabela herdada. Consulte Antes de começar.

Processo de atualização de versão

Para atualizar tabelas em seu metastore do Hive para tabelas externas do Unity Catalog usando SYNC:

  1. Em um bloco de anotações ou no editor de consultas SQL, execute um dos seguintes procedimentos:

    Sincronize uma tabela Hive externa:

    SYNC TABLE <uc-catalog>.<uc-schema>.<new-table> FROM hive_metastore.<source-schema>.<source-table>
    SET OWNER <principal>;
    

    Sincronize um esquema Hive externo e todas as suas tabelas:

    SYNC SCHEMA <uc-catalog>.<new-schema> FROM hive_metastore.<source-schema>
    SET OWNER <principal>;
    

    Sincronize uma tabela gerenciada do Hive armazenada fora do armazenamento do espaço de trabalho Databricks:

    SYNC TABLE <uc-catalog>.<uc-schema>.<new-table> AS EXTERNAL FROM hive_metastore.<source-schema>.<source-table>
    SET OWNER <principal>;
    

    Sincronize um esquema que contenha tabelas Hive gerenciadas armazenadas fora do armazenamento do espaço de trabalho Databricks:

    SYNC SCHEMA <uc-catalog>.<new-schema> AS EXTERNAL FROM hive_metastore.<source-schema>
    SET OWNER <principal>;
    
  2. Conceda aos usuários ou grupos de nível de conta acesso à nova tabela. Consulte Gerenciar privilégios no Catálogo Unity.

  3. (Opcional) Adicione um comentário à tabela original do Hive que aponte os usuários para a nova tabela do Catálogo Unity.

    Retorne à tabela original no hive.metastore catálogo para adicionar o comentário da tabela. Para saber como adicionar comentários de tabela usando o Gerenciador de Catálogos, consulte Adicionar comentários de marcação a objetos de dados usando o Gerenciador de Catálogos. Para saber como adicionar comentários de tabela usando instruções SQL em um bloco de anotações ou no editor de consultas SQL, consulte COMMENT ON.

    Se você usar a sintaxe a seguir no comentário da tabela, os blocos de anotações e as consultas do editor de consultas SQL que fazem referência à tabela do Hive preterida exibirão o nome da tabela preterida usando texto tachado, exibirão o comentário como um aviso e fornecerão um link de Correção Rápida para o Assistente do Databricks, que pode atualizar seu código para fazer referência à nova tabela.

    This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
    

    Consulte Adicionar comentários para indicar que uma tabela do Hive foi migrada.

  4. Depois que a tabela for migrada, os usuários devem atualizar suas consultas e cargas de trabalho existentes para usar a nova tabela.

    Se você adicionou um comentário à tabela original do Hive como o listado na etapa anterior opcional, poderá usar o link Correção Rápida e o Assistente Databricks para ajudá-lo a localizar e modificar cargas de trabalho.

  5. Antes de soltar a tabela antiga, teste as dependências revogando o acesso a ela e executando novamente consultas e cargas de trabalho relacionadas.

    Não solte a tabela antiga se ainda estiver confiando em comentários de preterição para ajudá-lo a encontrar e atualizar o código existente que faz referência à tabela antiga. Da mesma forma, não solte a tabela antiga se ela tiver sido alterada desde a sincronização original: SYNC pode ser usada para atualizar tabelas existentes do Catálogo Unity com alterações das tabelas Hive de origem.

Atualizar uma tabela gerenciada do Hive para uma tabela gerenciada pelo Unity Catalog usando o CLONE

Use CREATE TABLE CLONE para atualizar tabelas gerenciadas em seu metastore do Hive para tabelas gerenciadas no Unity Catalog. Você pode clonar tabelas individuais. Os clones profundos copiam os dados da tabela de origem para o destino do clone, além dos metadados da tabela existente. Use o clone profundo se você pretende descartar a tabela de origem do Hive. Os clones superficiais não copiam os arquivos de dados para o destino do clone, mas dão acesso a eles por referência aos dados de origem: os metadados da tabela são equivalentes à fonte. Os clones superficiais são mais baratos de criar, mas exigem que os usuários que consultam dados no destino do clone também tenham acesso aos dados de origem.

Para obter ajuda para decidir quando usar CLONEo , consulte Opções de migração do Hive to Unity Catalog. Para obter ajuda para decidir qual tipo de clone usar, consulte Clonar uma tabela no Azure Databricks.

Requisitos

Requisitos relativos ao formato dos dados:

Requisitos de computação:

  • Um recurso de computação que suporta o Unity Catalog. Consulte Antes de começar.

Requisitos de permissão:

  • Os USE CATALOG e USE SCHEMA privilégios no catálogo e esquema aos quais você adiciona a tabela, juntamente com CREATE TABLE no esquema, ou você deve ser o proprietário do catálogo ou esquema. Consulte Privilégios do catálogo Unity e objetos protegíveis.
  • Se sua computação usa o modo de acesso compartilhado, você precisa acessar as tabelas no metastore do Hive, concedido usando o controle de acesso à tabela herdada. Consulte Antes de começar.

Processo de atualização de versão

Para atualizar tabelas gerenciadas em seu metastore do Hive para tabelas gerenciadas no Catálogo Unity:

  1. Em um bloco de anotações ou no editor de consultas SQL, execute um dos seguintes procedimentos:

    Clone profundamente uma tabela gerenciada no metastore do Hive:

    CREATE OR REPLACE TABLE <uc-catalog>.<uc-schema>.<new-table>
    DEEP CLONE hive_metastore.<source-schema>.<source-table>;
    

    Clone superficialmente uma tabela gerenciada no metastore do Hive:

    CREATE OR REPLACE TABLE <uc-catalog>.<uc-schema>.<new-table>
    SHALLOW CLONE hive_metastore.<source-schema>.<source-table>;
    

    Para obter informações sobre parâmetros adicionais, incluindo propriedades de tabela, consulte CREATE TABLE CLONE.

  2. Conceda aos usuários ou grupos de nível de conta acesso à nova tabela. Consulte Gerenciar privilégios no Catálogo Unity.

  3. (Opcional) Adicione um comentário à tabela original do Hive que aponte os usuários para a nova tabela do Catálogo Unity.

    Retorne à tabela original no hive.metastore catálogo para adicionar o comentário da tabela. Para saber como adicionar comentários de tabela usando o Gerenciador de Catálogos, consulte Adicionar comentários de marcação a objetos de dados usando o Gerenciador de Catálogos. Para saber como adicionar comentários de tabela usando instruções SQL em um bloco de anotações ou no editor de consultas SQL, consulte COMMENT ON.

    Se você usar a sintaxe a seguir no comentário da tabela, os blocos de anotações e as consultas do editor de consultas SQL que fazem referência à tabela do Hive preterida exibirão o nome da tabela preterida usando texto tachado, exibirão o comentário como um aviso e fornecerão um link de Correção Rápida para o Assistente do Databricks, que pode atualizar seu código para fazer referência à nova tabela.

    This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
    

    Consulte Adicionar comentários para indicar que uma tabela do Hive foi migrada.

  4. Depois que a tabela for migrada, os usuários devem atualizar suas consultas e cargas de trabalho existentes para usar a nova tabela.

    Se você adicionou um comentário à tabela original do Hive como o listado na etapa anterior opcional, poderá usar o link Correção Rápida e o Assistente Databricks para ajudá-lo a localizar e modificar cargas de trabalho.

  5. Antes de soltar a tabela antiga, teste as dependências revogando o acesso a ela e executando novamente consultas e cargas de trabalho relacionadas.

    Não solte a tabela antiga se ainda estiver confiando em comentários de preterição para ajudá-lo a encontrar e atualizar o código existente que faz referência à tabela antiga. Da mesma forma, não solte a tabela antiga se você executou um clone raso. Os clones superficiais fazem referência aos dados da tabela Hive de origem.

Atualize uma tabela do Hive para uma tabela gerenciada pelo Unity Catalog usando CREATE TABLE AS SELECT

Se você não puder usar ou preferir não usar CREATE TABLE CLONE para migrar uma tabela no metastore do Hive para uma tabela gerenciada no Unity Catalog, poderá criar uma nova tabela gerenciada no Unity Catalog consultando a tabela do Hive usando CREATE TABLE AS SELECT. Para obter informações sobre as diferenças entre CREATE TABLE CLONE e , consulte Opções de migração do Hive CREATE TABLE AS SELECTto Unity Catalog.

Requisitos

Requisitos de computação:

  • Um recurso de computação que suporta o Unity Catalog. Consulte Antes de começar.

Requisitos de permissão:

  • Os USE CATALOG e USE SCHEMA privilégios no catálogo e esquema aos quais você adiciona a tabela, juntamente com CREATE TABLE no esquema, ou você deve ser o proprietário do catálogo ou esquema. Consulte Privilégios do catálogo Unity e objetos protegíveis.
  • Se sua computação usa o modo de acesso compartilhado, você precisa acessar as tabelas no metastore do Hive, concedido usando o controle de acesso à tabela herdada. Consulte Antes de começar.

Processo de atualização de versão

Para atualizar uma tabela no metastore do Hive para uma tabela gerenciada no Unity Catalog usando CREATE TABLE AS SELECT:

  1. Crie uma nova tabela do Catálogo Unity consultando a tabela existente. Substitua os valores de espaço reservado:

    • <uc-catalog>: O catálogo do Catálogo Unity para a nova tabela.
    • <uc-schema>: O esquema do Catálogo Unity para a nova tabela.
    • <new-table>: Um nome para a tabela Unity Catalog.
    • <source-schema>: O esquema para a tabela Hive, como default.
    • <source-table>: O nome da tabela Hive.

    SQL

    CREATE TABLE <uc-catalog>.<new-schema>.<new-table>
    AS SELECT * FROM hive_metastore.<source-schema>.<source-table>;
    

    Python

    df = spark.table("hive_metastore.<source-schema>.<source-table>")
    
    df.write.saveAsTable(
      name = "<uc-catalog>.<uc-schema>.<new-table>"
    )
    

    R

    %r
    library(SparkR)
    
    df = tableToDF("hive_metastore.<source-schema>.<source-table>")
    
    saveAsTable(
      df = df,
      tableName = "<uc-catalog>.<uc-schema>.<new-table>"
    )
    

    Scala

    val df = spark.table("hive_metastore.<source-schema>.<source-table>")
    
    df.write.saveAsTable(
      tableName = "<uc-catalog>.<uc-schema>.<new-table>"
    )
    

    Se quiser migrar apenas algumas colunas ou linhas, modifique a SELECT instrução.

    Nota

    Os comandos apresentados aqui criam uma tabela gerenciada na qual os dados são copiados para um local de armazenamento gerenciado dedicado. Se, em vez disso, você quiser criar uma tabela externa, onde a tabela está registrada no Unity Catalog sem mover os dados no armazenamento em nuvem, consulte Atualizar uma única tabela Hive para uma tabela externa do Unity Catalog usando o assistente de atualização. Consulte também Especificar um local de armazenamento gerenciado no Unity Catalog.

  2. Conceda aos usuários ou grupos de nível de conta acesso à nova tabela. Consulte Gerenciar privilégios no Catálogo Unity.

  3. (Opcional) Adicione um comentário à tabela original do Hive que aponte os usuários para a nova tabela do Catálogo Unity.

    Retorne à tabela original no hive.metastore catálogo para adicionar o comentário da tabela. Para saber como adicionar comentários de tabela usando o Gerenciador de Catálogos, consulte Adicionar comentários de marcação a objetos de dados usando o Gerenciador de Catálogos. Para saber como adicionar comentários de tabela usando instruções SQL em um bloco de anotações ou no editor de consultas SQL, consulte COMMENT ON.

    Se você usar a sintaxe a seguir no comentário da tabela, os blocos de anotações e as consultas do editor de consultas SQL que fazem referência à tabela do Hive preterida exibirão o nome da tabela preterida usando texto tachado, exibirão o comentário como um aviso e fornecerão um link de Correção Rápida para o Assistente do Databricks, que pode atualizar seu código para fazer referência à nova tabela.

    This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
    

    Consulte Adicionar comentários para indicar que uma tabela do Hive foi migrada.

  4. Depois que a tabela for migrada, os usuários devem atualizar suas consultas e cargas de trabalho existentes para usar a nova tabela.

    Se você adicionou um comentário à tabela original do Hive como o listado na etapa anterior opcional, poderá usar o link Correção Rápida e o Assistente Databricks para ajudá-lo a localizar e modificar cargas de trabalho.

  5. Antes de soltar a tabela antiga, teste as dependências revogando o acesso a ela e executando novamente consultas e cargas de trabalho relacionadas.

    Não solte a tabela antiga se ainda estiver confiando em comentários de preterição para ajudá-lo a encontrar e atualizar o código existente que faz referência à tabela antiga.

Atualizar uma exibição para o Catálogo Unity

Depois de atualizar todas as tabelas referenciadas de uma exibição para o mesmo metastore do Catálogo Unity, você pode criar uma nova exibição que faça referência às novas tabelas.

Adicionar comentários para indicar que uma tabela do Hive foi migrada

Quando você adiciona um comentário à tabela do Hive preterida que aponta os usuários para a nova tabela do Catálogo Unity, os blocos de anotações e as consultas do editor de consultas SQL que fazem referência à tabela do Hive preterida exibirão o nome da tabela preterida usando texto tachado, exibirão o comentário como um aviso e fornecerão um link de Correção Rápida para o Assistente do Databricks, que pode atualizar seu código para fazer referência à nova tabela.

Aviso de descontinuação da tabela Hive

Seu comentário deve usar o seguinte formato:

This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.

Para saber como adicionar comentários de tabela usando o Gerenciador de Catálogos, consulte Adicionar comentários de marcação a objetos de dados usando o Gerenciador de Catálogos. Para saber como adicionar comentários de tabela usando instruções SQL em um bloco de anotações ou no editor de consultas SQL, consulte COMMENT ON.

Usar o Assistente Databricks para atualizar uma referência de tabela preterida

Se você vir texto tachado em um nome de tabela em uma célula de bloco de anotações ou instrução no editor de consultas SQL, passe o mouse sobre o nome da tabela para revelar um aviso de aviso. Se esse aviso descrever a tabela como preterida e exibir o nome da nova tabela, clique em Correção Rápida, seguido por Corrigir Descontinuação. O Databricks Assistant é aberto, oferecendo a substituição do nome da tabela preterida pelo novo nome da tabela do Unity Catalog. Siga as instruções para concluir a tarefa.

O vídeo mostrando a atualização da tabela do Hive usando o Databricks Assistant

Consulte também Usar o Assistente Databricks.