Sobre a federação de metadados

A federação de metadados é um serviço que permite acessar várias fontes de metadados de um único endpoint.

Para configurar a federação, crie um serviço de federação e configure suas fontes de metadados. Depois disso, o serviço expõe um único endpoint gRPC que pode ser usado para acessar todos os metadados.

Por exemplo, usando a federação, é possível criar um cluster do Dataproc que expõe vários serviços do metastore do Dataproc por um único endpoint. Depois, é possível executar jobs de big data usando mecanismos de software de código aberto (OSS, na sigla em inglês), como Spark ou Hive, para acessar seus metadados em vários metastores.

Como a federação funciona

As cargas de trabalho de Big Data de código aberto executadas no Spark ou no Hive enviam solicitações à API Hive Metastore para buscar metadados no tempo de execução.

  • A interface do metastore do Hive oferece suporte a métodos de leitura e gravação. O serviço de federação expõe uma versão gRPC da interface do metastore do Hive.
  • No ambiente de execução, quando o serviço de federação recebe uma solicitação, ele verifica a ordem de origem para recuperar os metadados adequados.

Fontes de metadados

Ao criar um serviço de federação, é necessário adicionar uma fonte de metadados. Você pode usar as seguintes fontes como metastores de back-end:

  • Uma instância do metastore do Dataproc.
  • Um projeto que contém um ou mais conjuntos de dados do BigQuery.
  • Um lake do Dataplex Universal Catalog (prévia).

Restrições de fonte

A seção a seguir lista as restrições que você precisa seguir ao usar várias fontes de metadados.

Todas as fontes

As seguintes restrições se aplicam a todas as fontes de metadados:

  • Um serviço de federação não contém dados próprios. Em vez disso, o serviço de federação apenas veicula metadados de uma das fontes.
  • Um serviço de federação não pode ser uma fonte de metadados em outro serviço de federação.

Dataproc Metastore

Se você estiver usando um metastore do Dataproc como fonte, as seguintes restrições serão aplicadas:

  • Os serviços de federação estão disponíveis apenas por endpoints gRPC. Para usar um metastore do Dataproc com federação, crie o metastore com um endpoint gRPC.
  • Os serviços de federação podem ser anexados a serviços do Dataproc Metastore de região única ou multirregional.

    Se o metastore multirregional estiver em um projeto diferente do serviço de federação, conceda à conta de serviço do metastore do Dataproc do projeto de federação a permissão metastore.services.get nas instâncias do metastore do Dataproc configuradas na multirregião.

BigQuery

Se você estiver usando um projeto que contém conjuntos de dados do BigQuery como uma origem, precisará atender às seguintes condições:

  • Conceda os papéis corretos do Identity and Access Management para acessar o projeto que contém os conjuntos de dados do BigQuery.
  • Adicione pelo menos um serviço do Dataproc Metastore como fonte, junto com seus conjuntos de dados do BigQuery.

Lakes do Dataplex Universal Catalog

  • Conceda um papel do IAM que contenha a permissão dataplex.lakes.get.
  • Adicione pelo menos um serviço do Dataproc Metastore como fonte, junto com seu lake do Dataplex Universal Catalog.

Ordenação de fontes

Seu serviço de federação processa solicitações de metadados em ordem de prioridade. Esse conceito é conhecido como ordenação de origem. Em tempo de execução, quando o serviço de federação recebe uma solicitação, ele verifica a ordenação de origem e conclui uma das seguintes ações:

  • Se a solicitação contiver um nome de banco de dados. A solicitação é encaminhada para o metastore de back-end que contém o nome do banco de dados. Se mais de um metastore tiver o mesmo nome de banco de dados, a solicitação será encaminhada para o metastore com a classificação mais baixa.
  • Se a solicitação criar ou excluir um banco de dados. A solicitação é encaminhada para o metastore com a classificação mais baixa.
  • Se a solicitação não contiver um nome de banco de dados e não criar ou excluir um banco de dados. A solicitação é encaminhada para a instância do Dataproc Metastore com a classificação mais baixa. Alguns exemplos de solicitações do metastore Hive que não especificam um banco de dados são set_ugi e create_database.
  • Se nenhuma das metastores tiver um banco de dados. O mecanismo de OSS responde com o equivalente a um erro "não encontrado".

A seguir