"El reto del billón de filas": Hacks para procesar más de 12GB en 2 segundos |

  Рет қаралды 64,486

CodelyTV - Redescubre la programación

CodelyTV - Redescubre la programación

Күн бұрын

Recientemente se ha propuesto un reto a la comunidad: Procesar lo más rápido que puedas 1.000 millones de registros ("1 billion" en inglés). El reto se conoce como "One Billion Row Challenge (1BRC)", y consiste en cargar el dataset de mediciones de temperatura para determinar la medición mínima, media, y máxima de cada ciudad.
Cada línea consiste en una tupla de ciudad y temperatura separada por ";" como por ejemplo: "Hamburg;12.0". A tener en cuenta:
Hay 413 ciudades
La longitud de los nombres de ciudad varían entre 3 y 26 bytes
Las temperaturas pueden ser negativas, 1 o 2 enteros, y siempre con 1 decimal
El reto se propuso inicialmente en la comunidad Java, pero han salido implementaciones en otros lenguajes de programación como Rust o C#.
En el directo analizaremos algunas de estas soluciones junto con Antón Rodriguez, Principal Software Engineer en New Relic, con más de 10 años de experiencia en el ecosistema Java. Ya estuvo en el canal mostrando las novedades de Java.
﹤🍍﹥ Enlaces
├ 🎥 Suscríbete: kzbin.info...
├ 🔖 Cursos: bit.ly/cursos-...
├ 🔗 Material relacionado:
| ├ • Novedades Java
| ├ Optimizaciones JVM: docs.google.co...
| ├ Post original (Java): www.morling.de...
| ├ Repo principal: github.com/gun...
| ├ Post .Net (C#): hotforknowledg...
| ├ Post Rust: curiouscoding....
| └ Otros lenguajes: github.com/gun...
└ 👋 Redes sociales:
├ / codelytv
├ / antonmry
├ / javiercane
├ / codelytv
└ / codelytv

Пікірлер: 55
@javierpena1455
@javierpena1455 9 ай бұрын
Pedazo de directo! muy muy interesante y muy bien guiado. Gracias!
@gabokings260388
@gabokings260388 18 күн бұрын
No voy a mentir, al principio pensé que era un video vende humo, pero los felicito muy buena explicación y de los pocos videos de estructuras de datos y algoritmos que he visto en español!!!
@carlospaz3277
@carlospaz3277 9 ай бұрын
Me ha encantado el video super recomendable me di 3 dias para ver este video pausadamente y tomando notas y jugando con todas las funcionalidades, muchas gracias profesor, que buen contenido. Sería buenisimo tener sugerencia a otro video para aprender a desplegar un proyecto inicalmente creado con XAAMP .
@LeonardoHernandezHH
@LeonardoHernandezHH 10 ай бұрын
Este tema ha sido de los mejores que he visto en el canal. Muchas gracias!!!
@rodolfofernandojuarez7166
@rodolfofernandojuarez7166 4 ай бұрын
Comparto, muy bueno el contenido.
@esarmiento7
@esarmiento7 9 ай бұрын
Alguna empresa necesitaba esto gratis y creo el reto.
@alexquix6394
@alexquix6394 18 күн бұрын
Es probable, pero al final salimos beneficiados ya que aprendemos
@pablob3871
@pablob3871 10 ай бұрын
Que buen video ! se agradece muchísimo, seguramente haya tweaks adaptables al trabajo diario en las primeras soluciones(que lograron recortar el tiempo notablemente) utilizando las apis que nos ofrece Java
@josergdev
@josergdev 10 ай бұрын
12:54 porque el TreeMap ordena el mapa por key (ciudad) automáticamente que es un requisito del challenge. HashMap no implementa SortedMap.
@felixgomezlopez
@felixgomezlopez 10 ай бұрын
Genial el reto y las explicaciones. Grande Antón!
@hugoespinosa3492
@hugoespinosa3492 7 ай бұрын
Anton el Scaloni de los datos!!! Gracias por compartir estos vídeos.
@RamiroAsincrono
@RamiroAsincrono 9 ай бұрын
Excelente contenido! Conociendo un mundo nuevo para mí
9 ай бұрын
Qué gran transmisión! Saludos desde Nicaragua!
@boldaslove7265
@boldaslove7265 9 ай бұрын
Muy interesante el análisis de este reto! Haced más como este
@dryant
@dryant 10 ай бұрын
Madre mía 😳!! Genial!!! Enhorabuena Antón!!
@andypanko2588
@andypanko2588 9 ай бұрын
Felicidades, para guardar enlace y verlo cada x tiempo, un saludo cracks
@sairiopena1073
@sairiopena1073 10 ай бұрын
temazo este..de los mejores videos
@adolfoajuz
@adolfoajuz 10 ай бұрын
Algo me decia que seria un millardo y no un billon, pero igualmente excelente tema.
@blancoserranoj
@blancoserranoj 9 ай бұрын
Excelente !! Cuando hacen uno en spark con lecturas desde bases relacionales ?
@inigo-x9u
@inigo-x9u 9 ай бұрын
Tarde y fuera de tiempo pero el Trremap lo usaban porque te garantiza el orden y una de las premisas es que el resultado este ordenado alfabeticamente
@TheMikeN16
@TheMikeN16 8 ай бұрын
Mil millones en 2 segundos, mind blow.
@Daniel-gt7lx
@Daniel-gt7lx 9 ай бұрын
Le pondre a ver esto a toda mi empresa :p
@NelsonboadaMovil
@NelsonboadaMovil 9 ай бұрын
🙂 Con Java puedes ir rápido, pero con Unsafe puedes usar a Java como el que abre la puerta, y así puedes ir mas rápido
@lluismf
@lluismf 10 ай бұрын
El Treemap es para imprimir los resultados por orden alfabético, que es uno de los requerimientos.
@eaguilar1714
@eaguilar1714 9 ай бұрын
Hola soy aficionado a la tecnología, y yo trabajo actualmente en empresas privadas para la banca, me ha tocado procesar grandes cantidades de información, y este tema es super interesante. Voy viendo el video mas de 4 veces, no puedo creer que haya tanta información. Saludos
@alfonsolima6511
@alfonsolima6511 10 ай бұрын
Que buen video! muchas gracias
@Asgallu
@Asgallu Ай бұрын
Buen video
@JuanMartinRuiz
@JuanMartinRuiz 7 ай бұрын
con java 😂
@giovl90
@giovl90 10 ай бұрын
Muy interesante, gracias !
@elruchal
@elruchal 10 ай бұрын
umnmmm hay que echarle un vistazo para hacerlo con AWK ;)
@jlgarnec
@jlgarnec 10 ай бұрын
Excelente reto.
@javierfreireriobo
@javierfreireriobo 10 ай бұрын
El TreeMap es para imprimir los resultados ordenados alfabeticamente
@jorgegarcia7130
@jorgegarcia7130 9 ай бұрын
Se puede usar la GPU para calcularlo? te lo bajo a milisegundos
@RicardoIturra-mb3qs
@RicardoIturra-mb3qs 7 ай бұрын
😂
@panopticonvoid
@panopticonvoid 10 ай бұрын
Para optimizar java lo que fue efectivo es sacar el corazón de java (no vm no GC), lo interesante de los resultados, considerando la masiva diferencia, es que no es importante ser performante si está sobre una vm con GC sino simplemente no escribir aberraciones.
@joaquinperez8338
@joaquinperez8338 9 ай бұрын
Un billón es 10⁹ o 10¹² ? En que formato está el fichero ? csv txt o cual ?
@CodelyTV
@CodelyTV 9 ай бұрын
Tienes toda la info en el enlace de la descripción 😊
@jlgarnec
@jlgarnec 10 ай бұрын
Gracias!
@CodeWilkin
@CodeWilkin 9 ай бұрын
En la empresa donde laboro usar Parallel, es lo ultimo que se debe de usar, realmente esta prohibido usarlo. Nos basamos a puros Index u otro Hint. Tratare de hacer el reto.
@kluih9872
@kluih9872 10 ай бұрын
Tremendo
@victormiranda7654
@victormiranda7654 9 ай бұрын
Me parece que el treemap mantiene el orden
@andresfcuellarc
@andresfcuellarc 9 ай бұрын
Muy buen caso! Genial @CodelyTV
@jorgegarcia7130
@jorgegarcia7130 9 ай бұрын
Te lo hago en jscript en medio segundo!
@ratmiltorres24
@ratmiltorres24 9 ай бұрын
Treemap capaz y sea más rápido la búsqueda que con un hash.
@b14ckh4wk3
@b14ckh4wk3 10 ай бұрын
Yo usaría un binary tree y luego haría traversal
@fullmetaldg
@fullmetaldg 9 ай бұрын
Está igual a Lionel Scaloni
@verdepanza
@verdepanza 9 ай бұрын
Tremendo el nivel de conocimientos de Java y de resolver problemas con Messi.
@CarlosWolfram
@CarlosWolfram 9 ай бұрын
hace verdad el que no hay pc lentas si no codigo mal optimizado :u
@NWqwerty
@NWqwerty 10 ай бұрын
porque la gente que programa en java son siempre tan buenos :/ me cae gordo java o sea soy un caca, eso si me hizo reir lo de programar en C pero estando en Java cuando ponen unsafe, añadiendo que estan programndo en C sin tener ni idea de coma referenciar punteros y todo eso que se hace con C en memoria o los programadores de java tambien saben hacer eso? :o igual rust tambien tiene lo mismo
@aquavxi6431
@aquavxi6431 10 ай бұрын
Esto es Java avanzado.
@elruchal
@elruchal 10 ай бұрын
Yo por ejemplo empecé a estudiar Java en el 2002: Aún no existía el proyecto Eclipse. Sólo había algún entorno de desarrollo de pago que un mortal no podía permitirse. Compilábamos en línea de comandos. Tampoco existía Hibernate (por supuesto, tampoco stackoverflow). Acababan de aparecer los JSP (mezcla de html + Java, como una especie de php..) La especificación de servlets estaba todavía, como quien dice, en pañales. XML tenía 4 años y JAXP acababa de salir como quien dice.. El GC no funcionaba como ahora La especificación HTML era todavía 4.0.1, CSS llevaba como quien dice 2 o 3 años fucionando y empezaba en ese momento a ser algo común a los navegadores (Internet explorer 5.. Netscape 4...) ;) ¿He usado punteros? Claro. La mayoría que hemos programado en Java y lo conocemos a bajo nivel y hace muchos años, hemos programado C o C++ o incluso nos ha tocado convertir cientos de miles de líneas de código C a Java (~450K). De hecho yo para estas movidas de extracciones y cruces de datos, ordenaciones, etc. utilizo lenguajes de la familia AWK que están orientados a estas tareas y son especialmente rápidos y sencillos de codificar, además de ser interpretados en línea de comandos por lo que no requiere compilar ni máquinas virtuales :) . De hecho, nuestro curro era montar pequeños scripts de AWK para poder realizar extracciones y cruces masivos de datos y no penalizar las BDD ;) Java tiene sus cosas buenas y sus cosas malas. Es normal que si has programado C (y además bien), te caiga un poco gordo Java. De todos modos, bien utilizado, es muy potente y fiable, sobre todo desde unos años hasta ahora. PD: al respecto de "los programadores JAVA": Todos somos programadores, sólo que unos conocemos unos lenguajes u otros, lo que implica que conocemos diferentes herramientas y modos de hacer las cosas. Conforme más lenguajes conoces, más herramientas y modos de hacer las cosas que has visto, y por tanto, que puedes suponer/investigar cuando necesitas llegar a estas cuestiones. :) No le tengas paquete a Java, quizá un día descubres que hace mejor lo que hacías en C y simplemente no le diste la oportunidad :)
@Josegarcia-xw3ci
@Josegarcia-xw3ci 9 ай бұрын
Que pecado que cambiasen de máquina. 32 Corea, implica también una memoria caché de diferente arquitectura, topologías y tamaños. Ya no estamos viendo mejoras bajo el mismo patrón de comportamiento.
@germannunez490
@germannunez490 9 ай бұрын
Interesante reto, saludos desde nicaragua. consejo: mejoren el audio, se escucha horrible el de @antonmry
@inigo-x9u
@inigo-x9u 9 ай бұрын
Tarde y fuera de tiempo pero el Trremap lo usaban porque te garantiza el orden y una de las premisas es que el resultado este ordenado alfabeticamente
Cuándo usar cada tipo de test | #laFunción 9x22
1:09:08
CodelyTV - Redescubre la programación
Рет қаралды 6 М.
1 Billion Rows Challenge
8:58
ThePrimeTime
Рет қаралды 120 М.
Молодой боец приземлил легенду!
01:02
МИНУС БАЛЛ
Рет қаралды 2,1 МЛН
The Ultimate Sausage Prank! Watch Their Reactions 😂🌭 #Unexpected
00:17
La La Life Shorts
Рет қаралды 8 МЛН
Long Nails 💅🏻 #shorts
00:50
Mr DegrEE
Рет қаралды 16 МЛН
Cómo aprender Arquitectura de Software en Codely en 2025 | #laFunción 10x04
1:00:44
CodelyTV - Redescubre la programación
Рет қаралды 7 М.
CRO Talk #9 - Los 4 pilares de la experimentación en ecommerce
1:01:47
D2B - Inteligencia Digital
Рет қаралды 58
Conoces estos operadores de Postgres? Cómo hacer RAG
12:23
CodelyTV - Redescubre la programación
Рет қаралды 2,3 М.
Novedades en Java 22 con ejemplos: Stream Gatherers, Foreign Function & Memory API | #laFunción 9x23
59:54
clase metodo avanzado 05 11 2024
1:54:43
Eduardo Mendez
Рет қаралды
Por qué aprender Arquitectura de Software | #laFunción 9x10
53:06
CodelyTV - Redescubre la programación
Рет қаралды 83 М.
C Programming Tutorial for Beginners
3:46:13
freeCodeCamp.org
Рет қаралды 14 МЛН
El problema de Flutter
6:55
midulive
Рет қаралды 54 М.
Молодой боец приземлил легенду!
01:02
МИНУС БАЛЛ
Рет қаралды 2,1 МЛН