Cargar datos de Salesforce en BigQuery

Puede cargar datos de Salesforce en BigQuery mediante el conector de BigQuery Data Transfer Service para Salesforce. Con BigQuery Data Transfer Service, puede programar tareas de transferencia periódicas que añadan sus datos más recientes de Salesforce a BigQuery.

Limitaciones

Las transferencias de datos de Salesforce están sujetas a las siguientes limitaciones:

  • BigQuery Data Transfer Service para Salesforce solo admite la API Bulk de Salesforce para conectarse a la instancia de Salesforce y solo admite la transferencia de entidades compatibles con la API Bulk de Salesforce. Para obtener más información sobre las entidades admitidas, consulta el artículo Error "La API Bulk no admite la entidad".
  • El intervalo mínimo entre transferencias de datos periódicas es de 15 minutos. El intervalo predeterminado de una transferencia periódica es de 24 horas.
  • BigQuery Data Transfer Service usa la API Bulk de Salesforce v1 para conectarse al endpoint de Salesforce y recuperar datos.
  • Debido a los límites de procesamiento de Salesforce, programar demasiadas transferencias de datos a la vez puede provocar retrasos o errores. Te recomendamos que limites las transferencias de datos de Salesforce a lo siguiente:
    • No tener más de 10 recursos por configuración de transferencia.
    • No tengas más de 10 transferencias simultáneas en curso a la vez en tus distintas configuraciones de transferencia.
  • Una configuración de transferencia solo puede admitir una ejecución de transferencia de datos a la vez. Si se programa una segunda transferencia de datos para que se ejecute antes de que se complete la primera, solo se completará la primera transferencia de datos y se omitirán las demás transferencias de datos que se solapen con la primera.
    • Para evitar que se omitan transferencias en una misma configuración de transferencia, le recomendamos que aumente el tiempo que transcurre entre las transferencias de grandes cantidades de datos configurando la frecuencia de repetición.
  • Si la vinculación de red y la instancia de máquina virtual (VM) que has configurado se encuentran en regiones diferentes, puede que se produzca un movimiento de datos entre regiones cuando transfieras datos desde Salesforce.

Antes de empezar

En las siguientes secciones se describen los pasos que debes seguir antes de crear una transferencia de datos de Salesforce.

Crear una aplicación conectada de Salesforce

Debe crear una aplicación conectada de Salesforce con las siguientes configuraciones obligatorias:

  • Configura la información básica en la aplicación conectada. Los campos Nombre de la aplicación conectada y Correo de contacto son obligatorios para realizar una transferencia de Salesforce.
  • Habilita los ajustes de OAuth con las siguientes configuraciones:
    • Seleccione la casilla Habilitar ajustes de OAuth.
    • En el campo URL de retrollamada, introduce lo siguiente:
      • En un entorno de producción, introduce https://login.salesforce.com/services/oauth2/token.
      • Para un entorno aislado, introduce https://test.salesforce.com/services/oauth2/token.
  • En la sección Permisos de OAuth seleccionados, selecciona Gestionar datos de usuario mediante APIs (api).
  • Desmarca la casilla Required Proof Key for Code Exchange (PKCE) Extension for Supported Authorization Flows (Extensión de clave de prueba para el intercambio de código [PKCE] obligatoria para los flujos de autorización admitidos).
  • Seleccione Habilitar flujo de credenciales de cliente y, a continuación, haga clic en Aceptar en el aviso que aparece.

Una vez que hayas configurado la aplicación conectada con las configuraciones necesarias, haz clic en Guardar. Se te redirigirá a la página de detalles de la aplicación conectada que acabas de crear.

Una vez que hayas creado la aplicación conectada, también debes configurar el flujo de credenciales de cliente. Para ello, sigue estos pasos:

  1. Haz clic en Configurar.
  2. En la barra de búsqueda, busca Aplicaciones conectadas.
  3. Haz clic en Gestionar aplicaciones > Aplicaciones conectadas. Si usas Salesforce Lightning Experience, haz clic en Gestionar aplicaciones conectadas.
  4. En la aplicación conectada que has creado, haz clic en Editar.
  5. Aparecerá la página Detalles de la aplicación. En la sección Flujo de credenciales de cliente, introduce tu nombre de usuario en el campo Ejecutar como. Puedes usar la herramienta de búsqueda en este campo para asegurarte de que has seleccionado el usuario correcto.
  6. Haz clic en Guardar.

Información obligatoria de Salesforce

