Nesta página, explicamos como importar metadados para um serviço do metastore do Dataproc.
O recurso de importação de metadados permite preencher um serviço do Metastore do Dataproc com metadados armazenados em um formato de armazenamento portátil.
Esses metadados portáteis geralmente são exportados de outro serviço do Metastore do Dataproc ou de um metastore autogerenciado do Hive (HMS).
Sobre a importação de metadados
É possível importar 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 em um banco de dados relacional.
Se os arquivos estiverem em um formato diferente, como o PostgreSQL, será necessário convertê-los para o formato Avro ou MySQL. Depois da conversão, é possível importá-los 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 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 recebidos de um cluster do Dataproc usando o SQL nativo também são aceitos.
Para importar arquivos MySQL, o serviço do 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 armazenados em um serviço do Metastore do Dataproc.
O recurso de importação de metadados 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 nem processa a migração de arquivos. 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 políticas refinadas do IAM.
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
- Ative o Dataproc Metastore no seu projeto.
- Entenda os requisitos de rede específicos do seu projeto.
- Crie um serviço Metastore do Dataproc.
Funções exigidas
Para ter as permissões necessárias para importar metadados para a Metastore do Dataproc, peça ao administrador para conceder a você os seguintes papéis do IAM:
-
Para importar metadados:
-
Editor do metastore do Dataproc (
roles/metastore.editor
) no serviço de metadados. -
Administrador do metastore do Dataproc (
roles/metastore.admin
) no projeto.
-
Editor do metastore do Dataproc (
-
Para usar o objeto do Cloud Storage (arquivo dump SQL) para importação no MySQL:
conceda à sua conta de usuário e ao agente de serviço do metastore do Dataproc o papel de leitor de objetos do Storage (
roles/storage.objectViewer
) no bucket do Cloud Storage que contém o despejo de metadados que está sendo importado. -
Para usar o bucket do Cloud Storage para importação no Avro:
Conceda à sua conta de usuário e ao agente de serviço do metastore do Dataproc o papel de leitor de objetos do Storage (
roles/storage.objectViewer
) no bucket do Cloud Storage que contém o dump de metadados que está sendo importado.
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 usar o objeto do Cloud Storage (arquivo dump SQL) para importação no MySQL, 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 usar o bucket do Cloud Storage para importação no Avro, 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 dump 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 Dataproc Metastore, consulte Visão geral do IAM do Dataproc Metastore.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 uma validação de esquema de metadados do Hive. Essa validação verifica as tabelas no arquivo de despejo SQL e os nomes de arquivo do 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 Kit de ferramentas do metastore do Dataproc.
Preparar os arquivos de importação antes da importação
Antes de importar os 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 seus arquivos para o Cloud Storage
Crie um despejo 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:
Faça upload dos arquivos no Cloud Storage.
Anote o caminho do Cloud Storage para onde você faz upload dos arquivos. Você vai precisar dele mais tarde para realizar a importação.
Se você estiver importando arquivos MySQL, faça o upload do arquivo SQL em um bucket do Cloud Storage.
Se você estiver importando arquivos Avro, faça o upload deles para uma pasta do Cloud Storage.
- A importação do Avro precisa incluir um arquivo Avro para cada tabela do Hive, mesmo que ela esteja vazia.
- Os nomes de arquivo do Avro precisam seguir o formato
<table-name>.avro
. O<table-name>
precisa estar em caixa alta. Por exemplo,AUX_TABLE.avro
.
Importar os arquivos para o metastore do Dataproc
Antes de importar metadados, consulte as considerações de importação.
Enquanto uma importação estiver em execução, não será possível atualizar um serviço do Metastore do Dataproc, por exemplo, mudar as configurações. No entanto, ainda é possível usá-lo para operações normais, como acessar os metadados de clusters autogerenciados ou do Dataproc anexados.
Console
No console do Google Cloud, abra a página Metastore do Dataproc:
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.
Na barra de navegação, clique em Importar.
A caixa de diálogo Import é aberta.
Digite o Nome da importação.
Na seção Destino, escolha MySQL ou Avro.
No campo URI de destino, clique em Procurar e selecione o URI do Cloud Storage para onde você quer importar os arquivos.
Você também pode inserir manualmente o local do bucket no campo de texto fornecido. Use o seguinte formato:
bucket/object
oubucket/folder/object
.(Opcional) Digite uma descriçãopara o caso.
É possível editar a descrição na página Detalhes do serviço.
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
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 do metastore do Dataproc.LOCATION
: a região do Google Cloud em que o serviço do Dataproc Metastore está localizado.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 usandogcloud metastore services imports update IMPORT
.DUMP_TYPE
: o tipo do banco de dados externo que você está importando. Os valores aceitos incluemmysql
eavro
. 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 comgs://
. Para o Avro, informe o caminho da pasta em que os arquivos do Avro são armazenados (a pasta do Cloud Storage). Para o MySQL, informe o caminho para o arquivo MySQL (o objeto do Cloud Storage).
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.
Usando a API, é possível criar, listar, descrever e atualizar importações, mas não é possível excluí-las. No entanto, a exclusão de um serviço Metastore do Dataproc exclui todas as importações aninhadas armazenadas.
Quando a importação é concluída, o Dataproc Metastore retorna automaticamente ao estado ativo. Se a importação falhar, o Dataproc Metastore vai reverter para o estado íntegro anterior.
Visualizar histórico de importações
Para conferir o histórico de importação de um serviço do metastore do Dataproc no console do Google Cloud, siga estas etapas:
- No console do Google Cloud, abra a página Metastore do Dataproc.
Na barra de navegação, clique em Importar/Exportar.
O histórico de importações 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 Metastore do Dataproc também exclui todo o histórico de importação associado.
Resolver problemas comuns
Alguns problemas comuns incluem:
- A importação falha porque as versões do Hive não correspondem.
- A conta de usuário ou de agente de serviço não tem as permissões necessárias.
- O job falha porque o arquivo do banco de dados é muito grande.
Para mais ajuda na solução de problemas comuns, consulte Cenários de erro de importação e exportação.