Datos grandes: almacenamiento y consulta

votos
2

Tenemos una gran cantidad de datos de aproximadamente 300 millones de registros, que se actualizarán cada 3-6 meses. Necesitamos consultar estos datos (continuamente, en tiempo real) para obtener cierta información. ¿Cuáles son las opciones? Un RDBMS (mysql), o alguna otra opción como Hadoop. ¿Cuál será mejor?

Publicado el 09/12/2008 a las 15:30
fuente por usuario
En otros idiomas...                            


5 respuestas

votos
3

Los registros de 300M están dentro de los límites de las bases de datos relacionales regulares y las consultas en vivo no deberían ser un problema si usa los índices de manera adecuada.

Hadoop parece excesivo a menos que realmente necesite datos altamente distribuidos y redundantes, y también hará que sea más difícil encontrar soporte si se encuentra con problemas o para optimizaciones.

Respondida el 09/12/2008 a las 15:54
fuente por usuario

votos
1

Como otros dijeron, los RDBMS modernos pueden manejar tales tablas, dependiendo de las consultas y el esquema (algunas optimizaciones tendrían que hacerse). Si tiene una buena clave para dividir las filas (por ejemplo, una columna de fecha), las técnicas de partición / fusión le ayudarán a dividir la tabla en varias más pequeñas.

Puede leer más sobre esas y otras técnicas de escalado en una pregunta que hice hace un tiempo aquí - Soluciones de escalamiento para MySQL (Replicación, Agrupación)

Respondida el 09/12/2008 a las 15:45
fuente por usuario

votos
1

Bueno, tengo algunas bases de datos PostgreSQL con algunas tablas con más de 700 millones de registros y se actualizan todo el tiempo.

Una consulta en esas tablas funciona muy rápido (unos pocos milisegundos) y sin ningún problema. Ahora, mis datos son bastante simples, y tengo índices en los campos que consulto.

Entonces, yo diría que todo dependerá del tipo de consultas que harás y de si tienes dinero suficiente para gastar en discos rápidos.

Respondida el 09/12/2008 a las 15:37
fuente por usuario

votos
0

300 millones realmente no cuentan como enormes en estos días :-).

Si está consultando principalmente, y sabe más o menos qué forma tomarán las consultas, entonces las tablas MySQL con los índices apropiados funcionarán bien.

Si está constantemente solicitando actualizaciones al mismo tiempo que está ejecutando consultas, elija PostgreSQL ya que tiene un mejor manejo de concurrencia.

MS SQLServer, Sybase, Oracle y DB2 manejarán estos volúmenes con facilidad si su empresa prefiere gastar dinero.

Si, por otro lado, tiene la intención de hacer consultas de formato realmente libres sobre datos no estructurados, entonces Hadoop o similar sería una mejor opción.

Respondida el 09/12/2008 a las 15:48
fuente por usuario

votos
0

300 millones de registros no deberían representar ningún problema para un RDBMS de alto nivel como Oracle, SQL Server, DB2. No estoy seguro acerca de mySQL, pero estoy bastante seguro de que se usa para algunas bases de datos bastante grandes en estos días.

Respondida el 09/12/2008 a las 15:41
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more