Skip to main content

Realizar extracciones y eliminaciones de datos

Objetivos de aprendizaje

Después de completar esta unidad, podrá:

  • Utilizar el mecanismo de eliminación de datos de API masiva de Salesforce para afectar al desempeño de forma positiva al trabajar con grandes volúmenes de datos.
  • Utilizar la fragmentación de PK para combatir el desempeño lento al extraer grandes cantidades de datos desde su organización.
  • Comprender las ventajas del truncado de registros bajo objetos personalizados para acelerar la eliminación.

Eliminación y extracción con API masiva

Cuando se trata de su organización de Salesforce, la gestión de datos está siempre a la cabeza de su lista de prioridades. Parte de esta gestión implica la eliminación y extracción de datos. Además, igual que con la carga de grandes volúmenes de datos, API masiva es útil cuando se trata de la eliminación o extracción de LDV. Cuando existe un proceso que implica la eliminación de un millón o más registros, la opción de eliminación irrecuperable de API masiva puede hacer magia.

Eliminación recuperable frente a eliminación irrecuperable

El mecanismo de eliminación de datos de Salesforce puede tener un profundo efecto sobre el desempeño de grandes volúmenes de datos. Salesforce utiliza una papelera para datos que los usuarios eliminan. En vez de eliminar los datos, se marcan como eliminados y son visibles en la papelera. Este proceso se denomina eliminación recuperable. Cuando los datos se eliminan con capacidad de recuperación, aún afecta al desempeño de la base de datos porque aún están en la organización, y los registros eliminados se deben excluir de cualquier consulta.

Los datos permanecen en la papelera durante 15 días, o hasta que la papelera alcance un tamaño específico. Los datos se eliminan a continuación físicamente de la base de datos una vez alcanzados los límites de tiempo o tamaño, o cuando se vacía la papelera utilizando la interfaz de usuario, la API o Apex.

API masiva admite una opción de eliminación irrecuperable (eliminación física), que permite a los registros omitir la papelera y estar inmediatamente disponibles para la eliminación. El uso de la función de eliminación irrecuperable de API masiva es una estrategia recomendada para la eliminación de grandes volúmenes de datos para liberar espacio lo más pronto posible y evitar que material ajeno afecte al desempeño. Tenga en cuenta que la opción de eliminación irrecuperable está desactivada de forma predeterminada y se debe activar por un administrador.

Fragmentación de datos

Al extraer datos con API masiva, las consultas se dividen en 100.000 fragmentos de registros de forma predeterminada: puede utilizar el campo de encabezado chunkSize para configurar fragmentos más pequeños, o unos más grandes hasta 250.000. Los tamaños de fragmentos más grandes utilizan menos lotes de API masiva, pero podrían no realizarse también. Es posible que necesite experimentar un poco para determinar el tamaño de fragmento óptimo.

En volúmenes extremadamente altos (cientos de millones de registros), la definición de estos fragmentos filtrando en valores de campo podría no ser práctica. El número de filas que se devuelven podría ser superior al umbral de selectividad del optimizador de consulta de Salesforce. El resultado podría ser una exploración completa de tablas y un desempeño lento, o incluso fallos. A continuación necesita implementar una estrategia diferente.

Uso de fragmentación de PK

Por lo que si el filtrado de atributos no le ayuda a dividir los datos en fragmentos suficientemente pequeños, ¿qué puede hacer? Utilice Fragmentos de PK para gestionar extracciones de conjuntos de datos extra grandes. PK representa Clave principal (el Id. de registro del objeto) que siempre está indexado. La fragmentación de PK divide consultas masivas en tablas muy grandes en fragmentos basados en los Id. de registro de los registros consultados.

Active la fragmentación de PK al consultar tablas con más de 10 millones de registros o cuando una consulta masiva agota el tiempo de espera de forma coherente. La fragmentación de PK es una función compatible de la API masiva de Salesforce, por lo que realiza todo el trabajo de división de las consultas en fragmentos gestionables. Solo ingrese algunos parámetros en su trabajo de API masiva, y la plataforma divide automáticamente la consulta en fragmentos separados, ejecuta una consulta para cada fragmento y devuelve los datos.

Puede utilizar Fragmentación de PK con la mayoría de objetos estándar. Es compatible con Cuenta, Campaña, Miembro de campaña, Caso, Contacto, Prospecto, Historial de inicio de sesión, Oportunidad, Tarea y Usuario, así como todos los objetos personalizados. Para activar la función, especifique el encabezado Sforce-Enable-PKChunking en la solicitud de trabajo para su consulta de API masiva.

