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

Nesta página, explicamos como criar um serviço de federação de metadados para o metastore do Dataproc. Um serviço de federação permite acessar metadados armazenados em várias fontes em um único endpoint gRPC.

Para mais informações sobre como a federação funciona e suas limitações, consulte Sobre a federação de metadados.

Antes de começar

Papéis necessários

Para receber as permissões necessárias para criar um serviço de federação e anexar um cluster do Dataproc, seguindo o princípio do privilégio mínimo, peça ao administrador para conceder a você os seguintes papéis do IAM:

  • Para acessar o serviço de federação: Acessório de federação (roles/metastore.federationAccessor) na conta de usuário ou de serviço
  • Para conceder controle total de todos os recursos do metastore do Dataproc: Editor do metastore do Dataproc (roles/metastore.editor) na conta de usuário ou de serviço
  • Para concluir operações de metadados em um metastore do Dataproc configurado com um serviço de federação: Proprietário do metastore (metastore.metadataEditor) na conta de usuário ou de serviço
  • Para criar um cluster do Dataproc: Worker do Dataproc (roles/dataproc.worker) na conta de serviço da VM do Dataproc
  • (Opcional) Para acessar os conjuntos de dados do BigQuery: Use um papel predefinido do BigQuery adequado ao seu caso de uso na conta de usuário ou na conta de serviço
  • Opcional: para acessar os lagos do Dataplex (pré-lançamento), faça o seguinte: Use uma função predefinida do Dataplex adequada para seu caso de uso na conta de usuário ou na conta de serviço.

Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Esses papéis predefinidos contêm as permissões necessárias para criar um serviço de federação e anexar um cluster do Dataproc, seguindo o princípio do privilégio mínimo. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As permissões a seguir são necessárias para criar um serviço de federação e anexar um cluster do Dataproc, seguindo o princípio do privilégio mínimo:

  • Para criar um metastore do Dataproc: metastore.services.create na conta de usuário ou de serviço
  • Para listar, buscar, criar, atualizar e excluir um serviço de federação: metastore.federations.create, metastore.federations.update, metastore.federations.delete, metastore.federations.get metastore.federations.list na conta de usuário ou de serviço
  • Para concluir operações de metadados em um metastore do Dataproc: 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 usuário ou de serviço
  • (Opcional) Para acessar os conjuntos de dados do BigQuery: For more information, see BigQuery permissions na conta de usuário ou de serviço
  • (Opcional) Para acessar os lagos do Dataplex (pré-lançamento): For more information, see Dataplex permissions na conta de usuário ou de serviço

Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.

Para mais informações sobre papéis e permissões específicos do Dataproc Metastore, consulte Gerenciar o acesso ao Dataproc Metastore com o IAM.

Criar um serviço de federação

As instruções a seguir mostram como criar um serviço de federação e anexá-lo a uma origem. Depois de concluir essas etapas, você poderá anexar seu serviço de federação a um cluster do Dataproc.

Para saber mais sobre as origens de federação e as limitações delas, consulte origens de metadados.

Console

  1. No console do Google Cloud, abra a página Metastore do Dataproc:

    Metastore do Dataproc aberta

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

    A página de serviços de metastore Federated é aberta.

  3. Na barra de menus da metastore Federated, clique em Criar.

    A página Criar serviço de federação é aberta.

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

    Saiba mais em Convenção de nomenclatura de recursos.

  5. Selecione o Local dos dados.

    Crie o serviço de federação nas mesmas regiões das suas origens do Metastore do Dataproc.

  6. Selecione a versão do Hive.

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

    É possível adicionar uma ou mais origens. A primeira origem adicionada a essa lista é definida automaticamente como a metastore principal. É possível atualizar a ordem da origem após a criação.

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

      É possível escolher uma instância do Metastore do Dataproc, um projeto que contém um ou mais conjuntos de dados do BigQuery ou um lake do Dataplex (pré-lançamento).

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

      • Para um serviço do Metastore do Dataproc.

        1. No campo Projeto selecionado, clique em Procurar e selecione o projeto que contém a Metastore do Dataproc que você quer usar como fonte.

          Verifique se as origens do Metastore do Dataproc estão usando uma versão do Hive compatível com seu serviço de federação. Sua metastore principal precisa usar uma versão do Hive maior ou igual ao serviço de federação.

        2. No menu suspenso Serviço de metastore, selecione a Metastore do Dataproc que você quer usar como origem.

      • 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 Dataplex (pré-lançamento). No campo Projeto selecionado, clique em Procurar e selecione o ID do projeto que contém o Dataplex Lake.

    3. Clique em Concluído.

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

    Agora é possível anexar seu serviço de federação a um cluster do Dataproc.

Atualizar um serviço de federação

As instruções a seguir mostram como atualizar um serviço de federação. Você pode concluir as seguintes tarefas:

  • Adicione uma origem a um serviço de federação.
  • Remover uma origem de um serviço de federação.
  • Mude a ordem das origens contidas em um serviço de federação.
  • Excluir um serviço de federação permanentemente. Depois de excluir um serviço, todos os recursos dele são liberados.

Console

  1. No console do Google Cloud, abra a página Metastore do Dataproc:

    Metastore do Dataproc aberta

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

    A página de serviços de metastore Federated é aberta.

  3. Na página de serviços da metastore federada, clique no nome do serviço que você quer atualizar.

    A página Detalhes do serviço é aberta.

  4. Na barra de menus, clique em Editar.

    A página Editar serviço é aberta.

  5. Escolha os valores que você quer atualizar.

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

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

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

Antes de começar estas instruções, conclua todas as etapas listadas em Antes de começar e crie um serviço de federação.

CLI da gcloud

Para criar um cluster do Dataproc e anexar um endpoint de federação, execute o comando gcloud Dataproc clusters create a seguir.

 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:

  • CLUSTER_NAME: o nome do novo cluster do Dataproc.
  • PROJECT_ID: o ID do Google Cloud projeto em que você está criando o cluster do Dataproc.
  • LOCATION: a região do cluster do Dataproc.
  • IMAGE_VERSION: a versão da imagem do Dataproc que você quer usar.

    Verifique se a imagem do Dataproc que você está usando neste comando é compatível com a versão do Hive usada com seu serviço de federação. Para mais informações, consulte a Lista de versões de imagem do Dataproc.

  • SERVICE_ACCOUNT opcional: a conta de serviço que você está usando para criar o cluster do Dataproc. Se não for especificado, o cluster vai usar a conta de serviço padrão do Compute Engine.

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

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

  • WAREHOUSE_DIR: o diretório do repositório do seu metastore principal do Dataproc.

A seguir