Faça a gestão das transferências

Este documento mostra como gerir as configurações de transferência de dados existentes.

Também pode acionar manualmente uma transferência existente, também conhecida como iniciar uma execução de preenchimento.

Veja as suas transferências

Veja as suas configurações de transferência existentes, consultando informações acerca de cada transferência, listando todas as transferências existentes e vendo o histórico de execuções de transferências ou mensagens de registo.

Funções necessárias

Para receber as autorizações de que precisa para ver os detalhes da transferência, peça ao seu administrador para lhe conceder a função de utilizador do BigQuery (roles/bigquery.user) do IAM no projeto. 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.

Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.

Além disso, para ver mensagens de registo através da Google Cloud consola, tem de ter autorizações para ver dados do Cloud Logging. A função Logs Viewer (roles/logging.viewer) dá-lhe acesso só de leitura a todas as funcionalidades do Logging. Para mais informações acerca das autorizações e das funções da Identity and Access Management (IAM) que se aplicam aos dados dos registos na nuvem, consulte o guia de controlo de acesso do Cloud Logging.

Para mais informações sobre as funções de IAM no Serviço de transferência de dados do BigQuery, consulte o artigo Controlo de acesso.

Obtenha detalhes da transferência

Depois de criar uma transferência, pode obter informações sobre a configuração da transferência. A configuração inclui os valores que forneceu quando criou a transferência, bem como outras informações importantes, como os nomes dos recursos.

Para obter informações sobre uma configuração de transferência:

Consola

  1. Aceda à página Transferências de dados.

    Aceda a Transferências de dados

  2. Selecione a transferência para a qual quer obter os detalhes.

  3. Para ver a configuração da transferência e os detalhes da origem de dados, clique em Configuração na página Detalhes da transferência. O exemplo seguinte mostra as propriedades de configuração de uma transferência do Google Ads:

    Transfira a configuração na consola

bq

Introduza o comando bq show e indique o nome do recurso da configuração de transferência. A flag --format pode ser usada para controlar o formato de saída.

bq show \
--format=prettyjson \
--transfer_config resource_name

Substitua resource_name pelo nome do recurso da transferência (também conhecido como configuração da transferência). Se não souber o nome do recurso da transferência, encontre-o com: bq ls --transfer_config --transfer_location=location.

Por exemplo, introduza o seguinte comando para apresentar a configuração de transferência para projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7.

bq show \
--format=prettyjson \
--transfer_config projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

API

Use o método projects.locations.transferConfigs.get e forneça a configuração de transferência através do parâmetro name.

Java

Antes de experimentar este exemplo, siga as Javainstruções de configuração no início rápido do BigQuery com bibliotecas cliente. Para mais informações, consulte a API Java BigQuery documentação de referência.

Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.GetTransferConfigRequest;
import com.google.cloud.bigquery.datatransfer.v1.TransferConfig;
import java.io.IOException;

// Sample to get config info.
public class GetTransferConfigInfo {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String configId = "MY_CONFIG_ID";
    // i.e projects/{project_id}/transferConfigs/{config_id}` or
    // `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}`
    getTransferConfigInfo(configId);
  }

  public static void getTransferConfigInfo(String configId) throws IOException {
    try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
      GetTransferConfigRequest request =
          GetTransferConfigRequest.newBuilder().setName(configId).build();
      TransferConfig info = dataTransferServiceClient.getTransferConfig(request);
      System.out.print("Config info retrieved successfully." + info.getName() + "\n");
    } catch (ApiException ex) {
      System.out.print("config not found." + ex.toString());
    }
  }
}

Apresente configurações de transferência

Para listar todas as configurações de transferência existentes num projeto:

Consola

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

    Aceda a Transferências de dados

  2. Se existirem configurações de transferência no projeto, é apresentada uma lista das configurações de transferência na lista de transferências de dados.

bq

Para listar todas as configurações de transferência de um projeto por localização, introduza o comando bq ls e forneça as flags --transfer_location e --transfer_config. Também pode fornecer a flag --project_id para especificar um projeto em particular. Se --project_id não for especificado, é usado o projeto predefinido. A flag --format pode ser usada para controlar o formato de saída.

Para listar as configurações de transferência de origens de dados específicas, forneça a flag --filter.

Para ver um número específico de configurações de transferência no formato paginado, forneça a flag --max_results para especificar o número de transferências. O comando devolve um token de página que fornece através da flag --page_token para ver as n configurações seguintes. Existe um limite de 1000 configurações que são devolvidas se --max_results for omitido e --max_results não aceita valores superiores a 1000. Se o seu projeto tiver mais de 1000 configurações, use --max_results e --page_token para iterar por todas elas.

bq ls \
--transfer_config \
--transfer_location=location \
--project_id=project_id \
--max_results=integer \
--filter=dataSourceIds:data_sources

Substitua o seguinte:

Exemplos:

Introduza o seguinte comando para apresentar todas as configurações de transferência nos EUA para o seu projeto predefinido. O resultado é controlado através da flag --format.

bq ls \
--format=prettyjson \
--transfer_config \
--transfer_location=us

Introduza o seguinte comando para apresentar todas as configurações de transferência nos EUA para o ID do projeto myproject.

bq ls \
--transfer_config \
--transfer_location=us \
--project_id=myproject

