26
Realizando procesos de carga incremental exitosos con SQL Server 21 Enero 2015 (12 pm GMT -5) Alberto Rivera Resumen: En esta sesión, aprenderemos a garantizar un proceso de carga incremental óptimo, en una solución de Bodegas de Datos, con SQL Server Integration Services. Próximos Eventos Consolidando y Transformando mi data con Power Query 4 de Febrero José L Rivera Introdución a SSIS 11 de Febrero Carlos A Ulate Las mejores practicas e índices Columnstore 28 de Enero Warner Chaves Está por comenzar:

Realizando procesos de carga incremental exitosos con SQL Server

Embed Size (px)

Citation preview

Page 1: Realizando procesos de carga incremental exitosos con SQL Server

Realizando procesos de carga incremental exitosos con SQL Server

21 Enero 2015 (12 pm GMT -5)

Alberto Rivera

Resumen:

En esta sesión, aprenderemos a garantizar un

proceso de carga incremental óptimo, en una

solución de Bodegas de Datos, con SQL Server

Integration Services.

Próximos Eventos

Consolidando y Transformando

mi data con Power Query

4 de Febrero

José L Rivera

Introdución a SSIS

11 de Febrero

Carlos A Ulate

Las mejores practicas e índices

Columnstore

28 de Enero

Warner Chaves

Está por comenzar:

Page 2: Realizando procesos de carga incremental exitosos con SQL Server

Manténgase conectado a nosotros!

Visítenos en http://globalspanish.sqlpass.org

/SpanishPASSVC

lnkd.in/dtYBzev

/user/SpanishPASSVC

/SpanishPASSVC

Page 3: Realizando procesos de carga incremental exitosos con SQL Server
Page 4: Realizando procesos de carga incremental exitosos con SQL Server

4

Oportunidades de Voluntariado

PASS no pudiera existir sin personas apasionadas y

dedicadas de todas partes del mundo que dan de su

tiempo como voluntaries.

Se un voluntario ahora!!

Para identificar oportunidades locales visita

volunteer.sqlpass.org

Recuerda actualizar tu perfil en las secciones de

“MyVolunteering” y MyPASS para mas detalles.

Page 5: Realizando procesos de carga incremental exitosos con SQL Server

Sigan Participando!

• Obten tu membresia gratuita en sqlpass.org

• Linked In: http://www.sqlpass.org/linkedin

• Facebook: http://www.sqlpass.org/facebook

• Twitter: @SQLPASS

• PASS: http://www.sqlpass.org

Page 6: Realizando procesos de carga incremental exitosos con SQL Server

Realizando procesos de carga incremental exitosos con SQL Server

21 de Enero de 2015

Alberto Rivera Tavera

MVP – SQL Server

Twitter: @albertoSQL

Comunidad Intermezzo http://comunidadintermezzo.wordpress.com

Page 7: Realizando procesos de carga incremental exitosos con SQL Server

AGENDA

• Introducción a procesos incrementales

• Extracción de datos modificados

• Carga de datos modificados

Page 8: Realizando procesos de carga incremental exitosos con SQL Server

AGENDA

• Introducción a procesos incrementales

• Extracción de datos modificados

• Carga de datos modificados

Page 9: Realizando procesos de carga incremental exitosos con SQL Server

Ciclo de carga de una Bodega de datos

Data WarehouseStaging Database

ETL inserta o modifica

datos basados en los

cambios ocurridos

ETL extrae datos

nuevos y modificados

Usuarios modifican

datos desde app de

Negocio

Page 10: Realizando procesos de carga incremental exitosos con SQL Server

Dimensión Lentamente cambiante

TIPO 1

TIPO 2

TIPO 3

Key AltKey Name Phone City

101 C123 Mary 5551234 New York

Key AltKey Name Phone City

101 C123 Mary 5554321 New York

Key AltKey Name Phone City Current

101 C123 Mary 5551234 New York True

Key AltKey Name Phone City Current

101 C123 Mary 5551234 New York False

102 C123 Mary 5551234 Seattle True

Key AltKey Name Phone OriginalCity CurrentCity EffectiveDate

101 C123 Mary 5551234 New York Seattle 6/7/11

Key AltKey Name Phone OriginalCity CurrentCity EffectiveDate

101 C123 Mary 5551234 New York New York 1/1/00

Page 11: Realizando procesos de carga incremental exitosos con SQL Server

AGENDA

• Introducción a procesos incrementales

• Extracción de datos modificados

• Carga de datos modificados

Page 12: Realizando procesos de carga incremental exitosos con SQL Server

Opciones para extraer datos modificados

•Extraer todos los registros

•Almacenar una llave primaria

•Usar una columna de fecha y hora como marca de agua

•Usar Change Data Capture y Change Tracking

Page 13: Realizando procesos de carga incremental exitosos con SQL Server

Extraer filas basado en una columna de fecha y hora

