Partilhar via


Criar um metastore do Catálogo do Unity

Este artigo mostra como criar um metastore do Unity Catalog e vinculá-lo a espaços de trabalho.

Importante

Para espaços de trabalho que foram habilitados para o Unity Catalog automaticamente, as instruções neste artigo são desnecessárias. O Databricks começou a habilitar novos espaços de trabalho para o Unity Catalog automaticamente em 9 de novembro de 2023, com um lançamento prosseguindo gradualmente em todas as contas. Você deve seguir as instruções neste artigo somente se tiver um espaço de trabalho e ainda não tiver um metastore na região do espaço de trabalho. Para determinar se já existe um metastore na sua região, consulte Ativação automática do catálogo Unity.

Um metastore é o contêiner de nível superior para dados no Unity Catalog. Os metastores do Unity Catalog registram metadados sobre objetos protegíveis (como tabelas, volumes, locais externos e compartilhamentos) e as permissões que regem o acesso a eles. Cada metastore expõe um namespace de três níveis (catalog.schema.table) pelo qual os dados podem ser organizados. Você deve ter um metastore para cada região em que sua organização opera. Para trabalhar com o Unity Catalog, os usuários devem estar em um espaço de trabalho anexado a um metastore em sua região.

Para criar um metastore, faça o seguinte:

  1. Em sua conta do Azure, opcionalmente, crie um local de armazenamento para armazenamento no nível de metastore de tabelas e volumes gerenciados.

    Para obter informações que o ajudem a decidir se precisa de armazenamento no nível do metastore, consulte (Opcional) Criar armazenamento no nível do metastore e Os dados estão fisicamente separados no armazenamento.

  2. Na sua conta do Azure, crie uma identidade gerenciada do Azure ou uma entidade de serviço que dê acesso a esse local de armazenamento.

  3. No Azure Databricks, crie o metastore, anexando o local de armazenamento e atribua espaços de trabalho ao metastore.

Nota

Além das abordagens descritas neste artigo, você também pode criar um metastore usando o provedor Databricks Terraform, especificamente o recurso databricks_metastore . Para habilitar o Unity Catalog para acessar o metastore, use databricks_metastore_data_access. Para vincular espaços de trabalho a um metastore, use databricks_metastore_assignment.

Antes de começar

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

Você também deve confirmar se atende aos seguintes requisitos para todas as etapas de configuração:

  • Você deve ser um administrador de conta do Azure Databricks.

    O primeiro administrador de conta do Azure Databricks tem de ser um Administrador Global do Microsoft Entra ID no momento em que inicia sessão pela primeira vez na consola da conta do Azure Databricks. Após o primeiro login, esse usuário se torna um administrador de conta do Azure Databricks e não precisa mais da função de Administrador Global do Microsoft Entra ID para acessar a conta do Azure Databricks. O primeiro administrador de conta pode atribuir usuários no locatário do Microsoft Entra ID como administradores de conta adicionais (que podem atribuir mais administradores de conta). Os administradores de conta adicionais não exigem funções específicas no Microsoft Entra ID.

  • Os espaços de trabalho anexados ao metastore devem estar no plano Premium do Azure Databricks.

  • Se quiser configurar o armazenamento raiz no nível de metastore, você deve ter permissão para criar o seguinte em seu locatário do Azure:

Etapa 1 (opcional): Criar um contêiner de armazenamento para armazenamento gerenciado no nível de metastore

Nesta etapa, que é opcional, você cria uma conta de armazenamento e um contêiner para armazenar dados gerenciados de tabela e volume no nível do metastore. Para determinar se você precisa de armazenamento no nível do metastore, consulte (Opcional) Criar armazenamento no nível do metastore.

  1. Crie uma conta de armazenamento para o Azure Data Lake Storage Gen2.

    Essa conta de armazenamento conterá tabelas e volumes gerenciados pelo Unity Catalog. Essa deve ser uma conta do Azure Data Lake Storage Gen2 na mesma região que seus espaços de trabalho do Azure Databricks. Consulte Criar uma conta de armazenamento para usar com o Azure Data Lake Storage Gen2.

  2. Crie um contêiner de armazenamento que armazenará suas tabelas gerenciadas e dados de volume no nível do metastore.

    Você pode criar apenas um metastore por região. Você deve usar a mesma região para seu metastore e contêiner de armazenamento.

    Esse local de armazenamento no nível de metastore pode ser substituído nos níveis de catálogo e esquema. Consulte Especificar um local de armazenamento gerenciado no Catálogo Unity.

    Anote o URI do ADLSv2 para o contêiner, que está no seguinte formato:

    abfss://<container-name>@<storage-account-name>.dfs.core.windows.net/<metastore-name>
    

    Nas etapas a seguir, substitua <storage-container> por este URI.