Introduza o seguinte comando para apresentar uma lista das 3 configurações de transferência mais recentes.

bq ls \
--transfer_config \
--transfer_location=us \
--project_id=myproject \
--max_results=3

O comando devolve um token da página seguinte. Copie o token da página e forneça-o no comando bq ls para ver os 3 resultados seguintes.

bq ls \
--transfer_config \
--transfer_location=us \
--project_id=myproject \
--max_results=3 \
--page_token=AB1CdEfg_hIJKL

Introduza o seguinte comando para listar as configurações de transferência do Google Ads e do Campaign Manager para o ID do projeto myproject.

bq ls \
--transfer_config \
--transfer_location=us \
--project_id=myproject \
--filter=dataSourceIds:dcm_dt,google_ads

API

Use o método projects.locations.transferConfigs.list e forneça o ID do projeto através do parâmetro parent.

Java

Antes de experimentar este exemplo, siga as Javainstruções de configuração no início rápido do BigQuery com bibliotecas cliente. Para mais informações, consulte a API Java BigQuery documentação de referência.

Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.ListTransferConfigsRequest;
import com.google.cloud.bigquery.datatransfer.v1.ProjectName;
import java.io.IOException;

// Sample to get list of transfer config
public class ListTransferConfigs {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    final String projectId = "MY_PROJECT_ID";
    listTransferConfigs(projectId);
  }

  public static void listTransferConfigs(String projectId) throws IOException {
    try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
      ProjectName parent = ProjectName.of(projectId);
      ListTransferConfigsRequest request =
          ListTransferConfigsRequest.newBuilder().setParent(parent.toString()).build();
      dataTransferServiceClient
          .listTransferConfigs(request)
          .iterateAll()
          .forEach(config -> System.out.print("Success! Config ID :" + config.getName() + "\n"));
    } catch (ApiException ex) {
      System.out.println("Config list not found due to error." + ex.toString());
    }
  }
}

Python

Antes de experimentar este exemplo, siga as Pythoninstruções de configuração no início rápido do BigQuery com bibliotecas cliente. Para mais informações, consulte a API Python BigQuery documentação de referência.

Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.

from google.cloud import bigquery_datatransfer

transfer_client = bigquery_datatransfer.DataTransferServiceClient()

project_id = "my-project"
parent = transfer_client.common_project_path(project_id)

configs = transfer_client.list_transfer_configs(parent=parent)
print("Got the following configs:")
for config in configs:
    print(f"\tID: {config.name}, Schedule: {config.schedule}")

Veja o histórico de execuções de transferências

À medida que as transferências agendadas são executadas, é mantido um histórico de execução para cada configuração de transferência que inclui execuções de transferência bem-sucedidas e execuções de transferência com falhas. As execuções de transferência com mais de 90 dias são eliminadas automaticamente do histórico de execuções.

Para ver o histórico de execuções de uma configuração de transferência:

Consola

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

    Aceda a Transferências de dados

  2. Clique na transferência na lista de transferências de dados.

  3. É apresentada a página HISTORIAL DE EXECUÇÃO da transferência selecionada.

bq

Para listar as execuções de transferência de uma configuração de transferência específica, introduza o comando bq ls e forneça a flag --transfer_run. Também pode fornecer a flag --project_id para especificar um projeto em particular. Se resource_name não contiver informações do projeto, é usado o valor --project_id. Se --project_id não for especificado, é usado o projeto predefinido. A flag --format pode ser usada para controlar o formato de saída.

Para ver um número específico de execuções de transferência, indique a flag --max_results. O comando devolve um token de página que fornece através da flag --page_token para ver as n configurações seguintes.

Para listar as execuções de transferência com base no estado de execução, forneça a flag --filter.

bq ls \
--transfer_run \
--max_results=integer \
--transfer_location=location \
--project_id=project_id \
--filter=states:state, ... \
resource_name

Substitua o seguinte:

  • integer é o número de resultados a devolver.
  • location é a localização das configurações de transferência. A localização é especificada quando cria uma transferência.
  • project_id é o ID do seu projeto.
  • state, ... é uma das seguintes opções ou uma lista separada por vírgulas:
    • SUCCEEDED
    • FAILED
    • PENDING
    • RUNNING
    • CANCELLED
  • resource_name é o nome do recurso da transferência (também conhecido como configuração de transferência). Se não souber o nome do recurso da transferência, encontre o nome do recurso com: bq ls --transfer_config --transfer_location=location.

Exemplos:

Introduza o seguinte comando para apresentar as 3 execuções mais recentes da configuração de transferência projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7. O resultado é controlado através da flag --format.

bq ls \
--format=prettyjson \
--transfer_run \
--max_results=3 \
--transfer_location=us \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

O comando devolve um token da página seguinte. Copie o token da página e forneça-o no comando bq ls para ver os 3 resultados seguintes.

bq ls \
--format=prettyjson \
--transfer_run \
--max_results=3 \
--page_token=AB1CdEfg_hIJKL \
--transfer_location=us \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

Introduza o seguinte comando para apresentar todas as execuções com falhas para a configuração de transferência projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7.

bq ls \
--format=prettyjson \
--transfer_run \
--filter=states:FAILED \
--transfer_location=us \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

API

Use o método projects.locations.transferConfigs.runs.list e especifique o ID do projeto através do parâmetro parent.

Java

