Wowza! Esa es una gran cantidad de datos. Sin saber un poco más sobre la naturaleza de sus datos y sus cargas de trabajo de consultas, será un poco difícil ofrecer una solución genérica. Dicho esto, en aras de la discusión, supongamos que tiene un conjunto de datos que es fácil de particionar y desea consultarlo en tiempo real.
La restricción de consulta en “tiempo real” es lo que lo hace interesante, ya que descontará inmediatamente a Hadoop, ya que funciona con un flujo de trabajo por lotes. Así que estamos de vuelta en MySQL (o alguna variante RDMS), ¿cómo hacemos que esto funcione?
La clave para usar MySQL para hacer esto es que necesitará particionar sus datos en tablas separadas. Entonces, volviendo a la suposición inicial, debe ser capaz de “dividir” sus datos de manera uniforme para poder crear fragmentos de K, cada uno con aproximadamente el mismo número de registros. Entonces, por ejemplo, supongamos que sus datos estaban relacionados de alguna manera con los apellidos (digamos datos del censo de los EE. UU.), Podría dividirlos en función de la primera letra del apellido y tener en cuenta las distribuciones “típicas” de los apellidos.
A partir de ahí, querrás generar suficientes particiones para que cada tabla individual pueda caber en la RAM de la máquina en la que la estás cargando. Mirando SoftLayer Storefront, digamos que puede pagar los servidores de 512 GB de RAM por lo que necesitará 3 particiones.
- He completado el examen interno de Contador Público. ¿Que hago después?
- Estoy buscando un sitio o un lugar que trabaje a medida en sillas de ruedas eléctricas (como luces LED, llantas y sistemas estéreo). He estado buscando un WHILL y no he encontrado nada. ¿Dónde puedo encontrar un WHILL?
- Soy un recién graduado de Finanzas con una pasión por el emprendimiento tecnológico. En términos de conseguir un trabajo con una startup, ¿qué conocimiento financiero es útil para las startups de etapa temprana?
- Soy nuevo en el pirateo de millas de viajero frecuente. ¿Cuál es la mejor manera de aprenderlo?
- Si soy bueno buscando información en Internet, ¿qué tipo de trabajo es adecuado para mí?
Bien, ahora sus datos residen en 3 “fragmentos” y suponiendo que haya agregado índices, puede consultarlos de manera razonablemente eficiente. Ahora, volviendo a la segunda suposición, esta técnica solo funcionará bien para un cierto tipo de carga de trabajo de consulta. Cualquier cosa que pueda calcular por separado y luego agregada estará bien, pero cualquier cosa que requiera una UNIÓN será problemática. Además de esto, su aplicación tendrá que ser consciente de la lógica de partición que está sucediendo detrás de escena.
¡En fin, buena suerte!