# (Crono ETL) Nueva sentencia MERGE (breaking change)

7 de abril de 2022
Ver en GitHub

La versi贸n 22.14 de Crono ETL incorpora una novedad muy importante que lamentablemente introduce algunas incompatibilidades con el c贸digo anterior.

ES NECESARIO MIGRAR TODOS LOS PROCEDIMIENTOS DE CARGA QUE UTILICEN LA INSTRUCCION "LOAD"

Algunas consideraciones sobre esta migraci贸n:

  • La migraci贸n es necesaria, pero es r谩pida y sencilla.
  • Solo afecta a la instrucci贸n LOAD
  • La carga de vuestros DWH seguir谩 funcionando sin interrupciones, ya que los procedimientos implementados no se ven afectados.
  • El "problema" se mostrar谩 al intentar modificar un procedimiento existente. En ese momento, ser谩 necesario migrar ese procedimiento, pues la instrucci贸n LOAD no funcionar谩 o no lo har谩 exactamente igual que antes.
  • La recomendaci贸n es migrar todos los procedimientos cuanto antes.

En resumen:

Anteriormente se utilizaban unas "estrategias" personalizables para definir las estrategias de carga de cada proyecto. En esas estrateg铆as se defin铆an los campos de auditor铆a (fecha de inserci贸n, fecha de actualizaci贸n, etc.) y el tipo de carga (SCD1, SNAPSHOT, Incremental, etc.).

Sin embargo, la experiencia nos mostr贸 que todos los proyectos utilizaban las mismas estrategias, por lo que era redundante y confuso tener que definirlas en cada proyecto. Por este motivo, hemos decidido eliminar las estrategias, la instrucci贸n LOAD y ofrecer una alternativa m谩s sencilla que cubra todos los casos de uso (o al menos los m谩s habituales).

Para ello:

  • Se han a帽adido nuevas propiedades de proyecto para definir los campos de auditor铆a
  • Se han a帽adido funcionalidades a la instrucci贸n MERGE de Crono.

image

Ahora cualquier LOAD se puede sustituir por alguna de estas instrucciones:

  • MERGE CLONE (el antiguo "SNAPSHOT" o "carga completa")
  • MERGE SOFT DELETE (el antiguo "SDC1")
  • MERGE HISTORY (el antiguo "SCD2")
  • MERGE UPSERT (el antiguo "UPDATE OR INSERT")

Por supuesto, se pueden seguir utilizando

  • UPDATE
  • DELETE
  • DELETE AND INSERT
  • etc.

As铆 es el aspecto de las nuevas cargas:

image

Entendemos que como cualquier cambio o "breaking change" resulta molesto, pero hemos decidido asumir el inconveniente pensando en el futuro y valorando la simplicidad del nuevo c贸digo (ya no son necesarias las "estrategias").

Nos pondremos en contacto con todos vosotros para planificar la migraci贸n. Como siempre, pod茅is contactar con nosotros ante cualquier duda y problema.

Gracias por la comprensi贸n.

Ver en GitHub