Antes de experimentar este exemplo, siga as Javainstruções de configuração no início rápido do BigQuery com bibliotecas cliente. Para mais informações, consulte a API Java BigQuery documentação de referência.

Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.ListTransferRunsRequest;
import java.io.IOException;

// Sample to get run history from transfer config.
public class RunHistory {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String configId = "MY_CONFIG_ID";
    // i.e projects/{project_id}/transferConfigs/{config_id}` or
    // `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}`
    runHistory(configId);
  }

  public static void runHistory(String configId) throws IOException {
    try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
      ListTransferRunsRequest request =
          ListTransferRunsRequest.newBuilder().setParent(configId).build();
      dataTransferServiceClient
          .listTransferRuns(request)
          .iterateAll()
          .forEach(run -> System.out.print("Success! Run ID :" + run.getName() + "\n"));
    } catch (ApiException ex) {
      System.out.println("Run history not found due to error." + ex.toString());
    }
  }
}

Veja os detalhes da execução da transferência e as mensagens de registo

Quando uma execução de transferência aparece no histórico de execuções, pode ver os detalhes da execução, incluindo mensagens de registo, avisos e erros, o nome da execução e a hora de início e fim.

Para ver os detalhes da execução da transferência:

Consola

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

    Aceda a Transferências de dados

  2. Clique na transferência na lista de transferências de dados.

  3. É apresentada a página HISTORIAL DE EXECUÇÃO da transferência selecionada.

  4. Clique numa execução individual da transferência e o painel Detalhes da execução é aberto para essa execução da transferência.

  5. Nos Detalhes da execução, tome nota de quaisquer mensagens de erro. Estas informações são necessárias se contactar o apoio ao cliente do Google Cloud. Os detalhes da execução também incluem mensagens de registo e avisos.

    Detalhes da execução na consola

bq

Para ver os detalhes da execução da transferência, introduza o comando bq show e indique o nome da execução da transferência com a flag --transfer_run. A flag --format pode ser usada para controlar o formato de saída.

bq show \
--format=prettyjson \
--transfer_run run_name

Substitua run_name pelo nome da execução da transferência. Pode obter o nome da execução através do comando bq ls.

Exemplo:

Introduza o seguinte comando para apresentar os detalhes da execução da transferência projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g.

bq show \
--format=prettyjson \
--transfer_run \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g

Para ver as mensagens do registo de transferência de uma execução de transferência, introduza o comando bq ls com a flag --transfer_log. Pode filtrar mensagens de registo por tipo através da flag --message_type.

Para ver um número específico de mensagens de registo, forneça a flag --max_results. O comando devolve um token de página que fornece através da flag --page_token para ver as n mensagens seguintes.

bq ls \
--transfer_log \
--max_results=integer \
--message_type=messageTypes:message_type \
run_name

Substitua o seguinte:

  • integer é o número de mensagens de registo a devolver.
  • message_type é o tipo de mensagem de registo a ver (um único valor ou uma lista separada por vírgulas):
    • INFO
    • WARNING
    • ERROR
  • run_name é o nome da execução da transferência. Pode obter o nome da execução através do comando bq ls.

Exemplos:

Introduza o seguinte comando para ver as primeiras 2 mensagens de registo da execução de transferênciaprojects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g.

bq ls \
--transfer_log \
--max_results=2 \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g

O comando devolve um token da página seguinte. Copie o token da página e forneça-o no comando bq ls para ver os 2 resultados seguintes.

bq ls \
--transfer_log \
--max_results=2 \
--page_token=AB1CdEfg_hIJKL \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g

Introduza o seguinte comando para ver apenas mensagens de erro para a execução da transferência projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g.

bq ls \
--transfer_log \
--message_type=messageTypes:ERROR \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g

API

Use o método projects.transferConfigs.runs.transferLogs.list e indique o nome da execução da transferência através do parâmetro parent.

Java

Antes de experimentar este exemplo, siga as Javainstruções de configuração no início rápido do BigQuery com bibliotecas cliente. Para mais informações, consulte a API Java BigQuery documentação de referência.

Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.GetTransferRunRequest;
import com.google.cloud.bigquery.datatransfer.v1.TransferRun;
import java.io.IOException;

// Sample to get run details from transfer config.
public class RunDetails {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    // runId examples:
    // `projects/{project_id}/transferConfigs/{config_id}/runs/{run_id}` or
    // `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}/runs/{run_id}`
    String runId = "MY_RUN_ID";
    runDetails(runId);
  }

  public static void runDetails(String runId) throws IOException {
    try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
      GetTransferRunRequest request = GetTransferRunRequest.newBuilder().setName(runId).build();
      TransferRun run = dataTransferServiceClient.getTransferRun(request);
      System.out.print("Run details retrieved successfully :" + run.getName() + "\n");
    } catch (ApiException ex) {
      System.out.print("Run details not found." + ex.toString());
    }
  }
}

Modifique as suas transferências

Pode modificar as transferências existentes editando as informações na configuração de transferência, atualizando as credenciais de um utilizador anexadas a uma configuração de transferência e desativando ou eliminando uma transferência.

Funções necessárias

Para receber as autorizações de que precisa para modificar transferências, peça ao seu administrador para lhe conceder a função do IAM de administrador do BigQuery (roles/bigquery.admin) no projeto. 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.

Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.

Atualize uma transferência

