Atualize tabelas e exibições para o Unity Catalog

Este artigo descreve como atualizar tabelas e view registradas em seu Hive metastore para o Unity Catalog.

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

Observação

Unity Catalog gerencia partições de maneira diferente do Hive. Comandos Hive que manipulam partições diretamente não são suportados em tabelas gerenciadas pelo Unity Catalog.

Atualize um esquema ou várias tabelas para o Unity Catalog

Você pode copiar esquemas completos (bancos de dados) e diversas tabelas externas do Hive metastore default para o metastore Unity Catalog usando o assistente de atualização do Catalog Explorer .

Requisitos

Antes de começar, você deve ter:

  • Uma credencial de armazenamento com uma IAM role que autoriza o Unity Catalog a acessar o caminho de localização das tabelas.

  • Um local externo que faz referência à credencial de armazenamento que você acabou de criar e ao caminho para os dados no seu clouds tenant.

  • CREATE EXTERNAL TABLE permissão nos locais externos das tabelas a serem atualizadas.

Processo de atualização

  1. Clique Ícone de catálogo Catálogo na barra lateral para abrir o Catalog Explorer.

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

    Selecione o banco de dados
  3. Clique em Atualizar no canto superior direito da view 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 da tabela têm todos os privilégios na tabela, incluindo SELECT e MODIFY. Se você não selecionar um proprietário, as tabelas gerenciadas serão criadas com você como proprietário. Databricks geralmente recomenda que você conceda propriedade de tabela a grupos. Para saber mais sobre a propriedade do objeto no Unity Catalog, consulte Gerenciar a propriedade do objeto Unity Catalog .

    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 tabelas e clique no botão Definir proprietário .

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

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

    Um editor query aparece com instruções SQL geradas.

  8. execução da query.

    Quando a query é concluída, os metadados de cada tabela foram copiados do Hive metastore para 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. Modifique suas cargas de trabalho para usar a nova tabela.

Atualizar uma única tabela externa para o Unity Catalog

Você pode copiar uma tabela externa do Hive metastore default para o metastore Unity Catalog usando o Catalog Explorer.

Requisitos

Antes de começar, você deve ter:

  • Uma credencial de armazenamento com uma IAM role que autoriza o Unity Catalog a acessar o caminho do local da tabela.

  • Um local externo que faz referência à credencial de armazenamento que você acabou de criar e ao caminho para os dados no seu clouds tenant.

  • CREATE EXTERNAL TABLE permissão no local externo da tabela a ser atualizada.

Processo de atualização

Para atualizar uma tabela externa:

  1. Clique Ícone de catálogo Catálogo na barra lateral para abrir o Catalog Explorer.

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

  3. Clique em Ação de upgrade no canto superior direito da view de detalhes da tabela.

  4. Selecione seu catálogo de destino, esquema (banco de dados) e 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 da tabela têm todos os privilégios na tabela, incluindo SELECT e MODIFY. Se você não selecionar um proprietário, a tabela gerenciada será criada com você como proprietário. Databricks geralmente recomenda que você conceda propriedade de tabela a grupos. Para saber mais sobre a propriedade do objeto no Unity Catalog, consulte Gerenciar a propriedade do objeto Unity Catalog .

  5. Clique em Atualizar.

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

  6. Modifique as cargas de trabalho existentes para usar a nova tabela.

    Observação

    Se você não precisar mais da tabela antiga, poderá removê-la do Hive metastore. A eliminação de uma tabela externa não modifica os arquivos de dados em seu tenant cloud.

Atualize uma exibição para Unity Catalog

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

Atualize uma tabela para uma tabela gerenciada do Unity Catalog

Para atualizar uma tabela para o Unity Catalog como uma tabela gerenciada:

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

    • <catalog>: o catálogo Unity Catalog para a nova tabela.

    • <new-schema>: o esquema Unity Catalog para a nova tabela.

    • <new-table>: um nome para a tabela Unity Catalog .

    • <old-schema>: o esquema da tabela antiga, como default.

    • <old-table>: O nome da tabela antiga.

    CREATE TABLE <catalog>.<new-schema>.<new-table>
    AS SELECT * FROM hive_metastore.<old-schema>.<old-table>;
    
    df = spark.table("hive_metastore.<old-schema>.<old-table>")
    
    df.write.saveAsTable(
      name = "<catalog>.<new-schema>.<new-table>"
    )
    
    %r
    library(SparkR)
    
    df = tableToDF("hive_metastore.<old-schema>.<old-table>")
    
    saveAsTable(
      df = df,
      tableName = "<catalog>.<new-schema>.<new-table>"
    )
    
    val df = spark.table("hive_metastore.<old-schema>.<old-table>")
    
    df.write.saveAsTable(
      tableName = "<catalog>.<new-schema>.<new-table>"
    )
    

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

    Observação

    Este comando cria uma tabela gerenciadora na qual os dados são copiados para o local de armazenamento que foi indicado quando o metastore foi configurado. Para criar uma tabela externa, onde uma tabela é registrada no Unity Catalog sem mover os dados no armazenamento em cloud , consulte Atualizar uma única tabela externa para Unity Catalog.

  2. Conceda aos usuários ou grupos no nível accountacesso à nova tabela. Consulte gerenciar privilégios no Unity Catalog.

  3. Após a migração da tabela, os usuários devem atualizar suas query e cargas de trabalho existentes para usar a nova tabela.

  4. Antes de descartar a tabela antiga, teste as dependências revogando o acesso a ela e executando novamente query e as cargas de trabalho relacionadas.