Etapa 2 (opcional): Criar uma identidade gerenciada para acessar o local de armazenamento gerenciado

Nesta etapa, que é necessária somente se você concluiu a etapa 1, você cria um conector de acesso do Azure Databricks que contém uma identidade gerenciada e lhe dá acesso ao contêiner de armazenamento.

Siga as instruções em Usar identidades gerenciadas do Azure no Catálogo Unity para acessar o armazenamento.

Nota

Você pode usar uma identidade gerenciada do Azure ou uma entidade de serviço como a identidade que dá acesso ao contêiner de armazenamento do metastore. O Databricks recomenda fortemente identidades gerenciadas, porque elas não exigem que você mantenha credenciais ou gire segredos, e permitem que você se conecte a uma conta do Azure Data Lake Storage Gen2 protegida por um firewall de armazenamento. Se você quiser usar uma entidade de serviço, consulte Criar armazenamento gerenciado do Unity Catalog usando uma entidade de serviço (legado).

Etapa 3: Criar o metastore e anexar um espaço de trabalho

Cada região do Azure Databricks requer seu próprio metastore do Unity Catalog.

Você cria um metastore para cada região em que sua organização opera. Você pode vincular cada um desses metastores regionais a qualquer número de espaços de trabalho nessa região. Cada espaço de trabalho vinculado tem a mesma exibição dos dados no metastore e o controle de acesso a dados pode ser gerenciado entre espaços de trabalho. Você pode acessar dados em outros metastores usando o Delta Sharing.

Se você optar por criar armazenamento no nível de metastore, o metastore usará o contêiner de armazenamento e a identidade gerenciada do Azure que você criou nas etapas anteriores.

Para criar um metastore:

  1. Se você optar por criar armazenamento no nível de metastore, verifique se você tem o caminho para o contêiner de armazenamento e a ID do recurso do conector de acesso do Azure Databricks que você criou na tarefa anterior.

  2. Inicie sessão na sua área de trabalho como administrador de conta.

  3. Clique no seu nome de utilizador na barra superior da área de trabalho do Azure Databricks e selecione Gerir Conta.

  4. Faça logon no console de conta do Azure Databricks.

  5. Clique em Ícone do catálogo Catálogo.

  6. Clique em Criar metastore.

  7. Introduza o seguinte:

    • Nome do metastore.

    • Região onde o metastore será implantado.

      Isso deve estar na mesma região dos espaços de trabalho que você deseja usar para acessar os dados. Se você optar por criar um contêiner de armazenamento para armazenamento no nível de metastore, essa região também deverá ser a mesma.

    • (Opcional) Caminho do ADLS Gen 2: insira o caminho para o contêiner de armazenamento que você usará como armazenamento raiz para o metastore.

      O abfss:// prefixo é adicionado automaticamente.

    • (Opcional) ID do Conector de Acesso: insira a ID de recurso do conector de acesso do Azure Databricks no formato:

      /subscriptions/12f34567-8ace-9c10-111c-aea8eba12345c/resourceGroups/<resource-group>/providers/Microsoft.Databricks/accessConnectors/<connector-name>
      
  8. Clique em Criar.

  9. Quando solicitado, selecione espaços de trabalho para vincular ao metastore.

    Para obter detalhes, consulte Habilitar um espaço de trabalho para o Unity Catalog.

  10. Transfira a função de administrador do metastore para um grupo.

    O usuário que cria um metastore é seu proprietário, também chamado de administrador do metastore. O administrador do metastore pode criar objetos de nível superior no metastore, como catálogos, e pode gerenciar o acesso a tabelas e outros objetos. O Databricks recomenda que você reatribua a função de administrador do metastore a um grupo. Consulte Atribuir um administrador de metastore.

  11. Habilite o gerenciamento do Azure Databricks de carregamentos para volumes gerenciados.

    O Azure Databricks usa o compartilhamento de recursos entre origens (CORS) para carregar dados em volumes gerenciados no Unity Catalog. Consulte Configurar a conta de armazenamento do Catálogo Unity para CORS.

Próximos passos

Adicionar armazenamento gerenciado a um metastore existente

O armazenamento gerenciado no nível de metastore é opcional e não está incluído para metastores criados automaticamente. Talvez você queira adicionar armazenamento no nível de metastore ao seu metastore se preferir um modelo de isolamento de dados que armazene dados centralmente para vários espaços de trabalho. Você precisará de armazenamento no nível de metastore se quiser compartilhar blocos de anotações usando o Compartilhamento Delta ou se for um parceiro do Azure Databricks que usa locais de preparo pessoais.

