Cargas Incrementales
Gestión de Cargas Incrementales en CRESTONE
Al trabajar con grandes volúmenes de datos en SAP y sistemas externos, suele ser ineficiente extraer el conjunto completo de datos en cada ocasión. En su lugar, las cargas incrementales permiten capturar únicamente los registros que han cambiado desde la última extracción exitosa. CRESTONE proporciona múltiples alternativas para implementar estrategias incrementales según el escenario de negocio, la fuente de datos y los requerimientos técnicos.
1. Uso de Campos de Fecha o Marca de Tiempo (Timestamp)
Si la tabla o vista de origen incluye un campo de marca de tiempo o de última modificación (por ejemplo, ERDAT, AEDAT en SAP), CRESTONE puede filtrar automáticamente la extracción basándose en variables dinámicas de fecha.
🔧 Configuración en el Nodo de Extracción
En la pestaña Source de un Nodo de Extracción:
- Cree variables que representen el rango de fechas deseado.
- Asígneles expresiones dinámicas utilizando sintaxis de Python envuelta en
{{ ... }}. - Haga referencia a dichas variables en la cláusula WHERE para controlar qué registros se extraen.
Por ejemplo:
| Variable | Expresión | Significado |
|---|---|---|
@startdate | {{ today().replace(day=1).strftime('%Y%m%d') }} | Primer día del mes actual |
@enddate | {{ ((today().replace(day=28) + timedelta(days=4)).replace(day=1) - timedelta(days=1)).strftime('%Y%m%d') }} | Último día del mes anterior |
Ejemplo de WHERE:
VBAK-ERDAT >= '@startdate'Dentro del código Python para la variable, las cadenas de texto deben encerrarse entre comillas simples ('...'), no dobles. Asimismo, al usar la variable en el SQL Editor, es importante encerrar '@variable' entre comillas simples dentro de la cláusula WHERE para evitar conflictos de sintaxis.
CRESTONE resolverá automáticamente estas variables en tiempo de ejecución durante la extracción.
✅ Ventajas
- Simple y flexible: la lógica se incorpora directamente en el nodo de extracción.
- Permite filtrado dinámico sin necesidad de actualizaciones manuales de fecha.
- Garantiza consistencia al programar cargas incrementales o mensuales.
⚙️ Consideraciones
- Las expresiones de fecha deben tener sintaxis de Python válida (evaluada dentro del runtime de CRESTONE).
- El campo de marca de tiempo utilizado en el filtro (por ejemplo,
ERDAT,AEDAT) debe estar actualizado de forma confiable e indexado en el sistema de origen. - Para cargas históricas, puede definir valores estáticos (por ejemplo,
20250101) antes de cambiar a expresiones dinámicas. - Para evitar posibles duplicados, asegúrese de que la tabla de destino se actualice o trunque adecuadamente antes de cada carga incremental, especialmente cuando se utilizan rangos de fechas superpuestos.
Cargando imagen...
alt text
Cargando imagen...
alt text
2. Extracción Delta con Extractores Estándar de SAP
Para ciertos módulos de SAP (FI, CO, MM, SD, etc.), SAP proporciona extractores estándar habilitados para delta (por ejemplo, 2LIS_11_VAHDR, 2LIS_02_HDR, 0FI_AR_4).
Estos extractores implementan la lógica delta nativa de SAP mediante colas delta (delta queues) y punteros de modificación (change pointers).
CRESTONE se integra directamente con estos extractores a través de una conexión RFC, permitiendo la recuperación automática únicamente de registros nuevos o modificados.
🔧 Configuración en CRESTONE
En la Configuración del Nodo de Extracción, seleccione:
- Source:
SAP ABAP - Type:
Extractor - Context:
DataSources/Extractors [SAP] - Extractor: p. ej.,
2LIS_11_VAHDR(Sales Document Header)
Una vez seleccionado, el nodo detecta automáticamente si el extractor soporta modo delta. Cuando se habilita Delta Update, CRESTONE ejecuta:
- Inicialización (Initialization): una extracción completa de los datos existentes.
- Cargas Delta (Delta Loads): extracciones posteriores únicamente para registros nuevos o modificados.
Durante la inicialización, CRESTONE registra una suscripción en el mecanismo delta de SAP. Puede supervisar su estado en la pestaña Delta Config del nodo:
| Campo | Descripción |
|---|---|
| Subscription ID | Identificador único de la suscripción delta en CRESTONE |
| Subscription name | Nombre lógico utilizado para identificar el proceso delta |
| Pointer | Almacena el último punto de control de extracción (puntero delta de SAP) |
| Last execution | Marca de tiempo de la última extracción exitosa |
Ejemplo (desde la interfaz de CRESTONE):
Subscription ID: CRb058ffd2-abc6-4ebe-9f2b-fac7fe048591
Pointer: 20251012003005.000000000
Last execution: 12/10/2025 00:30:05 UTCEsto garantiza que cada extracción continúe desde el último delta procesado, manteniendo la consistencia de los datos entre ejecuciones.
✅ Ventajas
- Enfoque nativo de SAP con lógica delta incorporada.
- Rastrea automáticamente registros nuevos y modificados mediante las colas delta de SAP.
- Reduce el esfuerzo de desarrollo y mantenimiento.
- Se integra perfectamente con las tablas de control de CRESTONE para la gestión de punteros.
⚙️ Consideraciones
- No todos los extractores soportan actualizaciones delta.
- La cola delta (
RSA7) debe inicializarse y monitorearse adecuadamente en SAP. - Puede requerirse una reinicialización si el puntero se elimina o si ocurren inconsistencias en los datos.
🧩 Ejemplos Comunes de Extractores Habilitados para Delta
| Módulo | Extractor | Descripción |
|---|---|---|
| SD | 2LIS_11_VAHDR | Sales Document Header |
| SD | 2LIS_11_VAITM | Sales Document Item |
| MM | 2LIS_02_HDR | Purchase Order Header |
| MM | 2LIS_02_ITM | Purchase Order Item |
| FI | 0FI_GL_4 | General Ledger Line Items |
| FI | 0FI_AR_4 / 0FI_AP_4 | Accounts Receivable / Payable Line Items |
| CO | 0CO_OM_CCA_1 | Cost Centers – Actual Costs |
🧭 Gestión de Punteros Delta
CRESTONE proporciona una interfaz integrada para controlar y supervisar el puntero delta directamente desde la pestaña Delta Config:
| Acción | Descripción |
|---|---|
| Delete subscription | Restablece la inicialización delta. El puntero se pone en cero y se elimina de la tabla de control. Se utiliza cuando se necesita reinicializar el extractor. |
| Update delta without extraction data | Actualiza el puntero delta en CRESTONE para coincidir con la posición delta actual en SAP sin extraer registros nuevos. Resulta útil para sincronización o para omitir deltas erróneos. |
| Preview | Muestra una simulación de la próxima carga delta, indicando qué registros se incluirían antes de la ejecución. |
Esta capa de administración proporciona transparencia y control sobre el ciclo de vida del delta, sin requerir acceso a las transacciones RSA7 o RSA3 en SAP.
🧩 Flujo Típico en CRESTONE
- Inicialización: extracción de datos completa → creación de suscripción y puntero.
- Carga delta: recupera únicamente registros nuevos/modificados desde el último puntero.
- Monitoreo: actualización automática del puntero tras cada ejecución exitosa.
- Reinicialización: restablecimiento manual del puntero en caso de ser necesario.
Con esta configuración, CRESTONE garantiza una extracción delta robusta, auditable y totalmente automatizada para los extractores estándar de SAP.
Cargando imagen...
alt text
Cargando imagen...
alt text
3. Captura de Datos Modificados en Tablas (CDC) con Documentos de Modificación de SAP
CRESTONE admite Change Data Capture (CDC) mediante el marco de documentos de modificación (change documents) de SAP y tablas de control (CDHDR, CDPOS), o mediante punteros directos a nivel de tabla para datos maestros y transaccionales estándar.
Este enfoque rastrea inserciones, actualizaciones y eliminaciones efectuadas sobre objetos de negocio o tablas para los cuales el seguimiento de modificaciones se encuentra activo en SAP.
🔧 Configuración en CRESTONE
En la Configuración del Nodo de Extracción, seleccione:
- Source:
SAP ABAP - Type:
Table CDC - Base Table: p. ej.,
MAKT(Material Descriptions)
CRESTONE mapeará automáticamente los campos de la tabla y habilitará el modo CDC Config, donde se mantiene un puntero para la extracción incremental.
Una vez ejecutada la carga inicial (inicialización), CRESTONE almacena un puntero que representa la marca de tiempo de la última extracción exitosa:
| Campo | Descripción |
|---|---|
| Pointer | Indica el último registro procesado o la marca de tiempo utilizada para la continuación de CDC. |
| Last execution | Marca de tiempo de la última ejecución exitosa de CDC. |
| Status | Muestra si el proceso CDC está Initialized o pendiente. |
Ejemplo (desde la interfaz de CRESTONE):
Pointer: 20251001151851
Last execution: 20251001151851
Status: InitializedEsto garantiza que únicamente los registros nuevos o modificados desde el último puntero sean capturados en las extracciones posteriores.
🧭 Gestión de Punteros CDC
CRESTONE ofrece una interfaz de control similar a la de los extractores delta para gestionar el ciclo de vida del puntero CDC:
| Acción | Descripción |
|---|---|
| Reset Pointer | Reinicializa el proceso CDC restableciendo el puntero a cero y limpiando su registro en la tabla de control. Utilice esta opción cuando se requiera una recarga completa. |
| Update Pointer without Extraction | Actualiza la posición del puntero sin realizar una extracción de datos. Útil para sincronización o para omitir una ventana de datos conocida. |
Esto permite a los usuarios controlar o realinear manualmente el proceso CDC sin necesidad de acceder a la interfaz SAP GUI.
✅ Ventajas
- Captura tanto registros nuevos como modificados con alta precisión.
- Completamente alineado con la lógica de documentos de modificación de SAP, garantizando coherencia con las transacciones comerciales.
- Mantiene un puntero interno para cargas incrementales eficientes.
- Puede aplicarse a datos maestros (p. ej.,
MARA,MAKT,KNA1) o datos transaccionales (p. ej.,VBAK,VBRK) donde la lógica CDC esté disponible.
⚙️ Consideraciones
- Requiere que el seguimiento de documentos de modificación esté habilitado para el objeto SAP correspondiente.
- No está disponible para todas las tablas: solo para aquellas registradas en el marco de documentos de modificación de SAP o compatibles con la lógica CDC basada en tablas.
- Puede generar carga de sistema adicional en tablas de modificaciones con muy alta actividad.
- Una gestión adecuada de punteros es esencial para evitar duplicaciones o vacíos de información.
Al aprovechar Table CDC, CRESTONE proporciona un mecanismo granular y de baja latencia para detectar y replicar modificaciones de datos desde tablas SAP, asegurando una sincronización casi en tiempo real sin requerir una recarga completa de datos.
Cargando imagen...
alt text
Cargando imagen...
alt text
4. Enfoques Híbridos
En entornos complejos, se puede aplicar una combinación de estrategias. Por ejemplo:
- Utilizar marcas de tiempo (timestamps) para tablas de datos maestros.
- Utilizar Extractores Estándar de SAP para datos transaccionales.
- Utilizar CDC con documentos de modificación para objetos que requieran el historial completo de cambios.
✅ El marco de cargas incrementales de CRESTONE se adapta a cualquier módulo de SAP —desde simples actualizaciones de datos maestros hasta historiales transaccionales complejos— minimizando la transferencia de datos y garantizando la consistencia en todas las cargas.
Contenidos de esta sección
Getting Started
Guía y documentación técnica detallada.
Setup
Procedure to Establish the Connection Between CRESTONE and SAP
Quickstart
Learn how to quickly set up your first data synchronization job in Crestone. This guide covers creating connections, nodes, and jobs to automate data flow between SAP and AWS.
Sections
Navigate the core functional sections of Crestone.
Security Overview
Overview of CRESTONE security model, architecture, data protection, access controls, and compliance.