Top Banner
Antonio Soto Antonio Soto [email protected] SQL Server MCT SQL Server MCT
25

Antonio SotoAntonio Soto [email protected] SQL Server MCTSQL Server MCT.

Feb 16, 2015

Download

Documents

Jovita Cajigas
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Antonio SotoAntonio Soto asoto@solidq.com SQL Server MCTSQL Server MCT.

Antonio SotoAntonio [email protected] SQL Server MCTSQL Server MCT

Page 2: Antonio SotoAntonio Soto asoto@solidq.com SQL Server MCTSQL Server MCT.

Datawarehouse(SQL Server, Oracle,

DB2, Teradata)

SQL/Oracle

SAP/Dynamics

Sistemas Propietario

sTexto XML

Integration Services

InformesDashboard

sCuadros

de MandoExcel

HerramientaBI

Analysis Services

Page 3: Antonio SotoAntonio Soto asoto@solidq.com SQL Server MCTSQL Server MCT.

AsumimosAsumimosExperiencia con SSIS y SSASExperiencia con SSIS y SSAS

ObjetivosObjetivosDiscutir el diseño, rendimiento y escalabilidad para construtir Discutir el diseño, rendimiento y escalabilidad para construtir paquetes ETL y cubos (UDMs)paquetes ETL y cubos (UDMs)Buenas PrácticasBuenas PrácticasErrores ComunesErrores Comunes

Page 5: Antonio SotoAntonio Soto asoto@solidq.com SQL Server MCTSQL Server MCT.

Integration ServicesPequeña IntroducciónPrincipios del Buen Diseño de PaquetesComponent DrilldownOptimización de Rendimiento

Analysis ServicesIntroducción a UDM Buenas Prácticas de diseño de UDMTips de Rendimiento

Page 6: Antonio SotoAntonio Soto asoto@solidq.com SQL Server MCTSQL Server MCT.

Introducido en SQL Server 2005El sucesor de Data Transformation ServicesLa plataforma para una nueva genración de tecnologías de integración de alto rendimiento

Page 7: Antonio SotoAntonio Soto asoto@solidq.com SQL Server MCTSQL Server MCT.

Datos Call Center: semi estructurados

Datos propietarios:ficheros binarios

Base de Datos

ETL Almacén

Informes

Datos Móviles

Minería de Datos

Alertas y escalación

•Integración y almacenamiento requiren operaciones y almacenamiento intermedio.•La preparación de datos necesita de herramientas diferentes, en muchos casos incompatibles.•Reporting y escalación son procesos lentos, retrasando las respuestas.•Con grandes volúmenes de datos, este escenario poco manejable.

CodificaciónManual

Área Intermedia

Minería de Texto

ETL Área intermedia

Limpiezay

ETL

Área Intermedia

ETL

Page 8: Antonio SotoAntonio Soto asoto@solidq.com SQL Server MCTSQL Server MCT.

Call center: Datos Semi

Datos propietarios: ficheros binarios

Base de datos

•Integración y almacenamiento en una operación sencilla y fácilmente administrable.•Origen, preparación y carga de daos en un único proceso auditable.•Reporting y escalación pueden paralelizarse con la carga del almacén.•Puede escalar a requisitos muy altos de complejidad y carga.

SQL Server Integration Services

Minería de texto

Origen Personalizado

Orígenes Estándard

Limpieza de Datos

Mezclas

Minería de Datos

Almacén

Informes

Datos Móviles

Alertas y escalación

Page 9: Antonio SotoAntonio Soto asoto@solidq.com SQL Server MCTSQL Server MCT.

Flujo de Control (Motor de Ejecución)Motor de Flujos de Trabajo paralelosEjecuta contenedores y Tareas

Flujo de Datos (“Pipeline”)Tarea Especial del flujo de controlA high-performance data pipelineApplies graphs of components to data movementLos Componentes pueden ser orígenes de datos, transformaciones y destinosPosibilidad de crear operaciones en paralelo

Page 10: Antonio SotoAntonio Soto asoto@solidq.com SQL Server MCTSQL Server MCT.

