Importar metadados para o metastore do Dataproc

Nesta página, explicamos como importar metadados para um serviço Metastore do Dataproc.

O recurso de importação de metadados permite preencher um serviço existente do Metastore do Dataproc com metadados armazenados em um formato de armazenamento portátil.

Esses metadados portáteis são normalmente exportados de outro serviço Metastore do Dataproc ou de um Metastore Hive (HMS) autogerenciado.

Sobre a importação de metadados

Importe os seguintes formatos de arquivo para o Metastore do Dataproc:

  • Um conjunto de arquivos Avro armazenados em uma pasta.
  • Um único arquivo dump do MySQL armazenado em uma pasta do Cloud Storage.

Os arquivos MySQL ou Avro que você está importando precisam ser gerados de um banco de dados relacional.

Se os arquivos estiverem em um formato diferente, como o PostgreSQL, será preciso convertê-los para o formato Avro ou MySQL. Após a conversão, importe-os para o metastore do Dataproc.

Avro

As importações baseadas em Avro são compatíveis apenas com as versões 2.3.6 e 3.1.2 do Hive. Ao importar arquivos Avro, o metastore do Dataproc espera uma série de arquivos <table-name>.avro para cada tabela no banco de dados.

Para importar arquivos Avro, o serviço Metastore do Dataproc pode usar o tipo de banco de dados MySQL ou Spanner.

MySQL

As importações baseadas em MySQL são compatíveis com todas as versões do Hive. Ao importar arquivos MySQL, o metastore do Dataproc espera um único arquivo SQL contendo todas as informações da tabela. Os despejos do MySQL recebidos de um cluster do Dataproc usando SQL nativo também são compatíveis.

Para importar arquivos MySQL, o serviço Metastore do Dataproc precisa usar o tipo de banco de dados MySQL. O tipo de banco de dados do Spanner não é compatível com importações do MySQL.

Considerações sobre importação

  • A importação substitui todos os metadados existentes armazenados em um serviço do Metastore do Dataproc.

  • O recurso só importa metadados. Os dados criados pelo Apache Hive em tabelas internas não são replicados na importação.

  • A importação não transforma o conteúdo do banco de dados e não processa a migração de arquivos. Se você mover seus dados para um local diferente, será necessário atualizar manualmente os locais dos dados da tabela e o esquema no serviço Metastore do Dataproc.

  • A importação não restaura nem substitui políticas do IAM detalhadas.

  • Se você estiver usando o VPC Service Controls, só poderá importar dados de um bucket do Cloud Storage que esteja no mesmo perímetro de serviço que o serviço Metastore do Dataproc.

Antes de começar

Funções exigidas

Para receber as permissões necessárias para importar metadados para o metastore do Dataproc, peça ao administrador para conceder a você os seguintes papéis do IAM:

Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.

Esses papéis predefinidos contêm as permissões necessárias para importar metadados para o metastore do Dataproc. 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 importar metadados para o metastore do Dataproc:

  • Para importar metadados: metastore.imports.create no serviço metastore.
  • Para que o MySQL use o objeto do Cloud Storage (arquivo dump SQL) para importação, conceda à sua conta de usuário e ao agente de serviço do Metastore do Dataproc: storage.objects.get no bucket do Cloud Storage que contém o despejo de metadados que está sendo importado.
  • Para que o Avro use o bucket do Cloud Storage para importação, conceda sua conta de usuário e o agente de serviço do metastore do Dataproc: storage.objects.get no bucket do Cloud Storage que contém o despejo de metadados que está sendo importado.

Talvez você também consiga receber essas permissões com papéis personalizados ou outros papéis predefinidos.

Para mais informações sobre permissões e papéis específicos do metastore do Dataproc, consulte Visão geral do IAM do metastore do Dataproc.

Importar seus metadados

A importação é um processo de duas etapas. Primeiro, prepare os arquivos de importação e, em seguida, importe-os para o metastore do Dataproc.

Ao iniciar uma importação, o Dataproc Metastore executa uma validação de esquema de metadados do Hive. Essa validação verifica as tabelas no arquivo dump SQL e os nomes de arquivo para Avro. Se uma tabela estiver ausente, a importação falhará com uma mensagem de erro descrevendo a tabela ausente.

Para verificar a compatibilidade dos metadados do Hive antes de uma importação, use o Toolkit do Metastore do Dataproc.

Preparar os arquivos antes da importação

Antes de importar seus arquivos para o Dataproc Metastore, copie os arquivos de despejo de metadados para o Cloud Storage, como o bucket de artefatos do Cloud Storage.

