1 / 25

Antonio Soto asoto@solidq SQL Server MCT

Antonio Soto asoto@solidq.com SQL Server MCT. Datawarehouse (SQL Server, Oracle, DB2, Teradata). Informes. Dashboards. Cuadros de Mando. Excel. HerramientaBI. Analysis Services. Integration Services. SQL/Oracle. SAP/Dynamics. Sistemas Propietarios. Texto. XML. Asumimos

fairly
Download Presentation

Antonio Soto asoto@solidq SQL Server MCT

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Antonio Soto asoto@solidq.com SQL Server MCT

  2. Datawarehouse (SQL Server, Oracle, DB2, Teradata) Informes Dashboards Cuadros de Mando Excel HerramientaBI Analysis Services Integration Services SQL/Oracle SAP/Dynamics SistemasPropietarios Texto XML

  3. Asumimos • Experiencia con SSIS y SSAS • Objetivos • Discutir el diseño, rendimiento y escalabilidad para construtir paquetes ETL y cubos (UDMs) • Buenas Prácticas • Errores Comunes

  4. BPA = Best Practice Analyzer • Utilidad que escanea los metadatos de SQL Server y recomienda buenas prácticas • Buenas prácticas adquiridas del equipo de desarrollo y Customer Support Services • Novedades: • Soporte para SQL Server 2005 • Soporte para Analysis Services y Integration Services • Planificación del scaneo • Auto actualizable • Disponible la CTP, RTM en Abril • http://www.microsoft.com/downloads/details.aspx?FamilyId=DA0531E4-E94C-4991-82FA-F0E3FBD05E63&displaylang=en

  5. Agenda • Integration Services • Pequeña Introducción • Principios del Buen Diseño de Paquetes • Component Drilldown • Optimización de Rendimiento • Analysis Services • Introducción a UDM • Buenas Prácticas de diseño de UDM • Tips de Rendimiento

  6. Introducido en SQL Server 2005 • El sucesor de Data Transformation Services • La plataforma para una nueva genración de tecnologías de integración de alto rendimiento

  7. Alertas y escalación Datos Call Center: semi estructurados Minería de Datos ETL Minería de Texto Área Intermedia Datos propietarios:ficheros binarios Área Intermedia Almacén ETL Codificación Manual Área intermedia Limpieza y ETL Informes Base de Datos ETL Datos Móviles • 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.

  8. Alertas y escalación Datos Móviles Minería de texto Call center: Datos Semi Mezclas Limpieza de Datos Origen Personalizado Orígenes Estándard Minería de Datos Almacén Datos propietarios: ficheros binarios Informes SQL Server Integration Services 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.

  9. Flujo de Control (Motor de Ejecución) • Motor de Flujos de Trabajo paralelos • Ejecuta contenedores y Tareas • Flujo de Datos (“Pipeline”) • Tarea Especial del flujo de control • A high-performance data pipeline • Applies graphs of components to data movement • Los Componentes pueden ser orígenes de datos, transformaciones y destinos • Posibilidad de crear operaciones en paralelo

  10. Agenda • Introducción a Integration Services • Principios del Buen Diseño de Paquetes • Detalle de los Componentes • Optimización de Rendimiento

  11. Seguir las guías: Microsoft Development Guidelines • Diseño iterativo, desarrollo y pruebas • Conocer el Negocio • Comprender las personas y los procesos es crítico para el éxito • Una excelente referencia:“Data Warehouse ETL Toolkit” de Kimball • Pensar en toda la solución • Contención de recursos, ventana de procesamiento, … • SSIS no soluciona un mal diseño de base de datos • Se siguen aplicando los “viejos” principios – e.j. ¿cargamos con o sin índices? • Consideraciones de Plataforma • Se 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

  12. Modularidad de Procesos • Romper ETL complejos en paquetes lógicos diferentes (vs. Diseño monolítico) • Mejora la experiencia de desarrollo y depuración • Modularidad de Paquete • Separar subprocesos dentro del paquete en diferentes contenedores • Más elegante y sencillo de desarrollar • Podemos deshabilitar contenedores enteros cuando estamos depurando • Modularidad de Componente • Utilizar Scripts de Tarea y Transformación para problemas que no sean repetitivos • Crear componentes personalizados para maximizar la reutilización

  13. Usar Configuraciones de Paquete • Desde el principio • Nos facilitará las cosas en el despliegue • Simplificar el despliegue Desarrollo  QA  Producción • Usar el Registro de Paquetes • Rendimiento y Depuración • Seguridad desde el primer momento • Credenciales y otra información sensible • Paquete y Proceso • Configuración y Parámetros

  14. SSIS es programación visual • Utilizar un sistema de control de código fuente • Deshacer no es una buena técnica • Pensar en escenarios de múltiples-programadores • Comenta tus paquetes y scripts • En 2 semanas probablemente puedes haberte olvidado de alguna parte de tu diseño • Probablemente en algún momento otra persona tenga que mantenerlo • Utilizar el manejo de errores • Utilizar las restricciones de precedencia correctamente en las tareas • Usar las salidas de error en transformaciones – almacénalas en una tabla para procesarlas más tarde, incluso podemos gestionarlas en el propio paquetes • Try…Catch en los scripts

  15. Evita el sobre-diseño • Demasiada modularidad no es elegante y puede ser más lento • Pero no tengas miedo de experimentar– Hay muchas formas de resolver un problema • Maximiza el Paralelismo • Reserva suficientes threads • Propiedad EngineThreads en la Tarea de Flujo de Datos • “Regla del Pulgar” – Nº de Orígenes + Nº de componentes asíncronos • Minimiza Bloqueo • Componentes Síncronos vs. Asíncronos • Memcopy es caro – reduce el número de componentes asíncronos en un flujo si es posible- veremos un ejemplo • Minimiza los datos auxiliares • Por ejemplo, minimiza los datos obtenidos por LookupTx

  16. Utilizar las características de registro y auditoría • MsgBox es tu amigo • Los Depuradores de datos son tus amigos • Usar el componente de rendimiento del Proyecto REAL • Experimenta con diferentes técnicas • Utiliza control de código fuente • Enfócate en los cuellos de botella – ahora veremos como • Pruebas en diferentes tecnologías • 32bit, IA64, x64 • Almacenamiento Local, SAN • Consideraciones de Memoria • Consideraciones de Red y Topología

  17. Elimina campos redundantes • Utiliza sentencias SELECT en lugar de tablas • SELECT * es tu enemigo • Reduce también las columnas redundantes después de cada componente asíncrono! • Filtra los Registros • La cláusula WHERE es tu amigo • Conditional Split en SSIS • Concatena o redirige los campos no necesarios • Carga en Paralelo • EL sistema de origen divide los datos de origen en múltiples partes • Ficheros planos – múltiples ficheros • Relacional – vía campos clave e índices • Componentes de Múltiple Destino. Todas cargan los mismos datos

  18. ¿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 SQL • Podrí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 personalizado • Los scripts pueden ser buenos para pequeñas transformaciones que no serán reutilizadas

  19. Utilizando Error Output para manejar los no encontrados Ignorando los errores y comprobando nulos en la columna derivada 83 segundos 105 segundos

  20. Optimiza y estabiliza lo básico • Minimiza las áreas intermedias (utiliza Ficheros Raw si es posible) • Asegúrate de que tienes suficiente memoria • Windows, Disco, Red, … • Grupos de Ficheros de SQL, indexación, Particionado • Obtener una Línea de Base • Reemplazar los destinos con RowCount • Origen->Rendimiento RowCount • Origen->Rendimiento en Destino • Añade / cambia los componentes de forma incremental para ver los efectos • Esto podría incluir la capa de base de datos • Utiliza control de código fuente • Optimiza los componentes lentos para los recursos disponibles

  21. Restricciones de Memoria Restricciones de lectura y CPU Dejémoslo!! Optimiza el más lento • Enfocarse en las rutas críticas • Utilizar recursos Disponibles

  22. Sigue las buenas prácticas de desarrollo • Comprende como la arquitectura de SSIS influye en el rendimiento • Buffers, tipos de componentes • Patrones de Diseño • Aprende las nuevas características • Pero no olvides los principios existentes • Utiliza la funcionalidad nativa • Pero no tengas miedo de extenderla • Mide el Rendimiento • Enfócate en los cuellos de botella • Maximiza el Paralelismo y el uso de memoria donde se oportuno • Piensa en las posibilidades de otras plataformas (RAM en 64bit ) • Probar es clave

More Related