Esta página explica como importar metadados para um serviço do Dataproc Metastore.
A funcionalidade de metadados de importação permite preencher um serviço Dataproc Metastore existente com metadados armazenados num formato de armazenamento portátil.
Normalmente, estes metadados portáteis são exportados de outro serviço Dataproc Metastore ou de um Hive Metastore (HMS) autogerido.
Acerca da importação de metadados
Pode importar os seguintes formatos de ficheiros para o Dataproc Metastore:
- Um conjunto de ficheiros Avro armazenados numa pasta.
- Um único ficheiro de despejo do MySQL armazenado numa pasta do Cloud Storage.
Os ficheiros MySQL ou Avro que está a importar têm de ser gerados a partir de uma base de dados relacional.
Se os seus ficheiros estiverem num formato diferente, como PostgreSQL, tem de os converter para o formato Avro ou MySQL. Após a conversão, pode importá-los para o Dataproc Metastore.
Avro
As importações baseadas em Avro só são suportadas para as versões 2.3.6 e 3.1.2 do Hive. Quando importa ficheiros Avro, o Dataproc Metastore espera uma série de ficheiros <table-name>.avro
para cada tabela na sua base de dados.
Para importar ficheiros Avro, o seu serviço Dataproc Metastore pode usar o tipo de base de dados MySQL ou Spanner.
MySQL
As importações baseadas no MySQL são suportadas para todas as versões do Hive. Ao importar ficheiros MySQL, o Dataproc Metastore espera um único ficheiro SQL que contenha todas as informações das suas tabelas. Os despejos do MySQL obtidos a partir de um cluster do Dataproc através do SQL nativo também são suportados.
Para importar ficheiros MySQL, o seu serviço Dataproc Metastore tem de usar o tipo de base de dados MySQL. O tipo de base de dados do Spanner não suporta importações do MySQL.
Considerações sobre a importação
A importação substitui todos os metadados existentes armazenados num serviço de Metastore do Dataproc.
A funcionalidade de importação de metadados importa apenas 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 da base de dados nem processa a migração de ficheiros. Se mover os dados para uma localização diferente, tem de atualizar manualmente as localizações dos dados das tabelas e o esquema no serviço Dataproc Metastore.
A importação não restaura nem substitui as políticas de IAM detalhadas.
Se estiver a usar os VPC Service Controls, só pode importar dados de um contentor do Cloud Storage que resida no mesmo perímetro de serviço que o serviço Dataproc Metastore.
Antes de começar
- Ative o Dataproc Metastore no seu projeto.
- Compreenda os requisitos de rede específicos do seu projeto.
- Crie um serviço de Metastore do Dataproc.
Funções necessárias
Para receber as autorizações de que precisa para importar metadados para o Dataproc Metastore, peça ao seu administrador para lhe conceder as seguintes funções do IAM:
-
Para importar metadados:
-
Editor de Metastore do Dataproc (
roles/metastore.editor
) no serviço de metadados. -
Administrador do Dataproc Metastore (
roles/metastore.admin
) no projeto.
-
Editor de Metastore do Dataproc (
-
Para o MySQL, para usar o objeto do Cloud Storage (ficheiro de descarga SQL) para importação:
conceda à sua conta de utilizador e ao agente de serviço do Dataproc Metastore a função de leitor de objetos de armazenamento (
roles/storage.objectViewer
) no contentor do Cloud Storage que contém a descarga de metadados a ser importada. -
Para o formato Avro, para usar o contentor do Cloud Storage para importação:
conceda à sua conta de utilizador e ao agente de serviço do Dataproc Metastore a função de leitor de objetos de armazenamento (
roles/storage.objectViewer
) no contentor do Cloud Storage que contém a descarga de metadados a ser importada.
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 importar metadados para o Dataproc Metastore. 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 importar metadados para o Dataproc Metastore:
-
Para importar metadados:
metastore.imports.create
no serviço de metastore. -
Para o MySQL, para usar o objeto do Cloud Storage (ficheiro de despejo SQL) para importação, conceda à sua conta de utilizador e ao agente de serviço do Dataproc Metastore:
storage.objects.get
no contentor do Cloud Storage que contém o despejo de metadados a ser importado. -
Para o Avro, para usar o contentor do Cloud Storage para importação, conceda à sua conta de utilizador e ao agente de serviço do Dataproc Metastore:
storage.objects.get
no contentor do Cloud Storage que contém a descarga de metadados a ser importada.
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 a vista geral do IAM do Dataproc Metastore.Importe os seus metadados
A operação de importação é um processo de dois passos. Primeiro, prepara os ficheiros de importação e, em seguida, importa-os para o Dataproc Metastore.
Quando inicia uma importação, o Dataproc Metastore executa uma validação do esquema de metadados do Hive. Esta validação verifica as tabelas no ficheiro de despejo SQL e os nomes dos ficheiros para o formato Avro. Se faltar uma tabela, a importação falha com uma mensagem de erro que descreve a tabela em falta.
Para verificar a compatibilidade dos metadados do Hive antes de uma importação, pode usar o Dataproc Metastore Toolkit.
Prepare os ficheiros de importação antes da importação
Antes de poder importar os seus ficheiros para o Dataproc Metastore, tem de copiar os ficheiros de despejo de metadados para o Cloud Storage, como o contentor do Cloud Storage de artefactos.
Mova os seus ficheiros para o Cloud Storage
Crie uma descarga da base de dados externa que quer importar para o Dataproc Metastore.
Para ver instruções sobre como criar uma descarga da base de dados, consulte as seguintes páginas:
Carregue os ficheiros para o Cloud Storage.
Certifique-se de que anota o caminho do Cloud Storage para o qual carrega os ficheiros. Tem de o usar mais tarde para fazer a importação.
Se estiver a importar ficheiros MySQL, carregue o ficheiro SQL para um contentor do Cloud Storage.
Se estiver a importar ficheiros Avro, carregue-os para uma pasta do Cloud Storage.
- A importação de Avro deve incluir um ficheiro Avro para cada tabela do Hive, mesmo que a tabela esteja vazia.
- Os nomes dos ficheiros Avro têm de seguir o formato
<table-name>.avro
. O<table-name>
tem de estar em maiúsculas. Por exemplo,AUX_TABLE.avro
.
Importe os ficheiros para o Dataproc Metastore
Antes de importar metadados, reveja as considerações de importação.
Enquanto uma importação está em execução, não pode atualizar um serviço Dataproc Metastore, por exemplo, alterar as definições de configuração. No entanto, pode continuar a usá-lo para operações normais, como usá-lo para aceder aos respetivos metadados a partir de clusters do Dataproc ou autogeridos anexados.
Consola
Na Google Cloud consola, abra a página Dataproc Metastore:
Na página Dataproc Metastore, clique no nome do serviço no qual quer importar metadados.
É apresentada a página Detalhes do serviço.
Figura 1. A página de detalhes do serviço Dataproc Metastore. Na barra de navegação, clique em Importar.
É aberta a caixa de diálogo Importar.
Introduza o Nome da importação.
Na secção Destino, escolha MySQL ou Avro.
No campo URI de destino, clique em Procurar e selecione o URI do Cloud Storage para onde quer importar os ficheiros.
Também pode introduzir manualmente a localização do contentor no campo de texto fornecido. Use o seguinte formato:
bucket/object
oubucket/folder/object
.Opcional: introduza uma descrição da importação.
Pode editar a descrição na página Detalhes do serviço.
Para atualizar o serviço, clique em Importar.
Após a conclusão da importação, esta é apresentada numa tabela na página Detalhes do serviço no separador Importar/Exportar.
CLI 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 o seguinte:
SERVICE_ID
: o ID ou o nome totalmente qualificado do seu serviço Dataproc Metastore.LOCATION
: a Google Cloud região em que o seu serviço de Dataproc Metastore reside.IMPORT_ID
: um ID ou um nome totalmente qualificado para a importação de metadados. Por exemplo,import1
.DESCRIPTION
: opcional: uma descrição da sua importação. Pode editar esta definição mais tarde através da Política degcloud metastore services imports update IMPORT
.DUMP_TYPE
: o tipo de base de dados externa que está a importar. Os valores aceites incluemmysql
eavro
. O valor predefinido émysql
.DATABASE_DUMP
: o caminho para o Cloud Storage que contém os ficheiros da base de dados. Este caminho tem de começar comgs://
. Para o formato Avro, indique o caminho para a pasta onde os ficheiros Avro estão armazenados (a pasta do Cloud Storage). Para o MySQL, indique o caminho para o ficheiro 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 através do APIs Explorer.
Através da API, pode criar, listar, descrever e atualizar importações, mas não pode eliminá-las. No entanto, a eliminação de um serviço do Dataproc Metastore elimina todas as importações aninhadas armazenadas.
Quando a importação é bem-sucedida, o Dataproc Metastore volta automaticamente ao estado ativo. Se a importação falhar, o Dataproc Metastore reverte para o estado anterior em bom funcionamento.
Veja o histórico de importações
Para ver o histórico de importação de um serviço do Dataproc Metastore na consola Google Cloud , conclua os seguintes passos:
- Na Google Cloud consola, abra a página Dataproc Metastore.
Na barra de navegação, clique em Importar/Exportar.
O histórico de importações é apresentado na tabela Histórico de importações.
O histórico apresenta até às últimas 25 importações.
A eliminação de um serviço Dataproc Metastore também elimina todo o histórico de importação associado.
Resolva problemas comuns
Seguem-se alguns problemas comuns:
- A importação falha porque as versões do Hive não correspondem.
- O agente do serviço ou a conta de utilizador não tem as autorizações necessárias.
- A tarefa falha porque o ficheiro da base de dados é demasiado grande.
Para obter mais ajuda na resolução de problemas comuns, consulte Cenários de erros de importação e exportação.