Resolva problemas de configurações de transferência

Este documento destina-se a ajudar a resolver os problemas mais comuns encontrados ao configurar uma transferência do Serviço de transferência de dados do BigQuery. Este documento não abrange todas as possíveis mensagens de erro ou problemas.

Se estiver a ter problemas que não são abordados neste documento, pode pedir apoio técnico.

Antes de contactar o apoio técnico ao cliente da Google Cloud, capture a configuração de transferência e os detalhes da execução da transferência. Para ver informações sobre como obter estes detalhes, consulte os artigos Obtenha detalhes da transferência e Veja os detalhes da execução da transferência e as mensagens de registo.

Examine os erros

Se a execução da transferência inicial falhar, pode examinar os detalhes no histórico de execuções. Os erros indicados no histórico de execuções podem ajudar a identificar uma resolução adequada através deste documento.

Também pode ver mensagens de erro para uma tarefa de transferência específica através do Explorador de registos. O filtro do Explorador de registos seguinte devolve informações sobre uma tarefa de configuração de transferência específica, juntamente com quaisquer mensagens de erro:

resource.type="bigquery_dts_config"
labels.run_id="RUN_ID"
resource.labels.config_id="CONFIG_ID"

Substitua o seguinte:

  • RUN_ID: o número de ID de uma execução de tarefa específica
  • CONFIG_ID: o número de ID de uma tarefa de configuração de transferência

Antes de contactar o apoio ao cliente, capture todas as informações relevantes do histórico de execuções ou do Explorador de registos, incluindo mensagens de erro.

Se usar transferências orientadas por eventos, a configuração de transferência orientada por eventos pode não acionar uma execução de transferência. Pode ver mensagens de erro na parte superior da página Histórico de execuções ou da página de configuração.

Problemas gerais

Quando diagnosticar problemas gerais de transferência, verifique o seguinte:

  • Verifique se concluiu todos os passos na secção "Antes de começar" da página de documentação do seu tipo de transferência.
  • As propriedades de configuração da transferência estão corretas.
  • A conta de utilizador usada para criar a transferência tem acesso aos recursos subjacentes.

Se a configuração de transferência estiver correta e as autorizações adequadas tiverem sido concedidas, consulte o seguinte para ver soluções para problemas encontrados com frequência.

Erro: An unexpected issue was encountered. If this issue persists, please contact customer support.
Resolução: normalmente, este erro indica uma indisponibilidade temporária ou um problema no BigQuery. Aguarde aproximadamente 2 horas para que o problema seja resolvido. Se o problema persistir, peça apoio técnico.
Erro: INTERNAL: An internal error occurred and the request could not be completed. This is usually caused by a transient issue...
Resolução: normalmente, este erro indica um problema interno temporário. Se encontrar este erro, pode aguardar para ver se é resolvido na próxima execução agendada ou pode acionar manualmente um preenchimento para as datas afetadas. Se o problema persistir, peça apoio técnico.
Erro: Quota Exceeded.

Resolução: as transferências estão sujeitas a quotas do BigQuery em tarefas de carregamento. Se precisar de aumentar a sua quota, contacte o seu Cloud de Confiance by S3NS representante de vendas. Para mais informações, consulte o artigo Quotas e limites.

Se estiver a carregar exportações da faturação do Google Cloud para o BigQuery, pode encontrar o erro Quota Exceeded. As tabelas de exportação da Faturação na nuvem e as tabelas de destino do BigQuery criadas pelo serviço de transferência de dados do BigQuery são particionadas. A escolha da opção substituir ao definir essas tarefas do Serviço de transferência de dados do BigQuery causa erros de quota, consoante a quantidade de dados exportados. Para obter informações sobre a resolução de problemas de quotas, consulte o artigo Resolva problemas de erros de quotas e limites.

Se o erro for devido a tarefas do Serviço de transferência de dados do BigQuery para exportações da Cloud Billing, tenha em atenção que, uma vez que as tabelas de exportação da Cloud Billing individuais estão particionadas, o mesmo acontece com a tabela de destino criada pelo Serviço de transferência de dados do BigQuery. Por conseguinte, a escolha da opção sobrescrever ao configurar essas tarefas de transferência de dados vai resultar em erros de quota (DML), consoante a antiguidade das contas de faturação. Para obter informações sobre a resolução de problemas de quotas, consulte o artigo Resolva problemas de erros de quotas e limites.

