24 hop español - utilizando cdc para cargar dw on line - miguel egea

24
Expositor: Miguel Egea MCITP, MCSE Moderador: Freddy Angarita Datawarehouse en tiempo real con CDC Donde tiempo real quiere decir tiempo razonable

Upload: spanishpassvc

Post on 06-Jul-2015

218 views

Category:

Data & Analytics


5 download

DESCRIPTION

Acercarnos al tiempo real en la carga completa de datos cuando ha de existir un DW o incluso un área de staging es un proceso que todos tenemos que implementar en ciertas ocasiones. En la charla veremos los trucos y patrones que pueden usarse para conseguir este objetivo

TRANSCRIPT

Page 1: 24 HOP Español - Utilizando cdc para cargar dw on line - Miguel Egea

Expositor: Miguel Egea MCITP, MCSE

Moderador: Freddy Angarita

Datawarehouse en tiempo real

con CDCDonde tiempo real quiere decir tiempo razonable

Page 2: 24 HOP Español - Utilizando cdc para cargar dw on line - Miguel Egea

Gracias a nuestros auspiciadores

Database Security as Easy as A-B-C

http://www.greensql.com

Hardcore Developer and IT Training

http://www.pluralsight.com

SQL Server PerformanceTry PlanExplorer today!

http://www.sqlsentry.com

Page 3: 24 HOP Español - Utilizando cdc para cargar dw on line - Miguel Egea

Próximos SQL Saturday

24 de Enero de 2015 https://www.sqlsaturday.com/346/register.aspx

18 de Abril de 2015 https://www.sqlsaturday.com/368/register.aspx

9 de Mayo de 2015 https://www.sqlsaturday.com/373/register.aspx

6 de Diciembre de 2014 https://www.sqlsaturday.com/351/register.aspx

Page 4: 24 HOP Español - Utilizando cdc para cargar dw on line - Miguel Egea

4

Capítulo Global PASS en Español

4

Reuniones semanales todos los miércoles a

las 12PM UTC-5 (Hora de Colombia)

https://www.facebook.com/SpanishPASSVC

Page 5: 24 HOP Español - Utilizando cdc para cargar dw on line - Miguel Egea

5

Asistencia Técnica

Si requiere asistenciadurante la sesión debe usar la sección de preguntas que esta en el menú de la derecha.

Use el botón de Zoom para ajustar su pantalla al tamaño deseado

Escriba sus preguntas en la sección de preguntas que esta en el menú de la derecha

Page 6: 24 HOP Español - Utilizando cdc para cargar dw on line - Miguel Egea

6

Miguel Egea

SQL Server MVP desde 2001, trabaja como mentor en SolidQ en el

departamento de BI. Es ponente habitual en eventos de comunidad de habla

hispana. Apasionado de la tecnología en general y de la relacionada con base

de datos en particular.

6

Page 7: 24 HOP Español - Utilizando cdc para cargar dw on line - Miguel Egea

7

Datawarehouse en tiempo real con CDC

Normalmente se asocia un Datawarehouse con una carga nocturna, pero ¿que

pasa si necesitamos dato mucho mas fresco?

12/3/2014|

Footer Goes Here7 |

Page 8: 24 HOP Español - Utilizando cdc para cargar dw on line - Miguel Egea

8

Suposiciones sobre conocimientos

BI Familiar con DWH y Datamarts

Modelado

Kimball, Inmon, integración, Dimensiones

lentamente cambiantes

Miembros inferidos

Relacional

Funcionamiento del log de transacciones y estructuras básicas de administración de SQL Server

Page 9: 24 HOP Español - Utilizando cdc para cargar dw on line - Miguel Egea

9

Tecnologias disponibles

Objetivo detectar elementos nuevos, modificados o borrados rápidamente

Change Tracking

Timestamp columns

Change Data Capture

Pero no todo es tecnología, muchas veces lo más importante es el sentido

común.

Page 10: 24 HOP Español - Utilizando cdc para cargar dw on line - Miguel Egea

10

Algunas aristas del problema

Detectar cambios es “fácil”

Determinar como cambios en tablas individuales afectan a cambios en dimensiones no es

tan inmediato

¿Detectar cambios es suficientemente rápido?

Aquí es donde la tecnología se pone de nuestro lado… de alguna forma

Page 11: 24 HOP Español - Utilizando cdc para cargar dw on line - Miguel Egea

