Charger des données Salesforce dans BigQuery

Vous pouvez charger des données depuis Salesforce vers BigQuery à l'aide du connecteur du service de transfert de données BigQuery pour Salesforce. Le service de transfert de données BigQuery vous permet de planifier des tâches de transfert récurrentes qui ajoutent vos dernières données Salesforce à BigQuery.

Limites

Les transferts de données Salesforce sont soumis aux limitations suivantes :

  • Le Service de transfert de données BigQuery pour Salesforce n'accepte que l'API Salesforce groupée pour se connecter à l'instance Salesforce et ne prend en charge que le transfert d'entités compatibles avec l'API Salesforce groupée. Pour en savoir plus sur les entités compatibles, consultez l'erreur L'entité n'est pas compatible avec l'API Bulk.
  • L'intervalle minimum entre deux transferts de données récurrents est de 15 minutes. L'intervalle par défaut entre transferts récurrents est de 24 heures.
  • Le service de transfert de données BigQuery utilise l'API Salesforce groupée v1 pour se connecter au point de terminaison Salesforce et récupérer les données.
  • Si votre instance de machine virtuelle (VM) et votre association réseau configurée se trouvent dans des régions différentes, des transferts de données interrégionaux peuvent avoir lieu lorsque vous transférez des données depuis Salesforce.

Avant de commencer

Les sections suivantes décrivent la procédure à suivre avant de créer un transfert de données Salesforce.

Créer une application connectée Salesforce

