¿Cuál es la mejor estrategia para la retención de grandes conjuntos de datos?

StackOverflow https://stackoverflow.com/questions/19728

  •  09-06-2019
  •  | 
  •  

Pregunta

Estoy liderando un proyecto donde vamos a estar de grabación de datos de métricas.Me gustaría conservar los datos durante años.Sin embargo, también me gustaría mantener la tabla principal de convertirse repleta de datos que, si bien es necesaria para el largo plazo, la tendencia, lo que no se requiere para el corto plazo, la presentación de informes.

¿Cuál es la mejor estrategia para el manejo de esta situación?Simplemente archivar los datos a otra tabla?O "tirar para arriba" a través de la consolidación de los datos en sí (y, a continuación, almacenar a una tabla diferente)?O algo completamente distinto?

Información adicional:estamos utilizando SQL Server 2005.

¿Fue útil?

Solución

Podemos utilizar ambos métodos en mi trabajo, pero un poco diferente, guardamos todos los datos de ventas en la tabla principal para 30 días, luego a la noche (parte de la publicación de puestos de trabajo), los días de ventas se acumulan en los resúmenes (n cant. de x producto que se vende hoy en día, ect) en una tabla independiente para la presentación de informes razones, y las ventas de más de 30 días se archivan en una base de datos diferente, luego una vez al año (vamos en el impuesto de años) un nuevo archivo de base de datos se inicia.no es exactamente perfecto, pero..

de esta manera podemos obtener los resúmenes de datos rápido, mantener todos los datos de ventas en la mano y tiene un número ilimitado de espacio para el archivo detallado de los datos.hicimos trate de mantener todo en una base de datos (en diferentes tablas), pero el tamaño del archivo de la base de datos (interbase) iba a crecer tan grande como para que arrastre el sistema.

el único problema real que tenemos es el acceso a los datos detallados que se extiende por varios de base de datos, como la conexión y desconexión es lento, y el análisis que se ha hecho en el código en lugar de sql

Otros consejos

Si está utilizando SQL server 2005, este puede ser un buen candidato para el uso de tablas con particiones.

Dependiendo de las limitaciones, como el presupuesto, etc, este sonido como un candidato perfecto para un almacén de datos de la aplicación.Esto suele introducir un nuevo servidor para su uso como almacén de datos.SQL Server 2005 soporta una gran cantidad de esta actividad fuera de la caja, además, usted podría ser capaz de utilizar adicionales de los servicios de SQL Server (por ejemplo,Analysis Services, Reporting Services) para proporcionar más valor a los usuarios.(ver http://www.microsoft.com/technet/prodtechnol/sql/2005/dwsqlsy.mspx)

@Jason - no veo la manera de mantener los datos en formato de texto antiguos de archivos le permitirá hacer a largo plazo análisis de tendencias fácilmente en los datos.

@Jason - supongo que mi punto es que si cualquier tipo de análisis ad-hoc (es decir,trending) debe realizarse en los datos por parte de personas de negocios, balanceo de seguridad o archivar los datos en archivos de texto, en realidad, no resuelve ningún problema.Por supuesto, la escritura de código para consumir un archivo de texto es fácil en muchos idiomas, pero el problema ha sido resuelto.También, yo diría que hoy en día RDBMS son todos extremadamente durable cuando el programa de instalación y un mantenimiento adecuado.Si no ¿por qué usted tiene un negocio en la parte superior de uno (y no digamos de archivo de datos)?Yo no veo el punto de archivado de un archivo de texto plano a causa de la afirmación de que la durabilidad de los archivos de texto es superior a la de las bases de datos.

Cualquiera de estas opciones son excelentes, pero realmente depende del dominio del problema.Para cosas como los saldos en efectivo o datos estadísticos, creo que se suben los registros y la consolidación de ellos es la mejor manera, a continuación, puede mover el enrollado de registros en paralelo en un archivo de tabla, de la introducción de tal manera que puede "desenrollar" si es necesario.De esta manera, la tabla de datos principal limpia y rápida, pero permite conservar los datos adicionales de auditoría o de lo que sea.La pregunta clave es, ¿cómo se implementa el "roll-up" del proceso.Ya sea de forma automática, a través de un disparador o el lado del servidor de proceso, o por la intervención del usuario en el nivel de aplicación?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top