{"id":92508,"date":"2020-08-28T07:42:10","date_gmt":"2020-08-28T05:42:10","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/kak-my-organizovali-vysokoeffektivnoe-i-nedorogoe-datalake-i-pochemu-imenno-tak"},"modified":"2020-08-28T07:42:10","modified_gmt":"2020-08-28T05:42:10","slug":"kak-my-organizovali-vysokoeffektivnoe-i-nedorogoe-datalake-i-pochemu-imenno-tak","status":"publish","type":"post","link":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/kak-my-organizovali-vysokoeffektivnoe-i-nedorogoe-datalake-i-pochemu-imenno-tak","title":{"rendered":"C\u00f3mo organizamos un DataLake altamente eficiente y de bajo costo y por qu\u00e9 de esta manera.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Vivimos en un tiempo sorprendente, donde es posible conectar r\u00e1pidamente y f\u00e1cilmente varias herramientas de c\u00f3digo abierto, configurarlas con un \u00abcerebro desconectado\u00bb siguiendo los consejos de stackoverflow, sin profundizar en \u00abpalabras complicadas\u00bb, y ponerlas en funcionamiento comercial. Y cuando sea necesario actualizarse\/ampliarse o alguien reinicie accidentalmente un par de m\u00e1quinas, uno se da cuenta de que ha comenzado una pesadilla molesta en la vida real, todo se complic\u00f3 dr\u00e1sticamente, no hay vuelta atr\u00e1s, el futuro es incierto y m\u00e1s seguro, en lugar de programar, criar abejas y hacer queso.<\/p>\n<p>No es de extra\u00f1ar que los colegas m\u00e1s experimentados, con cabezas canosas llenas de bugs, observando el incre\u00edblemente r\u00e1pido despliegue de montones de \u00abcontenedores\u00bb en \u00abcubos\u00bb en decenas de servidores en \u00ablenguajes de moda\u00bb con soporte incorporado para entrada\/salida as\u00edncrona y no bloqueante, sonr\u00eden modestamente. Y silenciosamente contin\u00faan releyendo \u00abman ps\u00bb, profundizando hasta que les sangran los ojos en el c\u00f3digo fuente de \u00abnginx\u00bb y escribiendo-escribiendo-escribiendo pruebas unitarias. Los colegas saben que lo m\u00e1s interesante est\u00e1 por venir, cuando \u00abtodo esto\u00bb un d\u00eda se convierta en un dolor de cabeza bajo el \u00e1rbol de Navidad. Y solo un profundo entendimiento de la naturaleza de unix, la tabla de estados de TCP\/IP y los algoritmos b\u00e1sicos de ordenamiento-b\u00fasqueda les ayudar\u00e1 a devolver el sistema a la vida con el sonido de las campanas.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nAh, s\u00ed, me he desviado un poco, pero espero haber transmitido el estado de anticipaci\u00f3n.<br \/>\nHoy quiero compartir nuestra experiencia en el despliegue de una pila conveniente y econ\u00f3mica para DataLake, que resuelve la mayor\u00eda de las tareas anal\u00edticas de la empresa para diferentes departamentos.<\/p>\n<p>Hace alg\u00fan tiempo, llegamos a la conclusi\u00f3n de que las empresas necesitan cada vez m\u00e1s los frutos tanto de la anal\u00edtica de productos como de la t\u00e9cnica (sin mencionar las cerezas en el pastel como el machine learning) y para entender las tendencias y riesgos, es necesario recolectar y analizar cada vez m\u00e1s m\u00e9tricas.<\/p>\n<h3>Anal\u00edtica t\u00e9cnica b\u00e1sica en \u00abBitrix24\u00bb<\/h3>\n<p>\nHace varios a\u00f1os, al mismo tiempo que lanzamos el servicio 'Bitrix24', invertimos activamente tiempo y recursos en crear una plataforma anal\u00edtica simple y confiable que ayudara a identificar r\u00e1pidamente problemas en la infraestructura y planificar el pr\u00f3ximo paso. Por supuesto, era deseable utilizar herramientas que fueran listas, simples y comprensibles. Como resultado, se eligi\u00f3 Nagios para la supervisi\u00f3n y Munin para el an\u00e1lisis y la visualizaci\u00f3n. Ahora tenemos miles de verificaciones en Nagios, cientos de gr\u00e1ficos en Munin y los colegas los utilizan diariamente con \u00e9xito. Las m\u00e9tricas son claras, los gr\u00e1ficos son comprensibles, el sistema ha funcionado de manera confiable durante varios a\u00f1os y se a\u00f1aden regularmente nuevas pruebas y gr\u00e1ficos: cuando introducimos un nuevo servicio en operaci\u00f3n, agregamos varias pruebas y gr\u00e1ficos. Buen camino.<\/p>\n<h3>Manos al pulso \u2014 an\u00e1lisis t\u00e9cnico avanzado<\/h3>\n<p>\nEl deseo de recibir informaci\u00f3n sobre problemas 'lo m\u00e1s r\u00e1pido posible' nos llev\u00f3 a experimentar activamente con herramientas simples y comprensibles \u2014 Pinba y XHProf.<\/p>\n<p>Pinba nos enviaba en paquetes UDP estad\u00edsticas sobre la velocidad de funcionamiento de las partes de las p\u00e1ginas web en PHP y se pod\u00eda ver en tiempo real en el almacenamiento MySQL (Pinba tiene su propio motor MySQL para un an\u00e1lisis r\u00e1pido de eventos) una lista corta de problemas y reaccionar a ellos. Y XHProf, de forma autom\u00e1tica, permit\u00eda recopilar gr\u00e1ficos de ejecuci\u00f3n de las p\u00e1ginas PHP m\u00e1s lentas de los clientes y analizar qu\u00e9 pudo llevar a ello \u2014 tranquilamente, sirviendo t\u00e9 o algo m\u00e1s fuerte.<\/p>\n<p>Hace un tiempo, el conjunto de herramientas se ampli\u00f3 con otro motor bastante simple y comprensible basado en un algoritmo de \u00edndice inverso, implementado a la perfecci\u00f3n en la legendaria biblioteca Lucene \u2014 Elastic\/Kibana. La simple idea de almacenar documentos multihilo en el \u00edndice inverso de Lucene a partir de eventos en logs y una b\u00fasqueda r\u00e1pida a trav\u00e9s de ellos utilizando divisi\u00f3n de facetas result\u00f3 ser verdaderamente \u00fatil.<\/p>\n<p>A pesar del aspecto t\u00e9cnico bastante de las visualizaciones en Kibana con conceptos de bajo nivel como 'bucket' y un lenguaje de \u00e1lgebra relacional reinventado, el instrumento nos ha ayudado mucho en las siguientes tareas:<\/p>\n<ul>\n<li>\u00bfCu\u00e1ntos errores de PHP tuvo el cliente de Bitrix24 en el portal p1 en la \u00faltima hora y cu\u00e1les fueron? Entender, perdonar y corregir r\u00e1pidamente.<\/li>\n<li>\u00bfCu\u00e1ntas videollamadas se realizaron en los portales de Alemania en las \u00faltimas 24 horas, con qu\u00e9 calidad y hubo problemas con el canal\/red?<\/li>\n<li>\u00bfQu\u00e9 tan bien funciona la funci\u00f3n del sistema (nuestra extensi\u00f3n en C para PHP), compilada desde el c\u00f3digo fuente en la \u00faltima actualizaci\u00f3n del servicio y desplegada a los clientes? \u00bfNo hay segfaults?<\/li>\n<li>\u00bfLos datos de los clientes se almacenan en la memoria de PHP? \u00bfNo hay errores de exceso de memoria asignada a los procesos: 'out of memory'? Necesitamos encontrar y neutralizar.<\/li>\n<\/ul>\n<p>\nAqu\u00ed hay un ejemplo concreto. A pesar de las pruebas exhaustivas y multicapas, el cliente experiment\u00f3 un error frustrante e inesperado con un caso muy at\u00edpico y datos de entrada da\u00f1ados, son\u00f3 la alarma y comenz\u00f3 el proceso de correcci\u00f3n r\u00e1pida:<\/p>\n<p><img decoding=\"async\" alt=\"C\u00f3mo organizamos un DataLake altamente eficiente y de bajo costo y por qu\u00e9 de esta manera.\" src=\"\/wp-content\/uploads\/2020\/08\/8a802dba41b5d1a85c0dc41dfbf8b84e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAdem\u00e1s, Kibana permite organizar notificaciones para eventos espec\u00edficos y en poco tiempo, decenas de empleados de diferentes departamentos comenzaron a usar la herramienta, desde soporte t\u00e9cnico y desarrollo hasta QA.<\/p>\n<p>La actividad de cualquier departamento dentro de la empresa se puede rastrear y medir f\u00e1cilmente; en lugar de analizar manualmente los registros en los servidores, basta con configurar una vez el an\u00e1lisis de registros y su env\u00edo a un cl\u00faster Elastic para disfrutar, por ejemplo, observando en el dashboard de Kibana la cantidad de gatitos de dos cabezas impresos en 3D vendidos durante el \u00faltimo mes lunar.<\/p>\n<h3>An\u00e1lisis empresarial b\u00e1sico<\/h3>\n<p>\nTodos saben que a menudo el an\u00e1lisis empresarial en las empresas comienza con el uso extremadamente activo de, s\u00ed, s\u00ed, Excel. Pero, lo m\u00e1s importante, es que no termine ah\u00ed. El aceite en el fuego lo agrega todav\u00eda m\u00e1s el Google Analytics en la nube: r\u00e1pidamente te acostumbras a lo bueno.<\/p>\n<p>En nuestra empresa en armonioso desarrollo, empezaron a aparecer de vez en cuando 'profetas' de un trabajo m\u00e1s intensivo con datos m\u00e1s grandes. Las necesidades de informes m\u00e1s profundos y multifac\u00e9ticos empezaron a surgir regularmente, y gracias a los esfuerzos de personas de diferentes departamentos, hace un tiempo se organiz\u00f3 una soluci\u00f3n simple y pr\u00e1ctica: la combinaci\u00f3n de ClickHouse y PowerBI.<\/p>\n<p>Durante bastante tiempo, esta soluci\u00f3n flexible ayud\u00f3 muy bien, pero poco a poco se comprendi\u00f3 que ClickHouse no es el\u00e1stico y no se puede abusar de \u00e9l.<\/p>\n<p>Es importante entender bien que ClickHouse, al igual que Druid, Vertica y Amazon RedShift (que se basa en Postgres), son motores anal\u00edticos optimizados para un an\u00e1lisis bastante c\u00f3modo (sumas, agregaciones, m\u00ednimo-m\u00e1ximo por columna y se puede hacer algo de join), ya que est\u00e1n organizados para un almacenamiento eficiente de columnas de tablas relacionales, a diferencia de lo que conocemos como MySQL y otras bases de datos (orientadas a filas).<\/p>\n<p>En esencia, ClickHouse es solo una \u00abbase\u00bb de datos m\u00e1s espaciosa, con una inserci\u00f3n puntual no muy c\u00f3moda (as\u00ed est\u00e1 dise\u00f1ado, est\u00e1 bien), pero con un an\u00e1lisis agradable y un conjunto de poderosas funciones interesantes para trabajar con los datos. S\u00ed, incluso se puede crear un cl\u00faster, pero usted entiende que clavar un clavo con un microscopio no es del todo correcto y comenzamos a buscar otras soluciones.<\/p>\n<h3>Demanda de python y analistas<\/h3>\n<p>\nEn nuestra empresa hay muchos desarrolladores que escriben c\u00f3digo casi todos los d\u00edas durante 10-20 a\u00f1os en PHP, JavaScript, C#, C\/C++, Java, Go, Rust, Python y Bash. Tambi\u00e9n hay muchos administradores de sistemas experimentados que han sobrevivido a m\u00e1s de una cat\u00e1strofe incre\u00edble, que no se ajusta a las leyes de la estad\u00edstica (por ejemplo, cuando se destruyen la mayor\u00eda de los discos en un raid-10 por un fuerte rayo). En tales condiciones, durante mucho tiempo fue incomprensible qu\u00e9 es un \u00abanalista en python\u00bb. Python es como PHP, solo que el nombre es un poco m\u00e1s largo y hay menos huellas de sustancias que alteran la conciencia en el c\u00f3digo fuente del int\u00e9rprete. Sin embargo, a medida que se crean informes anal\u00edticos nuevos y nuevos, los desarrolladores experimentados comenzaron a darse cuenta m\u00e1s profundamente de la importancia de la especializaci\u00f3n en herramientas como numpy, pandas, matplotlib y seaborn.<br \/>\nEl papel decisivo, probablemente, lo jugaron los desmayos repentinos de los empleados ante la combinaci\u00f3n de las palabras \u00abregresi\u00f3n log\u00edstica\u00bb y la demostraci\u00f3n de un informe efectivo construido sobre grandes vol\u00famenes de datos, s\u00ed, s\u00ed, con pyspark.<\/p>\n<p>Apache Spark, su paradigma funcional, sobre el que se basa la \u00e1lgebra relacional y las posibilidades, impresion\u00f3 tanto a los desarrolladores acostumbrados a MySQL que la necesidad de reforzar las filas con analistas experimentados se volvi\u00f3 clara como el d\u00eda.<\/p>\n<h3>Los intentos posteriores de Apache Spark\/Hadoop de despegar y lo que sali\u00f3 no fue del todo seg\u00fan lo planeado.<\/h3>\n<p>\nSin embargo, pronto qued\u00f3 claro que con Spark, aparentemente, algo no estaba bien sistem\u00e1ticamente o simplemente hab\u00eda que lavarse mejor las manos. Si el stack Hadoop\/MapReduce\/Lucene es desarrollado por programadores bastante experimentados, lo que es obvio si se revisan detenidamente los c\u00f3digos fuente en Java o las ideas de Doug Cutting en Lucene, de repente, Spark, est\u00e1 escrito en un lenguaje ex\u00f3tico muy cuestionable desde el punto de vista pr\u00e1ctico y actualmente no en desarrollo, llamado Scala. Adem\u00e1s, el frecuente fallo de los c\u00e1lculos en el cl\u00faster de Spark debido al funcionamiento il\u00f3gico y poco claro de la asignaci\u00f3n de memoria para las operaciones de reducci\u00f3n (se manejan muchos claves a la vez) ha creado a su alrededor un aura de algo que tiene mucho por mejorar. Tambi\u00e9n se agravaba la situaci\u00f3n con la gran cantidad de puertos abiertos extra\u00f1os, archivos temporales que crec\u00edan en los lugares m\u00e1s inesperados y un mont\u00f3n de dependencias de jars, lo que provocaba en los administradores de sistemas una conocida sensaci\u00f3n de odio profundo (quiz\u00e1s era necesario lavarse las manos con jab\u00f3n).<\/p>\n<p>Como resultado, hemos \"sobrevivido\" a varios proyectos anal\u00edticos internos que utilizan activamente Apache Spark (incluyendo Spark Streaming, Spark SQL) y el ecosistema Hadoop (etc.). A pesar de que con el tiempo aprendimos a \"prepararlo\" y monitorearlo bastante bien, y \"pr\u00e1cticamente dej\u00f3 de caer repentinamente\" debido a cambios en la naturaleza de los datos y el desbalanceo de hashing uniforme de RDD, el deseo de tener algo ya preparado, actualizable y administrado en la nube creci\u00f3 cada vez m\u00e1s. Justo en ese momento, probamos usar una soluci\u00f3n en la nube lista de Amazon Web Services \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/aws.amazon.com\/ru\/emr\/\">EMR<\/a><\/noindex> y, posteriormente, intentamos resolver tareas sobre ella. EMR es la versi\u00f3n de Apache Spark preparada por Amazon con software adicional del ecosistema, aproximadamente como los paquetes de Cloudera\/Hortonworks.<\/p>\n<h3>Un almacenamiento de archivos \"flexible\" para an\u00e1lisis \u2014 una necesidad urgente<\/h3>\n<p>\nLa experiencia de \"preparar\" Hadoop\/Spark con quemaduras en diferentes partes del cuerpo no fue en vano. Se hizo cada vez m\u00e1s evidente la necesidad de crear un \u00fanico almacenamiento de archivos econ\u00f3mico y fiable, que sea resistente a fallos de hardware y que permita almacenar archivos en diferentes formatos de diferentes sistemas y realizar consultas de manera eficiente y en un tiempo razonable para informes.<\/p>\n<p>Tambi\u00e9n quer\u00eda que la actualizaci\u00f3n del software de esta plataforma no se convirtiera en una pesadilla de Nochevieja, leyendo pistas de Java de 20 p\u00e1ginas y analizando kil\u00f3metros de registros detallados del funcionamiento del cl\u00faster con la ayuda del Spark History Server y una lupa con luz. Deseaba tener una herramienta simple y transparente que no requiriera bucear regularmente bajo el cap\u00f3, si el desarrollador dejaba de ejecutar la consulta est\u00e1ndar de MapReduce debido a la p\u00e9rdida de memoria en el trabajo de los datos de reducci\u00f3n por un algoritmo de particionado de datos de entrada no muy bien elegido.<\/p>\n<h3>\u00bfAmazon S3, un candidato para DataLake?<\/h3>\n<p>\nLa experiencia con Hadoop\/MapReduce me ense\u00f1\u00f3 que se necesita un sistema de archivos escalable y confiable, y sobre \u00e9l, trabajadores escalables que 'se acerquen' a los datos, para no estar moviendo datos por la red. Los trabajadores deben ser capaces de leer datos en diferentes formatos, pero, idealmente, no leer informaci\u00f3n adicional y poder almacenar datos con antelaci\u00f3n en formatos convenientes para los trabajadores.<\/p>\n<p><b>Una vez m\u00e1s, la idea principal.<\/b> No hay deseo de 'subir' grandes datos a un \u00fanico motor anal\u00edtico en cl\u00faster, que de todos modos se ahogar\u00e1 tarde o temprano y habr\u00e1 que fragmentarlo de manera poco decorosa. Quiero almacenar archivos, simples archivos, en un formato comprensible y ejecutar consultas anal\u00edticas eficientes sobre ellos con diferentes, pero comprensibles herramientas. Y habr\u00e1 cada vez m\u00e1s archivos en diferentes formatos. Y es mejor fragmentar no el motor, sino los datos de origen. Necesitamos un DataLake escalable y vers\u00e1til, as\u00ed decidimos...<\/p>\n<p>\u00bfY si almacenamos archivos en el conocido y escalable almacenamiento en la nube Amazon S3, sin tener que preparar nuestra propia comida de Hadoop?<\/p>\n<p>Est\u00e1 claro, los datos personales 'no se pueden', pero \u00bfqu\u00e9 pasa con otros datos si los sacamos y los 'procesamos eficazmente'?<\/p>\n<h3>El ecosistema de an\u00e1lisis de big data en cl\u00faster de Amazon Web Services, en palabras muy simples.<\/h3>\n<p>\nSeg\u00fan nuestra experiencia con AWS, hace tiempo que se utiliza Apache Hadoop\/MapReduce bajo diferentes circunstancias, por ejemplo, en el servicio DataPipeline (envidio a mis colegas, han aprendido a prepararlo correctamente). Aqu\u00ed configuramos copias de seguridad de diferentes servicios a partir de tablas de DynamoDB:<br \/>\n<img decoding=\"async\" alt=\"C\u00f3mo organizamos un DataLake altamente eficiente y de bajo costo y por qu\u00e9 de esta manera.\" src=\"\/wp-content\/uploads\/2020\/08\/058dc54ed032a7bf3e9e129646202440.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nY se ejecutan de manera continua en clusters de Hadoop\/MapReduce como un reloj desde hace varios a\u00f1os. 'Lo configur\u00e9 y lo olvid\u00e9':<\/p>\n<p><img decoding=\"async\" alt=\"C\u00f3mo organizamos un DataLake altamente eficiente y de bajo costo y por qu\u00e9 de esta manera.\" src=\"\/wp-content\/uploads\/2020\/08\/a6569da8cafdb96c63250bb32bf51704.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAdem\u00e1s, se puede realizar un datascattering de manera eficiente, levantando notebooks de Jupiter en la nube para los analistas y utilizando AWS SageMaker para el entrenamiento y despliegue de modelos de IA. As\u00ed es como se ve en nuestra empresa:<\/p>\n<p><img decoding=\"async\" alt=\"C\u00f3mo organizamos un DataLake altamente eficiente y de bajo costo y por qu\u00e9 de esta manera.\" src=\"\/wp-content\/uploads\/2020\/08\/c825d979c9278a8edf8e1e747ef6def8.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nY s\u00ed, se puede levantar un notebook en la nube o un notebook para un analista y conectarlo a un cl\u00faster de Hadoop\/Spark, realizar los c\u00e1lculos y luego \u00abarchivarlo\u00bb todo:<\/p>\n<p><img decoding=\"async\" alt=\"C\u00f3mo organizamos un DataLake altamente eficiente y de bajo costo y por qu\u00e9 de esta manera.\" src=\"\/wp-content\/uploads\/2020\/08\/73cea18c54d2a9ce8d0441463991808b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEs realmente conveniente para proyectos anal\u00edticos individuales y en algunos casos hemos utilizado con \u00e9xito el servicio EMR para c\u00e1lculos y an\u00e1lisis a gran escala. \u00bfY qu\u00e9 hay de una soluci\u00f3n sist\u00e9mica para DataLake, ser\u00e1 posible? En ese momento est\u00e1bamos al borde de la esperanza y la desesperaci\u00f3n y continuamos con la b\u00fasqueda.<\/p>\n<h3>AWS Glue es Apache Spark \u00aben esteroides\u00bb<\/h3>\n<p>\nResult\u00f3 que AWS tiene su propia versi\u00f3n del stack \u00abHive\/Pig\/Spark\u00bb. El rol de Hive, es decir, el cat\u00e1logo de archivos y sus tipos en DataLake, es desempe\u00f1ado por el servicio \u00abData catalog\u00bb, que no oculta su compatibilidad con el formato Apache Hive. En este servicio, hay que a\u00f1adir informaci\u00f3n sobre d\u00f3nde est\u00e1n tus archivos y en qu\u00e9 formato est\u00e1n. Los datos pueden estar no solo en s3, sino tambi\u00e9n en una base de datos, aunque de eso no trata esta publicaci\u00f3n. As\u00ed es como organizamos el cat\u00e1logo de datos de DataLake:<\/p>\n<p><img decoding=\"async\" alt=\"C\u00f3mo organizamos un DataLake altamente eficiente y de bajo costo y por qu\u00e9 de esta manera.\" src=\"\/wp-content\/uploads\/2020\/08\/adb45d09698fdacbf41c86bbadde8bb2.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLos archivos est\u00e1n registrados, excelente. Si los archivos se actualizan, lanzamos manualmente o programamos crawlers que actualizar\u00e1n la informaci\u00f3n sobre ellos desde el lago y la guardar\u00e1n. Luego, los datos del lago se pueden procesar y los resultados exportar a alg\u00fan lugar. En el caso m\u00e1s simple, exportamos tambi\u00e9n a s3. El procesamiento de datos se puede realizar en cualquier lugar, pero se sugiere configurar el proceso de procesamiento en un cl\u00faster de Apache Spark utilizando las capacidades avanzadas a trav\u00e9s de la API de AWS Glue. En esencia, puedes tomar el viejo y conocido c\u00f3digo en python utilizando la librer\u00eda pyspark y configurar su ejecuci\u00f3n en N nodos de un cl\u00faster de cierta capacidad con monitoreo, sin tener que hurgar en lo m\u00e1s profundo de Hadoop y arrastrar contenedores de Docker, as\u00ed como eliminar conflictos de dependencias.<\/p>\n<p><b>Una vez m\u00e1s: una idea simple.<\/b> No es necesario configurar Apache Spark, solo hay que escribir el c\u00f3digo en python para pyspark, probarlo localmente en el escritorio y luego ejecutarlo en un gran cl\u00faster en la nube, indicando d\u00f3nde est\u00e1n los datos de origen y d\u00f3nde colocar el resultado. A veces es necesario y \u00fatil, y as\u00ed es como lo tenemos configurado:<\/p>\n<p><img decoding=\"async\" alt=\"C\u00f3mo organizamos un DataLake altamente eficiente y de bajo costo y por qu\u00e9 de esta manera.\" src=\"\/wp-content\/uploads\/2020\/08\/dc03181573bb3f5cfcc3a8760bc7e07b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPor lo tanto, si necesitas realizar c\u00e1lculos en un cl\u00faster de Spark con datos en s3, escribimos el c\u00f3digo en python\/pyspark, probamos y \u00a1rumbo a la nube!<\/p>\n<p>\u00bfY qu\u00e9 pasa con la orquestaci\u00f3n? \u00bfY si una tarea falla y desaparece? S\u00ed, se propone crear un pipeline bonito al estilo de Apache Pig y realmente lo intentamos, pero decidimos seguir utilizando nuestra orquestaci\u00f3n altamente personalizada en PHP y JavaScript (entiendo que esto puede causar disonancia cognitiva, pero funciona, lleva a\u00f1os haci\u00e9ndolo y sin errores).<\/p>\n<p><img decoding=\"async\" alt=\"C\u00f3mo organizamos un DataLake altamente eficiente y de bajo costo y por qu\u00e9 de esta manera.\" src=\"\/wp-content\/uploads\/2020\/08\/e00ed2047c5c6492e36fccc82e7278a3.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>El formato de los archivos almacenados en el lago es clave para el rendimiento<\/h3>\n<p>\nEs muy, muy importante entender dos puntos clave m\u00e1s. Para que las solicitudes de datos de los archivos en el lago se realicen lo m\u00e1s r\u00e1pido posible y el rendimiento no se degrade al a\u00f1adir nueva informaci\u00f3n, se necesita:<\/p>\n<ul>\n<li>Almacenar las columnas de los archivos por separado (para que no se necesite leer todas las filas para entender qu\u00e9 hay en las columnas). Para esto, utilizamos el formato parquet con compresi\u00f3n.<\/li>\n<li>Es muy importante shardear los archivos en carpetas de la forma: idioma, a\u00f1o, mes, d\u00eda, semana. Los motores que entienden este tipo de sharding solo buscar\u00e1n en las carpetas necesarias, sin tener que procesar todos los datos a la vez.<\/li>\n<\/ul>\n<p>\nEn esencia, de esta manera, se presentan los datos originales en la forma m\u00e1s efectiva para los motores anal\u00edticos que pueden entrar selectivamente en las carpetas shardadas y leer solo las columnas necesarias de los archivos. No es necesario 'subir' los datos en ning\u00fan lado (el almacenamiento simplemente colapsar\u00eda) \u2014 simplemente col\u00f3calos de manera razonable en el sistema de archivos en el formato correcto. Por supuesto, debe quedar claro que almacenar un enorme archivo csv en DataLake, que necesita ser le\u00eddo l\u00ednea por l\u00ednea por un cl\u00faster para extraer columnas, no es muy pr\u00e1ctico. Reflexiona sobre los dos puntos mencionados anteriormente de nuevo si a\u00fan no comprendes por qu\u00e9 es necesario.<\/p>\n<h3>AWS Athena \u2014 \"el genio de la l\u00e1mpara\"<\/h3>\n<p>\nY aqu\u00ed, al crear el lago, nos encontramos, casi por casualidad, con Amazon Athena. De repente, result\u00f3 que al organizar nuestros enormes archivos de registro en el formato columnar correcto (parquet) por shards-carpeta, se pueden hacer selecciones sumamente informativas y construir informes MUY r\u00e1pido, SIN necesidad de un cl\u00faster de Apache Spark\/Glue.<\/p>\n<p>El motor de Athena, que trabaja con datos en s3, se basa en el legendario <noindex><a rel=\"nofollow\" href=\"https:\/\/aws.amazon.com\/ru\/big-data\/what-is-presto\/\">Presto<\/a><\/noindex> \u2014 representante de la familia de enfoques MPP (procesamiento paralelo masivo) para el manejo de datos, que obtiene informaci\u00f3n donde se encuentra, desde S3 y Hadoop hasta Cassandra y archivos de texto ordinarios. Solo hay que solicitar a Athena que ejecute una consulta SQL, y luego todo \"funciona r\u00e1pido y solo\". Es importante se\u00f1alar que Athena es \"inteligente\", solo accede a las carpetas fragmentadas necesarias y lee solo las columnas que se solicitan.<\/p>\n<p>Los costos de las consultas a Athena tambi\u00e9n son interesantes. Pagamos por <noindex><a rel=\"nofollow\" href=\"https:\/\/aws.amazon.com\/ru\/athena\/pricing\/\">el volumen de datos escaneados<\/a><\/noindex>. Es decir, no por el n\u00famero de m\u00e1quinas en el cl\u00faster por minuto, sino... por los datos realmente escaneados en 100-500 m\u00e1quinas, solo los necesarios para ejecutar la consulta.<\/p>\n<p>Al solicitar solo las columnas necesarias de las carpetas adecuadamente fragmentadas, result\u00f3 que el servicio de Athena nos cuesta decenas de d\u00f3lares al mes. \u00a1Es genial, casi gratis, en comparaci\u00f3n con la anal\u00edtica en cl\u00fasteres!<\/p>\n<p>Aqu\u00ed, por cierto, c\u00f3mo fragmentamos nuestros datos en S3:<\/p>\n<p><img decoding=\"async\" alt=\"C\u00f3mo organizamos un DataLake altamente eficiente y de bajo costo y por qu\u00e9 de esta manera.\" src=\"\/wp-content\/uploads\/2020\/08\/00bd9ae48c1cd13f3c4f7d32692c9209.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nComo resultado, en poco tiempo, diferentes departamentos de la empresa, desde seguridad de la informaci\u00f3n hasta anal\u00edtica, comenzaron a hacer consultas a Athena de manera activa y a recibir respuestas \u00fatiles de los \"grandes\" datos en segundos para per\u00edodos bastante largos: meses, medio a\u00f1o, etc.<\/p>\n<p>Pero fuimos m\u00e1s all\u00e1 y empezamos a buscar respuestas en la nube <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.aws.amazon.com\/athena\/latest\/ug\/connect-with-odbc.html\">a trav\u00e9s del controlador ODBC<\/a><\/noindex>: el analista en la consola habitual escribe una consulta SQL, que en 100-500 m\u00e1quinas \"por centavos\" busca datos en S3 y devuelve la respuesta generalmente en cuesti\u00f3n de segundos. Conveniente. Y r\u00e1pido. Todav\u00eda cuesta creerlo.<\/p>\n<p>Al final, al decidir almacenar datos en S3 en un formato de columna eficiente y con una fragmentaci\u00f3n razonable de datos por carpetas... obtuvimos un DataLake y un motor anal\u00edtico r\u00e1pido y barato \u2014 gratis. Y se volvi\u00f3 muy popular en la empresa, ya que entiende SQL y funciona muchas veces m\u00e1s r\u00e1pido que mediante el arranque\/parada\/configuraci\u00f3n de cl\u00fasteres. \"Y si el resultado es el mismo, \u00bfpor qu\u00e9 pagar m\u00e1s?\"<\/p>\n<p>Una consulta a Athena se ve aproximadamente as\u00ed. Si se desea, por supuesto, se puede formar una consulta SQL bastante <noindex><a rel=\"nofollow\" href=\"https:\/\/prestodb.io\/docs\/0.172\/index.html\">compleja y de m\u00faltiples p\u00e1ginas<\/a><\/noindex>, pero nos limitaremos a una simple agrupaci\u00f3n. Veremos qu\u00e9 c\u00f3digos de respuesta tuvo el cliente hace varias semanas en los registros del trabajo del servidor web y nos aseguraremos de que no haya errores:<\/p>\n<p><img decoding=\"async\" alt=\"C\u00f3mo organizamos un DataLake altamente eficiente y de bajo costo y por qu\u00e9 de esta manera.\" src=\"\/wp-content\/uploads\/2020\/08\/30028991467b9e52f597faa617d374b5.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Conclusiones<\/h3>\n<p>\nTras un camino que no se puede decir que haya sido largo, pero s\u00ed doloroso, evaluando constantemente los riesgos, el nivel de dificultad y el costo de soporte, encontramos una soluci\u00f3n para DataLake y anal\u00edtica que sigue complaci\u00e9ndonos tanto por su velocidad como por su costo de propiedad.<\/p>\n<p>Resulta que construir un DataLake eficiente, r\u00e1pido y de bajo costo operativo para las necesidades de distintos departamentos de la empresa est\u00e1 al alcance incluso de desarrolladores experimentados que nunca han trabajado como arquitectos y que no saben dibujar cuadros con flechas ni conocen 50 t\u00e9rminos de la ecosistema Hadoop.<\/p>\n<p>Al principio del camino, me dol\u00eda la cabeza por la abundancia de software de c\u00f3digo abierto y cerrado y la pesada carga de responsabilidad hacia las futuras generaciones. Simplemente comienza a construir tu DataLake utilizando herramientas simples: nagios\/munin -&gt; elastic\/kibana -&gt; Hadoop\/Spark\/s3..., recopilando comentarios y entendiendo en profundidad la f\u00edsica de los procesos que ocurren. Lo complicado y confuso, d\u00e9jaselo a los enemigos y competidores.<\/p>\n<p>Si no quieres ir a la nube y prefieres mantener, actualizar y parchear proyectos abiertos, puedes construir una esquema similar a la nuestra de manera local, en m\u00e1quinas de oficina econ\u00f3micas con Hadoop y Presto encima. Lo principal es no detenerse y avanzar, contar, buscar soluciones simples y claras, \u00a1y todo saldr\u00e1 bien! \u00a1Buena suerte a todos y hasta la pr\u00f3xima!<br \/>\n<br \/>Fuente: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/bitrix\/blog\/516374\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041c\u044b \u0436\u0438\u0432\u0435\u043c \u0432 \u0443\u0434\u0438\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f, \u043a\u043e\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e \u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043e\u0441\u0442\u044b\u043a\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0433\u043e\u0442\u043e\u0432\u044b\u0445 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0438\u0445 \u0441 \u00ab\u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u043c \u0441\u043e\u0437\u043d\u0430\u043d\u0438\u0435\u043c\u00bb \u043f\u043e \u0441\u043e\u0432\u0435\u0442\u0430\u043c stackoverflow, \u043d\u0435 \u0432\u043d\u0438\u043a\u0430\u044f \u0432 \u00ab\u043c\u043d\u043e\u0433\u043e\u0431\u0443\u043a\u0432\u00bb, \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0432 \u043a\u043e\u043c\u043c\u0435\u0440\u0447\u0435\u0441\u043a\u0443\u044e \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u044e. \u0410 \u043a\u043e\u0433\u0434\u0430 \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c\u0441\u044f\/\u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0442\u044c\u0441\u044f \u0438\u043b\u0438 \u043a\u0442\u043e-\u0442\u043e \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442 \u043f\u0430\u0440\u0443 \u043c\u0430\u0448\u0438\u043d \u2014 \u043e\u0441\u043e\u0437\u043d\u0430\u0442\u044c, \u0447\u0442\u043e \u043d\u0430\u0447\u0430\u043b\u0441\u044f \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043d\u0430\u0432\u044f\u0437\u0447\u0438\u0432\u044b\u0439 \u0434\u0443\u0440\u043d\u043e\u0439 \u0441\u043e\u043d \u043d\u0430\u044f\u0432\u0443, \u0432\u0441\u0435 \u0440\u0435\u0437\u043a\u043e \u0443\u0441\u043b\u043e\u0436\u043d\u0438\u043b\u043e\u0441\u044c \u0434\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":92509,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-92508","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041c\u044b \u0436\u0438\u0432\u0435\u043c \u0432 \u0443\u0434\u0438\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f, \u043a\u043e\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e \u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043e\u0441\u0442\u044b\u043a\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0433\u043e\u0442\u043e\u0432\u044b\u0445 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0438\u0445 \u0441 \u00ab\u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u043c \u0441\u043e\u0437\u043d\u0430\u043d\u0438\u0435\u043c\u00bb \u043f\u043e \u0441\u043e\u0432\u0435\u0442\u0430\u043c stackoverflow, \u043d\u0435 \u0432\u043d\u0438\u043a\u0430\u044f \u0432 \u00ab\u043c\u043d\u043e\u0433\u043e\u0431\u0443\u043a\u0432\u00bb, \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0432.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/kak-my-organizovali-vysokoeffektivnoe-i-nedorogoe-datalake-i-pochemu-imenno-tak\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041a\u0430\u043a \u043c\u044b \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u043b\u0438 \u0432\u044b\u0441\u043e\u043a\u043e\u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0435 \u0438 \u043d\u0435\u0434\u043e\u0440\u043e\u0433\u043e\u0435 DataLake \u0438 \u043f\u043e\u0447\u0435\u043c\u0443 \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041c\u044b \u0436\u0438\u0432\u0435\u043c \u0432 \u0443\u0434\u0438\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f, \u043a\u043e\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e \u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043e\u0441\u0442\u044b\u043a\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0433\u043e\u0442\u043e\u0432\u044b\u0445 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0438\u0445 \u0441 \u00ab\u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u043c \u0441\u043e\u0437\u043d\u0430\u043d\u0438\u0435\u043c\u00bb \u043f\u043e \u0441\u043e\u0432\u0435\u0442\u0430\u043c stackoverflow, \u043d\u0435 \u0432\u043d\u0438\u043a\u0430\u044f \u0432 \u00ab\u043c\u043d\u043e\u0433\u043e\u0431\u0443\u043a\u0432\u00bb, \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0432.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/kak-my-organizovali-vysokoeffektivnoe-i-nedorogoe-datalake-i-pochemu-imenno-tak\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-08-28T05:42:10+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-08-28T05:42:10+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47C\u00f3mo organizamos un DataLake altamente eficiente y de bajo costo y por qu\u00e9 lo hicimos as\u00ed | ProHoster","description":"Vivimos en un tiempo sorprendente, donde es posible conectar r\u00e1pidamente varios herramientas abiertas listas, configurarlas con 'conciencia desconectada' siguiendo consejos de stackoverflow, sin profundizar en t\u00e9rminos complejos, y lanzarlas.","canonical_url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/kak-my-organizovali-vysokoeffektivnoe-i-nedorogoe-datalake-i-pochemu-imenno-tak","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"es_ES","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041a\u0430\u043a \u043c\u044b \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u043b\u0438 \u0432\u044b\u0441\u043e\u043a\u043e\u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0435 \u0438 \u043d\u0435\u0434\u043e\u0440\u043e\u0433\u043e\u0435 DataLake \u0438 \u043f\u043e\u0447\u0435\u043c\u0443 \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a | ProHoster","og:description":"\u041c\u044b \u0436\u0438\u0432\u0435\u043c \u0432 \u0443\u0434\u0438\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f, \u043a\u043e\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e \u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043e\u0441\u0442\u044b\u043a\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0433\u043e\u0442\u043e\u0432\u044b\u0445 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0438\u0445 \u0441 \u00ab\u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u043c \u0441\u043e\u0437\u043d\u0430\u043d\u0438\u0435\u043c\u00bb \u043f\u043e \u0441\u043e\u0432\u0435\u0442\u0430\u043c stackoverflow, \u043d\u0435 \u0432\u043d\u0438\u043a\u0430\u044f \u0432 \u00ab\u043c\u043d\u043e\u0433\u043e\u0431\u0443\u043a\u0432\u00bb, \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0432.","og:url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/kak-my-organizovali-vysokoeffektivnoe-i-nedorogoe-datalake-i-pochemu-imenno-tak","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-08-28T05:42:10+00:00","article:modified_time":"2020-08-28T05:42:10+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"92508","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 12:07:39","updated":"2022-10-01 09:50:53","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/92508","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/comments?post=92508"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/92508\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media\/92509"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=92508"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=92508"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=92508"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}