Depois de criar uma configuração de transferência, pode editar os seguintes campos:

  • Conjunto de dados de destino
  • Nome a apresentar
  • Qualquer um dos parâmetros especificados para o tipo de transferência específico
  • Executar definições de notificação
  • Conta de serviço

Não é possível editar a origem de uma transferência depois de a transferência ser criada.

Para atualizar uma transferência:

Consola

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

    Aceda a Transferências de dados

  2. Clique na transferência na lista de transferências de dados.

  3. Clique em EDITAR para atualizar a configuração da transferência.

bq

Introduza o comando bq update, indique o nome do recurso da configuração de transferência através da flag --transfer_config e forneça as flags --display_name, --params, --refresh_window_days, --schedule ou --target_dataset. Opcionalmente, pode fornecer uma flag --destination_kms_key para consultas agendadas ou transferências do Cloud Storage.

bq update \
--display_name='NAME' \
--params='PARAMETERS' \
--refresh_window_days=INTEGER \
--schedule='SCHEDULE'
--target_dataset=DATASET_ID \
--destination_kms_key="DESTINATION_KEY" \
--transfer_config \
--service_account_name=SERVICE_ACCOUNT \
RESOURCE_NAME

Substitua o seguinte:

  • NAME: o nome a apresentar da configuração de transferência.
  • PARAMETERS: os parâmetros da configuração de transferência no formato JSON. Por exemplo: --params='{"param1":"param_value1"}'. Para informações sobre os parâmetros suportados, consulte o guia de transferência da sua origem de dados.
  • INTEGER: um valor de 0 a 30. Para informações sobre como definir o período de atualização, consulte a documentação do seu tipo de transferência.
  • SCHEDULE: uma programação recorrente, como --schedule="every 3 hours". Para uma descrição da sintaxe schedule, consulte o artigo Formatar o elemento schedule.
  • DATASET_ID: o conjunto de dados de destino para a configuração de transferência.
  • DESTINATION_KEY: o ID do recurso da chave do Cloud KMS —por exemplo, projects/project_name/locations/us/keyRings/key_ring_name/cryptoKeys/key_name. A CMEK só está disponível para consultas agendadas ou transferências do Cloud Storage.
  • SERVICE_ACCOUNT: especifique uma conta de serviço a usar com esta transferência.
  • RESOURCE_NAME: o nome do recurso da transferência (também conhecido como configuração de transferência). Se não souber o nome do recurso da transferência, encontre-o com: bq ls --transfer_config --transfer_location=location.

Exemplos:

O comando seguinte atualiza o nome a apresentar, o conjunto de dados de destino, o período de atualização e os parâmetros da transferência do Google Adsprojects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7:

bq update \
--display_name='My changed transfer' \
--params='{"customer_id":"123-123-5678"}' \
--refresh_window_days=3 \
--target_dataset=mydataset2 \
--transfer_config \
 projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

O comando seguinte atualiza os parâmetros e a programação da transferência de consultas agendada projects/myproject/locations/us/transferConfigs/5678z567-5678-5z67-5yx9-56zy3c866vw9:

bq update \
--params='{"destination_table_name_template":"test", "write_disposition":"APPEND"}' \
--schedule="every 24 hours" \
--transfer_config \
projects/myproject/locations/us/transferConfigs/5678z567-5678-5z67-5yx9-56zy3c866vw9

API

Use o método projects.transferConfigs.patch e forneça o nome do recurso da transferência através do parâmetro transferConfig.name. Se não souber o nome do recurso da transferência, encontre-o com: bq ls --transfer_config --transfer_location=location. Também pode chamar o seguinte método e fornecer o ID do projeto através do parâmetro parent para listar todas as transferências: projects.locations.transferConfigs.list.

Java

Antes de experimentar este exemplo, siga as Javainstruções de configuração no início rápido do BigQuery com bibliotecas cliente. Para mais informações, consulte a API Java BigQuery documentação de referência.

Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.TransferConfig;
import com.google.cloud.bigquery.datatransfer.v1.UpdateTransferConfigRequest;
import com.google.protobuf.FieldMask;
import com.google.protobuf.util.FieldMaskUtil;
import java.io.IOException;

// Sample to update transfer config.
public class UpdateTransferConfig {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String configId = "MY_CONFIG_ID";
    TransferConfig transferConfig =
        TransferConfig.newBuilder()
            .setName(configId)
            .setDisplayName("UPDATED_DISPLAY_NAME")
            .build();
    FieldMask updateMask = FieldMaskUtil.fromString("display_name");
    updateTransferConfig(transferConfig, updateMask);
  }

  public static void updateTransferConfig(TransferConfig transferConfig, FieldMask updateMask)
      throws IOException {
    try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
      UpdateTransferConfigRequest request =
          UpdateTransferConfigRequest.newBuilder()
              .setTransferConfig(transferConfig)
              .setUpdateMask(updateMask)
              .build();
      TransferConfig updateConfig = dataTransferServiceClient.updateTransferConfig(request);
      System.out.println("Transfer config updated successfully :" + updateConfig.getDisplayName());
    } catch (ApiException ex) {
      System.out.print("Transfer config was not updated." + ex.toString());
    }
  }
}

Python

Antes de experimentar este exemplo, siga as Pythoninstruções de configuração no início rápido do BigQuery com bibliotecas cliente. Para mais informações, consulte a API Python BigQuery documentação de referência.

Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.

