Tenga en cuenta los datos de registro de los servidores, Amazon debe tener una gran cantidad de datos. Los datos de registro generalmente se almacenan a medida que se reciben, es decir, se ordenan según el tiempo. Por lo tanto, si lo quiere ordenado por producto, debería ordenar todo el conjunto de datos.
Otro problema es que muchas veces los datos deben ordenarse de acuerdo con los requisitos de procesamiento, que pueden no conocerse de antemano.
Por ejemplo: aunque no es un terabyte, recientemente ordené alrededor de 24 GB de datos de red del seguidor de Twitter utilizando el tipo de fusión. La implementación que utilicé fue del profesor Dan Lemire.
http://www.daniel-lemire.com/blog/archives/2010/04/06/external-memory-sorting-in-java-the-first-release/
Los datos fueron ordenados según la ID de usuario y cada línea contenían ID de usuario seguido de ID de usuario de la persona que lo está siguiendo. Sin embargo, en mi caso, quería datos sobre quién sigue a quién. Por lo tanto, tuve que ordenarlo de nuevo por el segundo ID de usuario en cada línea.
Sin embargo, para ordenar 1 TB usaría map-reduce usando Hadoop. Ordenar es el paso predeterminado después de la función de mapa. Por lo tanto, elegiría la función de mapa como identidad y NINGUNO como función de reducción y configuración de trabajos de transmisión.
Hadoop usa HDFS que almacena datos en bloques grandes de 64 MB (este valor se puede cambiar). Por defecto, ejecuta un solo mapa por bloque. Después de ejecutar la función de mapa, la salida del mapa se ordena, supongo que por un algoritmo similar a merge sort.
Aquí está el enlace al asignador de identidades: http://hadoop.apache.org/common/docs/r0.16.4/api/org/apache/hadoop/mapred/lib/IdentityMapper.html
Si desea ordenar por un elemento en el que los datos entonces yo haría ese elemento clave en XXX y la línea como valor de salida del mapa .
Para muchas organizaciones, un terabyte no es una gran cantidad de datos. No vaya a una reunión de grupo de usuarios de Oracle y hable sobre su gran base de datos de terabytes. Esto es definitivamente un cambio con respecto a hace diez años, cuando la gente generalmente pensaba que un terabyte era grande. –
Gracias a las respuestas fabulosas para este de todos en el mundo. Realmente sorprendido por la comunidad de Stackoverflow. – user373215
Ejecuté un rastreador web que, en su punto más alto, clasificaba regularmente dos terabytes de datos. Y esa fue una operación bastante pequeña en comparación con una compañía como Amazon o Google. –