Crie um serviço de federação de metadados

Esta página explica como criar um serviço de federação de metadados para o Dataproc Metastore. Um serviço de federação permite-lhe aceder a metadados armazenados em várias origens a partir de um único ponto final gRPC.

Para mais informações sobre como funciona a federação e as respetivas limitações, consulte o artigo Acerca da federação de metadados.

Antes de começar

Funções necessárias

Para receber as autorizações de que precisa para criar um serviço de federação e anexar um cluster do Dataproc, seguindo o princípio do menor privilégio, peça ao seu administrador para lhe conceder as seguintes funções do IAM:

Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Estas funções predefinidas contêm as autorizações necessárias para criar um serviço de federação e anexar um cluster do Dataproc, seguindo o princípio do menor privilégio. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:

Autorizações necessárias

São necessárias as seguintes autorizações para criar um serviço de federação e anexar um cluster do Dataproc, de acordo com o princípio do menor privilégio:

  • Para criar um Dataproc Metastore: metastore.services.create na conta de utilizador ou na conta de serviço
  • Para listar, obter, criar, atualizar e eliminar um serviço de federação: metastore.federations.create, metastore.federations.update, metastore.federations.delete, metastore.federations.get metastore.federations.list na conta de utilizador ou na conta de serviço
  • Para concluir operações de metadados num Dataproc Metastore: metastore.services.get, metastore.services.use, metastore.databases.create, metastore.databases.update, metastore.databases.deletemetastore.databases.get,metastore.databases.list, metastore.databases.getIamPolicy, metastore.tables.create, metastore.tables.update, metastore.tables.delete, metastore.tables.get, metastore.tables.list, metastore.tables.getIamPolicy na conta de utilizador ou na conta de serviço
  • (Opcional) Para adicionar um serviço multirregional à federação: metastore.services.get nas contas do Dataproc Metastore
  • (Opcional) Para aceder a conjuntos de dados do BigQuery: For more information, see BigQuery permissions na conta de utilizador ou na conta de serviço
  • (Opcional) Para aceder aos lagos do catálogo universal do Dataplex (pré-visualização): For more information, see Dataplex Universal Catalog permissions na conta de utilizador ou na conta de serviço

Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas.

Para mais informações sobre as funções e as autorizações específicas do Dataproc Metastore, consulte o artigo Faça a gestão do acesso ao Dataproc Metastore com a gestão de identidades e acessos.

Crie um serviço de federação

As instruções seguintes mostram como criar um serviço de federação e associá-lo a uma origem. Depois de concluir estes passos, pode anexar o seu serviço de federação a um cluster do Dataproc.

Para saber mais acerca das origens de federação e das respetivas limitações, consulte o artigo Origens de metadados.

Consola

  1. Na Google Cloud consola, abra a página Dataproc Metastore:

    Abra o Dataproc Metastore

  2. No menu de navegação do Dataproc, clique em Federação.

    É apresentada a página de serviços de metadados federados.

  3. Na barra de menu do metadados Federated, clique em Criar.

    É apresentada a página Criar serviço de federação.

  4. No campo Nome da federação, introduza um nome exclusivo para o seu serviço.

    Para mais informações, consulte o artigo Convenção de nomenclatura de recursos.

  5. Selecione a Localização dos dados.

    Certifique-se de que cria o serviço de federação nas mesmas regiões das suas origens do Dataproc Metastore.

  6. Selecione a versão do Hive.

  7. Para adicionar uma origem para o seu serviço de federação, clique em Adicionar uma origem.

    Pode adicionar uma ou mais fontes. A primeira origem que adicionar a esta lista é automaticamente definida como o seu metadepósito principal. Pode atualizar a ordem das fontes após a criação.

    1. Para o Tipo de origem, selecione a origem da federação.

      Pode escolher uma instância do Dataproc Metastore, um projeto que contenha um ou mais conjuntos de dados do BigQuery ou um lake do catálogo universal do Dataplex (pré-visualização).

    2. No campo Origem, introduza as seguintes informações:

      • Para um serviço de Dataproc Metastore.

        1. No campo Projeto selecionado, clique em Procurar e selecione o projeto que contém o Dataproc Metastore que quer usar como origem.

          Certifique-se de que as origens do Dataproc Metastore estão a usar uma versão do Hive compatível com o seu serviço de federação. O metastore principal tem de usar uma versão do Hive que seja superior ou igual ao seu serviço de federação.

        2. No menu pendente Serviço Metastore, selecione o Dataproc Metastore que quer usar como origem.

        3. (Opcional) Selecione a caixa de verificação Mostrar serviços do metastore fora da minha região. Esta lista o serviço Dataproc Metastore de outras regiões, incluindo várias regiões.

          Para ativar a federação num serviço de Metastore do Dataproc multirregional, selecione um serviço de Metastore do Dataproc multirregional nesta lista.

      • Para o BigQuery. No campo Projeto selecionado, clique em Procurar e selecione o ID do projeto que contém o conjunto de dados do BigQuery.

      • Para o catálogo universal do Dataplex (pré-visualização). No campo Projeto selecionado, clique em Procurar e selecione o ID do projeto que contém o lake do catálogo universal do Dataplex.

    3. Clique em Concluído.

  8. Para criar e iniciar o serviço, clique em Enviar.

    Agora, pode anexar o seu serviço de federação a um cluster do Dataproc.

CLI gcloud

Para criar uma federação com o Dataproc Metastore, execute o seguinte comando.

gcloud metastore federations create FEDERATION \
  --location LOCATION \
  --backends RANK=BACKEND_METASTORE \
  --hive-metastore-version HIVE_VERSION

