Compartilhar via


Criar um metastore do Catálogo do Unity

Este artigo mostra como criar um metastore no Catálogo do Unity e vinculá-lo a workspaces.

Importante

Para workspaces habilitados automaticamente para o Catálogo do Unity, as instruções neste artigo são desnecessárias. O Databricks começou a habilitar novos workspaces para o Catálogo do Unity automaticamente em 9 de novembro de 2023, com uma distribuição gradual entre contas. Você deve seguir as instruções neste artigo somente se tiver um workspace e ainda não tiver um metastore em na região do seu workspace. Para determinar se já existe um metastore em sua região, confira Habilitação automática do Catálogo do Unity.

Um metastore é o contêiner de nível superior para dados no Unity Catalog. Os metastores do Catálogo do Unity 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 Catálogo do Unity, os usuários devem estar em um workspace anexado a um metastore em sua região.

Para criar um metastore, faça o seguinte:

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

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

  2. Em 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 workspaces ao metastore.

Observação

Além das abordagens descritas neste artigo, você também pode criar um metastore usando o provedor do Databricks Terraform, especificamente o recurso databricks_metastore. Para habilitar o Catálogo do Unity para acessar o metastore, use databricks_metastore_data_access. Para vincular workspaces 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 do Unity, incluindo metastores e armazenamento gerenciado. Veja O que é o Catálogo do Unity?.

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

  • Você precisa ser um administrador da conta do Azure Databricks.

    O primeiro administrador de conta do Azure Databricks precisa ser um Administrador Global do Microsoft Entra ID (antigo Azure Active Directory) no momento em que entrar pela primeira vez no console da conta do Azure Databricks. Após o primeiro login, esse usuário se torna um administrador da 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 da conta pode atribuir usuários no locatário do Microsoft Entra ID como administradores de conta adicionais (que, por sua vez, podem atribuir mais administradores de conta). Os administradores de conta adicionais não requerem 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 você quiser configurar o armazenamento raiz no nível do metastore, deverá 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 do metastore

Nessa etapa opcional, você criará uma conta de armazenamento e um contêiner para armazenar dados de tabela e volume gerenciados no nível do metastore. Para determinar se você precisa de armazenamento no nível do metastore, confira (Opcional) Criar armazenamento no nível do metastore.

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

    Essa conta de armazenamento conterá volumes e tabelas gerenciadas do Catálogo do Unity. Deve ser uma conta do Azure Data Lake Storage Gen2 na mesma região que seus workspaces do Azure Databricks. Confira Criar uma conta de armazenamento para usar com o Azure Data Lake Storage Gen2.

  2. Crie um contêiner de armazenamento que manterá 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 o metastore e o contêiner de armazenamento.

    Este local de armazenamento no nível do metastore pode ser substituído nos níveis de catálogo e esquema. Confira Armazenamento gerenciado.

    Anote o URI do ADLSv2 do 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 esse URI.

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

Nessa etapa, que é necessária somente se você concluiu a etapa 1, você criará 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 do Unity para acessar o armazenamento.

Observação

Você pode usar uma identidade gerenciada do Azure ou uma entidade de serviço como a identidade que fornece acesso ao contêiner de armazenamento do metastore. O Databricks recomenda fortemente identidades gerenciadas, pois 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, confira Criar armazenamento gerenciado do Catálogo do Unity usando uma entidade de serviço (herdada).

Etapa 3: criar o metastore e anexar um workspace

Cada região do Azure Databricks requer seu próprio metastore do Catálogo do Unity.

Você cri um metastore para cada região na qual sua organização opera. Você pode vincular cada um desses metastores regionais a qualquer número de workspaces nessa região. Cada workspace vinculado tem a mesma exibição dos dados no metastore, e o controle de acesso a dados pode ser gerenciado em vários workspaces. Você pode acessar dados em outros metastores usando o Compartilhamento Delta.

Se você optar por criar um armazenamento no nível do 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 o armazenamento no nível do 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. Faça logon em seu workspace como administrador da conta.

  3. Clique no nome de usuário na barra superior do workspace do Azure Databricks e selecione Gerenciar conta.

  4. Entre no console da conta do Azure Databricks.

  5. Clique no Ícone do catálogoCatálogo.

  6. Clique em Criar metastore.

  7. Insira o seguinte:

    • Nome para o metastore.

    • Região em que o metastore será implantado.

      Eles devem estar na mesma região que os workspaces que você deseja usar para acessar os dados. Se você optar por criar um contêiner de armazenamento para armazenamento no nível do 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 prefixo abfss:// é 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 os workspaces a serem vinculados ao metastore.

    Para ver detalhes, confira Habilitar um workspace para o Catálogo do Unity.

  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. Confira Atribuir um administrador de metastore.

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

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

Próximas etapas

Adicionar armazenamento gerenciado a um metastore existente

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

Confira também Armazenamento gerenciado.

Requisitos

  • Você deve ter pelo menos um workspace anexado ao metastore do Catálogo do Unity.
  • Permissões do Azure Databricks necessárias:
    • Para criar um local externo, você deve ser um administrador do metastore ou um usuário com privilégios CREATE EXTERNAL LOCATION e CREATE STORAGE CREDENTIAL.
    • Para adicionar o local de armazenamento à definição de metastore, você deve ser um administrador da conta. Para obter instruções sobre como habilitar a função de administrador de conta em sua conta, confira Estabeleça seu primeiro administrador de conta.
  • Permissões de locatário do Azure necessárias:
    • Permissão para criar uma conta de armazenamento a ser usada com o Azure Data Lake Storage Gen2. Essa conta de armazenamento deve ter um namespace hierárquico. Confira 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 pelo 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 do 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 contém uma identidade gerenciada que tenha acesso ao contêiner de armazenamento.

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

Nessa etapa, você cria um local externo no Catálogo do Unity que faz referência ao caminho do 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 que você criou na etapa anterior e ao contêiner de armazenamento do ADLS Gen 2 que você criou 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 privilégio CREATE MANAGED STORAGE 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 no <external location>, selecione você mesmo no campo Entidades de segurança 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ê poderá adicioná-lo ao metastore.

  1. Como administrador de conta, faça logon no console da conta.

  2. Clique no Ícone do catálogoCatálogo.

  3. Clique no nome do metastore.

  4. Confirme se você é o Administrador do metastore.

    Se não for, clique em Editar e atribua a si mesmo como administrador do metastore. Você pode cancelar a atribuição quando terminar esse procedimento.

  5. Na guia Configuração, ao lado de Caminho do 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.

    Você não poderá 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 do Unity, poderá excluir o metastore.

Aviso

Todos os objetos gerenciados pelo metastore ficarão inacessíveis usando workspaces do Azure Databricks. Essa ação não pode ser desfeita.

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

Para excluir um metastore:

  1. Como administrador do metastore, faça logon no console da conta.
  2. Clique no Ícone do catálogoCatá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, insira o nome do metastore e clique em Excluir.