1. Tenga en cuenta el tiempo actual

2. Recupere el último tiempo de extracción a partir de un registro de extracción

3. extraiga y transfiera los registros que se han modificado entre la última extracción y la hora

actual

4. Reemplace el valor almacenado de la última extracción con la fecha actual

Staging DatabaseData Source

12

34

Extraction Log

Page 14: Realizando procesos de carga incremental exitosos con SQL Server

DEMOColumna de Fecha y Hora

Page 15: Realizando procesos de carga incremental exitosos con SQL Server

Y si no tenemos la columna de Fecha y Hora??

15

Page 16: Realizando procesos de carga incremental exitosos con SQL Server

Change Data Capture

1. Habilite Change Data Capture

2. Asigne fecha de inicio y fin para registrar los números de la

secuencia

3. Maneje los números de secuencia nulos

4. Extraiga los cambios entre los números de secuencia

EXEC sys.sp_cdc_enable_db

EXEC sys.sp_cdc_enable_table @source_schema = N'dbo', @source_name = N'Customers',

@role_name = NULL, @supports_net_changes = 1

DECLARE @from_lsn binary(10), @to_lsn binary(10);

SET @from_lsn = sys.fn_cdc_map_time_to_lsn('smallest greater than', @StartDate)

SET @to_lsn = sys.fn_cdc_map_time_to_lsn('largest less than or equal', @EndDate)

IF (@from_lsn IS NULL) OR (@to_lsn IS NULL)

-- There may have been no transactions in the timeframe

SELECT * FROM cdc.fn_cdc_get_net_changes_dbo_Customers(@from_lsn, @to_lsn, 'all')

Page 17: Realizando procesos de carga incremental exitosos con SQL Server

DEMOChange Data Capture

Page 18: Realizando procesos de carga incremental exitosos con SQL Server

AGENDA

• Introducción a procesos incrementales

• Extracción de datos modificados

• Carga de datos modificados

Page 19: Realizando procesos de carga incremental exitosos con SQL Server

La transformación Lookup

Coincidencia No Coincidencia

Lookup

Update Insert

Page 20: Realizando procesos de carga incremental exitosos con SQL Server

DEMOTransformación Lookup

Page 21: Realizando procesos de carga incremental exitosos con SQL Server

Transformación “Slowly Changing Dimension”

Changing Attributes

(Type 1) Inferred members

SCD

OLE DB Command

to update existing

record

OLE DB

Destination for

new records

OLE DB Command

to insert minimal

record

Historical

Attributes

(Type 2)

Derived Column to

add current row

indicator column

OLE DB Command

to set existing

record’s current

row indicator to

false

Union All

Derived Column

sets current row

indicator to True

New records

Page 22: Realizando procesos de carga incremental exitosos con SQL Server

DEMOTransformación Slowly Changing Dimension

Page 23: Realizando procesos de carga incremental exitosos con SQL Server

Sentencia MERGE

MERGE INTO DW.dbo.FactSales as tgt

USING

(SELECT c.CustomerKey, s.OrderNo, s.Quantity, s.Amount

FROM Staging.dbo.Sales s

INNER JOIN DW.dbo.DimCustomer c ON s.CustomerID = c.CustomerBizKey)

AS src (CustomerKey, OrderNo, Quantity, Amount)

ON

(src.CustomerKey = tgt.CustomerKey

AND src.OrderNo = tgt.OrderNo)

WHEN MATCHED THEN

UPDATE

SET Quantity = src.Quantity, Amount = src.Amount

WHEN NOT MATCHED THEN

INSERT (CustomerKey, OrderNo, Quantity, Amount)

VALUES (src.CustomerKey, src.OrderNo, src.Quantity, src.Amount)

Destino

Criterio para

identificar datos que

coinciden

Acción ante

coincidencias

Acción ante NO

coincidencias

origen

Page 24: Realizando procesos de carga incremental exitosos con SQL Server

DEMOSentencia MERGE

Page 25: Realizando procesos de carga incremental exitosos con SQL Server

GRACIAS

Page 26: Realizando procesos de carga incremental exitosos con SQL Server

Las mejores practicas de Indices Columnstore

21 de Enero (12 pm GMT -5)

Warner Chaves

Resúmen:Los indices Columnstore fueron introducidos en SQL Server 2012 y

completamente cambian la manera en que podemos almacenar y

procesar los datos optimizando en formato columnar.Con SQL 2014 y

Azure SQL expandiendo el uso de estos indices, es importante tener

presente las mejores practicas que permiten sacar el maximo provecho a

esta tecnologia y los beneficios que ofrece.En esta sesion haremos una

rapida introduccion a los indices columnstore e inmediatamente

pasaremos a varios demos de como cargar datos, modificar el indice y

escribir consultas para obtener el mejor rendimiento posible de esta

tecnologia.

Próximo Evento