Introducción a Integration ServicesPrincipios del Buen Diseño de PaquetesDetalle de los ComponentesOptimización de Rendimiento

Page 11: Antonio SotoAntonio Soto asoto@solidq.com SQL Server MCTSQL Server MCT.

Seguir las guías: Microsoft Development GuidelinesDiseño iterativo, desarrollo y pruebas

Conocer el NegocioComprender las personas y los procesos es crítico para el éxitoUna excelente referencia:“Data Warehouse ETL Toolkit” de Kimball

Pensar en toda la soluciónContención de recursos, ventana de procesamiento, …SSIS no soluciona un mal diseño de base de datosSe siguen aplicando los “viejos” principios – e.j. ¿cargamos con o sin índices?

Consideraciones de PlataformaSe ejecutará en IA64 / X64?

BIDS no en IA64 – ¿Cómo depuraremos?Está el driver OLE-DB XXX disponible para IA64?

Memoria y uso de recursos en plataformas diferentes

Page 12: Antonio SotoAntonio Soto asoto@solidq.com SQL Server MCTSQL Server MCT.

Modularidad de ProcesosRomper ETL complejos en paquetes lógicos diferentes (vs. Diseño monolítico)Mejora la experiencia de desarrollo y depuración

Modularidad de PaqueteSeparar subprocesos dentro del paquete en diferentes contenedoresMás elegante y sencillo de desarrollarPodemos deshabilitar contenedores enteros cuando estamos depurando

Modularidad de ComponenteUtilizar Scripts de Tarea y Transformación para problemas que no sean repetitivosCrear componentes personalizados para maximizar la reutilización

Page 13: Antonio SotoAntonio Soto asoto@solidq.com SQL Server MCTSQL Server MCT.
Page 14: Antonio SotoAntonio Soto asoto@solidq.com SQL Server MCTSQL Server MCT.
Page 15: Antonio SotoAntonio Soto asoto@solidq.com SQL Server MCTSQL Server MCT.

Usar Configuraciones de PaqueteDesde el principio

Nos facilitará las cosas en el despliegue

Simplificar el despliegue Desarrollo QA ProducciónUsar el Registro de Paquetes

Rendimiento y DepuraciónSeguridad desde el primer momento

Credenciales y otra información sensiblePaquete y ProcesoConfiguración y Parámetros

Page 16: Antonio SotoAntonio Soto asoto@solidq.com SQL Server MCTSQL Server MCT.

SSIS es programación visualUtilizar un sistema de control de código fuente

Deshacer no es una buena técnicaPensar en escenarios de múltiples-programadores

Comenta tus paquetes y scriptsEn 2 semanas probablemente puedes haberte olvidado de alguna parte de tu diseñoProbablemente en algún momento otra persona tenga que mantenerlo

Utilizar el manejo de erroresUtilizar las restricciones de precedencia correctamente en las tareasUsar las salidas de error en transformaciones – almacénalas en una tabla para procesarlas más tarde, incluso podemos gestionarlas en el propio paquetesTry…Catch en los scripts

Page 17: Antonio SotoAntonio Soto asoto@solidq.com SQL Server MCTSQL Server MCT.

Evita el sobre-diseñoDemasiada modularidad no es elegante y puede ser más lentoPero no tengas miedo de experimentar– Hay muchas formas de resolver un problema

Maximiza el ParalelismoReserva suficientes threadsPropiedad EngineThreads en la Tarea de Flujo de Datos“Regla del Pulgar” – Nº de Orígenes + Nº de componentes asíncronos

Minimiza BloqueoComponentes Síncronos vs. AsíncronosMemcopy es caro – reduce el número de componentes asíncronos en un flujo si es posible- veremos un ejemplo

Minimiza los datos auxiliaresPor ejemplo, minimiza los datos obtenidos por LookupTx

Page 18: Antonio SotoAntonio Soto asoto@solidq.com SQL Server MCTSQL Server MCT.

Utilizar las características de registro y auditoríaMsgBox es tu amigoLos Depuradores de datos son tus amigosUsar el componente de rendimiento del Proyecto REAL

Experimenta con diferentes técnicasUtiliza control de código fuenteEnfócate en los cuellos de botella – ahora veremos como

