Acerca da federação de metadados

A federação de metadados é um serviço que lhe permite aceder a várias origens de metadados a partir de um único ponto final.

Para configurar a federação, cria um serviço de federação e, em seguida, configura as suas origens de metadados. Posteriormente, o serviço expõe um único ponto final gRPC que pode usar para aceder a todos os seus metadados.

Por exemplo, através da federação, pode criar um cluster do Dataproc que exponha vários serviços do Dataproc Metastore através de um único ponto final. Posteriormente, pode executar tarefas de Big Data através de motores de software de código aberto (OSS), como o Spark ou o Hive, para aceder aos seus metadados em vários metastores.

Como funciona a federação

As cargas de trabalho de big data de OSS que são executadas no Spark ou no Hive enviam pedidos para a API Hive Metastore para obter metadados no tempo de execução.

  • A interface do Hive Metastore suporta métodos de leitura e escrita. O serviço de federação expõe uma versão gRPC da interface do Hive Metastore.
  • Em tempo de execução, quando o serviço de federação recebe um pedido, verifica a ordenação de origem para obter os metadados adequados.

Origens de metadados

Quando cria um serviço de federação, tem de adicionar uma origem de metadados. Pode usar as seguintes origens como metadados de back-end:

  • Uma instância do Dataproc Metastore.
  • Um projeto que contém um ou mais conjuntos de dados do BigQuery.
  • Um lake do catálogo universal do Dataplex (pré-visualização).

Restrições de fontes

A secção seguinte lista as restrições que tem de cumprir quando usa várias origens de metadados.

Todas as fontes

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

  • Um serviço de federação não contém os seus próprios dados. Em alternativa, o serviço de federação apenas publica metadados de uma das respetivas origens de metadados.
  • Um serviço de federação não pode ser uma origem de metadados noutro serviço de federação.

Dataproc Metastore

Se estiver a usar um Dataproc Metastore como origem, aplicam-se as seguintes restrições:

  • Os serviços de federação só estão disponíveis através de pontos finais gRPC. Para usar um Metastore do Dataproc com federação, crie o seu metastore com um endpoint gRPC.
  • Os serviços de federação podem ser anexados a serviços de Dataproc Metastore de região única ou de várias regiões.

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

BigQuery

Se estiver a usar um projeto que contenha conjuntos de dados do BigQuery como origem, tem de cumprir as seguintes condições:

  • Conceda as funções corretas da gestão de identidades e acessos para aceder ao projeto que contém os conjuntos de dados do BigQuery.
  • Adicione, pelo menos, um serviço do Dataproc Metastore como origem, juntamente com os seus conjuntos de dados do BigQuery.

Dataplex Universal Catalog Lakes

  • Conceda uma função do IAM que contenha a autorização dataplex.lakes.get.
  • Adicione, pelo menos, um serviço de Metastore do Dataproc como origem, juntamente com o seu Dataplex Universal Catalog Lake.

Ordenação das fontes

O seu serviço de federação processa pedidos de metadados por ordem de prioridade. Este conceito é conhecido como ordenação de origens. Em tempo de execução, quando o serviço de federação recebe um pedido, verifica a ordenação da origem e conclui uma das seguintes ações:

  • Se o pedido contiver um nome de base de dados. O pedido é encaminhado para o metastore de back-end que contém o nome da base de dados. Se mais do que um metastore contiver o mesmo nome de base de dados, o pedido é encaminhado para o metastore com a classificação mais baixa.
  • Se o pedido criar ou eliminar uma base de dados. O pedido é encaminhado para o metastore com a classificação mais baixa.
  • Se o pedido não contiver um nome da base de dados e não criar nem eliminar uma base de dados. O pedido é encaminhado para a instância do Dataproc Metastore com a classificação mais baixa. Alguns exemplos de pedidos do Hive Metastore que não especificam uma base de dados são set_ugi e create_database.
  • Se nenhum dos metastores contiver uma base de dados. O motor de OSS responde com o equivalente a um erro de não encontrado.

O que se segue?