11

¡Que manía con detectar cambios!

10 años de datos

600.000.00 filas

En un año detectamos 60 M filas

60 millones /año 5 millones/mes 170,000 filas/ dia

Para 8 horas de datos

21,000 filas/ hora

¿Es viable cargar 21,000 filas en una hora?¿Es viable cargar 350 filas por minuto?¿Es viable cargar 6 filas por segundo?

Page 12: 24 HOP Español - Utilizando cdc para cargar dw on line - Miguel Egea

12

Tecnologías que pueden ayudar

ChangeTracking

• Disponible incluso en Express

Page 13: 24 HOP Español - Utilizando cdc para cargar dw on line - Miguel Egea

13

Tecnologías que pueden ayudar II

Origen

• Algunas veces los propios orígenes ya mantienen historia de cambios

Columnas timestamp

• El propio origen contiene una columna timestamp

Columna fecha

• El propio origen tiene una columna de fecha ultima modificación

Columnas autoincrementales

• Pero solo son útiles para registros nuevos no para modificaciones

Page 14: 24 HOP Español - Utilizando cdc para cargar dw on line - Miguel Egea

14

Change Data Capture

• Basado en LogReader• Se crean tablas en el esquema CDC• SSIS proporciona componentes

manejarlos

Page 15: 24 HOP Español - Utilizando cdc para cargar dw on line - Miguel Egea

15

Configurando CDC

DEMO

Page 16: 24 HOP Español - Utilizando cdc para cargar dw on line - Miguel Egea

16

CDC en Integration Services

Demo de valientes… desde el principio

Page 17: 24 HOP Español - Utilizando cdc para cargar dw on line - Miguel Egea

17

¿Qué opináis del área de staging?

No es necesaria si

El origen de datos es solo 1

O son varios pero todos SQL (salvo collation)

O no tengo espacio en los discos

O no me gusta nada.

Es necesario

Cuestión de gustos ¿Para mi siempre?

Solo si tengo que hacer integración y limpieza

Page 18: 24 HOP Español - Utilizando cdc para cargar dw on line - Miguel Egea

18

CDC y SCD2 Sin área de staging

• Sobre el copo de nieve Producto-Subcategoría-Categoría

Suponemos que todo son SCD2

• Crear una nueva versión de UN producto

• Cerrar la versión anterior

¿Qué supone un cambio en el nombre del producto?

• Cerrar la versión de VARIOS productos

¿Qué supone un cambio en subcategoría?

• Cerrar la versión de MUCHOS productos

¿Qué supone un cambio en Categoría?

• Supone un LIO MUY GORDO.

¿Qué supone un cambio en más de un atributo?

Page 19: 24 HOP Español - Utilizando cdc para cargar dw on line - Miguel Egea

19

DEMO

UN LIO MUY GORDO

Page 20: 24 HOP Español - Utilizando cdc para cargar dw on line - Miguel Egea

20

CDC y SCD2 con Staging “SolidQ framework Style”

• Siempre usamos área de staging separando E-T-L

• Convertir 3 tablas en 1 es una parte de T, en nuestro caso bastante trivial (solo left join)

• Los datos desde Origen a STG son expuestos exclusivamente a través de vistas (al esquema STG)

• Los datos desde E-T se leen de vistas y se escriben en el esquema ETL de la bbdd de Staging

• Los datos de T hasta L se exponen mediante vistas

• Hay un conjunto de naming conventions

SolidQ Framework significa (muy muy resumido)

• Tabla de productos a.stg Productos,

Mantenemos la relación 1 a 1

• El proceso T es bastante simple en este caso

Creamos una vista como toda transformación

• Para el ejemplo yo lo voy a hacer “a mano”. Habitualmente lo hacemos de forma automática con nuestras propias herramientas

Simplemente Ejecutamos el proceso de Carga

Page 21: 24 HOP Español - Utilizando cdc para cargar dw on line - Miguel Egea

21

Demo

Se convierte en algo bastante trivial.

Page 22: 24 HOP Español - Utilizando cdc para cargar dw on line - Miguel Egea

Preguntas?

Page 23: 24 HOP Español - Utilizando cdc para cargar dw on line - Miguel Egea

El Recetario de Restore

Warner Chavez, MCM

A continuación …

Page 24: 24 HOP Español - Utilizando cdc para cargar dw on line - Miguel Egea

Gracias por participar