Como gerenciar jobs de transferência local

Antes de iniciar uma transferência, você precisa criar um job de transferência e ter um ou mais agentes instalados e conectados a ele. Neste documento, descrevemos como criar o job de transferência, instalar agentes de transferência e gerenciar jobs de transferência.

Pré-requisitos

Para usar a transferência local, você precisa de:

  • Uma origem compatível com POSIX

  • Conexão de rede de 300 Mbps ou mais rápida

  • Um servidor Linux ou máquina virtual de 64 bits compatível com o Docker (em inglês) capaz de acessar os dados que você quer transferir.

    O Docker Community Edition (links em inglês) é compatível com sistemas operacionais CentOs, Debian, Fedora e Ubuntu.

    Para usar outros sistemas operacionais Linux, consulte Docker Enterprise (links em inglês).

  • Um bucket do Cloud Storage sem uma política de retenção.

    Para transferir para um bucket com uma política de retenção, recomendamos o seguinte processo:

    1. Crie um bucket do Cloud Storage na mesma região do bucket final. Verifique se esse bucket temporário não tem uma política de retenção.

      Para mais informações sobre regiões, consulte Locais de bucket.

    2. Use o serviço de transferência de dados locais para transferir seus dados para o bucket temporário que você criou sem uma política de retenção.

    3. Realize uma transferência entre buckets para transferir os dados para o bucket com uma política de retenção.

    4. Exclua o bucket do Cloud Storage criado para armazenar temporariamente os dados.

  • Conclua a Configuração inicial para transferência local.

Antes de iniciar uma transferência, verifique se:

  • As portas TCP 80 (HTTP) e 443 (HTTPS) estão abertas para conexões de saída.
  • Todos os processos de agente em um único projeto do Google Cloud têm o mesmo sistema de arquivos ativado no mesmo ponto de montagem.

Restrições de escalonamento em jobs e agentes

A transferência local tem as seguintes restrições de escala em jobs e agentes de transferência:

  • Menos de um bilhão de arquivos por job
  • 100 agentes ou menos por projeto de transferência
  • O limite de largura de banda precisa ser maior que 1 MBps

Criar um job de transferência

Antes de iniciar uma transferência, você precisa criar um job de transferência. O job de transferência coordena e controla os agentes locais à medida que eles transferem os dados.

Para criar um job de transferência:

Console do Cloud

  1. Acesse a página Console da Web do serviço de transferência de dados locais no Console do Google Cloud.

    Acesse a página do serviço de transferência de dados locais

  2. Clique em Criar job de transferência.

    Será exibida a página Criar um job de transferência.

  3. Selecione um pool de agentes para sua transferência. Para criar um novo pool de agentes:

    1. Clique em Criar pool de agentes.

      O formulário Criar um pool de agentes é exibido.

    2. Preencha o formulário e clique em Criar.

      O novo pool de agentes está destacado na página Criar um job de transferência. Selecione para confirmar.

  4. Especifique uma origem inserindo o caminho totalmente qualificado do diretório do sistema de arquivos de origem.

  5. Especifique um bucket de destino do Cloud Storage. É possível inserir um nome de bucket do Cloud Storage ou criar um novo bucket.

    Para criar e selecionar um novo bucket:

    1. Clique em Procurar.

    2. Clique em Novo bucket.

      Será exibido o formulário Criar um bucket.

    3. Preencha o formulário, clique em Criar e, depois, em Selecionar.

  6. Opcional: para transferir arquivos em uma pasta em vez do nível superior do bucket, especifique o nome da pasta e o caminho completo que leva a ela.

  7. Descreva o job de transferência Insira uma breve descrição da transferência que ajudará você a rastreá-la.

  8. Opcional: crie uma programação para seu job.

  9. Clique em Criar.

API REST

Use transferJobs.create com um posixDataSource:

POST https://storagetransfer.googleapis.com/v1/transferJobs
{
  "name":"transferJobs/sample_transfer",
  "description": "My First Transfer",
  "status": "ENABLED",
  "projectId": "my_transfer_project_id",
  "schedule": {
      "scheduleStartDate": {
          "year": 2022,
          "month": 5,
          "day": 2
      },
      "startTimeOfDay": {
          "hours": 22,
          "minutes": 30,
          "seconds": 0,
          "nanos": 0
      }
      "scheduleEndDate": {
          "year": 2022,
          "month": 12,
          "day": 31
      },
      "repeatInterval": {
          "259200s"
      },
  },
  "transferSpec": {
      "posixDataSource": {
           "rootDirectory": "/bar/",

      },
      "gcsDataSink": {
           "bucketName": "destination_bucket"
           "path": "foo/bar/"
      },
   }
}

