En esta presentación revisamos la tecnología de tablas temporales o mejor llamas tablas versionadas de sistema y la forma de incorporarlas a un ambiente de inteligencia de negocios con Data Warehouse. Empezamos describiendo como hacemos actualmente en un proyecto real y como se incorpora esta nueva tecnología. Presentada en el SQLSaturday BI 2017 de Costa Rica.
No Pierdas El Tiempo Tablas Temporales en data Warehouse
1. No pierdas el tiempo, implementa Tablas
Temporales en tu Data Warehouse
Javier Loria
JLoria@PrimusData.net
Ronald Hanna
Ronald@FullTechnology.com
/in/JavierSQL
@JavierSQL
https://javiersql.wordpress.com
https://www.facebook.com/JavierSQL/
http://www.fulltechnology.com
4. Ronald Hanna Q., desde el 2006 Gerencio Proyectos de
desarrollo e implementación de soluciones de inteligencia de
negocios en la empresa FullTechnology.
Soy certificado Microsoft en Inteligencia de negocios desde el
2013, y continúo día a día en conocimiento constante.
Ofreciendo servicios en diferentes países, como: Panamá, EEUU,
Ecuador, and Costa Rica.
* Mi experiencia y portafolio de servicios es
reflejada en las diferentes compañías donde se
ha enfocado nuestros proyectos en los
diferentes campos, como : Finanzas, industrias,
servicios, cadenas de restaurantes, farmacias,
entre otras.
Our Developers are certified in:
Microsoft, ITIL, ISTQB, MICIT.
Ronald
Hanna Q.
5. Javier Loria
Mentor de Primus Data
Arquitecto y Diseñador de Software
Conferenciante y Blogger
6. ¡Felicidad!
El sabor de la cerveza puede desencadenar la liberación de
dopamina en el cerebro.
Causante de las sensaciones placenteras
12. Data Warehouse
Un almacén de datos es una colección de datos
• orientada a temas,
• integrada,
• variable en el tiempo, y
• no volátil
que apoya el proceso de toma de decisiones de
la administración.
Definición de DW
https://javiersql.wordpress.com/2017/10/02/inteligencia-de-negocios-definiciones-de-data-warehouse/
21. Otras alternativas
Implementación de triggers
• Tiempo de implementación y desarrollo
• Sujeto a errores
• Criterios no considerados
Fotos o copia de la tabla
• ¿Considero todos los registros?
• ¿Qué filas cambiaron ?
• ¿Corrió el job?
• ¿Sigue funcionando?
23. Tablas Temporales
Consultas temporales
AS OF FROM TO BETWEEN CONTAINED
DML
SELECT
DML
INSERT-UPDATE-DELETE
DDL
CREATE TABLE ALTER TABLE
Nuevo
enfoque
Sin
cambios
Introducción
https://javiersql.wordpress.com/2017/10/05/sql-server-introduccion-a-tablas-temporales/
31. DML (1/3)
INSERT
• SysStartTime: Inicio transacción en tiempo UTC.
• SysEndTime: 9999-12-31 23:59:59.9999999
UPDATE
• Copia fila actual a tabla histórica con SysEndTime en
tiempo UTC.
• Actualiza fila en tabla actual con SysStartTime en tiempo
UTC Inicio de la transacción.
32. DML (2/3)
DELETE
•Copia fila actual a tabla histórica con SysEndTime en
tiempo UTC.
•Remueve la fila actual de la tabla temporal.
MERGE
•Se comporta como INSERT, UPDATE o DELETE para cada
una de las filas dependiendo de la acción aplicada.
33. DML (3/3)
SELECT
•Tradicional: Solo toma datos de la tabla actual.
•Si las columnas están HIDDEN NO las retorna
con SELECT *.
•La tabla histórica también se puede referenciar.
•… O usar las habilidades Temporales
36. FOR SYSTEM_TIME
• START <= <PointInTime> and END > <PointInTime>
AS OF <PointInTime>:
• START < <End> and END > <Begin>
FROM <Begin> TO <End>
• START <= <End> and END > <Begin>
BETWEEN <Begin> AND <End>
• START <= <End> and END >= <Begin>
CONTAINED IN (<Begin>, <End>)
• Todas las filas
ALL:
38. Limitaciones
• TRUNCATE TABLE no esta
soportado.
• INSERT/UPDATE no pueden
referenciar columnas de
periodo de sistema.
• ON DELETE/UPDATE CASCADE
NO esta soportado. (SQL 2017*)
• Replicación (Merge no
soportado)
• NO puede tener CONSTRAINTS
(PK, FKs, CHECKS, etc.)
• NO soporta Vistas Indexadas.
• NO soporta modificaciones
• PAGE Compressed
(Predeterminada)-Índice Cluster
sobre columnas Start-End
Tabla Temporal Tabla histórica
41. Un activo importante
La información es valiosa
• Ahorro económico y esfuerzo para creación
de tablas históricas para auditorías
• Información relevante del negocio para
toma de decisiones (Cambios de precios,
estrategias de ventas anteriores)
• Trazabilidad de los cambios
( ¿Qué pasó? , ¿ Quién lo hizo?)
43. ¡ Gracias !
Javier Loria
JLoria@PrimusData.net
/in/JavierSQL
@JavierSQL
https://javiersql.wordpress.com
https://www.facebook.com/JavierSQL/
Ronald Hanna
Ronald@FullTechnology.com
http://www.fulltechnology.com