from google.cloud import bigquery_datatransfer
from google.protobuf import field_mask_pb2

transfer_client = bigquery_datatransfer.DataTransferServiceClient()

transfer_config_name = "projects/1234/locations/us/transferConfigs/abcd"
new_display_name = "My Transfer Config"

transfer_config = bigquery_datatransfer.TransferConfig(name=transfer_config_name)
transfer_config.display_name = new_display_name

transfer_config = transfer_client.update_transfer_config(
    {
        "transfer_config": transfer_config,
        "update_mask": field_mask_pb2.FieldMask(paths=["display_name"]),
    }
)

print(f"Updated config: '{transfer_config.name}'")
print(f"New display name: '{transfer_config.display_name}'")

Atualize as credenciais

Uma transferência usa as credenciais do utilizador que a criou. Se precisar de alterar o utilizador associado a uma configuração de transferência, pode atualizar as credenciais da transferência. Isto é útil se o utilizador que criou a transferência já não fizer parte da sua organização.

Para atualizar as credenciais de uma transferência:

Consola

  1. Na Google Cloud consola, inicie sessão como o utilizador para o qual quer transferir a propriedade.

  2. Navegue para a página Transferências de dados.

    Aceda a Transferências de dados

  3. Clique na transferência na lista de transferências de dados.

  4. Clique no menu MAIS e, de seguida, selecione Atualizar credenciais.

  5. Clique em Permitir para conceder ao Serviço de transferência de dados do BigQuery autorização para ver os seus dados de relatórios e aceder aos dados e geri-los no BigQuery.

bq

Introduza o comando bq update, indique o nome do recurso da configuração de transferência com a flag --transfer_config e forneça a flag --update_credentials.

bq update \
--update_credentials=boolean \
--transfer_config \
resource_name

Substitua o seguinte:

  • boolean é um valor booleano que indica se as credenciais devem ser atualizadas para a configuração de transferência.
  • resource_name é o nome do recurso da transferência (também conhecido como configuração da transferência). Se não souber o nome do recurso da transferência, encontre-o com: bq ls --transfer_config --transfer_location=location.

Exemplos:

Introduza o seguinte comando para atualizar as credenciais da transferência do Google Adsprojects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7.

bq update \
--update_credentials=true \
--transfer_config \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

API

Use o método projects.transferConfigs.patch e forneça os parâmetros authorizationCode e updateMask.

Java

Antes de experimentar este exemplo, siga as Javainstruções de configuração no início rápido do BigQuery com bibliotecas cliente. Para mais informações, consulte a API Java BigQuery documentação de referência.

Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.TransferConfig;
import com.google.cloud.bigquery.datatransfer.v1.UpdateTransferConfigRequest;
import com.google.protobuf.FieldMask;
import com.google.protobuf.util.FieldMaskUtil;
import java.io.IOException;

// Sample to update credentials in transfer config.
public class UpdateCredentials {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String configId = "MY_CONFIG_ID";
    String serviceAccount = "MY_SERVICE_ACCOUNT";
    TransferConfig transferConfig = TransferConfig.newBuilder().setName(configId).build();
    FieldMask updateMask = FieldMaskUtil.fromString("service_account_name");
    updateCredentials(transferConfig, serviceAccount, updateMask);
  }

  public static void updateCredentials(
      TransferConfig transferConfig, String serviceAccount, FieldMask updateMask)
      throws IOException {
    try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
      UpdateTransferConfigRequest request =
          UpdateTransferConfigRequest.newBuilder()
              .setTransferConfig(transferConfig)
              .setUpdateMask(updateMask)
              .setServiceAccountName(serviceAccount)
              .build();
      dataTransferServiceClient.updateTransferConfig(request);
      System.out.println("Credentials updated successfully");
    } catch (ApiException ex) {
      System.out.print("Credentials was not updated." + ex.toString());
    }
  }
}

Python

Antes de experimentar este exemplo, siga as Pythoninstruções de configuração no início rápido do BigQuery com bibliotecas cliente. Para mais informações, consulte a API Python BigQuery documentação de referência.

Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.

from google.cloud import bigquery_datatransfer
from google.protobuf import field_mask_pb2

transfer_client = bigquery_datatransfer.DataTransferServiceClient()

service_account_name = "abcdef-test-sa@abcdef-test.iam.gserviceaccount.com"
transfer_config_name = "projects/1234/locations/us/transferConfigs/abcd"

transfer_config = bigquery_datatransfer.TransferConfig(name=transfer_config_name)

transfer_config = transfer_client.update_transfer_config(
    {
        "transfer_config": transfer_config,
        "update_mask": field_mask_pb2.FieldMask(paths=["service_account_name"]),
        "service_account_name": service_account_name,
    }
)

print("Updated config: '{}'".format(transfer_config.name))

Desative uma transferência

Quando desativa uma transferência, é adicionado disabled ao nome da transferência. Quando a transferência está desativada, não são agendadas novas execuções de transferência e não são permitidos novos preenchimentos. Todas as execuções de transferências em curso são concluídas.

A desativação de uma transferência não remove os dados já transferidos para o BigQuery. Os dados transferidos anteriormente incorrem em custos de armazenamento do BigQuery padrão até eliminar o conjunto de dados ou eliminar as tabelas.

