Programar uma transferência do Salesforce

Com o serviço de transferência de dados do BigQuery para Salesforce, é possível programar e gerenciar automaticamente jobs de carregamento recorrentes do Salesforce para o BigQuery.

Limitações

As transferências do Salesforce estão sujeitas às seguintes limitações:

  • O serviço de transferência de dados do BigQuery para Salesforce aceita apenas a API Salesforce Bulk para se conectar à instância do Salesforce e aceita apenas a transferência de entidades compatíveis com essa API. Para mais informações sobre quais entidades são compatíveis, consulte "A entidade não é compatível com o erro da API Bulk".
  • O intervalo mínimo entre as transferências recorrentes é de 15 minutos. O intervalo padrão para uma transferência recorrente é 24 horas.
  • O serviço de transferência de dados do BigQuery para Salesforce não oferece suporte a conexões em ambientes de sandbox do Salesforce.

Antes de começar

Nas seções a seguir, descrevemos as etapas que você precisa seguir antes de criar uma transferência do Salesforce.

Pré-requisitos do Salesforce

Ative a API Salesforce Bulk para a instância do Salesforce.

Crie um app conectado do Salesforce com as seguintes configurações:

  • Gere um token de segurança para o aplicativo.
  • Para permitir o fluxo de nome de usuário e senha do OAuth, faça o seguinte:

    1. No app conectado, clique em Configurar.
    2. No campo Localização rápida, pesquise Configurações do OAuth e do OpenID Connect e ative.

      Ativar as configurações do OAuth e do OpenID Connect no Salesforce

  • Siga estas etapas para ativar a autoautorização de um usuário para o app conectado:

    1. No app conectado, clique em Configurar.
    2. No campo Localização rápida, pesquise Gerenciar apps conectados.
    3. Clique em Editar no app conectado que você está usando para a execução da transferência.
    4. Em Políticas do OAuth, clique no menu Usuários permitidos e selecione Todos os usuários podem autorizar.

      Ativar a autoautorização para usuários no Salesforce

    5. Em Relaxamento de IP, selecione Relaxar restrições de IP.

      Reduzir restrições de IP no Salesforce

Você também precisa ter as seguintes informações do Salesforce ao criar uma transferência do Salesforce:

Nome do parâmetro Descrição
clientId ClientId ou chave do cliente do aplicativo conectado do Salesforce.
clientSecret

Chave secreta do cliente OAuth ou do cliente do aplicativo conectado do Salesforce.

username

Nome de usuário da conta do Salesforce.

password

Senha da conta do Salesforce.

securityToken

Token de segurança da conta do Salesforce. Esse token de segurança é um código alfanumérico que diferencia maiúsculas de minúsculas e é anexado à senha. O token de segurança é necessário para acessar as APIs do Salesforce de fora do intervalo de IP confiável da configuração do Salesforce.

Pré-requisitos do BigQuery

Papéis obrigatórios do BigQuery

Para receber as permissões necessárias para criar um conjunto de dados federado, peça ao administrador para conceder a você o papel do IAM Administrador do BigQuery (roles/bigquery.admin). Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.

Esse papel predefinido contém as permissões necessárias para criar uma transferência. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As seguintes permissões são necessárias para criar uma transferência:

  • bigquery.transfers.update no usuário
  • bigquery.datasets.get no conjunto de dados de destino
  • bigquery.datasets.update no conjunto de dados de destino

Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.

Configurar uma transferência de dados do Salesforce

Para criar uma transferência de dados do Salesforce:

