La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Inteligencia de Negocios Buenos Aires, mayo de 2009 U.T.N. – F.R.B.A. Prof: Ing. Pablo Cigliuti Ayud: Ing. Rafael Rizzo.

Presentaciones similares


Presentación del tema: "Inteligencia de Negocios Buenos Aires, mayo de 2009 U.T.N. – F.R.B.A. Prof: Ing. Pablo Cigliuti Ayud: Ing. Rafael Rizzo."— Transcripción de la presentación:

1 Inteligencia de Negocios Buenos Aires, mayo de 2009 U.T.N. – F.R.B.A. Prof: Ing. Pablo Cigliuti Ayud: Ing. Rafael Rizzo

2 Clase IV DW Tunning

3 Consideraciones I/O  DW altamente comprometido con operaciones de I/O.  OLTP dependerá de los patrones de acceso y de la carga de trabajo del usuario.  Problemas con I/O -> I/O Bound o I/O bottleneck.  Para resolver problemas de I/O por lo general se usan RAID (Redundant Arrays of Inexpensive Disks)  Para resolver cuellos de botella de I/O cuando hay procesamiento en paralelo o acceso de consultas concurrentes se debería usar Striping.

4 Striping  Divide los datos de grandes tablas en pequeñas porciones y los guarda en diferentes datafiles de diferentes discos.  RAID 0  RAID 1  RAID 0+1  Está relacionada con el HW. No tiene anda que ver con la base de datos.  Puedo hacer striping de objetos en diferentes discos para conseguir distintos objetivos:  Optimizar full table scan -> Separar una tabla en diferentes discos  Puedo optimizar disponibilidad -> Restringir el tablespace a algunos discos  Para optimizar el scan de particiones -> Poner cada partición en varios discos.

5 Ejecución en paralelo  Separar una tarea en varias:  En vez de que un sólo proceso resuelva todo un query, varios procesos resuelven el mismo query al mismo tiempo.  Ej. Normal: Para una tabla de un año de ventas, un proceso lee toda la tabla.  Ej. Paralelo: La tabla es manejada por 4 procesos y cada uno de ellos lee un trimestre.  Reduce drásticamente el tiempo de respuesta de un query (muy usado en los DSS y DW).  Es útil para operaciones que acceden a grandes volúmenes de datos, por ej:  Table scan y joins grandes.  Creación de grandes índices.  Scan de índices particionados.  Bulk inserts, updates y deletes.

6 Particiones  Ayuda a manejar el problema de grandes volúmenes de datos, ya que lo descompone en piezas más chicas.  ¿Con que granularidad particiono? El punto a tener en cuenta es la administración de esas particiones.  Ej: Si guardo 4 años, y voy borrando siempre el último mes. No va a ser lo mismo si lo tengo particionado por trimestre, donde accedo a una partición que sólo contiene 3 meses.  Data segment compression:  Ahorra espacio.  Debería aplicarse sobre tablas particionadas.  Se pueden comprimir particiones: reduce disco y memoria

7 Tipo de Particiones  Range Partitions: Crea las particiones basadas en rangos de valores de claves de particiones que uno establece para cada partición. Ej, tiempo. Conveniente para particionar datos históricos. Los boundaries de las particiones definiran el orden de la tabla e indices  Hash Partitioning: Utiliza algoritmo de hash distribuyendo registro en diferentes particiones aproximadamente del mismo tamaño. Es un método ideal cuando tengo datos distribuidos en diferentes discos, o cuando no tengo un rango o una columna obvia por la que puedo particionar.  List Partitioning: permite crear una partición indicando valores discretos. Me permite particionar datos que no tienen un orden en valores naturales  Index Partitioning: Puedo elegir si los indices heredan o no las particiones que le hice a las tablas.

8 Tipo de Particiones  PRUNING PARTITION: El optimizador analiza los from y los where que se usan en el select y excluye las particiones que no se necesitan.  Reduce sustancialmente la cantidad de datos que va a buscar al disco.  WISE JOINS: Reduce la cantidad de información intercambiada entre servidores de ejecución cuando el query se ejecuta en paralelo.

9 Indices Bitmap Index  Reduce el tiempo de respuesta para queries ad hoc  Reduce el espacio de almacenamiento.  Logra mas performance incluso con pocos procesadores y memoria.  Son usados para DW donde solo se consulta, no son sustentables para OLTP  Buenos para columnas con poco grado de cardinalidad (masculino - femenino) distinct values / cant de regs.  La mayoría tendrian que ser bitmap B-Tree  B-tree Index: usados para columnas con valores unicos, o de alta cardinalidad.

10 Vistas materializadas  Precalcula joins  Agregaciones

11 Agregaciones  Es la mejor forma de mejorar performance en grandes dw.  Se puede realizar en todo tipo de dw. “Sumarizar y guardar datos que existen en la fact table con el objetivo de mejorar de las consultas de los usuarios finales”  GOALS AND RISK  Mejorar performance drásticamente para la mayor cantidad de queries de usuarios diferentes  Agregar sólo una cantidad aceptable de almacenamiento extra en el dw.  Impactar el costo de extracción lo menos posible.  Impactar lo menos posible las tareas del dba.

12 Acercamientos Agregaciones No agregar  Tan pocos datos en la fact que hay buena performance y no es necesario agregar. Agregación exaustiva  Voy a agregar todas las agregaciones posibles. Los queries van a ser muy rápidos, pero voy a complicar la admin del dba, y a aumentar mucho el tiempo de carga y espacio en disco. Agregación selectiva  La cantidad de agregaciones que puedo crear es el número de niveles en cada jerarquía de cada dimensión, multiplicadas entre si  Las tablas agregadas se cargan luego de la carga de la fact y de su verificación.

13 Que agregar  2 piezas básicas de informacion: Uso y análisis de patrones de información  El primero tiene que ver con el uso de patrones de datos. Los niveles examinados mas frecuentes por el usuario, serán buenos candidatos para agregaciones. Reducción de lineas de la tabla base  En este punto hay que considerar el volumen de los datos en la fact y la distribucion de los datos  Luego de cargar datos, ejecutar algunos queries para obtener el numero de lineas a diferentes niveles de la jerarquia.  Esto nos dira donde decrece el volumen de datos en una sola jerarquia. Las tablas a elegir seran aquellas que decrecen mucho de un nivel a otro de la jerarquia.  Tenemos que buscar donde la interseccion de las dimensiones tiene decrecimiento importante

14 Creación  Hay varios factores que nos ayudaran a la creación:  El tamaño de la tabla fact.  El numero de agregaciones que se creen. Relacionado con el tamaño de la fact y la ventana de tiempo.  Capacidades de paralelismo. Muy importante para llegar a tiempo. Y nocrear cuellos de botella.  Actualizar o dropear y crear.  Un thread o varios  Metodos para agregar  Cascada... Voy de agregación en agregación  Es rápido  Si tengo una falla en la primer agregacion, entonces me quedo sin las otras  Propagacion de errores


Descargar ppt "Inteligencia de Negocios Buenos Aires, mayo de 2009 U.T.N. – F.R.B.A. Prof: Ing. Pablo Cigliuti Ayud: Ing. Rafael Rizzo."

Presentaciones similares


Anuncios Google