Para elegir un tamaño de fragmento, simplemente especifíquelo en el encabezado. Por ejemplo, este encabezado activa la fragmentación de PK con un tamaño de fragmento de 50.000 registros: Sforce-Enable-PKChunking: chunkSize=50000. Cada fragmento se procesa como un lote separado que cuenta en su límite diario, y su resultado se debe descargar por separado. Puede realizar el filtrado mientras utiliza fragmentación de PK incluyendo una cláusula WHERE en la consulta de API masiva. Utilizando este método, puede haber menos registros devueltos para un fragmento que el número que especificó en chunkSize.

Nota

Si está consultando bastantes menos registros que 10 millones, puede practicar la fragmentación de PK estableciendo chunkSize como un número más pequeño que el número de registros que está consultando Por ejemplo, Sforce-Enable-PKChunking: chunkSize=1000. Obtendrá una división de consulta en múltiples lotes y verá la fragmentación de PK en acción.

Cuando se fragmenta una consulta con éxito, el estado del lote original se muestra como NOT_PROCESSED. Si la fragmentación falla, el estado del lote original se muestra como FAILED, pero cualquier lote fragmentado que se colocó en cola con éxito durante el intento de fragmentación se procesa como normal. Cuando el estado del lote original cambia a NOT_PROCESSED, monitoree los lotes siguientes. Puede recuperar los resultados desde cada lote siguiente una vez completado. A continuación puede guardar el trabajo de forma segura.

Truncamiento

Si desea eliminar registros en objetos personalizados de una organización de sandbox de inmediato, puede probar truncar esos objetos personalizados. El truncamiento de objetos personalizados es una forma rápida de eliminar de forma permanente todos los registros de un objeto personalizado, mientras se mantienen el objeto y sus metadatos intactos para futuros usos.

El truncamiento de un objeto personalizado borra todos los registros actualmente en la papelera del objeto personalizado; el historial del objeto personalizado y eventos relacionados, tareas, notas y archivos adjuntos para cada registro eliminado.

Nota

El truncamiento de objetos personalizado causa algunos cambios irreversibles en el objeto truncado y sus registros. No se pueden devolver a su estado original.

El truncamiento es útil, por ejemplo, si creó un objeto personalizado y lo llenó con registros de prueba. Cuando haya finalizado con los datos de prueba, puede truncar el objeto para depurar los registros de prueba, pero mantener el objeto y ponerlo en producción. Ésto es mucho más rápido que la eliminación por lotes de registros y posiblemente la recreación del objeto.

Este es el sencillo proceso de configuración:

  1. En el cuadro de Búsqueda rápida, ingrese User Interface (Interfaz de usuario) y seleccione User Interface (nota: se encuentra al final de la lista).
  2. En la sección Setup (Configuración) (entre Name Settings [Configuración de nombre] y Advanced [Opciones avanzadas]), marque la opción Enable Custom Object Truncate (Habilitar truncamiento de objeto personalizado).
  3. Haga clic en Guardar.

Al truncar un objeto personalizado, se eliminan de forma permanente todos sus registros. No podrá recuperar los registros desde la Papelera. Se mostrará una copia del objeto truncado en la lista Objetos eliminados durante 15 días (durante este período, el objeto y sus registros se seguirán teniendo en cuenta en los límites de su organización) y, luego, se eliminarán el objeto copiado y sus registros.

No puede truncar objetos estándar u objetos personalizados a los que se hace referencia por otro objeto a través de un campo de búsqueda, o que están en el lado principal de una relación principal-detalles, a los que se hace referencia en una instantánea de creación de reporte, que tienen un índice personalizado o un Id. externo, o que tiene tablas reducidas activadas. No puede truncar objetos personalizados cuando su organización haya alcanzado su límite en objetos personalizados permitidos.

El uso de estrategias como el truncamiento, junto con fragmentación de PK y la eliminación irrecuperable de API masiva, le ayuda a evitar que grandes volúmenes de datos ensucien su organización. Emplear esto con regularidad, y según sea necesario, es una práctica sensata para mantener la solidez del desempeño.

Recursos

Comparta sus comentarios de Trailhead en la Ayuda de Salesforce.

Nos encantaría saber más sobre su experiencia con Trailhead. Ahora puede acceder al nuevo formulario de comentarios en cualquier momento en el sitio de Ayuda de Salesforce.

Más información Continuar a Compartir comentarios