Erro: The caller does not have permission.

Resolução: confirme se a conta com sessão iniciada na Cloud de Confiance consola é a mesma que seleciona para o Serviço de transferência de dados do BigQuery quando cria a transferência.

  • Conta com sessão iniciada na Cloud de Confiance consola:

    Resolução de problemas de autorização

  • Escolha uma conta para continuar para o Serviço de transferência de dados do BigQuery:

    Resolução de problemas de autorização

Erro: Access Denied: ... Permission bigquery.tables.get denied on table ...

Resolução: confirme que o agente de serviço do Serviço de transferência de dados do BigQuery tem a função bigquery.dataEditor no conjunto de dados de destino. Esta concessão é aplicada automaticamente quando cria e atualiza a transferência, mas é possível que a política de acesso tenha sido modificada manualmente depois. Para conceder novamente a autorização, consulte o artigo Conceda acesso a um conjunto de dados.

Erro: region violates constraint constraints/gcp.resourceLocations on the resource projects/project_id

Resolução: este erro ocorre quando um utilizador tenta criar uma configuração de transferência numa localização restrita, conforme especificado na política organizacional de restrição de localização. Pode resolver este problema alterando a política da organização para permitir a região ou alterando a configuração de transferência para um conjunto de dados de destino localizado numa região não restrita pela política da organização.

Erro: Please look into the errors[] collection for more details.

Resolução: este erro pode ocorrer quando uma transferência de dados falha. Para mais informações sobre o motivo pelo qual a transferência de dados falhou, pode usar o Cloud Logging para ver os seus registos. Pode encontrar registos de uma execução específica pesquisando através da transferência run_id.

Erro: Network Attachment with connected endpoints cannot be deleted.

Resolução: este erro pode ocorrer quando um utilizador tenta eliminar os anexos de rede pouco depois de eliminar a transferência. Isto acontece porque podem decorrer vários dias após a eliminação de uma transferência antes de o BigQuery Data Transfer Service poder remover totalmente todos os recursos associados à transferência, o que pode impedir a eliminação das associações de rede. Para resolver este erro, aguarde vários dias antes de tentar eliminar as associações de rede. Se quiser que os anexos de rede sejam eliminados mais cedo, pode contactar o apoio técnico.

Problemas de autorização e autorizações

Seguem-se alguns erros de autorização comuns que pode encontrar quando transfere dados de diferentes origens de dados:

Erro: BigQuery Data Transfer Service is not enabled for <project_id>
Erro: BigQuery Data Transfer Service has not been used in project <project_id> before or it is disabled ...

Resolução: verifique se a função de agente de serviço foi concedida através dos seguintes passos:

  1. Na Cloud de Confiance consola, aceda à página IAM e administração.

    Aceda a IAM e administração

  2. Selecione a caixa de verificação Incluir concessões de funções fornecidas pela S3NS.

  3. Verifique se a conta de serviço com o nome service-<project_number>@gcp-sa-bigquerydatatransfer.s3ns-system.iam.gserviceaccount.com é apresentada ou se lhe foi concedida a função Agente do Serviço de transferência de dados do BigQuery.

    Verifique se a conta de serviço tem a função de agente de serviço.

Se a conta de serviço não for apresentada ou não tiver a função de agente de serviço do Serviço de transferência de dados do BigQuery concedida, conceda a função predefinida na Cloud de Confiance consola ou executando o seguinte comando da CLI do Google Cloud:

gcloud projects add-iam-policy-binding PROJECT_NUMBER \
--member serviceAccount:service-PROJECT_NUMBER@gcp-sa-bigquerydatatransfer.s3ns-system.iam.gserviceaccount.com \
--role roles/bigquerydatatransfer.serviceAgent

Substitua PROJECT_NUMBER pelo número do projeto associado a esta conta de serviço.

Erro: There was an error loading this table. Check that the table exists and that you have the correct permissions.