Para desativar uma transferência:

Consola

  1. Na Google Cloud consola, aceda à página do BigQuery.

    Aceda ao BigQuery

  2. Clique em Transferências.

  3. Na página Transferências, clique na transferência na lista que quer desativar.

  4. Clique em DESATIVAR. Para reativar a transferência, clique em ATIVAR.

bq

A desativação de uma transferência não é suportada pela CLI.

API

Use o método projects.locations.transferConfigs.patch e defina disabled como true no recurso projects.locations.transferConfig.

Java

Antes de experimentar este exemplo, siga as Javainstruções de configuração no início rápido do BigQuery com bibliotecas cliente. Para mais informações, consulte a API Java BigQuery documentação de referência.

Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.TransferConfig;
import com.google.cloud.bigquery.datatransfer.v1.UpdateTransferConfigRequest;
import com.google.protobuf.FieldMask;
import com.google.protobuf.util.FieldMaskUtil;
import java.io.IOException;

// Sample to disable transfer config.
public class DisableTransferConfig {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String configId = "MY_CONFIG_ID";
    TransferConfig transferConfig =
        TransferConfig.newBuilder().setName(configId).setDisabled(true).build();
    FieldMask updateMask = FieldMaskUtil.fromString("disabled");
    disableTransferConfig(transferConfig, updateMask);
  }

  public static void disableTransferConfig(TransferConfig transferConfig, FieldMask updateMask)
      throws IOException {
    try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
      UpdateTransferConfigRequest request =
          UpdateTransferConfigRequest.newBuilder()
              .setTransferConfig(transferConfig)
              .setUpdateMask(updateMask)
              .build();
      TransferConfig updateConfig = dataTransferServiceClient.updateTransferConfig(request);
      System.out.println("Transfer config disabled successfully :" + updateConfig.getDisplayName());
    } catch (ApiException ex) {
      System.out.print("Transfer config was not disabled." + ex.toString());
    }
  }
}

Para reativar a transferência:

Antes de experimentar este exemplo, siga as Javainstruções de configuração no início rápido do BigQuery com bibliotecas cliente. Para mais informações, consulte a API Java BigQuery documentação de referência.

Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.

