En esta página, se describe cómo cargar datos desde sObjects de Salesforce en Google Cloudcon Cloud Data Fusion. El complemento de origen por lotes de Salesforce lee sObjects de Salesforce. Los sObjects son las tablas de Salesforce de las que planeas extraer datos. Algunos ejemplos de sObjects incluyen oportunidades, contactos, cuentas, clientes potenciales y objetos personalizados.
El complemento de fuente por lotes de Salesforce admite la lectura de datos con consultas del lenguaje de consultas de objetos de Salesforce (SOQL) y filtros de fecha incrementales o de rango.
Antes de comenzar
- El origen por lotes de Salesforce de Cloud Data Fusion usa la API de Salesforce Bulk V1.
- Configura Salesforce antes de implementar y usar el complemento de Salesforce de Cloud Data Fusion. Para obtener más información, consulta Crea una app conectada de Salesforce para Cloud Data Fusion.
Cómo configurar el complemento
- Ve a la interfaz web de Cloud Data Fusion y haz clic en Studio.
- Verifica que esté seleccionada la opción Data Pipeline - Batch (no Realtime).
- En el menú Source, haz clic en Salesforce. El nodo de Salesforce aparecerá en tu canalización. Si no ves la fuente de Salesforce en la página Studio, implementa los complementos de Salesforce desde Cloud Data Fusion Hub.
- Para configurar la fuente, ve al nodo de Salesforce y haz clic en Properties.
Ingresa las siguientes propiedades. Para obtener una lista completa, consulta Propiedades.
- Ingresa una Etiqueta para el nodo de Salesforce, por ejemplo,
Salesforce tables
. - Ingresa un Nombre de referencia para la fuente de Salesforce para el linaje, por ejemplo,
Salesforce tables
. Ingresa los detalles de la conexión. Puedes configurar una conexión nueva y única, o una conexión existente y reutilizable.
Nueva conexión
Para agregar una conexión única a Salesforce, sigue estos pasos:
- Mantén desactivada la opción Usar conexión.
En la sección Conexión, ingresa la siguiente información de la cuenta de Salesforce en estos campos:
- Nombre de usuario
- Contraseña
- Token de seguridad
- Clave de consumidor
- Secreto de consumidor
Para obtener las credenciales de Salesforce, consulta Cómo obtener propiedades de Salesforce.
Conexión reutilizable
Para reutilizar una conexión existente, sigue estos pasos:
- Activa Usar conexión.
- Haz clic en Browse connections.
Haz clic en el nombre de la conexión.
Opcional: Si no existe una conexión y quieres crear una nueva conexión reutilizable, haz clic en Agregar conexión y consulta los pasos de la pestaña Nueva conexión.
Ingresa el nombre del SObject para cargar todas las columnas del objeto.
Opcional: Si seleccionas el nombre del sObject, puedes filtrar los datos con los siguientes campos:
- Última modificación posterior a: Solo incluye los registros que se modificaron por última vez después de un momento determinado.
- Modificado antes del: Solo incluye los registros que se modificaron por última vez antes de una hora determinada.
- Duración: Solo incluye los registros que se modificaron por última vez dentro de un período de la duración especificada.
- Desplazamiento: Solo incluye registros en los que la fecha de modificación sea anterior a la hora de inicio lógica de la canalización, menos el desplazamiento determinado.
Opcional: Para los sObjects compatibles, activa Habilitar la fragmentación de PK para mejorar el rendimiento de una canalización. Para obtener más información, consulta Mejora el rendimiento con la división en fragmentos de PK.
Opcional: En lugar de especificar el nombre del sObject, puedes ingresar una consulta SOQL, como
SELECT LastName from Contact
. Para obtener más información, consulta Consultas de SOQL para la fuente de Salesforce.Para probar la conectividad, haz clic en Obtener esquema. Cloud Data Fusion se conecta a Salesforce y extrae el esquema de la tabla que se indica (técnicamente, un sObject).
- Ingresa una Etiqueta para el nodo de Salesforce, por ejemplo,
Propiedades
Propiedad | Se habilitó la macro | Propiedad obligatoria | Descripción |
---|---|---|---|
Nombre de la referencia | No | Sí | Se usa para identificar de forma única esta fuente para tareas, como el linaje y la anotación de metadatos. |
Usar conexión | No | No | Usar una conexión existente Si se usa una conexión, no es necesario que proporciones las credenciales. |
Explorar conexiones | Sí | No | Nombre de la conexión que se usará. |
Nombre de usuario | Sí | Sí | Nombre de usuario de Salesforce. |
Contraseña | Sí | Sí | Contraseña de Salesforce. |
Token de seguridad | Sí | No | Es el token de seguridad de Salesforce. Si la contraseña no contiene el token de seguridad, la app de Cloud Data Fusion lo agrega antes de autenticarse con Salesforce. |
Clave de consumidor | Sí | Sí | Es la clave de consumidor de la aplicación. También se conoce como ID de cliente de OAuth. Para obtener una clave de consumidor, crea una aplicación conectada de Salesforce. |
Secreto de consumidor | Sí | Sí | Es el secreto del consumidor de la aplicación. También se denomina secreto del cliente de OAuth. Para obtener un secreto del cliente, crea una aplicación conectada de Salesforce. |
URL de acceso | Sí | Sí | Es la URL de acceso de OAuth2 de Salesforce. El valor predeterminado es https://login.salesforce.com/services/oauth2/token |
Tiempo de espera de la conexión | Sí | No | Tiempo máximo, en milisegundos, que se espera para la inicialización de la conexión antes de que se agote el tiempo. El valor predeterminado es de 30,000 milisegundos. |
URL de proxy | Sí | No | Es la URL del proxy, que contiene un protocolo, una dirección y un puerto. |
SOQL | Sí | No | Es una consulta de SOQL para recuperar datos en la fuente. Ejemplos:
|
Nombre del objeto de Salesforce | Sí | No | Nombre del objeto de Salesforce que se leerá. Si se proporciona un valor, el conector obtiene todos los campos de este objeto de Salesforce y genera una consulta SOQL, como select FIELD_1, FIELD_2 from
${sObjectName} . Se ignora si se proporciona una consulta de SOQL.También hay sObjects que no son compatibles con la API masiva de Salesforce. Si creas un trabajo con un objeto no admitido, se producirá el siguiente error: Entity is not supported by the Bulk
API . Estos objetos tampoco son compatibles con Einstein Analytics, que usa la API de Bulk para consultar datos.Casos en los que no se usa la API masiva: Cuando la longitud de la búsqueda envía la búsqueda a Salesforce para recibir el array de información de lotes, no se usa la API masiva en un caso. Si la búsqueda está dentro del límite, se ejecuta la búsqueda original. De lo contrario, cambia a la lógica de objeto ancho. Por ejemplo, genera una consulta de ID que solo recupera información de lotes para los IDs que se usarán más adelante para recuperar datos a través de la API de SOAP. |
Última modificación después del | Sí | No | Filtrar los datos para incluir solo los registros en los que el campo del sistema, LastModifiedDate , sea mayor o igual que la fecha especificada Usa el formato de fecha de Salesforce (consulta los ejemplos). Si no se proporciona ningún valor, no se aplica ninguna fecha de límite inferior. |
Última modificación antes del | Sí | No | Filtrar los datos para incluir solo los registros en los que el campo del sistema, LastModifiedDate , sea anterior a la fecha especificada Usa el
formato de fecha de Salesforce
(consulta los ejemplos). Si especificas este valor con la propiedad Last modified after, puedes leer los datos que se modificaron dentro de un período. Si no se proporciona ningún valor, no se aplica ninguna fecha límite superior. |
Duración | Sí | No | Filtra los datos para leer solo los registros que se modificaron por última vez dentro de un período de tiempo del tamaño especificado. Por ejemplo, si la duración es 6 hours y la canalización se ejecuta a las 9 a.m., leerá los datos que se actualizaron por última vez entre las 3 a.m. (inclusive) y las 9 a.m. (exclusive).
Especifica la duración con números y las siguientes unidades de tiempo:
2 days, 1 hours, 30 minutes . Si ya se especificó un valor para Last modified after o Last modified before, se ignorará la duración. |
Desplazamiento | Sí | No | Filtrar los datos para leer solo los registros en los que el campo del sistema, LastModifiedDate , sea anterior a la hora de inicio lógica de la canalización, menos el desplazamiento determinado Por ejemplo, si la duración es 6 hours , el desplazamiento es 1 hours y la canalización se ejecuta a las 9 a.m., se leen los datos que se modificaron por última vez entre las 2 a.m. (inclusive) y las 8 a.m. (exclusive).Especifica la duración con números y las siguientes unidades de tiempo:
2 days, 1 hours, 30 minutes . Si ya se especificó un valor para Last modified after o Last modified before, se ignorará el desplazamiento. |
Tipo de operación de SOQL | No | No | Especifica la operación de consulta que se ejecutará en la tabla. Si se selecciona una consulta, solo se devuelven los registros actuales. Si seleccionas queryAll , se devuelven todos los registros actuales y borrados.La operación predeterminada es query . |
Habilita la división en fragmentos de PK | Sí | No | La división de claves primarias (PK) divide una consulta en tablas grandes en partes o fragmentos según los IDs de registro, o claves primarias, de los registros consultados. Salesforce recomienda que habilites la fragmentación de PK cuando consultes tablas con más de 10 millones de registros o cuando una consulta masiva agote el tiempo de espera de forma constante. Para obtener más información, consulta Fragmentación de PK. La división en fragmentos de PK solo funciona con consultas que no incluyen cláusulas SELECT ni condiciones que no sean WHERE .
La división en fragmentos se admite para los objetos personalizados y cualquier tabla de uso compartido y de historial que admita objetos estándar. |
Tamaño del fragmento | Sí | No | Especifica el tamaño del fragmento. El tamaño máximo es de 250,000. El tamaño predeterminado es 100,000. |
Nombre del objeto principal de SObject | Sí | No | Es el elemento principal del objeto de Salesforce. Se usa para habilitar la fragmentación de tablas de historial o de objetos compartidos. |
Ejemplos de formatos de fecha de Salesforce
Sintaxis del formato | Ejemplo |
---|---|
YYYY-MM-DDThh:mm:ss+hh:mm |
1999-01-01T23:01:01+01:00 |
YYYY-MM-DDThh:mm:ss-hh:mm |
1999-01-01T23:01:01-08:00 |
YYYY-MM-DDThh:mm:ssZ |
1999-01-01T23:01:01Z |
Asignaciones de tipos de datos
En la siguiente tabla, se incluye una lista de los tipos de datos de Salesforce con los tipos de CDAP correspondientes.
Tipo de datos de Salesforce | Tipo de datos del esquema de CDAP |
---|---|
_bool |
boolean |
_int |
int |
_long |
long |
_double , currency , percent ,
geolocation (latitud), geolocation
(longitud) |
double |
date |
date |
datetime |
timestamp (microsegundos) |
time |
time (microsegundos) |
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 |
json |
string |
complexvalue |
string |
Casos de uso
Consulta los siguientes casos de uso de la fuente por lotes de Salesforce:
Requisitos previos para actualizar a la versión 1.7.0 del complemento de Salesforce
La versión 1.7.0 del complemento de Salesforce está disponible en la versión 6.8.0 y posteriores de Cloud Data Fusion. En esta versión, se actualizó la versión 1 de la API de Bulk de Salesforce de la versión 62.0 a la 64.0.
Salesforce dejó de usar ciertos campos en la versión 64.0 de la API. La actualización a la versión 1.7.0 del complemento de Salesforce podría provocar errores en las canalizaciones que usan estos campos. Para asegurarte de que tus canalizaciones sigan funcionando, actualiza manualmente el esquema de la canalización para cargar un esquema nuevo o quitar los campos obsoletos.
Campos obsoletos en la versión 64.0 de la API de Salesforce
Salesforce dejó de admitir los siguientes campos en la versión 64.0 de la API:
Nombre del objeto | Nombres de campos |
---|---|
MobSecurityCertPinConfig | EffectiveDate |
Perfil | PermissionsAllowObjectDetectionTraining PermissionsAllowObjectDetection |
PermissionSet | PermissionsAllowObjectDetectionTraining PermissionsAllowObjectDetection |
PermissionSetLicense | MaximumPermissionsAllowObjectDetectionTraining MaximumPermissionsAllowObjectDetection |
UserPermissionAccess | PermissionsAllowObjectDetectionTraining PermissionsAllowObjectDetection |
MutingPermissionSet | PermissionsAllowObjectDetectionTraining PermissionsAllowObjectDetection |
Dominio | OptionsHstsHeaders |
Usuario | UserPreferencesHideInvoicesRedirectConfirmation UserPreferencesHideStatementsRedirectConfirmation |
UserChangeEvent | UserPreferencesHideInvoicesRedirectConfirmation UserPreferencesHideStatementsRedirectConfirmation |
Actualiza el esquema de la canalización
Si tu canalización usa campos obsoletos, actualiza el esquema de la canalización cargando un esquema nuevo o quitando los campos obsoletos:
Ve a la interfaz web de Cloud Data Fusion y haz clic en Lista.
Para ver las canalizaciones implementadas, haz clic en la pestaña Implementadas.
En el canal que deseas actualizar, haz clic en > Editar.
En la vista Studio, mantén el puntero sobre el complemento de origen de Salesforce y haz clic en Properties.
Se abrirá la ventana de configuración del complemento de Salesforce.
Para cargar un esquema nuevo, sigue estos pasos:
En la pestaña Esquema de salida, haz clic en > Borrar y, luego, en Validar. Esto carga el esquema más reciente de Salesforce.
Después de que se cargue el esquema, en la pestaña Esquema de salida, haz clic en > Propagar.
Esto actualiza automáticamente el esquema de todos los complementos posteriores en la canalización, lo que podría anular los cambios manuales del esquema en complementos como Wrangler.
Para quitar manualmente los campos obsoletos, sigue este paso:
- En la pestaña Esquema de salida, haz clic en para cada uno de los campos obsoletos. Esto quita los campos de todas las etapas posteriores.
Prácticas recomendadas
Para obtener más información sobre cómo mejorar el rendimiento en la fuente de procesamiento por lotes de Salesforce, consulta las prácticas recomendadas.