Substitua o seguinte:

  • FEDERATION: o nome do serviço de federação do Dataproc Metastore.
  • LOCATION: a Google Cloud região para criar criar a federação.
  • RANK: um número de classificação para cada um dos seus metastores de back-end usados para resolver colisões de nomes de bases de dados. O serviço de federação consulta primeiro os números com uma classificação inferior. Por exemplo, é feita uma consulta a um metastore de back-end com uma classificação de 1 antes de um metastore com uma classificação de 2. Este valor tem de ser um número inteiro. Por exemplo, --backends 1=first_backend_metastore, 2=second_backend_metastore.
  • BACKEND_METASTORE: o recurso relativo de cada metastore de back-end no seguinte formato: METASTORE_TYPE:METASTORE_NAME. Para serviços de Metastore do Dataproc, use dpms:SERVICE_ID. Pode encontrar o SERVICE_ID na seguinte localização: projects/<project>/locations/<location>/services/<service-id>.
  • HIVE_VERSION: a versão do Hive Metastore (3.1.2 ou 2.3.6).

Atualize um serviço de federação

As instruções seguintes mostram como atualizar um serviço de federação. Pode concluir as seguintes tarefas:

  • Adicione uma origem a um serviço de federação.
  • Remova uma fonte de um serviço de federação.
  • Altere a ordem das origens contidas num serviço de federação.
  • Elimine um serviço de federação permanentemente. Depois de eliminar um serviço, todos os respetivos recursos são libertados.

Consola

https://cloud.google.com/dataproc-metastore/docs/create-federation

  1. Na Google Cloud consola, abra a página Dataproc Metastore:

    Abra o Dataproc Metastore

  2. No menu de navegação do Dataproc, clique em Federação.

    É apresentada a página de serviços de metadados federados.

  3. Na página de serviços de metadados federados, clique no nome do serviço que quer atualizar.

    É apresentada a página Detalhes do serviço.

  4. Na barra de menu, clique em Editar.

    É apresentada a página Editar serviço.

  5. Escolha os valores que quer atualizar.

  6. Para atualizar o serviço, clique em Enviar.

CLI gcloud

Para atualizar uma federação com o Dataproc Metastore, execute o seguinte comando.

gcloud metastore federations update FEDERATATON \
  --location=LOCATION \
  --backends RANK1=BACKEND_METASTORE1,RANK2=BACKEND_METASTORE2
  • FEDERATION: o nome do serviço de federação do Dataproc Metastore.
  • LOCATION: A Google Cloud região para criar criar a federação.
  • RANK: um número de classificação para cada um dos seus metastores de back-end usados para resolver colisões de nomes de bases de dados. O serviço de federação consulta primeiro os números com uma classificação inferior. Por exemplo, é feita uma consulta a um metastore de back-end com uma classificação de 1 antes de um metastore com uma classificação de 2. Este valor tem de ser um número inteiro. Por exemplo, --backends 2=first_backend_metastore, 2=second_backend_metastore.
  • BACKEND_METASTORE: o recurso relativo de cada metastore de back-end no seguinte formato: METASTORE_TYPE:METASTORE_NAME. Para serviços de Metastore do Dataproc, use dpms:SERVICE_ID. Pode encontrar o SERVICE_ID na seguinte localização: projects/<project>/locations/<location>/services/<service-id>.
  • HIVE_VERSION: a versão do Hive Metastore (3.1.2 ou 2.3.6).

Anexe um cluster do Dataproc a um serviço de federação

As instruções seguintes mostram como criar um cluster do Dataproc e anexar um endpoint do serviço de federação como o respetivo metastore.

Antes de começar estas instruções, conclua todos os passos indicados em Antes de começar e crie um serviço de federação.

CLI gcloud

Para criar um cluster do Dataproc e anexar um ponto final de federação, execute o seguinte comando gcloud Dataproc clusters create.

 gcloud dataproc clusters create CLUSTER_NAME \
    --region=LOCATION \
    --project=PROJECT_ID \
    --scopes=https://www.googleapis.com/auth/cloud-platform \
    --image-version=IMAGE_VERSION \
    --service-account=SERVICE_ACCOUNT \
    --optional-components=DOCKER \
    --initialization-actions=gs://metastore-init-actions/metastore-grpc-proxy/metastore-grpc-proxy.sh \
    --metadata="proxy-uri=FEDERATION_URI,hive-version=FEDERATION_VERSION" \
    --properties="hive:hive.metastore.uris=thrift://localhost:9083,hive:hive.metastore.warehouse.dir=WAREHOUSE_DIR"

Substitua o seguinte:

  • CLUSTER_NAME: o nome do novo cluster do Dataproc.
  • PROJECT_ID: o Google Cloud ID do projeto no qual está a criar o cluster do Dataproc.
  • LOCATION: a região do seu cluster do Dataproc.
  • IMAGE_VERSION: a versão da imagem do Dataproc que quer usar.

    Certifique-se de que a imagem do Dataproc que está a usar neste comando é compatível com a versão do Hive usada com o seu serviço de federação. Para mais informações, consulte a lista de versões de imagens do Dataproc.

  • SERVICE_ACCOUNT opcional: a conta de serviço que está a usar para criar o cluster do Dataproc. Se não for especificado, o cluster usa a sua conta de serviço predefinida do Compute Engine.

  • FEDERATION_URI: o URI do ponto final do seu serviço de federação.

  • FEDERATION_VERSION: a versão do Hive que o seu serviço de federação está a usar.

  • WAREHOUSE_DIR: o diretório do armazém do seu Dataproc Metastore principal.

O que se segue?