El documento presenta una propuesta para el Proyecto X, que busca desarrollar un sistema de información para almacenar y gestionar grandes cantidades de datos. Se analizan los requerimientos del proyecto, incluyendo respuesta rápida a consultas, almacenamiento escalable de datos, y seguridad. Luego, se propone utilizar Oracle como DBMS, normalizar la base de datos, usar procedimientos almacenados y tuning de consultas SQL para mejorar el rendimiento, y almacenar las consultas de los usuarios. Finalmente, se discuten
1. El PROYECTO X
Etapa I: Análisis y propuesta de proyecto
Fundamentos de Bases de Datos
1
2. El sistema Export X (EX) pretende ser un sistema de información
que se pueda acceder mediante el navegador web, diseñado para
rastrear, organizar, almacenar e informar sobre gran cantidad de
datos que hacen fácil y rápido el acceso a la información.
24/04/2013
3. Agenda
1
Requerimientos del proyecto
2
Análisis del proyecto
3
Propuesta de solución
3.1
3.2
SQL Tuning
3.3
7
Estrategías de Tunning
Tuning el Rol del Hardware
Apuntes finales
Fundamentos de Bases de Datos
3
5. Proyecto X
Requerimientos del proyecto
Como resultado del aumento del tamaño de
la base de datos, se necesita consultas
sofisticadas y un diseño eficiente para hacer
búsquedas, gestionar, analizar y organizar
los datos. Además, las instalaciones de
tecnología de la base deben ser capaces de
gestionar y distribuir la información a
nuestros clientes de una manera controlada
y segura.
También deben tener la facturación,
seguimiento y otras capacidades para llevar
a cabo las funciones de búsqueda eficiente.
A EX bien diseñado puede proporcionar la
solución a todas estas necesidades de
producción
Fundamentos de Bases de Datos
5
6. Proyecto X
Requerimientos del proyecto
ESPECIFICACIONES A CUBRIR
•
•
•
•
•
•
•
1
Respuesta rápida a consultas
La información almacenada puede crecer
en miles de registros por día
Las consultas pueden abarcar días,
semanas, años (millones de registros)
Guardar las consultas realizadas por un
usuario
Administrar los privilegios de las cuentas
de usuario
Uso de consultas sofisticadas para
reducir el tiempo de consulta
Seleccionar las plataformas de software y
hardware a utilizar
Fundamentos de Bases de Datos
6
7. Proyecto X
Requerimientos del proyecto
ESPECIFICACIONES A CUBRIR 2
El proyecto gestionará:
Usuarios conectados al sistema de forma
concurrente
inicio de sesión
Gestión de sesiones,
informar de los resultados analíticos,
la descarga y el envío de los datos por email, y otras operaciones relacionadas.
* Algunos puntos fuera del alcance de la
propuesta
Fundamentos de Bases de Datos
7
8. Proyecto X
Requerimientos del proyecto
ESPECIFICACIONES A CUBRIR
3
El alcance del proyecto EH incluye también
un probado, documentado, y funcional EX en
(Amazon EC2)
Amazon Elastic Compute Cloud es un
servicio web que proporciona capacidad de
computación de tamaño variable en la nube.
Amazon EC2 elimina la necesidad de invertir
en hardware por adelantado y le permite
desarrollar y desplegar aplicaciones más
rápido. Se puede utilizar las interfaces de
servicio web para lanzar tantos servidores
virtuales como sea necesario, configurar la
seguridad y la creación de redes, y gestión
de almacenamiento.
* Fuera del alcance de la propuesta
Fundamentos de Bases de Datos
8
10. Proyecto X
Análisis y propuesta de solución
Como parte del inicio del proyecto
fueron proporcionados 3 archivos para
su análisis
Data
Type/ Size
Elements
Record
Type
ID
Char(1)
Shipper
Char(35)
Name
Shipper
Char(35)
Address-1
Shipper
Address-2
Char(35)
Shipper
Address-3
Char(35)
Shipper
Address-4
Char(35)
Filler
Char(102)
Record Mandatory Constraints/Com
Position / Optional
ments
Record is
Optional
1
M
Must be ‘2’
2-36
M
Name of the
shipper.
37-71
M
First line of the
shipper’s address,
if available.
72-106
O
Second line of the
shipper’s address,
if available.
107-141
O
Third line of the
shipper’s address,
if available.
142-176
O
Fourth line of the
shipper’s address,
if available.
177-278
M
Space Fill
dataFile.txt
El análisis inicial nos permite inferir que:
La información se encuentra grabada a nivel
de bits, identificada por posiciones y
longitudes los cuales corresponden a
diversas entidades (tablas)
EXPORTX1.doc
Fundamentos de Bases de Datos
10
11. Proyecto X
Análisis y propuesta de solución
Propuesta.
Se propone el desarrollo de un modulo de
base
datos
con
las
características
necesarias para la integración a un sistema
cliente – servidor de grandes dimensiones
que permita descentralizar el procesamiento
y recursos, de cada uno de los servicios y de
la visualización de la Interfaz Gráfica de
Usuario.
Comentarios al alcance.
El alcance de la propuesta se centra en
describir las especificaciones ideales y
mejores prácticas para el modulo, sin
embargo la versión a presentar se basará en
un ambiente de pruebas elaborado con
mysql.
Fundamentos de Bases de Datos
11
12. Proyecto X
Propuesta de proyecto
La función LOAD DATA LOCAL INFILE cuenta con varios
parámetros de configuración:
FIELDS TERMINATED BY ',': indica que los campos de cada línea del fichero terminarán
con "," (coma), pudiendo indicar el carácter con el que terminarán.
ENCLOSED BY '"': indica que los campos de tipo char, text, binary, enum de cada línea
empezarán y acabarán con el carácter indicado, en este caso comillas dobles """.
IGNORE 1 LINES: no cargará la primera línea del fichero de texto.
LINES STARTING BY 'xxx': indica que todas las líneas del fichero de texto plano
empezarán con "xxx".
LINES TERMINATED BY ' ': indica el carácter con el que termina la línea, en este caso un
salto de línea y un retorno de carro (en Windows).
Si quisiéramos que MySQL espere a ejecutar la sentencia de importación hasta que no
haya usuarios leyendo en la tabla en la que se importarán podríamos utilizar la cláusula:
LOW_PRIORITY, de esta forma:
LOAD DATA LOW_PRIORITY IN FILE...
Aunque esta propiedad es sólo válida para tablas MySQL de tipo MyISAM, MEMORY,
MERGE.
También podremos indicar el juego de caracteres del fichero del que se importará la
información, con:
LOAD DATA IN FILE...
CHARACTER SET juego_caracteres
Importación programada de
datos con esquemas de
prioridad
Fundamentos de Bases de Datos
12
13. Proyecto X
Propuesta de proyecto
Desventajas en la importación con archivo
plano.
La redundancia de datos. Esta es una característica de
los archivos planos tal que cuentan con un conjunto de
archivos por cada aplicación, muchas veces los mismos
datos son almacenados en diversos archivos, lo que
provoca duplicidad de información (redundancia)
Inconsistencia de los datos. Esta duplicidad u la falta de
control sobre los datos ingresados al sistema, permiten
el aumento de la posibilidad de que los datos de los
registros no sean los mismos en los diversos archivos
donde son almacenados.
Dependencia de datos y programas. La información de
dónde comienza un campo, dónde acaba, su tipo, etc,
está controlada por algún programa; cualquier cambio en
la estructura del fichero implicaría modificación de los
programas
La elaboración, consistencia
y control del archivo de
importación no recae en el
DBA más si el cumplimiento
de las reglas de integridad y
de negocio
Fundamentos de Bases de Datos
13
14. Proyecto X
Propuesta de proyecto
Consultas mas rápidas.
Normalización disminuye las anomalías de actualización,
pero penaliza las consultas (consume muchos recursos). Se
evitará en la medida de lo posible.
Procedimientos almacenados proporcionan ventajas de
performance, un marco de trabajo, y mayores capacidades
de seguridad. La mejora en el rendimiento se logra a través
de un almacenamiento local (en la base de datos), código
precompilado, y manejo de cachés (almacenamientos
temporarios). Las capacidades de seguridad incluye
encriptación y limitaciones de privilegios que permiten
mantener a los usuarios fuera de la vista de la estructura de
la base de datos subyacente, mientras se los habilita a
ejecutar procedimientos almacenados que actúan sobre la
base de datos.
SQL Tuning: Se efecturá en los 2 niveles conocidos Server
y Nivel Sql (usuario)
Revisando la ruta de acceso, metodos join y el uso de
indices
Probando las respuestas a través de SQLPlus
Review SQL plan
Fundamentos de Bases de Datos
14
15. Proyecto X
Propuesta de proyecto
Guardar consultas hechas por el usuario.
scripts y consultas útiles de Oracle
•• Consulta Oracle SQL que muestra los usuarios de Oracle
conectados y el número de sesiones por usuario
select username Usuario_Oracle, count(username)
Numero_Sesiones from v$session group by username order by
Numero_Sesiones desc
•• Últimas consultas SQL ejecutadas en Oracle y usuario que las
ejecutó
select distinct vs.sql_text, vs.sharable_mem, vs.persistent_mem,
vs.runtime_mem, vs.sorts, vs.executions, vs.parse_calls, vs.module,
vs.buffer_gets, vs.disk_reads, vs.version_count, vs.users_opening,
vs.loads, to_char(to_date(vs.first_load_time, 'YYYY-MMDD/HH24:MI:SS'),'MM/DD HH24:MI:SS') first_load_time,
rawtohex(vs.address) address, vs.hash_value hash_value ,
rows_processed , vs.command_type, vs.parsing_user_id ,
OPTIMIZER_MODE , au.USERNAME parseuser from v$sqlarea vs ,
all_users au where (parsing_user_id != 0) AND
(au.user_id(+)=vs.parsing_user_id) and (executions >= 1) order by
buffer_gets/executions desc
Fundamentos de Bases de Datos
15
16. Proyecto X
Análisis y propuesta de solución
Selección de DBMS.
ORACLE, es un servidor de base de datos líder en la industria de
tecnológica y posición en el mercado. es la plataforma ideal para
aplicaciones de data waehousing (datos de almacenamiento) de
cualquier tamaño y alcance, desde data marts de temas específicos,
hasta warehouses empresariales.
Funcionalidad sofisticada de data warehousing
Capacidades de manejo de data warehousing
Integración de metadata con herramientas de consulta front-end
Integración con Oracle Applications
Procesamiento de consulta de alto desempeño.
Potencial de crecimiento ilimitado en términos de volumen de datos y
usuarios.
Disponibilidad de negocios críticos.
Soporte de data warehousing como la optimización sofisticada de consultas
basadas en costos, esquemas de índices avanzados como:
Índices bitmap
Algoritmos especializados de procesamiento de consultas
Ejecución paralela de operaciones de consulta y manejo de datos
Infraestructura robusta de partición de datos
ORACLE está disponible en más de 80.
Fundamentos de Bases de Datos
16
17. Proyecto X
Propuesta de proyecto
El profesional de base de datos siempre ha tenido que
aprender cómo las mejoras en hardware afectarán su
rendimiento de base de datos.
A un alto nivel, vemos estas tendencias:
Todo el hardware se vuelve más barato cada año
El CPU acelera tareas la RAM y el disco no
RAM-Disk pronto sustituirá a los discos de plato
Fundamentos de Bases de Datos
17
18. Proyecto X
Propuesta de proyecto
Plataforma de hardware
Todo el hardware del mundo no es suficiente.
Mas memoria, mayor espacio en disco y
velocidad de CPU pueden mejorar el
rendimiento, sin embargo Incrementar el
hardware no siempre resulta en un mejor
rendimiento.
Un diseño de aplicación pobre redunda en el
70% de los topics de rendimiento.
Es imperativo hacer la revisión del diseño de
manera inmediata en el desarrollo.
Fundamentos de Bases de Datos
18
19. Proyecto X
Propuesta de proyecto
Using Hardware as an Alternative to Oracle tuning?
Por ejemplo, cuando el diseño del esquema es un caos, incluso vistas
materializadas pueden no corregir los problemas de rendimiento. La gestión no
quiere oír hablar de un rediseño caro de la base de datos por varias razones:
El miedo de la culpa – Si el DBA quiere admitir que un diseño de base de datos
mal se implementó bajo su vigilancia.
Alto tiempo de inactividad - La hora de volver a poner en práctica una mesa rediseño puede significar días de inactividad
Alto Costo - Si los costos de implementación ¿qué te parece lo más probable
es que la gestión se gasta el dinero de nuevo para volver a diseñar el sistema
correctamente? Cero.
Experiencia del autor: La semana pasada tuve un cliente que estaba teniendo un
gran cuello de botella de CPU, y la causa principal era el análisis excesivo y
realmente planes sub-óptimos de ejecución de SQL. Decidieron gastar $ 50 mil
dólares para los procesadores más rápidos (15 minutos para arreglar) en lugar de
gastar $ 100 mil para sintonizar 2.000 sentencias SQL (6 semanas para arreglar).
Ahora, ¿eso tiene sentido? Bueno, depende de cómo se mire. Desde una
perspectiva de gestión que tenía sentido, ya que ahorraron $ 50 mil y
consiguieron una solución discreta rápida a un problema complejo.
Profesionales no pueden ignorar la realidad económica de ajuste de base de
datos. Una y otra vez, es demasiado costoso (en tiempo y dinero) para una
compañía sintonizar su SQL.
Fundamentos de Bases de Datos
19
20. Standardization: VCS Support for
Apps & DBs
Databases
Version
Oracle
7.1-8.2(+EEE)
Sybase
2000, 2005
HP/UX
Windows
Linux (RH)
11.x-12.5 , 15
SQL
AIX
8i-9i,10g 10gR2
DB2
Solaris
N/A
(+SLES)
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
Applications
Exchange
2000, 2003
Oracle eBus Apps
11.5.7-.9 , .10
Oracle App Srvr
9.0.4-10.1.2
PeopleSoft
8.1, 8.4, 8.8
SAP
4.6, 4.7, 6.2
NetWeaver
Siebel
Sun ONE (Sun JES)
6.x-7.7
, 7.8
5.0-6.1
Tuxedo
6.5-8.1
WebLogic Server
6.1-8.x
WebSphere App Srvr
5.x, 6.0
WebSphere MQ
N/A
5.3
N/A
N/A
, 9.0
N/A
Fundamentos de Bases de Datos
20
22. Proyecto X
Esquema de Implementación
Característica
OLTP
OLAP
GigaBytes
TeraBytes - PentaBytes
Origen Datos
Interno
Interno y Externo
Actualización
On-Line
Batch
Periodos
Actual
Histórico
Consultas
Predecibles
Ad Hoc
Actividad
Operacional
Analítica
Tamaño
* Acorde a la definición,
requerimientos funcionales y
alcances, el esquema de
implementación del proyecto X,
corresponde a una
implementación tipo OLAP.
Fundamentos de Bases de Datos
22
23. Proyecto X
Esquema de Implementación
Datawarehouse
Es un repositorio central para todos los
datos de la empresa. Los datos pueden
ser recogidos de diversos sistemas dentro
de una organización. Por lo general, un
almacén de datos está alojada en una
base de datos relacional. La diferencia con
respecto a las bases de datos relacionales
tradicionales utilizados en los sistemas
OLTP
es
que
está
diseñado
exclusivamente para informes y análisis.
Fundamentos de Bases de Datos
23
24. Proyecto X
Esquema de Implementación
Datawarehouse
Atributos básicos de un datawarehouse
son:
Amplio rango de datos históricos
Datos consolidados, conformados y
válidos
De-normalización de estructuras de
datos (normalmente multidimensional)
Rápido tiempo de respuesta a informes
Análisis flexible y ad-hoc
Fundamentos de Bases de Datos
24
25. Proyecto X
Esquema de Implementación
Datawarehouse
Además de las bases de datos relacionales
tradicionales basadas en filas, los almacenes de
datos ahora son compatibles con los enfoques
técnicos alternativos para almacenar y acceder
a los datos. Recientemente las nuevas
tendencias han ido evolucionando con gran
rapidez:
RDBMS orientada a columnas que
almacenan los datos en columnas, lo que
permite grandes velocidades de compresión
y mejorar el rendimiento de E / S
Motores de almacenamiento de datos en
memoria, lo que permite que las consultas de
base de datos en la memoria, sin afectar a
los sistemas de discos lentos
Fundamentos de Bases de Datos
25
26. Proyecto X
Esquema de Implementación
Los campos Text y Blob pueden ser indexados
completamente, lo que es de gran importancia para
funciones de búsqueda.
No transaccional.
Bloqueos a nivel de tabla.
Muy rápido en lectura y escritura.
Bajo requerimiento de espacio en disco y memoria.
Los datos se guardan en disco: diferentes ficheros
para la definición de la tabla, los datos y los índices.
Es una buena elección cuando necesitamos
velocidad, y tenemos pocas modificaciones
simultaneas de la tabla.
Ficheros grandes se soportan en sistemas de
ficheros y sistemas operativos que soportan ficheros
grandes.
Registros de tamaño dinámico se fragmentan mucho
menos cuando se mezclan borrados con
actualizaciones e inserciones. La longitud máxima
de clave es 1000 bytes..
Valores NULL se permiten en columnas indexadas.
Esto ocupa 0-1 bytes por clave.
Motor de almacenamiento
MyIsam
Fundamentos de Bases de Datos
26
27. Proyecto X
Esquema de Implementación
Tuning de Consultas.
La caché de consultas almacena el texto de una
declaración SELECT junto con el resultado que se
le envía al cliente. Si se recibe una consulta
idéntica posteriormente, el servidor devuelve el
resultado de la caché de consultas en lugar de
parsear y ejecutar la consulta de nuevo. La caché
de consultas se comparte entre sesiones, por lo
que un conjunto de resultados generado por un
cliente puede ser enviada en respuesta a la
misma consulta emitido por otro cliente.
La caché de consultas puede ser útil en un
entorno donde tiene tablas que no cambian muy a
menudo y para los que el servidor recibe muchas
consultas idénticas.
Fundamentos de Bases de Datos
27
28. Proyecto X
Esquema de Implementación
un esquema en estrella es
un modelo de datos que
tiene una tabla de hechos (o
tabla fact) que contiene los
datos para el análisis,
rodeada de las tablas de
dimensiones. Este aspecto,
de tabla de hechos (o
central)
más
grande
rodeada de radios o tablas
más pequeñas es lo que
asemeja a una estrella,
dándole nombre a este tipo
de construcciones.
Fundamentos de Bases de Datos
28
31. Proyecto X
Arquitectura de Implementación
DBMS
La Base de datos Oracle 11g es el lider
mundial en datawarehouse que incluye
análisis de datos avanzadas, ofreciendo una
plataforma rápida, confiable y rentable para el
almacenamiento de datos e inteligencia de
negocios que se escala fácilmente a petabytes
para satisfacer las complejas necesidades de
informes y análisis de las organizaciones más
exigentes
Fundamentos de Bases de Datos
31
32. Proyecto X
Arquitectura de Implementación
Plataforma de hardware a utilizar.
Oracle Exadata Database Machine X3-8
Oracle Exadata Database Machine X3-8 está diseñado
para implementaciones de bases de datos que
requieren de grandes cantidades de datos, que ofrece
un rendimiento extremo y escalabilidad para todas las
aplicaciones, incluyendo OLTP, Data Warehousing
(DW) y la consolidación de cargas de trabajo mixtas.
Se completa con dos servidores de 8 sockets de bases
de datos Oracle 14 servidores de almacenamiento
Exadata, conmutadores InfiniBand y más de 22
terabytes de Oracle Exadata Smart Flash caché para
apoyar extremadamente rápidos tiempos de respuesta
de las transacciones y de alto rendimiento
Fundamentos de Bases de Datos
32
33. Proyecto X
Arquitectura de Implementación
Big Data.
Oracle combina hardware optimizado con una
arquitectura de software completa para ofrecer
una solución completa, fácil de desplegar la
solución para adquirir, organizar y analizar
grandes volúmenes de datos. Oracle Big Data
Appliance se integra perfectamente con Oracle
Exadata y Oracle Database 11g para ayudar a
las empresas obtener el máximo valor en las
estrategias de datos grandes
Preconfigurado con una configuracion de 18 servidores
Oracle Sun que incluye infiniBand y conectividad
Ethernet para simplificar la implementación y
administración.
Fundamentos de Bases de Datos
33
34. Three Levels of Availability for Oracle
SINGLE INSTANCE
HA /CLUSTERING
RAC ARCHITECTURES
• Manual fail-over
• Automated fail-over
• Highest availability
• Simple set-up
• Active/passive or N+1
• Shared resources
• Hours to restore
• Minutes for fail-over
• Fastest fail-over
Recommended Architectures
Fundamentos de Bases de Datos
34
35. Fin de la presentación
¿ Dudas?
¿Comentarios?
Gracias !!
35