/*
 * Copyright 2020 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.example.bigquerydatatransfer;

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.TransferConfig;
import com.google.cloud.bigquery.datatransfer.v1.UpdateTransferConfigRequest;
import com.google.protobuf.FieldMask;
import com.google.protobuf.util.FieldMaskUtil;
import java.io.IOException;

// Sample to disable transfer config.
public class DisableTransferConfig {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String configId = "MY_CONFIG_ID";
    TransferConfig transferConfig =
        TransferConfig.newBuilder().setName(configId).setDisabled(true).build();
    FieldMask updateMask = FieldMaskUtil.fromString("disabled");
    disableTransferConfig(transferConfig, updateMask);
  }

  public static void disableTransferConfig(TransferConfig transferConfig, FieldMask updateMask)
      throws IOException {
    try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
      UpdateTransferConfigRequest request =
          UpdateTransferConfigRequest.newBuilder()
              .setTransferConfig(transferConfig)
              .setUpdateMask(updateMask)
              .build();
      TransferConfig updateConfig = dataTransferServiceClient.updateTransferConfig(request);
      System.out.println("Transfer config disabled successfully :" + updateConfig.getDisplayName());
    } catch (ApiException ex) {
      System.out.print("Transfer config was not disabled." + ex.toString());
    }
  }
}

Elimine uma transferência

Quando uma transferência é eliminada, não são agendadas novas execuções de transferência. Todas as execuções de transferência em curso são interrompidas.

A eliminação de uma transferência não remove os dados já transferidos para o BigQuery. Os dados transferidos anteriormente incorrem em custos de armazenamento do BigQuery padrão até eliminar o conjunto de dados ou eliminar as tabelas.

Para eliminar uma transferência:

Consola

  1. Na Google Cloud consola, aceda à página do BigQuery.

    Aceda ao BigQuery

  2. Clique em Transferências.

  3. Na página Transferências, clique na transferência na lista que quer eliminar.

  4. Clique em ELIMINAR. Como medida de segurança, tem de escrever a palavra "eliminar" numa caixa para confirmar a sua intenção.

bq

Introduza o comando bq rm e indique o nome do recurso da configuração de transferência. Pode usar a flag -f para eliminar uma configuração de transferência sem confirmação.

bq rm \
-f \
--transfer_config \
resource_name

Onde:

  • resource_name é o nome do recurso da transferência, que também é conhecido como configuração da transferência. Se não souber o nome do recurso da transferência, execute o comando bq ls --transfer_config --transfer_location=location para listar todas as transferências.

Por exemplo, introduza o seguinte comando para eliminar a configuração de transferência projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7.

bq rm \
--transfer_config \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

API

Use o método projects.locations.transferConfigs.delete e forneça o recurso que está a eliminar através do parâmetro name.

Java

Antes de experimentar este exemplo, siga as Javainstruções de configuração no início rápido do BigQuery com bibliotecas cliente. Para mais informações, consulte a API Java BigQuery documentação de referência.

Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.DeleteTransferConfigRequest;
import java.io.IOException;

// Sample to delete a transfer config
public class DeleteTransferConfig {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    // i.e projects/{project_id}/transferConfigs/{config_id}` or
    // `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}`
    String configId = "MY_CONFIG_ID";
    deleteTransferConfig(configId);
  }

  public static void deleteTransferConfig(String configId) throws IOException {
    try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
      DeleteTransferConfigRequest request =
          DeleteTransferConfigRequest.newBuilder().setName(configId).build();
      dataTransferServiceClient.deleteTransferConfig(request);
      System.out.println("Transfer config deleted successfully");
    } catch (ApiException ex) {
      System.out.println("Transfer config was not deleted." + ex.toString());
    }
  }
}

Python

Antes de experimentar este exemplo, siga as Pythoninstruções de configuração no início rápido do BigQuery com bibliotecas cliente. Para mais informações, consulte a API Python BigQuery documentação de referência.

Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.

import google.api_core.exceptions
from google.cloud import bigquery_datatransfer

transfer_client = bigquery_datatransfer.DataTransferServiceClient()

transfer_config_name = "projects/1234/locations/us/transferConfigs/abcd"
try:
    transfer_client.delete_transfer_config(name=transfer_config_name)
except google.api_core.exceptions.NotFound:
    print("Transfer config not found.")
else:
    print(f"Deleted transfer config: {transfer_config_name}")

Acione manualmente uma transferência

Pode acionar manualmente uma transferência, também denominada execução de preenchimento, para carregar ficheiros de dados adicionais fora das transferências agendadas automaticamente. Com origens de dados que suportam parâmetros de tempo de execução, também pode acionar manualmente uma transferência especificando uma data ou um intervalo de tempo a partir do qual carregar dados anteriores.

Pode iniciar manualmente preenchimentos de dados em qualquer altura. Além dos limites de origem, o Serviço de transferência de dados do BigQuery suporta um máximo de 180 dias por pedido de preenchimento. Os pedidos de preenchimento simultâneos não são suportados.

Para obter informações sobre a quantidade de dados disponíveis para o preenchimento, consulte o guia de transferência da sua origem de dados.

Funções necessárias

Para receber as autorizações de que precisa para modificar transferências, peça ao seu administrador para lhe conceder a função do IAM de administrador do BigQuery (roles/bigquery.admin) no projeto. 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.

Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.

Acione manualmente uma transferência ou um preenchimento

Pode acionar manualmente uma execução de transferência ou preenchimento com os seguintes métodos:

  • Selecione a execução da transferência através da Google Cloud consola e, de seguida, clique em Executar transferência agora ou Agendar preenchimento.
  • Use o comando bq mk –transfer run com a ferramenta de linha de comandos bq
  • Chame o método da API projects.locations.transferConfigs.startManualRuns method

Para ver instruções detalhadas sobre cada método, selecione o separador correspondente:

Consola

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

    Aceda a Transferências de dados

  2. Selecione a transferência na lista.

  3. Clique em Executar transferência agora ou em Agendar preenchimento. Apenas está disponível uma opção, consoante o tipo de configuração de transferência.

    • Se clicou em Executar transferência agora, selecione Executar transferência única ou Executar para uma data específica, conforme aplicável. Se selecionou a opção Executar para uma data específica, selecione uma data e uma hora específicas:

      Executar transferência agora

    • Se clicou em Agendar preenchimento, selecione Executar transferência única ou Executar para um intervalo de datas, conforme aplicável. Se selecionou a opção Executar durante um intervalo de datas, selecione uma data e uma hora de início e de fim:

      Agende o repreenchimento

  4. Clique em OK.

bq

Para iniciar manualmente uma execução de transferência, introduza o comando bq mk com a flag --transfer_run:

bq mk \
--transfer_run \
--run_time='RUN_TIME' \
RESOURCE_NAME

Substitua o seguinte:

  • RUN_TIME é uma data/hora que especifica a data de uma transferência anterior. Use indicações de tempo que terminem em Z ou que contenham um desvio de fuso horário válido, por exemplo, 2022-08-19T12:11:35.00Z ou 2022-05-25T00:00:00+00:00.
    • Se a sua transferência não tiver um parâmetro de tempo de execução ou quiser apenas acionar uma transferência agora sem especificar uma transferência anterior, introduza a hora atual neste campo.
  • RESOURCE_NAME é o nome do recurso indicado na configuração de transferência, por exemplo, projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7.

Para iniciar manualmente uma execução de transferência para um intervalo de datas, introduza o comando bq mk com a flag --transfer_run, juntamente com um intervalo de datas:

bq mk \
--transfer_run \
--start_time='START_TIME' \
--end_time='END_TIME' \
RESOURCE_NAME

Substitua o seguinte:

  • START_TIME e END_TIME são indicações de tempo que terminam em Z ou contêm um desvio de fuso horário válido. Estes valores especificam o intervalo de tempo que contém as execuções de transferência anteriores que quer preencher a partir de, por exemplo, 2022-08-19T12:11:35.00Z ou 2022-05-25T00:00:00+00:00
  • RESOURCE_NAME é o nome do recurso indicado na configuração de transferência, por exemplo, projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

API

Para iniciar manualmente uma execução de transferência, use o método projects.locations.transferConfigs.startManualRuns e indique o nome do recurso de configuração de transferência através do parâmetro principal. Para encontrar o nome do recurso de uma configuração de transferência, consulte o artigo Obtenha detalhes da transferência

  "requestedRunTime": "RUN_TIME"

Substitua o seguinte:

  • RUN_TIME é uma data/hora que especifica a data de uma transferência anterior. Use indicações de tempo que terminem em Z ou que contenham um desvio de fuso horário válido, por exemplo, 2022-08-19T12:11:35.00Z ou 2022-05-25T00:00:00+00:00.
    • Se a sua transferência não tiver um parâmetro de tempo de execução ou quiser apenas acionar uma transferência agora sem especificar uma transferência anterior, introduza a hora atual neste campo.

Para iniciar manualmente uma execução de transferência para um intervalo de datas, indique um intervalo de datas:

"requestedTimeRange": {
  "startTime": "START_TIME",
  "endTime": "END_TIME"
}

Substitua o seguinte:

  • START_TIME e END_TIME são indicações de tempo que terminam em Z ou contêm um desvio de fuso horário válido. Estes valores especificam o intervalo de tempo que contém as execuções de transferência anteriores que quer preencher a partir de, por exemplo, 2022-08-19T12:11:35.00Z ou 2022-05-25T00:00:00+00:00

Java

Antes de experimentar este exemplo, siga as Javainstruções de configuração no início rápido do BigQuery com bibliotecas cliente. Para mais informações, consulte a API Java BigQuery documentação de referência.

Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.ScheduleTransferRunsRequest;
import com.google.cloud.bigquery.datatransfer.v1.ScheduleTransferRunsResponse;
import com.google.protobuf.Timestamp;
import java.io.IOException;
import org.threeten.bp.Clock;
import org.threeten.bp.Instant;
import org.threeten.bp.temporal.ChronoUnit;

// Sample to run schedule back fill for transfer config
public class ScheduleBackFill {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String configId = "MY_CONFIG_ID";
    Clock clock = Clock.systemDefaultZone();
    Instant instant = clock.instant();
    Timestamp startTime =
        Timestamp.newBuilder()
            .setSeconds(instant.minus(5, ChronoUnit.DAYS).getEpochSecond())
            .setNanos(instant.minus(5, ChronoUnit.DAYS).getNano())
            .build();
    Timestamp endTime =
        Timestamp.newBuilder()
            .setSeconds(instant.minus(2, ChronoUnit.DAYS).getEpochSecond())
            .setNanos(instant.minus(2, ChronoUnit.DAYS).getNano())
            .build();
    scheduleBackFill(configId, startTime, endTime);
  }

  public static void scheduleBackFill(String configId, Timestamp startTime, Timestamp endTime)
      throws IOException {
    try (DataTransferServiceClient client = DataTransferServiceClient.create()) {
      ScheduleTransferRunsRequest request =
          ScheduleTransferRunsRequest.newBuilder()
              .setParent(configId)
              .setStartTime(startTime)
              .setEndTime(endTime)
              .build();
      ScheduleTransferRunsResponse response = client.scheduleTransferRuns(request);
      System.out.println("Schedule backfill run successfully :" + response.getRunsCount());
    } catch (ApiException ex) {
      System.out.print("Schedule backfill was not run." + ex.toString());
    }
  }
}

Python

Antes de experimentar este exemplo, siga as Pythoninstruções de configuração no início rápido do BigQuery com bibliotecas cliente. Para mais informações, consulte a API Python BigQuery documentação de referência.

Para se autenticar no BigQuery, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.

import datetime

from google.cloud.bigquery_datatransfer_v1 import (
    DataTransferServiceClient,
    StartManualTransferRunsRequest,
)

# Create a client object
client = DataTransferServiceClient()

# Replace with your transfer configuration name
transfer_config_name = "projects/1234/locations/us/transferConfigs/abcd"
now = datetime.datetime.now(datetime.timezone.utc)
start_time = now - datetime.timedelta(days=5)
end_time = now - datetime.timedelta(days=2)

# Some data sources, such as scheduled_query only support daily run.
# Truncate start_time and end_time to midnight time (00:00AM UTC).
start_time = datetime.datetime(
    start_time.year, start_time.month, start_time.day, tzinfo=datetime.timezone.utc
)
end_time = datetime.datetime(
    end_time.year, end_time.month, end_time.day, tzinfo=datetime.timezone.utc
)

requested_time_range = StartManualTransferRunsRequest.TimeRange(
    start_time=start_time,
    end_time=end_time,
)

# Initialize request argument(s)
request = StartManualTransferRunsRequest(
    parent=transfer_config_name,
    requested_time_range=requested_time_range,
)

# Make the request
response = client.start_manual_transfer_runs(request=request)

# Handle the response
print("Started manual transfer runs:")
for run in response.runs:
    print(f"backfill: {run.run_time} run: {run.name}")

Registo e monitorização

O Serviço de transferência de dados do BigQuery exporta registos e métricas para o Cloud Monitoring e o Cloud Logging, que oferecem observabilidade nas suas transferências. Pode usar a monitorização para configurar painéis de controlo para monitorizar transferências, avaliar o desempenho da execução de transferências e ver mensagens de erro para resolver problemas de falhas de transferências. Pode usar o Registo para ver registos relacionados com uma execução de transferência ou uma configuração de transferência.

Também pode ver registos de auditoria disponíveis para o Serviço de transferência de dados do BigQuery para atividade de transferência e registos de acesso a dados.