Pular para o conteúdo principal

Habilitar a federação Hive metastore para um legado workspace Hive metastore

Este artigo mostra como federar seu legado Databricks Hive metastore para que sua organização possa trabalhar com suas tabelas Hive metastore usando Unity Catalog.

Para obter uma visão geral da federação Hive metastore, consulte Hive metastore federation: enable Unity Catalog to govern tables registered in a Hive metastore.

Antes de começar

Veja a lista de serviços e recursos suportados pela federação Hive metastore: Requisitos, recursos suportados e limitações.

Os requisitos específicos para cada etapa estão listados abaixo.

Etapa 1: Conecte o site Unity Catalog ao seu Hive metastore

Nesta etapa, o senhor cria uma conexão , um objeto securizável Unity Catalog que especifica um caminho e as credenciais para acessar um sistema de banco de dados, neste caso o seu Databricks workspace 's legacy Hive metastore.

Requisitos

  • O privilégio CREATE CONNECTION no metastore do Unity Catalog.

Crie a conexão

A conexão especifica um caminho e as credenciais para acessar um sistema de banco de dados externo. Para criar uma conexão, você pode usar o Catalog Explorer ou o comando CREATE CONNECTION do SQL em um Notebook do Databricks ou no editor de consultas SQL do Databricks.

nota

O senhor também pode usar a API REST da Databricks ou a CLI da Databricks para criar uma conexão. Veja POST /api/2.1/unity-catalog/connections e Unity Catalog comando.

Permissões necessárias: Administrador do Metastore ou usuário com o privilégio CREATE CONNECTION.

  1. In your Databricks workspace, click Catalog icon Catalog.

  2. On the Quick access page, click Add data > Add a connection.

  3. On the Connection basics page of the Set up connection wizard, enter a user-friendly Connection name.

  4. Select a Connection type of Hive Metastore and Metastore type of Internal.

  5. (Optional) Add a comment.

  6. Click Next.

  7. (Optional) On the Connection details page, enter the fully qualified path to the Hive Warehouse directory.

    You need this only if you don’t want to use the default location.

  8. Click Create connection.

  9. On the Catalog basics page, enter a name for the foreign catalog.

  10. For Authorized paths, choose cloud storage paths that can be accessed via the catalog. Only tables falling under these paths can be queried via the federated catalog. Paths must be covered by external locations. For more information, see What are authorized paths?.

  11. Click Create catalog.

  12. On the Access page, select the workspaces in which users can access the catalog you created. You can select All workspaces have access, or click Assign to workspaces, select the workspaces, and then click Assign.

  13. Add an Owner who will be able to manage access to all objects in the catalog. Start typing a user or group in the text box, and then click the user or group in the returned results.

  14. Grant Privileges on the catalog.

    1. Click Grant.
    2. Specify the Principals who will have access to objects in the catalog. Start typing a user or group in the text box, and then click the user or group in the returned results.
    3. Select the Privilege presets to grant to each user or group. All account users are granted BROWSE by default.
      • Select Data Reader from the drop-down menu to grant read privileges on objects in the catalog.
      • Select Data Editor from the drop-down menu to grant read and modify privileges on objects in the catalog.
      • Manually select the privileges to grant.
    4. Click Grant.
  15. Click Next.

  16. On the Metadata page, optionally specify tags as key-value pairs. For more information, see Apply tags to Unity Catalog securable objects.

  17. (Optional) Add a comment.

  18. Click Save.

Etapa 2: Criar locais externos para dados em seu legado interno Hive metastore

Nesta etapa, o senhor configura um local externo em Unity Catalog para controlar o acesso aos locais de armazenamento em nuvem que mantêm os dados registrados no seu legado interno Hive metastore.

Os locais externos são objetos protegíveis do Unity Catalog que associam credenciais de armazenamento a caminhos de contêineres de armazenamento em nuvem. Consulte Locais externos e credenciais de armazenamento.

Requisitos

Para conhecer os requisitos de permissão do armazenamento em nuvem e da Databricks, consulte "Antes de começar" em Criar um local externo para conectar o armazenamento em nuvem à Databricks.

Se o senhor estiver criando um local externo para o legado do workspace DBFS root, consulte "Antes de começar" em Criar um local externo para dados em DBFS root.

Opções para criar o local externo

O processo que a Databricks recomenda para criar um local externo no Unity Catalog depende de sua situação:

Ativar o modo de fallback em locais externos

Assim que o senhor cria um local externo em Unity Catalog, o acesso ao caminho representado por esse local externo é imposto pelas permissões de Unity Catalog quando o senhor executa consultas em Unity Catalog-enabled compute. Isso pode interromper as cargas de trabalho existentes que não têm as permissões corretas do Unity Catalog para acessar o caminho.

Quando um local externo está no modo fallback, o sistema primeiro verifica as permissões Unity Catalog da entidade consultante no local e, se isso não for bem-sucedido, volta a usar o clustering existente ou as credenciais no escopo do Notebook, como o perfil da instância ou as propriedades de configuração Apache Spark, para que as cargas de trabalho existentes continuem a ser executadas sem interrupções.