Vous devez créer une application connectée Salesforce avec les configurations requises suivantes :

  • Configurez les informations de base dans l'application connectée. Les champs Nom de l'application connectée et Adresse e-mail du contact sont obligatoires pour un transfert Salesforce.
  • Activez les paramètres OAuth avec les configurations suivantes :
    • Cochez la case Activer les paramètres OAuth.
    • Dans le champ Callback URL (URL de rappel), saisissez ce qui suit :
      • Pour un environnement de production, saisissez https://login.salesforce.com/services/oauth2/token.
      • Pour un environnement de bac à sable, saisissez https://test.salesforce.com/services/oauth2/token.
  • Dans la section Niveaux d'accès OAuth sélectionnés, sélectionnez Gérer les données utilisateur via des API (api).
  • Décochez la case Extension de clé de vérification pour l'échange de code (PKCE) requise pour les flux d'autorisation compatibles.
  • Sélectionnez Enable Client Credentials Flow (Activer le flux d'identifiants client), puis cliquez sur OK dans la notification qui s'affiche.

Une fois que vous avez configuré l'application connectée avec les configurations requises, cliquez sur Enregistrer. Vous êtes redirigé vers la page d'informations de l'application connectée que vous venez de créer.

Une fois l'application connectée créée, vous devez également configurer le flux d'identifiants client en procédant comme suit :

  1. Cliquez sur Configurer.
  2. Dans la barre de recherche, recherchez Applications associées.
  3. Cliquez sur Gérer les applications > Applications associées. Si vous utilisez Salesforce Lightning Experience, cliquez sur Gérer les applications connectées.
  4. Sur l'application connectée que vous avez créée, cliquez sur Modifier.
  5. La page Détails de l'application s'affiche. Dans la section Flux d'identifiants client, saisissez votre nom d'utilisateur dans le champ Exécuter en tant que. Vous pouvez utiliser l'outil de recherche dans ce champ pour vous assurer d'avoir sélectionné le bon utilisateur.
  6. Cliquez sur Enregistrer.

Informations Salesforce requises

Vous devez disposer des informations Salesforce suivantes lors de la création d'un transfert de données Salesforce :

Nom du paramètre Description
myDomain Votre domaine dans Salesforce.
clientId Clé client de l'application connectée Salesforce.
clientSecret

Code secret du client OAuth ou code secret du client de l'application connectée Salesforce.

Pour obtenir vos valeurs myDomain, clientID et clientSecret, sélectionnez l'une des options suivantes :

Salesforce Classic

Récupérer les détails de myDomain

Pour trouver votre myDomain, procédez comme suit :

  1. Connectez-vous à la plate-forme Salesforce.
  2. Cliquez sur Configurer.
  3. Dans la barre de recherche, recherchez Mon domaine.
  4. Dans les résultats de recherche, cliquez sur Domain Management > My Domain.

Dans la section Détails de mon domaine, votre myDomain s'affiche comme préfixe dans URL actuelle de Mon domaine. Par exemple, si l'URL de votre sous-domaine Mon domaine est example.my.salesforce.com, la valeur myDomain à utiliser est example.

Récupérer les détails de ClientId et ClientSecret

Pour trouver vos valeurs ClientId et ClientSecret, procédez comme suit :

  1. Connectez-vous à la plate-forme Salesforce.
  2. Cliquez sur Configurer.
  3. Dans la barre de recherche, saisissez Applications.
  4. Dans la section Compiler des résultats de recherche, cliquez sur Créer > Applications.
  5. Cliquez sur un nom d'application associée.
  6. Sur la page d'informations Applications connectées, cliquez sur Gérer les détails du client.
  7. Validez votre identité à l'aide de l'une des méthodes enregistrées. Vous pouvez consulter la page d'informations sur le consommateur pendant cinq minutes maximum avant d'être invité à valider à nouveau votre identité.
  8. Sur la page Consumer Details (Détails du consommateur), la Consumer Key (Clé du consommateur) correspond à votre valeur ClientId. Le code secret du client correspond à la valeur ClientSecret.

Salesforce Lightning Experience

Récupérer les détails de myDomain

Pour trouver votre myDomain, procédez comme suit :

  1. Connectez-vous à la plate-forme Salesforce.
  2. Cliquez sur Configurer.

Ouvrez la page "Configuration" dans la plate-forme Salesforce.

  1. Dans la barre de recherche, recherchez Mon domaine.
  2. Dans les résultats de recherche, cliquez sur Paramètres de l'entreprise > Mon domaine.

Dans la section Détails de mon domaine, votre myDomain s'affiche comme préfixe dans URL actuelle de Mon domaine. Par exemple, si l'URL de votre sous-domaine Mon domaine est example.my.salesforce.com, la valeur myDomain à utiliser est example.

Récupérer les détails de ClientId et ClientSecret

  1. Connectez-vous à la plate-forme Salesforce.
  2. Cliquez sur Configurer.
  3. Dans la barre de recherche, saisissez Applications.
  4. Dans les résultats de recherche, cliquez sur Applications > Gestionnaire d'applications.
  5. Recherchez une application associée, puis cliquez sur Afficher.
  6. Cliquez sur Gérer les détails du client.
  7. Validez votre identité à l'aide de l'une des méthodes enregistrées. Vous pouvez consulter la page d'informations sur le consommateur pendant cinq minutes maximum avant d'être invité à valider à nouveau votre identité.
  8. Sur la page Consumer Details (Détails du consommateur), la Consumer Key (Clé du consommateur) correspond à votre valeur ClientId. Le code secret du client correspond à la valeur ClientSecret.

Prérequis pour BigQuery

Rôles BigQuery requis

Pour obtenir les autorisations nécessaires pour créer un transfert, demandez à votre administrateur de vous accorder le rôle IAM Administrateur BigQuery (roles/bigquery.admin). Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.

Ce rôle prédéfini contient les autorisations requises pour créer un transfert. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour créer un transfert :

  • bigquery.transfers.update sur l'utilisateur
  • bigquery.datasets.get sur l'ensemble de données cible
  • bigquery.datasets.update sur l'ensemble de données cible

Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

Configurer un transfert de données Salesforce

Pour créer un transfert de données Salesforce, procédez comme suit :

Console

  1. Accédez à la page "Transferts de données" dans la console Google Cloud .

    Accéder à la page Transferts de données

  2. Cliquez sur Créer un transfert.

  3. Dans la section Type de source, sous Source sélectionnez Salesforce.

  4. Dans la section Data source details (Détails de la source de données), procédez comme suit :

    • Dans le champ Mon domaine, saisissez votre domaine Salesforce.
    • Dans le champ ID client, saisissez la clé client de l'application connectée Salesforce.
    • Dans le champ Code secret du client, saisissez le code secret du client de l'application connectée Salesforce.
    • Dans le champ Objets Salesforce à transférer, cliquez sur Parcourir pour sélectionner les objets à transférer vers l'ensemble de données de destination BigQuery. Vous pouvez également saisir manuellement dans ce champ les objets à inclure dans le transfert de données.

      Configurer une configuration de transfert Salesforce

  5. Dans la section Paramètres de destination, accédez au menu déroulant Ensemble de données, puis sélectionnez l'ensemble de données que vous avez créé pour stocker vos données.

  6. Dans la section Nom de la configuration de transfert, sous Nom à afficher, saisissez le nom du transfert de données.

  7. Dans la section Schedule options (Options de programmation) :

    • Dans la liste Fréquence de répétition, sélectionnez une option pour spécifier la fréquence d'exécution de ce transfert de données. Pour spécifier une fréquence de répétition personnalisée, sélectionnez Personnalisée. Si vous sélectionnez À la demande, ce transfert s'exécute lorsque vous déclenchez manuellement le transfert.
    • Le cas échéant, sélectionnez Commencer ou Commencer à l'heure définie, puis indiquez une date de début et une heure d'exécution.
  8. Facultatif : dans la section Options de notification, procédez comme suit :

    • Pour activer les notifications par e-mail, cliquez sur le bouton Notification par e-mail. Lorsque vous activez cette option, l'administrateur de transfert reçoit une notification par e-mail en cas d'échec de l'exécution du transfert.
    • Pour activer les notifications d'exécution de transfert Pub/Sub pour ce transfert, cliquez sur le bouton Notifications Pub/Sub. Vous pouvez sélectionner le nom de votre sujet ou cliquer sur Créer un sujet pour en créer un.
  9. Cliquez sur Enregistrer.

bq

Saisissez la commande bq mk, puis spécifiez l'indicateur de création de transfert --transfer_config.

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

Où :

  • PROJECT_ID (facultatif) : ID de votre projet Google Cloud . Si vous ne fournissez pas de --project_id afin de spécifier un projet particulier, le projet par défaut est utilisé.
  • DATA_SOURCE. La source de données – salesforce.
  • NAME : nom à afficher de la configuration de transfert de données. Ce nom peut correspondre à toute valeur permettant d'identifier le transfert si vous devez le modifier ultérieurement.
  • DATASET : ensemble de données cible de la configuration de transfert.
  • PARAMETERS correspond aux paramètres de la configuration de transfert créée, au format JSON. Exemple : --params='{"param":"param_value"}'. Voici les paramètres d'un transfert de données Salesforce :

    • connector.authentication.oauth.clientId : clé client de l'application connectée Salesforce.
    • connector.authentication.oauth.clientSecret : code secret du client OAuth ou du code secret client de l'application connectée Salesforce.
    • connector.authentication.oauth.myDomain : Mon domaine Salesforce. Par exemple, si l'URL de votre domaine est example.my.salesforce.com, la valeur est example.
    • assets : chemin d'accès aux objets Salesforce à transférer vers BigQuery.

Par exemple, la commande suivante crée un transfert de données Salesforce dans le projet par défaut avec tous les paramètres requis :

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.authentication.oauth.myDomain":"MyDomainName",}'

API

Utilisez la méthode projects.locations.transferConfigs.create et fournissez une instance de la ressource TransferConfig.

Mappage des types de données

Le tableau suivant mappe les types de données Salesforce aux types de données BigQuery correspondants :

Type de données Salesforce Type de données BigQuery
_bool BOOLEAN
_int INTEGER
_long INTEGER
_double FLOAT
currency FLOAT
percent FLOAT
geolocation (latitude) FLOAT
geolocation (longitude) FLOAT
date DATE
datetime TIMESTAMP
time TIME
picklist STRING
multipicklist STRING
combobox STRING
reference STRING
base64 STRING
textarea STRING
phone STRING
id STRING
url STRING
email STRING
encryptedstring STRING
datacategorygroupreference STRING
location STRING
address STRING
anyType STRING

Tarifs

Le transfert de données Salesforce vers BigQuery est gratuit tant que cette fonctionnalité est disponible en version bêta.

Résoudre les problèmes liés à la configuration d'un transfert

Si vous rencontrez des problèmes lors de la configuration de votre transfert de données, consultez la section Problèmes de transfert Salesforce.

Étapes suivantes