Vamos a comenzar por uno de los conceptos más importantes a lo que está orientado el mundo de Big Data, que es el almacenamiento y gestión de los datos, o lo que denominamos en su momento el "Data Lake" o el Lago de Datos. Para entender la necesidad del Data Lake es importante hacernos una serie de preguntas, por ejemplo: ¿dónde guardamos los datos?, ¿quién puede acceder a esos datos?, ¿quién puede almacenar los datos?, ¿quién puede modificar esos datos?, ¿cuándo podremos acceder a ellos?, ¿en algún momento, esos datos modificados va a permitir de alguna manera poder llegar a los datos originales? Todas esas preguntas requieren una respuesta y es ahí, cuando se creó el concepto del Data Lake. El Data Lake lo que nos va a permitir es almacenar y obtener el dato en una estructura organizativa, en una empresa, en un colegio, en una universidad, donde queramos. Es importante destacar que el Data Lake está pensado para estructuras organizativas muy grandes, tan grandes que no hay escala definida, es interminable. Por ello, el almacenamiento de datos es interminable, es totalmente escalable y por ello, es muy importante organizar bien este almacenamiento de datos. Para ello, creamos pequeños silos o denominados también "repositorios", que lo que nos permite es crear zonas donde vamos a poder trabajar para una funcionalidad o una operativa determinada. Esa operativa está definida "a priori", es decir, hay una necesidad determinada, cogemos esos datos que necesitamos, los llevamos a nuestros repositorios, hacemos la operación que sea necesaria y, sin ningún problema, como ese silo, ese repositorio, está definido para eso, podemos trabajar con ese repositorio independientemente del origen de los datos, ese originen los datos queda guardado, sin ningún tipo de problema. ¿Qué pasa? Que con esos datos, podemos hacer varias operaciones, no pasa nada. Creamos repositorios, un repositorio por cada funcionalidad o cada operación que queramos hacer sobre los datos. Lo importante es tener claro qué es lo que vamos a hacer, coger los datos que vamos a necesitar y copiarlos sobre los distintos repositorios. Una de las características fundamentales del Data Lake es que el contenido parece estar centralizado, igual que en un sistema distribuido. Nosotros tenemos la transparencia de que el sistema parece único y que está todo centralizado ahí, de igual manera los datos parecen estar ahí almacenados en un solo sistema y está todo centralizado. Pero en realidad, el Data Lake lo que nos permite es tener los datos totalmente desubicados y distribuidos en un sistema distribuido. Otra de las características fundamentales del Data Lake es la escalabilidad. Como hemos dicho anteriormente, la escalabilidad es indefinida. Podemos añadir cuantos datos queramos y está preparado el Lago de Datos para ser ampliado cuantas veces queramos. Es importante también tener en cuenta que esa escalabilidad supone redundancia de datos, replicación de datos y división de datos. No pasa nada, para eso están las plataformas Big Data, para permitir ese tipo de cosas. Y por último, algo super importante es el control de acceso distribuido. Como es transparente el acceso, tú no sabes en qué máquina estás accediendo. Pero lo que está claro es que cuando yo accedo, tiene que estar controlado que yo voy a poder acceder a esos datos porque tengo permiso de acceder a esos datos, independientemente de en qué máquina esté y donde está el dato. Nuestra recomendación en un Lago de Datos es generar tres zonas. Esas tres zonas están definidas según la necesidad de preparación sobre los datos. La primera zona es "Landing". El Landing llena los datos tal cual los obtenemos de la fuente origen, y a eso se lo denomina los "datos en crudo". Ahí se almacenan los datos y se recomienda no tocar los datos de ahí porque, en cualquier momento, vamos a poder necesitar los datos desde crudo para procesarlos o operarlos de cualquier manera. Cuando los datos los operamos, los procesamos, llevamos los datos de "Landing" a "Staging". ¿Qué significa eso? La operación puede ser desde una simple normalización, anonimización, limpieza, detección de outliers, cualquier tipo de operación. Esa operación, lo que nos dice es "ya no puede estar el dato en Landing, sino que tenemos que llevarlo a Staging", pero en realidad seguimos teniendo el dato en crudo en Landing y el dato procesado en Staging. Ese dato procesado realmente no tiene la calidad que nosotros esperamos. La calidad que nosotros deseamos, sólo la podemos conseguir si hacemos un procesamiento mucho más limpio, mucho más preparado, con mucha más fuerza. Ese procesado, una vez hecho, la pasamos a la zona Gold. Los datos ya están preparados y los consideramos de valor. Un dato de valor es aquel que me va a dar valor en mi compañía para una solución determinada. ¿Qué quiere decir eso? Que el dato en crudo, normalmente, pasa por el paso de la zona Landing, lo limpiamos, preparamos, etcétera, y lo dejamos en la zona Staging, y luego lo preparamos para que tenga calidad, y esa calidad es lo que denominamos la zona Gold. ¿Puede un dato llegar de la zona Landing y automáticamente con un procesador, pasar a la zona Gold? Por supuesto, no hay ningún tipo de restricción. Pero lo importante es que tengamos esa organización para saber por qué zonas debería estar un dato. Muchas compañías lo que hacen es que la zona Staging la usan para, simplemente, cumplir la normativa LOPD. Lo que hacen es anonimizar el dato, una vez que está anominizado el dato lo pasan a Staging, y saben que sólo en la zona Landing va a estar el dato en crudo, sin anonimizar. Por lo tanto, un dato que no está anonimizado es mucho más sensible y hay que tener muchísimo cuidado con ese dato. No damos acceso a la zona del dato en crudo a nadie, o prácticamente a nadie, solo a los administradores y sólo dejamos acceso a la zona Staging. Obviamente, cuando el dato está preparado para sacarle valor, no vamos a ir a la zona Staging, vamos a ir a la zona Gold. ¿Qué características o qué requisitos debería cumplir un Data Lake? Como os estaréis imaginando, la seguridad es una de las características fundamentales. Como he dicho antes, no deberíamos de dejar acceso a un dato que está en crudo, sin anonimizar. ¿Vamos a permitir acceder? No. Necesitamos de seguridad, necesitamos de asegurar que no podemos acceder nunca sobre un dato que está sin anonimizar. ¿Cómo podemos controlar eso? Existen distintos componentes de Big Data, que luego lo veremos, que nos permite controlar la seguridad. Por otro lado, los esquemas organizativos. Como he dicho, esto está pensado para grandes empresas, por tanto, esas grandes empresas que ya tienen un esquema organizativo preparado, ya tienen un esquema de cómo trabajan en el día a día, qué perfiles hay, quién depende de quién, qué jerarquía existe, esos esquemas organizativos también se pueden aplicar a la filosofía del Data Lake. De tal manera, que esos perfiles podríamos crearlos también en el Data Lake y saber perfectamente esas jerarquías y esos esquemas organizativos qué permisos van a tener que tener para acceso a los datos. Otro detalle es el "linaje". ¿Qué es el linaje? Básicamente, es el camino que recorre el dato desde que se obtienen hasta la fase final. Cada uno de los pasos que se realicen sobre ese dato, operaciones, transformaciones, anonimización, todos esos pasos deberían quedar almacenados en algún sitio. Lo importante en ese caso, es tenerlo almacenado esos metadatos de cada uno de los pasos. A eso se denomina linaje y es una de las características fundamentales de una plataforma de almacenamiento de datos o Data Lake. Y por último la "gobernanza". La gobernanza es otra característica fundamental del data Lake. ¿Por qué? Porque de alguna manera, yo digo que un determinado dato que procede de un origen determinado, sólo va a poder permitir un acceso a unas determinadas características o a unas determinadas operaciones de una determinada persona. Creo un gobierno, básicamente es el gobierno del dato. ¿Cómo voy a permitir acceder al dato? ¿Por quién? ¿De qué manera? Y ¿hasta dónde? Estas son las cuatro características que definen un Data Lake. En definitiva, el Data Lake es fundamental para los sistemas Big Data porque es donde vamos a almacenar todos los datos, donde nos va a permitir gestionarlos y donde, finalmente, vamos a saber qué dato merece la pena, qué dato no, qué dato tiene valor y que dato no.