Resolução:

  1. Na Cloud de Confiance consola, aceda à página BigQuery.

    Aceda ao BigQuery

  2. Clique no conjunto de dados de destino usado na transferência.

  3. Clique no menu Partilha e, de seguida, em Autorizações.

  4. Expanda a função de editor de dados do BigQuery.

  5. Verifique se o agente de serviço do Serviço de transferência de dados do BigQuery foi adicionado a esta função. Caso contrário, conceda a função de editor de dados do BigQuery (roles/bigquery.dataEditor) ao agente de serviço do Serviço de transferência de dados do BigQuery.

Verifique se a função de editor de dados do BigQuery foi adicionada.

Erro: A permission denied error was encountered: PERMISSION_DENIED. Please ensure that the user account setting up the transfer config has the necessary permissions, and that the configuration settings are correct

Resolução:

  1. Na Cloud de Confiance consola, aceda à página Transferências de dados.

    Aceda a Transferências de dados

  2. Clique na transferência com falha e, de seguida, selecione o separador Configuração.

  3. Verifique se o proprietário da transferência indicado no campo Utilizador tem todas as autorizações necessárias para a origem de dados.

Se o proprietário da transferência não tiver todas as autorizações necessárias, conceda as autorizações necessárias atualizando as respetivas credenciais. Também pode alterar o proprietário da transferência para outro utilizador com as autorizações necessárias.

Erro: Authentication failure: User Id not found. Error code: INVALID_USERID

Resolução: o proprietário da transferência tem um ID de utilizador inválido. Altere o proprietário da transferência para um utilizador diferente atualizando as respetivas credenciais. Se estiver a usar uma conta de serviço, também deve verificar se as contas que executam a transferência de dados têm todas as autorizações necessárias para usar uma conta de serviço.

Erro: The user does not have permission

Resolução: verifique se o proprietário da transferência é uma conta de serviço e se o serviço tem todas as autorizações necessárias definidas. Outra possibilidade é que a conta de serviço usada tenha sido criada num projeto diferente do projeto usado para criar esta transferência. Para resolver problemas de autorização entre projetos, consulte os seguintes recursos:

Erro: HttpError 403 when requesting returned "The caller does not have permission"

googleapiclient.errors.HttpError: <HttpError 403 when requesting returned "The caller does not have permission". Details: "The caller does not have permission">

Este erro pode aparecer quando tenta configurar uma consulta agendada com uma conta de serviço.

Resolução: certifique-se de que a conta de serviço tem todas as autorizações necessárias para agendar ou modificar uma consulta agendada e certifique-se de que o utilizador que está a configurar a consulta agendada tem acesso à conta de serviço.

Se todas as autorizações corretas estiverem atribuídas, mas continuar a deparar-se com o erro, verifique se a política Desativar a utilização de contas de serviço entre projetos é aplicada ao projeto por predefinição. Pode verificar a existência da política na consola navegando para IAM e administração > Políticas da organização e pesquisando a política. Cloud de Confiance

Verifique se a política de utilização da conta de serviço entre projetos é aplicada a uma conta de serviço.

Se a política Desativar a utilização de contas de serviço entre projetos for aplicada, pode desativar a política da seguinte forma:

  1. Identifique as contas de serviço associadas ao projeto através da Cloud de Confiance consola, navegando para IAM e administrador > Contas de serviço. Esta vista apresenta todas as contas de serviço do projeto atual.
  2. Desative a política no projeto onde as contas de serviço estão localizadas com o seguinte comando. Para desativar esta política, o utilizador tem de ser um administrador de políticas da organização. Apenas o administrador da organização pode conceder esta função a um utilizador.
gcloud resource-manager org-policies disable-enforce iam.disableCrossProjectServiceAccountUsage --project=[PROJECT-ID]

Problemas de configuração da transferência baseada em eventos

Seguem-se problemas comuns que pode encontrar ao criar uma transferência baseada em eventos.

Erro: Data Transfer Service is not authorized to pull message from the provided Pub/Sub subscription.

Resolução: verifique se ao agente do serviço do Serviço de transferência de dados do BigQuery foi concedida a função pubsub.subscriber:

  1. Na Cloud de Confiance consola, aceda à página Pub/Sub.

    Aceda ao Pub/Sub

  2. Selecione a subscrição do Pub/Sub que usou na transferência orientada por eventos.

  3. Se o painel de informações estiver oculto, clique em Mostrar painel de informações no canto superior direito.

  4. No separador Autorizações, verifique se o agente de serviço do Serviço de transferência de dados do BigQuery tem a pubsub.subscriber função