O campo schedule é opcional. Se não for incluído, o job de transferência precisará ser iniciado com uma solicitação transferJobs.run.

Para verificar o status da transferência após a criação de um job, use transferJobs.get:

GET https://storagetransfer.googleapis.com/v1/transferJobs/sample_transfer?project_id=my_transfer_project_id

Instale e execute agentes de transferência local em cada uma das máquinas, caso ainda não tenha feito isso.

Controlar o uso da largura de banda para o serviço de transferência de dados locais

Os limites de largura de banda são úteis se você precisa limitar a quantidade de dados que o serviço de transferência de dados locais usa para transferir dados para o Cloud Storage. Usar um limite de largura de banda ajuda a garantir que:

  • seus links de rede não fiquem saturados como resultado do uso do serviço de transferência de dados locais;

  • o comportamento do aplicativo existente da sua organização não seja afetado durante a transferência;

  • não haja um aumento repentino no preço, se você estiver em uma conexão de rede que cobra por pico de uso da largura de banda;

Os limites de largura de banda são aplicados no nível do pool de agentes e são divididos por todos os agentes.

Definir um limite de largura de banda

Para definir um limite de largura de banda:

  1. No Console do Cloud, acesse a página Serviço de transferência de dados locais.

    Acesse o Serviço de transferência de dados locais

  2. Clique em Configurações de conexão.

  3. Selecione o pool de agentes a ser atualizado.

  4. Clique em Configurar limite de largura de banda.

  5. Digite o limite de rede desejado em megabytes por segundo (MB/s) e clique em Definir limite.

    Será exibido o limite de largura de banda do projeto.

Editar um limite de largura de banda

Para editar um limite de largura de banda, na página Configurações de conexão, clique em Editar limite.

Para remover um limite, clique em Usar toda a largura de banda.

Monitorar jobs

É possível monitorar jobs do serviço de transferência de dados locais para garantir que eles funcionem conforme o esperado.

Para monitorar seus jobs de transferência:

Console do Cloud

  1. Acesse a página Jobs do serviço de transferência de dados locais no Console do Google Cloud.

    Acesse a página de jobs do serviço de transferência de dados locais

    Será exibida uma lista de jobs. Essa lista inclui jobs em execução e concluídos.

  2. Para exibir informações detalhadas sobre um job de transferência, clique na Descrição do job que lhe interessa.

    Será exibida a página Detalhes do job.

A página Detalhes do job exibe o seguinte:

  • a quantidade de dados transferidos

  • informações de configuração sobre o job de transferência

  • informações de jobs programados ou recorrentes

  • detalhes da execução de job mais recente

  • histórico de todas as execuções de jobs anteriores.

API REST

Use transferJobs.list para retornar uma lista de todos os jobs de transferência.

Para saber mais sobre um job de transferência específico, use transferJobs.get para retornar um objeto TransferJob.

Para verificar o status de uma transferência em andamento, transmita o valor TransferJob.latestOperationName para transferOperations.get.

Filtrar jobs

Se você tiver muitos jobs e quiser monitorar um subconjunto deles, considere usar filtros para classificar e exibir apenas os jobs que lhe interessam.

Para filtrar seus jobs de transferência:

Console do Cloud

  1. Clique em Filtrar lista .

  2. Selecione os filtros que você quer aplicar.

API REST

Para filtrar jobs de transferência, forneça o parâmetro de consulta filter para transferJobs.list.

Editar configurações do job

É possível editar os itens a seguir para um job de transferência existente:

  • a descrição do job
  • Opção de sincronização
  • Programar

Para editar uma configuração de job:

Console do Cloud

  1. Acesse a página Jobs do serviço de transferência de dados locais no Console do Google Cloud.

    Acesse a página de jobs do serviço de transferência de dados locais

  2. Clique na Descrição do job referente ao job que você está editando.

    Será exibida a página Detalhes do job.

  3. Clique em Configuração.

  4. Clique em ao lado do item de configuração que você quer editar.

API REST

É possível atualizar um job de transferência depois de criá-lo usando transferJobs.patch.

Executar jobs novamente