Consulte também Especificar um local de armazenamento gerenciado no Unity Catalog.

Requisitos

  • Você deve ter pelo menos um espaço de trabalho anexado ao metastore do Unity Catalog.
  • Permissões do Azure Databricks necessárias:
    • Para criar um local externo, você deve ser um administrador ou usuário de metastore com os CREATE EXTERNAL LOCATION privilégios e CREATE STORAGE CREDENTIAL .
    • Para adicionar o local de armazenamento à definição de metastore, você deve ser um administrador de conta. Para obter instruções sobre como ativar a função de administrador da conta na sua conta, consulte Estabelecer o seu primeiro administrador de conta.
  • Permissões de locatário do Azure necessárias:
    • Permissão para criar uma conta de armazenamento para usar com o Azure Data Lake Storage Gen2. Essa conta de armazenamento deve ter um namespace hierárquico. Consulte Criar uma conta de armazenamento para usar com o Azure Data Lake Storage Gen2.
    • Permissão para criar um novo recurso para manter uma identidade gerenciada atribuída ao sistema. Isso requer que você seja um Colaborador ou Proprietário de um grupo de recursos em qualquer assinatura no locatário.

Etapa 1: Criar o local de armazenamento

Siga as instruções na Etapa 1 (Opcional): Criar um contêiner de armazenamento para armazenamento gerenciado no nível de metastore e Etapa 2 (Opcional): Criar uma identidade gerenciada para acessar o local de armazenamento gerenciado para criar um contêiner de armazenamento no Azure Data Lake Storage Gen2 e um conector de acesso do Azure Databricks que contenha uma identidade gerenciada que tenha acesso ao contêiner de armazenamento.

Etapa 2: Criar um local externo no Catálogo Unity

Nesta etapa, você cria um local externo no Unity Catalog que faz referência ao caminho ADLS Gen 2 que você acabou de criar.

  1. Crie uma credencial de armazenamento.

    A credencial de armazenamento representará a identidade gerenciada do Azure que você criou na Etapa 1: Criar o local de armazenamento.

    Siga as instruções em Criar uma credencial de armazenamento para se conectar ao Azure Data Lake Storage Gen2.

  2. Crie um local externo que faça referência à credencial de armazenamento criada na etapa anterior e ao contêiner de armazenamento ADLS Gen 2 criado na Etapa 1: criar o local de armazenamento.

    Siga as instruções em Criar um local externo para conectar o armazenamento em nuvem ao Azure Databricks

  3. Conceda a si mesmo o CREATE MANAGED STORAGE privilégio no local externo.

    1. Clique no nome do local externo para abrir o painel de detalhes.
    2. Na guia Permissões, clique em Conceder.
    3. Na caixa de diálogo Conceder em<external location>, selecione-se no campo Entidades e selecione CREATE MANAGED STORAGE.
    4. Clique em Conceder.

Etapa 3: Adicionar o local de armazenamento ao metastore

Depois de criar um local externo que represente o bucket de armazenamento do metastore, você pode adicioná-lo ao metastore.

  1. Como administrador da conta, inicie sessão na consola da conta.

  2. Clique em Ícone do catálogo Catálogo.

  3. Clique no nome do metastore.

  4. Confirme que você é o administrador da Metastore.

    Se não estiver, clique em Editar e atribua-se como administrador do metastore. Você pode cancelar a atribuição de si mesmo quando terminar este procedimento.

  5. Na guia Configuração, ao lado do caminho ADLS Gen 2, clique em Definir.

  6. Na caixa de diálogo Definir raiz do metastore, insira o caminho do ADLS Gen 2 usado para criar o local externo e clique em Atualizar.

    Não é possível modificar esse caminho depois de defini-lo.

Excluir um metastore

Se você estiver fechando sua conta do Azure Databricks ou tiver outro motivo para excluir o acesso aos dados gerenciados pelo metastore do Catálogo Unity, poderá excluir o metastore.

Aviso

Todos os objetos gerenciados pelo metastore ficarão inacessíveis usando espaços de trabalho do Azure Databricks. Esta ação não pode ser anulada.

Os dados e metadados da tabela gerenciada serão excluídos automaticamente após 30 dias. Os dados de tabelas externas em seu armazenamento em nuvem não são afetados pela exclusão do metastore.

Para excluir um metastore:

  1. Como administrador de metastore, faça login no console da conta.
  2. Clique em Ícone do catálogo Catálogo.
  3. Clique no nome do metastore.
  4. Na guia Configuração, clique no menu de três botões no canto superior direito e selecione Excluir.
  5. Na caixa de diálogo de confirmação, digite o nome do metastore e clique em Excluir.