Verifique se o agente de serviço tem pubsub.subscriber na subscrição.

Se o agente do serviço não tiver a função pubsub.subscriber concedida. Clique em Adicionar principal para conceder a função pubsub.subscriber a service-PROJECT_NUMBER@gcp-sa-bigquerydatatransfer.s3ns-system.iam.gserviceaccount.com

Erro: Cloud Pub/Sub API has not been used in project PROJECT_NUMBER before or it is disabled.

Resolução: verifique se a API Cloud Pub/Sub está ativada para o seu projeto:

  1. Na Cloud de Confiance consola, aceda à página APIs e serviços.

    Aceda a APIs e serviços

  2. Clique em Ativar APIs e serviços.

  3. Pesquise Cloud Pub/Sub API, selecione o primeiro resultado e clique em Ativar.

Erro: Data Transfer Service does not have required permission to use project quota of project PROJECT_NUMBER to access Pub/Sub.

Resolução: verifique se ao agente do serviço do Serviço de transferência de dados do BigQuery foi concedida a função serviceusage.serviceUsageConsumer:

  1. Na Cloud de Confiance consola, aceda à página IAM e administração.

    Aceda a IAM e administração

  2. Selecione a caixa de verificação Incluir concessões de funções fornecidas pela S3NS.

  3. Verifique se a conta de serviço com o nome service-<project_number>@gcp-sa-bigquerydatatransfer.s3ns-system.iam.gserviceaccount.com é apresentada e se lhe foi concedida a função Consumidor de utilização de serviços.

    Verifique se a conta de serviço tem a função serviceusage.serviceUsageConsumer.

Problema: quando usa a transferência baseada em eventos do Cloud Storage, não é acionada nenhuma execução de transferência após o carregamento ou a atualização de ficheiros no contentor do Cloud Storage.

As execuções de transferência não são acionadas imediatamente após a receção de um evento. O acionamento de uma execução de transferência pode demorar vários minutos. Para verificar o estado da próxima execução de transferência, pode consultar o campo Data de destino da próxima execução no histórico de execuções. Este campo apresenta a hora agendada para a próxima execução ou apresenta a mensagem a aguardar eventos para agendar a próxima execução se não tiverem sido recebidos eventos. Se tiver carregado ou atualizado ficheiros no seu contentor de armazenamento na nuvem, mas a Data de destino para a próxima execução não tiver sido atualizada e não forem acionadas execuções durante 10 a 20 minutos, consulte a seguinte resolução.

Resolução: verifique se a subscrição do Pub/Sub especificada na configuração de transferência consegue receber mensagens publicadas a partir de eventos do Cloud Storage:

  1. Na Cloud de Confiance consola, aceda à página Pub/Sub.

    Aceda ao Pub/Sub

  2. Selecione a subscrição do Pub/Sub que usou na transferência orientada por eventos.

  3. No separador Métricas, verifique o gráfico "Idade da mensagem não confirmada mais antiga" e veja se existem mensagens.

Verifique se estão a ser enviadas mensagens

Se não forem publicadas mensagens, verifique se a notificação do Pub/Sub está configurada corretamente para o Cloud Storage. Pode usar o seguinte comando da CLI do Google Cloud para verificar as configurações de notificação associadas ao seu contentor:

gcloud storage buckets notifications list gs://BUCKET_NAME

Substitua BUCKET_NAME pelo nome do contentor que usa para a notificação. Para obter informações sobre a configuração de uma notificação do Pub/Sub para o Cloud Storage, consulte o artigo Configurar a notificação do Pub/Sub para o Cloud Storage.

Se existirem mensagens, verifique se a mesma subscrição do Pub/Sub é usada noutras configurações de transferência orientadas por eventos. Não é possível reutilizar a mesma subscrição do Pub/Sub por várias configurações de transferência orientadas por eventos. Para mais informações acerca das transferências baseadas em eventos, consulte o artigo Transferências baseadas em eventos.

Problemas de quota

Erro: Quota exceeded: Your project exceeded quota for imports per project.
Resolução: verifique se não agendou demasiadas transferências no seu projeto. Para ver informações sobre o cálculo do número de tarefas de carregamento iniciadas por uma transferência, consulte o artigo Quotas e limites.