me gustaría algunas ideas/comentarios sobre lo siguiente de usted honorable y venerable grupo.
Tengo 100M de registros que debo procesar. Tengo 5 nodos (en un grupo de rocas) para hacer esto. Los datos están muy estructurados y caen muy bien en el modelo de datos relacionales. Quiero hacer cosas en paralelo ya que mi procesamiento lleva tiempo.
Tal como lo veo yo tengo dos opciones principales:
instalar MySQL en cada nodo y poner 20M registros en cada uno. Use el nodo principal para delegar consultas a los nodos y agregar los resultados. Capacidades de consulta ++, pero podría arriesgarme a algunos dolores de cabeza cuando elijo estrategias de partición, etc. (P. ¿Es esto lo que llaman clúster mysql/postgres?). La parte realmente mala es que el procesamiento de los registros me queda ahora a mi cargo (cómo distribuir en máquinas, etc.) ...
O instale Hadoop, Hive y HBase (tenga en cuenta que esto podría no ser así) la forma más eficiente de almacenar mis datos, ya que HBase está orientado a columnas) y solo define los nodos. Escribimos todo en el paradigma MapReduce y, bang, vivimos felices para siempre. El problema aquí es que perdemos las capacidades de consulta en "tiempo real" (sé que puedes usar Hive, pero eso no se sugiere para las consultas en tiempo real, que necesito), ya que también tengo algunas consultas sql normales para ejecutar a veces " seleccione * del vino donde el color = 'marrón' ".
Tenga en cuenta que, en teoría, si tuviera máquinas de 100M podría hacer todo al instante ya que para cada registro el procesamiento es independiente del otro. Además, mis datos son de solo lectura. No preveo que ocurra ninguna actualización. No necesito/quiero registros de 100M en un nodo. No quiero que haya datos redundantes (ya que hay muchos), por lo que lo mantengo tanto en mysql/postgres como en Hadoop/HBase/HDFS. no es una opción real
Muchas Gracias
Un amigo mío me envió a algo como esto: http://www.cloudera.com/blog/2009/03/database-access-with-hadoop/, es un pequeño paso en la dirección correcta, pero yo me gustaría escuchar sus opiniones sobre el diseño y cómo debería hacerlo ... – MalteseUnderdog