Mover arquivos para o Cloud Storage

  1. Crie um despejo de banco de dados do banco de dados externo que você quer importar para o Metastore do Dataproc.

    Para instruções sobre como criar um despejo de banco de dados, consulte as seguintes páginas:

  2. Faça upload dos arquivos no Cloud Storage.

    Anote o caminho do Cloud Storage em que você fará o upload dos arquivos. Você precisará usá-lo mais tarde para realizar a importação.

    • Se você estiver importando arquivos MySQL, faça o upload do arquivo SQL para um bucket do Cloud Storage.

    • Se você estiver importando arquivos Avro, faça upload dos arquivos para uma pasta do Cloud Storage.

      • A importação Avro deve incluir um arquivo Avro para cada tabela Hive, mesmo se a tabela estiver vazia.
      • Os nomes de arquivos Avro precisam seguir o formato <table-name>.avro. O <table-name> precisa estar tudo em maiúsculas. Por exemplo, AUX_TABLE.avro.

Importar os arquivos para o metastore do Dataproc

Antes de importar metadados, leia as considerações de importação.

Enquanto uma importação estiver em execução, não será possível atualizar um serviço Dataproc Metastore. Por exemplo, alterando as configurações. No entanto, ele ainda pode ser usado em operações normais, como para acessar os metadados do Dataproc anexado ou de clusters autogerenciados.

Console

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

    Abrir o metastore do Dataproc

  2. Na página Metastore do Dataproc, clique no nome do serviço para o qual você quer importar os metadados.

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

    Página de detalhes do serviço
    Figura 1. A página de detalhes do serviço do Dataproc Metastore.
  3. Na barra de navegação, clique em Importar.

    A caixa de diálogo Import vai ser aberta.

  4. Digite o Nome da importação.

  5. Na seção Destino, escolha MySQL ou Avro.

  6. No campo URI de destino, clique em Procurar e selecione o URI do Cloud Storage para onde quer importar os arquivos.

    Também é possível inserir manualmente o local do bucket no campo de texto fornecido. Use o seguinte formato: bucket/object ou bucket/folder/object.

  7. (Opcional) Digite uma descriçãopara o caso.

    Você pode editar a descrição na página Detalhes do serviço.

  8. Para atualizar o serviço, clique em Importar.

    Depois que a importação for concluída, ela vai aparecer em uma tabela na página Detalhes do serviço na guia Importar/Exportar.

CLI da gcloud

  1. Para importar metadados, execute o seguinte comando gcloud metastore services import gcs:

    gcloud metastore services import gcs SERVICE_ID \
      --location=LOCATION \
      --import-id=IMPORT_ID \
      --description=DESCRIPTION \
      --dump-type=DUMP_TYPE \
      --database-dump=DATABASE_DUMP
    

    Substitua:

    • SERVICE_ID: o ID ou nome totalmente qualificado do serviço Metastore do Dataproc.
    • LOCATION: a região do Google Cloud em que o serviço Metastore do Dataproc reside.
    • IMPORT_ID: um ID ou nome totalmente qualificado para a importação de metadados. Por exemplo, import1.
    • DESCRIPTION (opcional): uma descrição da importação. Você pode editar isso mais tarde usando gcloud metastore services imports update IMPORT.
    • DUMP_TYPE: o tipo do banco de dados externo que você está importando. Os valores aceitos incluem mysql e avro. O valor padrão é mysql.
    • DATABASE_DUMP: o caminho para o Cloud Storage que contém os arquivos do banco de dados. Esse caminho precisa começar com gs://. Para o Avro, forneça o caminho para a pasta em que os arquivos Avro estão armazenados (a pasta do Cloud Storage). No caso do MySQL, informe o caminho para o arquivo MySQL (o objeto do Cloud Storage).
  2. Verifique se a importação foi bem-sucedida.

REST

Siga as instruções da API para importar metadados para um serviço usando o APIs Explorer.

Com a API, é possível criar, listar, descrever e atualizar importações, mas não excluir importações. No entanto, a exclusão de um serviço Metastore do Dataproc exclui todas as importações aninhadas armazenadas.

Quando a importação é bem-sucedida, o metastore do Dataproc retorna automaticamente ao estado ativo. Se a importação falhar, o metastore do Dataproc será revertido ao estado íntegro anterior.

Visualizar histórico de importações

Para ver o histórico de importações de um serviço do Dataproc Metastore no console do Google Cloud, siga estas etapas:

  1. No console do Google Cloud, abra a página Metastore do Dataproc.
  2. Na barra de navegação, clique em Importar/Exportar.

    Ele aparece na tabela Histórico de importações.

    O histórico mostra até as últimas 25 importações.

A exclusão de um serviço do Dataproc Metastore também exclui todo o histórico de importações associado.

Resolver problemas comuns

Alguns problemas comuns incluem:

Para mais ajuda com a solução de problemas comuns, consulte Cenários de erros de importação e exportação.

A seguir