Console

  1. No Console do Google Cloud, acesse a página BigQuery.

    Acessar o BigQuery

  2. Clique em Transferências de dados > Criar uma transferência.

  3. Na seção Tipo de origem, em Origem, escolha Google AdWords.

  4. No campo Nome de exibição, na seção Nome de configuração da transferência, insira um nome para a transferência.

  5. Na seção Opções de programação, faça o seguinte:

    • Na lista Frequência de repetição, selecione uma opção para especificar com que frequência essa transferência é executada. Para especificar uma frequência de repetição personalizada, selecione Personalizada. Se você selecionar Sob demanda, essa transferência vai ser executada quando você acionar manualmente a transferência.

    • Se aplicável, selecione Começar agora ou Começar no horário definido e forneça uma data de início e um horário de execução.

  6. Na seção Configurações de destino, em Conjunto de dados, escolha o conjunto criado para armazenar seus dados.

  7. Na seção Detalhes da fonte de dados, faça o seguinte:

    • Em Domínio personalizado, insira um domínio de login personalizado, se aplicável. Se o URL de login do Salesforce for login.salesforce.com ou test.salesforce.com, deixe esse campo em branco.
    • Em URL do Salesforce, selecione o sufixo com que o URL de login do Salesforce termina. Se você selecionar my.salesforce.com ou sandbox.my.salesforce.com, esses valores vão ser o sufixo do domínio personalizado que você informou no campo Domínio personalizado.

      Por exemplo, se você forneceu o domínio personalizado mydomain e selecionou my.salesforce.com, o URL de login será mydomain.my.salesforce.com.

    • Em Nome de usuário, digite o nome de usuário da conta do Salesforce.

    • Em Senha, digite a senha da conta do Salesforce.

    • Em Token de segurança, digite o token de segurança da conta do Salesforce.

    • Em ID do cliente, insira a chave do consumidor do aplicativo conectado do Salesforce.

    • Em Chave secreta do cliente, insira a chave secreta do consumidor do aplicativo conectado do Salesforce.

    • Em Objetos do Salesforce para transferência, clique em Procurar para selecionar qualquer objeto a ser transferido para o conjunto de dados de destino do BigQuery.

      • Nesse campo, também é possível inserir manualmente qualquer objeto para incluir na transferência.

      Definir uma configuração de transferência do Salesforce

  8. Na lista Conta de serviço, selecione uma conta de serviço associada ao seu projeto do Google Cloud. A conta de serviço selecionada precisa ter os papéis necessários para executar a transferência.

    Se você fez login com uma identidade federada, é necessário uma conta de serviço para criar uma transferência. Se você fez login com uma Conta do Google, uma conta de serviço para a transferência é opcional.

    Para mais informações sobre o uso de contas de serviço com transferências de dados, consulte Usar contas de serviço.

  9. Opcional: na seção Opções de notificação, faça o seguinte:

    • Para ativar as notificações por e-mail, clique no botão de alternância Notificação por e-mail. Quando essa opção está ativada, o administrador de transferência recebe uma notificação por e-mail quando uma execução de transferência falha.
    • Para ativar as notificações de execução de transferência do Pub/Sub para essa transferência, clique no botão de alternância Notificações do Pub/Sub. Selecione o nome do tópico ou clique em Criar um tópico.
  10. Clique em Salvar.

bq

Insira o comando bq mk e forneça a sinalização de execução da transferência --transfer_config:

bq mk \
    --transfer_config \
    --project_id=PROJECT_ID \
    --data_source=DATA_SOURCE \
    --display_name=NAME \
    --target_dataset=DATASET \
    --params='PARAMETERS'

Em que:

  • PROJECT_ID (opcional): o ID do projeto do Google Cloud. Se --project_id não for fornecido para especificar um projeto determinado, o projeto padrão será usado;
  • DATA_SOURCE: a fonte de dados — salesforce.
  • NAME: o nome de exibição da configuração da transferência. O nome da transferência pode ser qualquer valor que permita identificá-la, caso você precise modificá-la mais tarde.
  • DATASET: o conjunto de dados de destino na configuração da transferência.
  • PARAMETERS é o parâmetro da configuração de transferência criada no formato JSON. Por exemplo, --params='{"param":"param_value"}'. Confira a seguir os parâmetros de uma transferência do Salesforce:

    • connector.authentication.oauth.clientId: ClientId ou chave do cliente do aplicativo conectado do Salesforce.
    • connector.authentication.oauth.clientSecret: chave secreta do cliente OAuth ou do cliente do aplicativo conectado do Salesforce.
    • connector.customDomainName (opcional): o domínio de login personalizado do Salesforce, se aplicável. Deixe em branco para usar o domínio de login padrão login.Salesforce.com.
    • connector.authentication.username: o nome de usuário da conta do Salesforce.
    • connector.authentication.password: a senha da conta do Salesforce.
    • connector.authentication.securityToken: o token de segurança da conta do Salesforce.
    • assets: o caminho para os objetos do Salesforce a serem transferidos para o BigQuery.

Por exemplo, o comando a seguir cria uma transferência do Salesforce no projeto padrão com todos os parâmetros necessários:

bq mk \
    --transfer_config \
    --target_dataset=mydataset \
    --data_source=salesforce \
    --display_name='My Transfer' \
    --params='{"assets":["Account"],
        "connector.authentication.oauth.clientId": "1234567890",
        "connector.authentication.oauth.clientSecret":"ABC12345",
        "connector.customDomainName":"MyDomainName",
        "connector.authentication.username":"user1@force.com",
        "Connector.authentication.password":"abcdef1234",
        "connector.authentication.securityToken":"a1hghbb44lnl465lbl75b",}'

API

Use o método projects.locations.transferConfigs.create e forneça uma instância do recurso TransferConfig.

Preços

Não há custo para transferir dados do Salesforce para o BigQuery enquanto esse recurso está em Pré-lançamento.

Resolver problemas na configuração da transferência

Se você tiver problemas para configurar a transferência, consulte Problemas de transferência no Salesforce.

A seguir