{"id":22092,"date":"2022-12-22T08:08:15","date_gmt":"2022-12-22T07:08:15","guid":{"rendered":"https:\/\/codeoscopic.com\/?p=22092"},"modified":"2022-12-22T11:16:39","modified_gmt":"2022-12-22T10:16:39","slug":"como-acceder-a-millones-de-datos-en-diez-segundos","status":"publish","type":"post","link":"https:\/\/codeoscopic.com\/en\/como-acceder-a-millones-de-datos-en-diez-segundos\/","title":{"rendered":"Encontrando una p\u00f3liza entre millones de datos en cuesti\u00f3n segundos"},"content":{"rendered":"<ul>\r\n \t<li>\r\n<h3>Aprende c\u00f3mo Versus Analytics hace uso del servicio Athena de Amazon Web Services para recuperar una emisi\u00f3n de una compa\u00f1\u00eda concreta sobre millones de datos.<\/h3>\r\n<\/li>\r\n<\/ul>\r\n\u00a1Datos, datos datos! No puedo hacer ladrillos sin arcilla. Esta frase que dec\u00eda el famoso investigador Sherlock Holmes en sus novelas muestra la importancia de los datos en cualquier empresa. En Codeoscopic se generan cientos de miles de datos cada d\u00eda que atraviesan un proceso de limpieza hasta que se convierten en informaci\u00f3n valiosa. Pero entonces nos hicimos una pregunta: \u00bfC\u00f3mo podemos acceder a millones de datos en un tiempo razonable? La respuesta la encontramos en Amazon Athena.\r\n\r\nAmazon Athena es un servicio que permite realizar consultas SQL sobre ficheros. Es la herramienta fundamental sobre la que se cimentan algunos m\u00f3dulos como el de Perfiles de riesgo en nuestra aplicaci\u00f3n Versus Analytics. Sin embargo, por s\u00ed sola, Athena no nos ofrec\u00eda el rendimiento excepcional que busc\u00e1bamos para nuestra aplicaci\u00f3n.\r\n<div style=\"margin-bottom: 40px; text-align: center; font-size: 15px;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-22180\" style=\"margin-bottom: 0;\" src=\"https:\/\/codeoscopic.com\/wp-content\/uploads\/2022\/11\/Athena-01-1024x178.png\" alt=\"\" width=\"1024\" height=\"178\" srcset=\"https:\/\/codeoscopic.com\/wp-content\/uploads\/2022\/11\/Athena-01-1024x178.png 1024w, https:\/\/codeoscopic.com\/wp-content\/uploads\/2022\/11\/Athena-01-300x52.png 300w, https:\/\/codeoscopic.com\/wp-content\/uploads\/2022\/11\/Athena-01-768x134.png 768w, https:\/\/codeoscopic.com\/wp-content\/uploads\/2022\/11\/Athena-01.png 1178w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><i>Imagen 1: nuestro data lake en su fase inicial con millones de datos para explotar.<\/i><\/div>\r\n<blockquote>Nuestro objetivo era recuperar una emisi\u00f3n de una compa\u00f1\u00eda concreta en un mar de m\u00e1s de 50 millones de datos<\/blockquote>\r\nEst\u00e1bamos buscando una aguja en un pajar. Nuestro objetivo era recuperar una emisi\u00f3n de una compa\u00f1\u00eda concreta en un mar de m\u00e1s de 50 millones de datos. El primer paso que dimos fue el de poner un poco de orden en nuestro data lake. Para ello dividimos nuestros datos en particiones de forma que fuera m\u00e1s f\u00e1cil y r\u00e1pido acceder a la informaci\u00f3n que nos interesaba. Una partici\u00f3n es como una secci\u00f3n en la biblioteca, si buscas un libro de terror, vas a la secci\u00f3n de terror a encontrarlo. Si nuestra emisi\u00f3n fuese del ramo de hogar, Athena ahora ir\u00eda a buscarla a la partici\u00f3n de hogar, ignorando millones de datos de otros ramos que no nos interesan y agilizando enormemente el tiempo de la consulta. La mejora fue notable, pero no est\u00e1bamos del todo satisfechos, as\u00ed que continuamos optimizando nuestros sistemas.\r\n<div style=\"margin-bottom: 40px; text-align: center; font-size: 15px;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-22181\" style=\"margin-bottom: 0;\" src=\"https:\/\/codeoscopic.com\/wp-content\/uploads\/2022\/11\/Athena-02-1024x182.png\" alt=\"\" width=\"1024\" height=\"182\" srcset=\"https:\/\/codeoscopic.com\/wp-content\/uploads\/2022\/11\/Athena-02-1024x182.png 1024w, https:\/\/codeoscopic.com\/wp-content\/uploads\/2022\/11\/Athena-02-300x53.png 300w, https:\/\/codeoscopic.com\/wp-content\/uploads\/2022\/11\/Athena-02-768x136.png 768w, https:\/\/codeoscopic.com\/wp-content\/uploads\/2022\/11\/Athena-02.png 1167w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><i>Imagen 2: un data lake particionado, acceder a la informaci\u00f3n que queremos ahora es m\u00e1s r\u00e1pido.<\/i><\/div>\r\nCada tabla del cat\u00e1logo de datos de nuestro data lake tiene varias columnas: fecha, matr\u00edcula, compa\u00f1\u00eda\u2026 As\u00ed hasta m\u00e1s de 100 columnas que contienen informaci\u00f3n acerca del riesgo. Cuando Athena va a buscar los datos lo hace escaneando todas las columnas, pero no siempre queremos ver toda la informaci\u00f3n. El siguiente paso de optimizaci\u00f3n que realizamos fue el de cambiar el formato de fichero en el que almacenamos la informaci\u00f3n por uno que se llama Parquet. Se trata de un formato de fichero columnar, es decir, que cuando se haga una consulta, de todas las columnas que tenga el fichero se escanear\u00e1n \u00fanicamente aquellas columnas que sean relevantes.\r\n<div style=\"margin-bottom: 40px; text-align: center; font-size: 15px;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-22179\" style=\"margin-bottom: 0;\" src=\"https:\/\/codeoscopic.com\/wp-content\/uploads\/2022\/11\/Athena-03-1024x184.png\" alt=\"\" width=\"1024\" height=\"184\" srcset=\"https:\/\/codeoscopic.com\/wp-content\/uploads\/2022\/11\/Athena-03-1024x184.png 1024w, https:\/\/codeoscopic.com\/wp-content\/uploads\/2022\/11\/Athena-03-300x54.png 300w, https:\/\/codeoscopic.com\/wp-content\/uploads\/2022\/11\/Athena-03-768x138.png 768w, https:\/\/codeoscopic.com\/wp-content\/uploads\/2022\/11\/Athena-03.png 1176w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><i>Imagen 3: de toda la informaci\u00f3n que contiene un fichero parquet, s\u00f3lo escaneamos aquella que nos interesa.<\/i><\/div>\r\n<blockquote>Conseguimos que nuestra aplicaci\u00f3n pueda realizar consultas sobre millones de datos en menos de 10 segundos<\/blockquote>\r\n\u00a1Conseguido! Gracias a estas optimizaciones, conseguimos que nuestra aplicaci\u00f3n pueda realizar consultas sobre millones de datos en menos de 10 segundos.\r\n<div style=\"width: 100%;\">Ra\u00fal Franco\r\nVersus Project Manager<\/div>\r\n<p><\/p>","protected":false},"excerpt":{"rendered":"Aprende c\u00f3mo Versus Analytics hace uso del servicio Athena de Amazon Web Services para recuperar una emisi\u00f3n de una compa\u00f1\u00eda concreta sobre millones de datos.","protected":false},"author":13,"featured_media":22777,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[17],"tags":[288,287,117,98,163],"class_list":["post-22092","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tecnologia","tag-amazon-web-services","tag-athena","tag-codeoscopic","tag-tecnologia","tag-versus-analytics"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/codeoscopic.com\/en\/wp-json\/wp\/v2\/posts\/22092","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/codeoscopic.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/codeoscopic.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/codeoscopic.com\/en\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/codeoscopic.com\/en\/wp-json\/wp\/v2\/comments?post=22092"}],"version-history":[{"count":0,"href":"https:\/\/codeoscopic.com\/en\/wp-json\/wp\/v2\/posts\/22092\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/codeoscopic.com\/en\/wp-json\/wp\/v2\/media\/22777"}],"wp:attachment":[{"href":"https:\/\/codeoscopic.com\/en\/wp-json\/wp\/v2\/media?parent=22092"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/codeoscopic.com\/en\/wp-json\/wp\/v2\/categories?post=22092"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/codeoscopic.com\/en\/wp-json\/wp\/v2\/tags?post=22092"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}