O modo de fallback é conveniente quando o senhor está no processo de migração da carga de trabalho legada. Depois de atualizar suas cargas de trabalho para execução com êxito usando as permissões Unity Catalog, o senhor deve desativar o modo fallback para evitar que as credenciais com escopo de clustering herdadas sejam usadas para contornar a governança de dados Unity Catalog.

O senhor pode ativar o modo de fallback usando o Catalog Explorer ou a API REST de locais externos do Unity Catalog.

Permissões necessárias : Proprietário do local externo.

  1. In your Databricks workspace, click Catalog icon Catalog.
  2. On the Quick access page, click External data >.
  3. Select the external location you want to update.
  4. Turn on the Fallback mode toggle and click Enable to confirm.

Etapa 3: criar um catálogo estrangeiro

nota

Talvez você já tenha concluído essa etapa se tiver usado o assistente de criação de conexão no Catalog Explorer para concluir a Etapa 1. Se não tiver criado o catálogo externo ao concluir a etapa 1 ou se tiver usado o SQL para criar a conexão, será necessário seguir as instruções desta seção.

Nesta etapa, o senhor usa a conexão criada na etapa 1 para criar um catálogo externo em Unity Catalog que aponta para o local externo criado na etapa 2. Um catálogo externo é um objeto seguro em Unity Catalog que espelha um banco de dados ou catálogo em um sistema de dados externo, permitindo que o senhor realize consultas a esses dados em seu Databricks workspace, com acesso gerenciado por Unity Catalog. Nesse caso, o catálogo espelhado são seus dados registrados em Hive metastore.

Sempre que um usuário ou fluxo de trabalho interage com o catálogo externo, os metadados são sincronizados a partir do site Hive metastore.

Requisitos

Requisitos de permissão :

Para criar o catálogo estrangeiro:

  • O privilégio CREATE CATALOG em seu metastore do Unity Catalog.
  • Propriedade da conexão ou o privilégio CREATE FOREIGN CATALOG na conexão.
  • Para inserir caminhos autorizados para o catálogo externo, você deve ter o privilégio CREATE FOREIGN SECURABLE em um local externo que cubra esses caminhos. O proprietário do local externo tem esse privilégio pelo site default.

Para trabalhar com o catálogo estrangeiro:

  • Propriedade do catálogo ou USE CATALOG

requisitos de computação :

  • Para criar o catálogo usando o Catalog Explorer: não é necessário o endereço compute.
  • Para criar o catálogo usando SQL: Databricks Runtime 13.3 LTS ou acima.
  • Para trabalhar com o catálogo: um compute com modo de acesso padrão em Databricks Runtime 13.3 LTS, 14.3 LTS, 15.1 ou acima.

Crie o catálogo estrangeiro

Para criar um catálogo externo, o senhor pode usar o Catalog Explorer ou o comando CREATE FOREIGN CATALOG SQL em um Notebook Databricks ou o editor de consultas SQL.

Consulte também gerenciar e trabalhar com catálogos estrangeiros.

nota

O senhor também pode usar a API do Unity Catalog. Consulte Criar um catálogo na referência da API REST da Databricks.

  1. In your Databricks workspace, click Catalog icon Catalog to open Catalog Explorer.

  2. On the Quick access page, click the Add data botton and select Add a catalog .

  3. Enter a Catalog name and select a catalog Type of Foreign.

  4. Select the Connection that you created in Step 1 from the drop-down.

  5. In the Authorized paths field, enter paths to the cloud storage locations that you defined as external locations in Step 2. For example, s3://demo, s3://depts/finance.

    Authorized paths are an added layer of security for foreign catalogs backed by Hive metastore federation. See What are authorized paths?.

  6. Click Create.

  7. (Optional) Click Configure to open a wizard that walks you through granting permissions on the catalog and adding tags. You can also perform these steps later.

    See Manage privileges in Unity Catalog and Apply tags to Unity Catalog securable objects.

  8. (Optional) Bind the catalog to specific workspaces.

    By default, catalogs can be accessed from any workspace attached to the Unity Catalog metastore (restricted by user privileges). If you want to allow access only from specific workspaces, go to the Workspaces tab and assign workspaces. See Limit catalog access to specific workspaces.

  9. Populate the foreign catalog with the Hive metastore metadata.

    Any time a user or workflow interacts with the foreign catalog, metadata is synced from the Hive metastore. The first interaction populates the catalog in Unity Catalog and makes its contents visible in the Catalog Explorer UI. You can populate the catalog by selecting and starting a supported compute resource in Catalog Explorer. You must be the catalog owner (which you are by virtue of creating the catalog) or a user with the USE CATALOG privilege.

nota

Se uma tabela estrangeira tiver um local de armazenamento no DBFS e o ponto de montagem do DBFS que faz o backup da tabela tiver sido remapeado para um caminho diferente desde que a tabela foi acessada pela última vez, o acesso à tabela falhará com o código de erro UC_RESOLVED_DBFS_PATH_MISMATCH. Use o seguinte comando para atualizar o local do DBFS resolvido e corrigir o erro:

SQL
REFRESH FOREIGN TABLE my_federated_catalog.schema.table RESOLVE DBFS LOCATION;

O senhor deve ser um PROPRIETÁRIO ou ter o privilégio de gerenciar a mesa. Consulte REFRESH FOREIGN (CATALOG, SCHEMA e TABLE).