Debes tener la siguiente información de Salesforce al crear una transferencia de datos de Salesforce:

Nombre del parámetro Descripción
myDomain Tu Mi dominio en Salesforce.
clientId Clave de consumidor de la aplicación conectada de Salesforce.
clientSecret

Secreto de cliente de OAuth o secreto de consumidor de la aplicación conectada de Salesforce.

Para obtener los valores de myDomain, clientID y clientSecret, selecciona una de las siguientes opciones:

Salesforce Classic

Recuperar los detalles de myDomain

Para encontrar tu myDomain, sigue estos pasos:

  1. Inicia sesión en la plataforma de Salesforce.
  2. Haz clic en Configurar.
  3. En la barra de búsqueda, busca Mi dominio.
  4. En los resultados de búsqueda, haz clic en Gestión de dominios > Mi dominio.

En la sección Detalles de Mi dominio, tu myDomain aparece como prefijo en URL actual de Mi dominio. Por ejemplo, si la URL de Mi dominio es example.my.salesforce.com, el valor de myDomain que debe usar es example.

Recuperar los detalles de ClientId y ClientSecret

Para encontrar los valores de ClientId y ClientSecret, siga estos pasos:

  1. Inicia sesión en la plataforma de Salesforce.
  2. Haz clic en Configurar.
  3. En la barra de búsqueda, busca Aplicaciones.
  4. En la sección Crear de los resultados de búsqueda, haz clic en Crear > Aplicaciones.
  5. Haz clic en el nombre de la aplicación conectada.
  6. En la página de detalles de Aplicaciones conectadas, haz clic en Gestionar detalles del consumidor.
  7. Verifica tu identidad mediante uno de los métodos registrados. Puedes ver la página de detalles del consumidor durante un máximo de cinco minutos antes de que se te pida que vuelvas a verificar tu identidad.
  8. En la página Consumer Details (Detalles del consumidor), la Consumer Key (Clave del consumidor) es tu valor ClientId. El secreto de cliente es tu valor de ClientSecret.

Salesforce Lightning Experience

Recuperar los detalles de myDomain

Para encontrar tu myDomain, sigue estos pasos:

  1. Inicia sesión en la plataforma de Salesforce.
  2. Haz clic en Configurar.

Abre la página Configuración en la plataforma Salesforce.

  1. En la barra de búsqueda, busca Mi dominio.
  2. En los resultados de búsqueda, haz clic en Configuración de la empresa > Mi dominio.

En la sección Detalles de Mi dominio, tu myDomain aparece como prefijo en URL actual de Mi dominio. Por ejemplo, si la URL de Mi dominio es example.my.salesforce.com, el valor de myDomain que debe usar es example.

Recuperar los detalles de ClientId y ClientSecret

  1. Inicia sesión en la plataforma de Salesforce.
  2. Haz clic en Configurar.
  3. En la barra de búsqueda, busca Aplicaciones.
  4. En los resultados de búsqueda, haz clic en Aplicaciones > Gestor de aplicaciones.
  5. Busca una aplicación conectada y haz clic en Ver.
  6. Haz clic en Gestionar detalles del consumidor.
  7. Verifica tu identidad mediante uno de los métodos registrados. Puedes ver la página de detalles del consumidor durante un máximo de cinco minutos antes de que se te pida que vuelvas a verificar tu identidad.
  8. En la página Consumer Details (Detalles del consumidor), la Consumer Key (Clave del consumidor) es tu valor ClientId. El secreto de cliente es tu valor de ClientSecret.

Requisitos previos de BigQuery

Roles de BigQuery necesarios

Para obtener los permisos que necesitas para crear una transferencia, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Administrador de BigQuery (roles/bigquery.admin). Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.

Este rol predefinido contiene los permisos necesarios para crear una transferencia. Para ver los permisos exactos que se necesitan, despliega la sección Permisos necesarios:

Permisos obligatorios

Para crear una transferencia, se necesitan los siguientes permisos:

  • bigquery.transfers.update en el usuario
  • bigquery.datasets.get en el conjunto de datos de destino
  • bigquery.datasets.update en el conjunto de datos de destino

También puedes obtener estos permisos con roles personalizados u otros roles predefinidos.

Configurar una transferencia de datos de Salesforce

Añada datos de Salesforce a BigQuery configurando una transferencia con una de las siguientes opciones:

