Visión de uno de los motores mas interesantes para tener un DWH - Teradata

Uno de los motores mas importantes de bases de datos especializados para bodegas de datos es Teradata, esta es una empresa dedicada al tema de manejo de datos con una gran experiencia y que ha desarrollado una excelente arquitectura que permite tener una plataforma estable y poderosa.

Hace varios años que conocí esta arquitectura y quede muy satisfecho con lo que hacen para el tema de grabar datos y consultar.

Básicamente lo que hizo Teradata fue crear una división interna en el disco donde se guardan los datos, cada uno de las divisiones se llama AMP y un disco puede tener muchos AMP's.


Cada uno de los AMP's tienen como proposito guardar información de una parte de la información contenida en una tabla, ¿como es esto? Si, cuando se guardan los datos el motor le asigna a cada uno de los datos un AMP para que se guarde sobre este quedando la información de una tabla distribuida en muchos AMP's.

¿Como es posible esto? Es muy fácil, cuando insertamos la información al motor se ejecuta un algoritmo que le asigna un amp al dato que se está guardando, es un código hash que indica en que amp se debe guardar. Este algoritmo tiene en cuenta el número de amps que existe en el arreglo si hay 10 amps, el algoritmo no va a asignar nunca a un registro el amp 11.


Para poder asignar el código hash, se debe definir en la tabla un indice primario por medio del cual se van a realizar las asignaciones al amp, la idea es que se seleccione el campo o campos que mas cambien para que la asignación de los amps sea mas distribuida y se obtenga un mayor rendimiento. Es muy usual que las personas que trabajan con Teradata revisen el skew de la tabla que nos indica si el indice seleccionado tiene gran distribución o baja distribución, a mayor skew mas deficiencia existe en la distribución por ese índice seleccionado y lo mejor es cambiar de índice.

Otro factor importante es mantener las tablas con estadísticas para que la tabla pueda consultarse de manera rápida.

Todo lo que explique anteriormente tiene una finalidad y es la consulta de las tablas en paralelo, con esto se puede lograr una mayor velocidad en las consultas y se puede procesar mucha información para consultar debido a que todo se hace en paralelo.

Si ingresa una consulta que necesita tres registros, Teradata revisa cual es el amp donde está ubicado cada uno de los datos y el peor de los casos es que le toque ir a tres amps distintos y en este escenario gana porque de un arreglo de 10 amps, se evito consultar 7 amps.

Personalmente he trabajado con Teradata y todo lo que se explica aquí se ve cuando se tienen las consultas, me toco procesar mucha información con este motor y es increible su capacidad para las consultas, si se piensa en una solución ROLAP, creo que esta es una de las bases de datos mas completa para este tipo de solución.

Comentarios

Entradas populares de este blog

Como Construir la dimension tiempo en SQL SERVER

Reiniciar el Intelligence Server de Microstrategy

Modelo en Copo de Nieve