Pruebas en diferentes tecnologías32bit, IA64, x64Almacenamiento Local, SANConsideraciones de MemoriaConsideraciones de Red y Topología

Page 19: Antonio SotoAntonio Soto asoto@solidq.com SQL Server MCTSQL Server MCT.

Elimina campos redundantesUtiliza sentencias SELECT en lugar de tablasSELECT * es tu enemigoReduce también las columnas redundantes después de cada componente asíncrono!

Filtra los RegistrosLa cláusula WHERE es tu amigoConditional Split en SSISConcatena o redirige los campos no necesarios

Carga en ParaleloEL sistema de origen divide los datos de origen en múltiples partes

Ficheros planos – múltiples ficherosRelacional – vía campos clave e índices

Componentes de Múltiple Destino. Todas cargan los mismos datos

Page 20: Antonio SotoAntonio Soto asoto@solidq.com SQL Server MCTSQL Server MCT.

¿BCP es suficientemente bueno?La sobrecarga de ejecutar un paquete SSIS puede reducir toda la ventaja de rendimiento sobre BCP para conjuntos de resultados pequeños.Necesitamos el mayor control que nos proporciona SSIS?

¿Qué Patrón?Disponemos de varios patrones de Búsqueda – ¿Cuál encaja mejor?En el Proyecto Real existen varios ejemplos de patrones:http://www.microsoft.com/sql/solutions/bi/projectreal.mspx

¿Qué componente?Tarea Bulk Import vs. Data Flow

Bulk Import podría darnos mejor rendimiento si no necesitamos transformaciones o filtros y el destino es SQL Server.

Lookup vs. MergeJoin (LeftJoin) vs. sentencias basadas en SQLPodríamos necesitar MergeJoin si no somos capaces de rellenar la cache de búsqueda.Sentencias SQL nos pueden proporcionar un método para persistir los registros no encontrados en la cache y aplicar una operación basada en conjunto de resultados para un mejor rendimiento.

Script vs. Componente personalizadoLos scripts pueden ser buenos para pequeñas transformaciones que no serán reutilizadas

Page 21: Antonio SotoAntonio Soto asoto@solidq.com SQL Server MCTSQL Server MCT.

105 segundos 83 segundos

Utilizando Error Output para manejar los no encontrados

Ignorando los errores y comprobando nulos en la columna derivada

Page 22: Antonio SotoAntonio Soto asoto@solidq.com SQL Server MCTSQL Server MCT.

Optimiza y estabiliza lo básicoMinimiza las áreas intermedias (utiliza Ficheros Raw si es posible)Asegúrate de que tienes suficiente memoriaWindows, Disco, Red, …Grupos de Ficheros de SQL, indexación, Particionado

Obtener una Línea de BaseReemplazar los destinos con RowCountOrigen->Rendimiento RowCountOrigen->Rendimiento en Destino

Añade / cambia los componentes de forma incremental para ver los efectos

Esto podría incluir la capa de base de datosUtiliza control de código fuente

Optimiza los componentes lentos para los recursos disponibles

Page 23: Antonio SotoAntonio Soto asoto@solidq.com SQL Server MCTSQL Server MCT.

Enfocarse en las rutas críticasUtilizar recursos Disponibles

Restricciones de Memoria Restricciones de lectura y CPU

Dejémoslo!! Optimiza el más lento

Page 24: Antonio SotoAntonio Soto asoto@solidq.com SQL Server MCTSQL Server MCT.
Page 25: Antonio SotoAntonio Soto asoto@solidq.com SQL Server MCTSQL Server MCT.

Sigue las buenas prácticas de desarrolloComprende como la arquitectura de SSIS influye en el rendimiento

Buffers, tipos de componentesPatrones de Diseño

Aprende las nuevas característicasPero no olvides los principios existentes

Utiliza la funcionalidad nativaPero no tengas miedo de extenderla

Mide el RendimientoEnfócate en los cuellos de botella

Maximiza el Paralelismo y el uso de memoria donde se oportunoPiensa en las posibilidades de otras plataformas (RAM en 64bit )

Probar es clave