Consola

  1. Ve a la página Transferencias de datos de la Google Cloud consola.

    Ir a Transferencias de datos

  2. Haz clic en Crear transferencia.

  3. En la sección Tipo de fuente, en Fuente, elija Salesforce.

  4. En la sección Detalles de la fuente de datos, haga lo siguiente:

    • En Mi dominio, introduce tu Mi dominio de Salesforce.
    • En ID de cliente, introduzca la clave de consumidor de la aplicación conectada de Salesforce.
    • En Secreto de cliente, introduzca el secreto del consumidor de la aplicación conectada de Salesforce.
    • En Objetos de Salesforce que se van a transferir, haga clic en Examinar para seleccionar los objetos que se van a transferir al conjunto de datos de destino de BigQuery. También puede introducir manualmente los objetos que quiera incluir en la transferencia de datos en este campo.

      Configurar una configuración de transferencia de Salesforce

  5. En la sección Configuración de destino, en Conjunto de datos, elija el conjunto de datos que haya creado para almacenar sus datos.

  6. En la sección Nombre de la configuración de transferencia, en Nombre visible, indica un nombre para la transferencia de datos.

  7. En la sección Opciones de programación:

    • En la lista Frecuencia de repetición, selecciona una opción para especificar con qué frecuencia se realiza esta transferencia de datos. Para especificar una frecuencia de repetición personalizada, selecciona Personalizar. Si seleccionas Bajo demanda, la transferencia se realizará cuando la inicies manualmente.
    • Si procede, selecciona Empezar ahora o Empezar a una hora determinada y proporciona una fecha de inicio y un tiempo de ejecución.
  8. Opcional: En la sección Opciones de notificación, haz lo siguiente:

    • Para habilitar las notificaciones por correo, haz clic en el interruptor Notificación por correo. Si habilitas esta opción, el administrador de las transferencias recibirá una notificación por correo cuando falle una ejecución de transferencia.
    • Para habilitar las notificaciones de Pub/Sub sobre la transferencia, haz clic en el interruptor Notificaciones de Pub/Sub. Puedes seleccionar el nombre del tema o hacer clic en Crear un tema para crear uno.
  9. Haz clic en Guardar.

bq

Introduce el comando bq mk y proporciona la marca de creación de transferencia --transfer_config:

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

Donde:

  • PROJECT_ID (opcional): el ID de tu proyecto Google Cloud . Si no se proporciona --project_id para especificar un proyecto concreto, se usará el proyecto predeterminado.
  • DATA_SOURCE: la fuente de datos salesforce.
  • NAME: el nombre visible de la configuración de transferencia de datos. El nombre de la transferencia puede ser cualquier valor que te permita identificarla si necesitas modificarla más adelante.
  • DATASET: el conjunto de datos de destino de la configuración de la transferencia.
  • PARAMETERS: los parámetros de la configuración de transferencia creada en formato JSON. Por ejemplo: --params='{"param":"param_value"}'. Estos son los parámetros de una transferencia de datos de Salesforce:

    • connector.authentication.oauth.clientId: la clave de consumidor de la aplicación conectada de Salesforce.
    • connector.authentication.oauth.clientSecret: secreto de cliente de OAuth o secreto de consumidor de la aplicación conectada de Salesforce.
    • connector.authentication.oauth.myDomain: el dominio Mi dominio de Salesforce. Por ejemplo, si la URL de su dominio es example.my.salesforce.com, el valor es example.
    • assets: la ruta a los objetos de Salesforce que se van a transferir a BigQuery.

Por ejemplo, el siguiente comando crea una transferencia de datos de Salesforce en el proyecto predeterminado con todos los parámetros obligatorios:

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

Usa el método projects.locations.transferConfigs.create y proporciona una instancia del recurso TransferConfig.

Cuando guardas la configuración de la transferencia, el conector de Salesforce activa automáticamente una transferencia según la opción de programación que hayas elegido. En cada ejecución de la transferencia, el conector de Salesforce transfiere todos los datos disponibles de Salesforce a BigQuery.

Para ejecutar manualmente una transferencia de datos fuera de tu programación habitual, puedes iniciar una ejecución de rellenado.

Asignación de tipos de datos

En la siguiente tabla se asignan los tipos de datos de Salesforce a los tipos de datos de BigQuery correspondientes:

Tipo de datos de Salesforce Tipo de datos de 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

Precios

La transferencia de datos de Salesforce a BigQuery no tiene ningún coste mientras esta función esté en vista previa.

Solucionar problemas de configuración de transferencias

Si tienes problemas para configurar la transferencia de datos, consulta Problemas con la transferencia de Salesforce.

Siguientes pasos