O serviço de transferência de dados locais permite executar novamente um job concluído uma única vez. Isso pode ser útil se você tiver alguns dados extras para mover e quiser reutilizar uma configuração de job atual.

Para executar um job novamente:

Console do Cloud

  1. Acesse a página Jobs do serviço de transferência de dados locais no Console do Google Cloud.

    Acesse a página de jobs do serviço de transferência de dados locais

  2. Clique na Descrição do job referente ao job que você está editando.

    Será exibida a página Detalhes do job.

  3. Clique em Executar novamente.

    O job será iniciado.

API REST

É possível executar novamente um job de transferência usando transferJobs.run e fornecendo jobName.

Ver erros

Para visualizar uma amostra de erros encontrados durante a transferência:

Console do Cloud

  1. Acesse a página Jobs do serviço de transferência de dados locais no Console do Google Cloud.

    Acesse a página de jobs do serviço de transferência de dados locais

  2. Clique na Descrição do job referente ao job que você está editando.

    Será exibida a página Detalhes do job.

  3. Clique em Ver detalhes do erro.

    Será exibida a página Detalhes do erro com uma amostra de erros encontrados durante a transferência.

API REST

Visualize o job de erros de transferência usando transferOperations.get.

Ver registros de transferência

O serviço de transferência de dados locais gera registros de transferência detalhados para verificar os resultados do job de transferência. Cada job gera uma coleção de registros de transferência que é armazenada no bucket de destino do Cloud Storage.

Os registros são gerados enquanto o trabalho de transferência está em execução. Os registros completos geralmente são disponibilizados até 15 minutos depois da conclusão do job.

Estas são as opções para ver os registros:

Ver erros no Console do Google Cloud

Para exibir todos os erros encontrados durante a transferência no Console do Google Cloud:

  1. Clique em Visualizar registros de transferência.

    Será exibida a página Detalhes do bucket. Este é um destino no bucket do Cloud Storage.

  2. Clique no registro de transferência em que você tem interesse.

    Serão exibidos os registros de transferência. Para mais informações, consulte formato de registro de transferência.

Visualizar registros no bucket de destino

Os registros de transferência são armazenados no bucket de destino no seguinte caminho:

destination-bucket-name/storage-transfer/logs/transferJobs/job-name/transferOperations/operation-name

em que:

  • destination-bucket-name é o nome do bucket de destino do Cloud Storage.
  • job-name é o nome do job, conforme exibido na lista de jobs.
  • operation-name é o nome da operação de transferência individual, composta pelo carimbo de data/hora IS08601 e pelo ID gerado.

Os registros são agregados e armazenados como objetos. Cada lote de registros é nomeado de acordo com a hora de criação. Por exemplo:

my bucket/storage-transfer/logs/transferOperations/job1/2019-10-19T10_52_56.519081644-07_00.log

Serão exibidos os registros de transferência. Para mais informações, consulte formato de registro de transferência.

Executar consultas do BigQuery em registros de transferência

Para executar consultas do BigQuery nos seus registros de transferência:

  1. Carregue os dados do registro CSV no BigQuery.

  2. Execute sua consulta do BigQuery.

Exemplo de consultas

Exibir o número de tentativas de transferência de arquivos e o status de falha/êxito

select ActionStatus, count(*) as num_files
from big-query-table
where Action="TRANSFER"
group by 1;

Em que big-query-table é o nome da tabela do BigQuery com o registro de transferência.

Exibir todos os arquivos que falharam na transferência

select Src_File_Path
from big-query-table
where Action="TRANSFER" and ActionStatus="FAILED";

Em que big-query-table é o nome da tabela do BigQuery com o registro de transferência.

Exibir a soma de verificação e o carimbo de data/hora de cada arquivo transferido com êxito

select Timestamp, Action, ActionStatus, Src_File_Path, Src_File_Size,
Src_File_Crc32C, Dst_Gcs_BucketName, Dst_Gcs_ObjectName, Dst_Gcs_Size,
Dst_Gcs_Crc32C, Dst_Gcs_Md5
from big-query-table
where Action="TRANSFER" and ActionStatus="SUCCEEDED";

Em que big-query-table é o nome da tabela do BigQuery com o registro de transferência.

Exibir todas as informações de erro dos diretórios que não foram transferidos

select FailureDetails_ErrorType, FailureDetails_GrpcCode, FailureDetails_Message
from big-query-table
where Action="FIND" and ActionStatus="FAILED";

Em que big-query-table é o nome da tabela do BigQuery com o registro de transferência.