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 un entorno de producción, introduce
- 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:
- Haz clic en Configurar.
- En la barra de búsqueda, busca Aplicaciones conectadas.
- Haz clic en Gestionar aplicaciones > Aplicaciones conectadas. Si usas Salesforce Lightning Experience, haz clic en Gestionar aplicaciones conectadas.
- En la aplicación conectada que has creado, haz clic en Editar.
- 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.
- 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:
- Inicia sesión en la plataforma de Salesforce.
- Haz clic en Configurar.
- En la barra de búsqueda, busca Mi dominio.
- 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:
- Inicia sesión en la plataforma de Salesforce.
- Haz clic en Configurar.
- En la barra de búsqueda, busca Aplicaciones.
- En la sección Crear de los resultados de búsqueda, haz clic en Crear > Aplicaciones.
- Haz clic en el nombre de la aplicación conectada.
- En la página de detalles de Aplicaciones conectadas, haz clic en Gestionar detalles del consumidor.
- 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.
- 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 deClientSecret
.
Salesforce Lightning Experience
Recuperar los detalles de myDomain
Para encontrar tu myDomain
, sigue estos pasos:
- Inicia sesión en la plataforma de Salesforce.
- Haz clic en Configurar.
- En la barra de búsqueda, busca Mi dominio.
- 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
- Inicia sesión en la plataforma de Salesforce.
- Haz clic en Configurar.
- En la barra de búsqueda, busca Aplicaciones.
- En los resultados de búsqueda, haz clic en Aplicaciones > Gestor de aplicaciones.
- Busca una aplicación conectada y haz clic en Ver.
- Haz clic en Gestionar detalles del consumidor.
- 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.
- 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 deClientSecret
.
Requisitos previos de BigQuery
- Comprueba que has completado todas las acciones necesarias para habilitar BigQuery Data Transfer Service.
- Crea un conjunto de datos de BigQuery para almacenar tus datos.
- Si quieres configurar notificaciones de ejecuciones de transferencias para Pub/Sub, asegúrate de que tienes el permiso de
pubsub.topics.setIamPolicy
Gestión de Identidades y Accesos (IAM). No se necesitan permisos de Pub/Sub si solo configuras notificaciones por correo electrónico. Para obtener más información, consulta el artículo sobre las notificaciones de ejecución de BigQuery Data Transfer Service.
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
Ve a la página Transferencias de datos de la Google Cloud consola.
Haz clic en
Crear transferencia.En la sección Tipo de fuente, en Fuente, elija Salesforce.
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.
En la sección Configuración de destino, en Conjunto de datos, elija el conjunto de datos que haya creado para almacenar sus datos.
En la sección Nombre de la configuración de transferencia, en Nombre visible, indica un nombre para la transferencia de datos.
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.
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.
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 esexample.my.salesforce.com
, el valor esexample
.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
.
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
- Para obtener una descripción general de BigQuery Data Transfer Service, consulta el artículo Introducción a BigQuery Data Transfer Service.
- Para obtener información sobre cómo usar las transferencias, como obtener información sobre una configuración de transferencia, enumerar configuraciones de transferencia y ver el historial de ejecuciones de una transferencia, consulta Trabajar con transferencias.
- Consulta cómo cargar datos con operaciones entre nubes.