Importar metadados para o Dataproc Metastore

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

O recurso de importação de metadados permite preencher um Serviço Metastore do Dataproc com metadados armazenados em um repositório no formato de armazenamento.

Esses metadados portáteis costumam ser exportados de outro Serviço Dataproc Metastore ou de um Metastore Hive (HMS) autogerenciado.

Sobre a importação de metadados

É possível importar os seguintes formatos de arquivo para 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 devem ser gerados a partir de uma no seu banco de dados.

Se os arquivos estiverem em um formato diferente, como PostgreSQL, será preciso converter no formato Avro ou MySQL. Após a conversão, você pode importá-las 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. Quando 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 do Dataproc Metastore 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 extraídos de um cluster do Dataproc usando SQL nativo são também são suportados.

Para importar arquivos MySQL, seu serviço Metastore do Dataproc deve usar o tipo de banco de dados MySQL. O tipo de banco de dados do Spanner não oferece suporte ao MySQL importação.

Considerações sobre a importação

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

  • O recurso de importação de metadados importa apenas metadados. Dados criados por O Apache Hive em tabelas internas não é replicado na importação.

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

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

  • 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 ter 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 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 importar metadados para o Dataproc Metastore. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As seguintes permissões são necessárias para importar metadados para o metastore do Dataproc:

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

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 metastore do Dataproc, consulte Visão geral do IAM do metastore do Dataproc.

Importar metadados

A operação de importação é um processo de duas etapas. Primeiro, você prepara os arquivos de importação e, em seguida, os importa para o Metastore do Dataproc.

Quando você inicia uma importação, o metastore do Dataproc executa um Hive validação de esquema de metadados. Essa validação verifica as tabelas no arquivo de despejo SQL e os nomes de arquivo do Avro. Se faltar uma tabela, a importação falhará com uma que descreve a tabela que está faltando.

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

Preparar os arquivos de importação antes de importar

Antes de importar seus arquivos para o metastore do Dataproc, você precisa copiar seus arquivos de despejo de metadados para o Cloud Storage, como artefatos Cloud Storage bucket.

Mova seus arquivos para o Cloud Storage

  1. Criar um despejo do banco de dados externo para onde quer importar Metastore do Dataproc.

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

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

    Anote o caminho do Cloud Storage em que você faz upload dos arquivos será necessário usá-lo posteriormente para realizar a importação.

    • Se você estiver importando arquivos MySQL, faça upload do arquivo SQL em uma Bucket do Cloud Storage.

    • Se estiver importando arquivos Avro, faça upload dos arquivos em um Pasta do Cloud Storage.

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

Importe os arquivos para o metastore do Dataproc

Antes de importar metadados, consulte a página de importação considerações.

Enquanto uma importação está em execução, não é possível atualizar um serviço do Dataproc Metastore, por exemplo, mudar as configurações. No entanto, é possível ainda o utilizar em operações normais, como para acessar seus metadados de clusters do Dataproc ou autogerenciados.

Console

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

    Abra o metastore do Dataproc

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

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

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

    A caixa de diálogo Import 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 em que você quer importar seus 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.

    Edite 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 este gcloud metastore services import gcs comando:

    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 do 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. É possível editar isso mais tarde usando gcloud metastore services imports update IMPORT.
    • DUMP_TYPE: o tipo de 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 o arquivos de banco de dados. Esse caminho precisa começar com gs://. Para Avro, forneça o caminho para a pasta em que os arquivos Avro são armazenados (a pasta do Cloud Storage). Para MySQL, forneça 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 é possível excluir importações. No entanto, a exclusão de um serviço do Dataproc Metastore exclui todos os itens aninhados importação.

Quando a importação é concluída, o Dataproc Metastore 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.

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

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

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

Resolver problemas comuns

Confira alguns problemas comuns:

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

A seguir