Big Data: Oracle & Hadoop
Por Joel Pérez y Jesús Asturiano (OCE)
Publicado en Diciembre 2015
Estamos viviendo el boom más grande del Big Data desde que el concepto salió al mercado hace ya varios años, el dato puro se ha convertido en parte esencial para que los negocios puedan hacer estimaciones y cálculos para la toma de decisiones. Atrás quedaron los años en que hablar de Gigabytes era hablar de mucha información, ahora la tendencia es hablar de “Terabytes”, “Peta bytes” y mas. Para entrar un poco más en contexto veamos que es Big Data como concepto y porqué es una palabra que aparece en casi todos los textos de tecnología en la actualidad.
“Big Data”: es un conjunto de técnicas informáticas que nos van a servir para almacenar, procesar y gestionar grandes volúmenes de información, un Sistema Big Data debe ser veloz, capaz de manejar grandes tamaños de información (“Peta bytes” y más allá), tener variedad en los datos que almacena, es decir, debe ser capaz de guardar cualquier tipo de dato. El concepto fue introducido por primera vez en 1997 por los científicos de la NASA Michael Cox y David Elisworth quienes manifestaron su consternación acerca del ritmo acelerado de crecimiento de los datos y a su vez que los sistemas informáticos usuales eran insuficientes para tratarlos, de forma segura tenían razón ya que se asegura que en 2020 habrá 50 mil millones de conexiones entre personas, procesos, datos y objetos a través de internet ¿Cómo se va a manejar todo esa información? Big Data es la respuesta. Un estudio de Oracle estima que si las empresas de “retail” emplearan técnicas de Big Data sus márgenes de utilidad aumentarían hasta en un 60%, lo cual nos habla de la importancia de éste concepto en la actualidad y como el mismo transformara nuestro modo de vida, trabajo y manera de analizar la data.
Para algunos puede resultar confuso la relación que existe entre Hadoop y Oracle. Veamos primero el concepto breve de estos dos jugadores:
¿Qué es Hadoop?
Hadoop es un sistema distribuido open source que pertenece a Apache Foundation diseñado enteramente en Java para almacenar y procesar grandes volúmenes de información, fue diseñado por Google donde Doug Cutting pude considerarse el padre de Hadoop. Hadoop posee dos componentes: HDFS y MapReduce además de varios “frameworks” y “apps” que giran alrededor de ellos para complementarlo y reforzarlo. A continuación vamos a explicar un poco más al respecto.
HDFS o Hadoop File System es la forma en que Hadoop almacena la información, recordando que estamos hablando de grandes cantidades de archivos no estructurados, ejemplos de ello: Documentos Json, Videos, SMS, Logs de cualquier tamaño, etc. HDFS se compone de Name-Nodes que es el nodo maestro del cluster Hadoop y Data-Nodes que son servidores commodity donde los archivos se van a distribuir. HDFS divide al archivo en 3 partes de 64MB o 128MB dependiendo de la configuración que escojamos y distribuye los bloques entre los Data-Nodes que el Name-Node elija. El Name-Node guarda los metadatos y los Data-Node guardan los bloques físicos. Si perdemos al Name-Node, perdemos nuestro clúster Hadoop.
MapReduce es la forma en que Hadoop procesa los archivos almacenados en HDFS y consiste en un algoritmo que sirve para procesar grandes volúmenes de información a través de procesos “batch” donde la información que está distribuida en los Data-Nodes se mapea (función map), entra en proceso de ordenamiento para que al final sea organizada y presentada al cliente (función reduce). MapReduce puede ser escrito en Java, Python, R o Pig.
A su vez Hadoop tiene varios frameworks o app satélites que sirven para mejorar su funcionalidad y llevar un mejor control. No vamos a entrar en detalle para no perder el tema principal pero podemos hablar de Pig, Hive, Oozie, HBase, Mahout, Impala, Spark, etc con mayor profundidad en otra ocasión.
Ahora bien, la pregunta que muchos de nosotros como Oracle DBAs o incluso cualquier tecnólogo familiarizado con productos Oracle nos hacemos es que relación posee Oracle & Hadoop y sobre todo cual es el futuro del Administrador de Bases de Datos clásico. Para empezar tienen que saber que MapReduce es un proceso que aunque es muy poderoso, no es tan rápido como deseáramos, es decir, no es lo más adecuado para aplicaciones que sean muy transaccionales, requieran Alta Disponibilidad y Consistencia al mismo tiempo, por lo que en éste aspecto la Base de Datos Oracle sigue siendo la mejor opción.
Si quisiéramos comparar a Hadoop con Oracle podríamos decir que Hadoop ocupa hardware más barato, el lenguaje SQL estándar y PL/SQL de Oracle es mucho más sencillo que las rutinas de MapReduce.
Oracle está orientado a transacciones (lectura y escritura en tiempo real) mientras que Hadoop está orientado a Big Data (una sola escritura, muchas lecturas).
Ya con esto como preámbulo podemos concluir que Hadoop y Oracle no son mutuamente excluyentes. Pueden convivir en sistemas especialmente diseñados para ofrecer soluciones Big Data/Transaccionales. Los arquitectos de soluciones deben comprender qué es lo que verdaderamente requiere el negocio y así decidirse por una solución pura inclinada hacia ambos bandos o como mayormente podemos encontrar en el mercado, una solución híbrida.
Ahora mismo Oracle ofrece un producto llamado “Big Data Appliance” reforzado con una distribución Hadoop y todas las especificaciones necesarias para que una Base de Datos Oracle pueda trabajar con Hadoop.
Listemos acá soluciones y productos que integran a Oracle & Hadoop:
- Oracle Big Data Appliance
- Oracle NoSQL Database
- Oracle Data Integrator Enterprise Edition
- Oracle Loader for Hadoop
- Oracle R Enterprise
“Oracle Big Data Spatial and Graph” es un ejemplo de cómo estos 2 colosos pueden trabajar juntos. “Oracle Big Data Spatial and Graph” nuevo producto de software Oracle que está diseñado para las demandas grandes datos. Este producto proporciona nuevas capacidades analíticas para Hadoop y NoSQL.
Los usuarios de la base de datos Oracle durante mucho tiempo han tenido acceso a herramientas gráficas y espacio analítico, que se han utilizado para descubrir relaciones y analizar conjuntos de datos respecto a su ubicación. Con la intención de cumplir con diversos conjuntos de datos y minimizar la necesidad de movimiento de datos, Oracle creó el producto para que se puedan procesar datos de forma nativa en “Hadoop” y de forma paralela con “MapReduce” usando estructuras en memoria. Este es uno de los tantos ejemplos en los cuales podemos visualizar la integración de Oracle & Hadoop.
Con todo esto en el horizonte de seguro el nivel de destrezas de un DBA clásico, deberá extenderse para ser competitivo con estas nuevas tendencias de integraciones.
Enlaces de interés:
- http://www.oracle.com/lad/bigdata/overview/index.html
- a/tech/docs/technical-resources/big-data-for-enterprise-519135.pdf
En próximos artículos nos adentraremos un tanto mas en las soluciones y herramientas anteriormente mencionadas.
Joel Pérez es un experto DBA (Oracle ACE Director, Maximum Availability OCM, OCM Cloud Admin. & OCM12c/11g) con más de 16 años de experiencia real en el mundo de tecnología Oracle, especializado en diseño e implementación de soluciones de: Cloud, Alta disponibilidad, Recuperación contra desastres, Upgrades, Replicación y toda área relacionada con bases de datos Oracle. Joel se desempeña como "Chief Technologist & MAA, HA Architect" para www.Enmotech.com Yunhe Enmo (Beijing) Technology Co. Ltd. Beijing, China. Perfil OCM Joel Pérez: http://education.oracle.com/education/otn/JoelPerez.htm
Jesús Asturiano (@asturianomx) posee una carrera de 5 años como Oracle DBA con experiencia en temas de Data Guard, RAC, RMAN, Performance & Tuning en el sector de telecomunicaciones, retail. En la actualidad enfocado altamente en temas de Oracle 12c y Big Data especialmente con el uso de soluciones Hadoop con Cloudera & Oracle. Blogger habitual donde escribe sus experiencias como DBA.
Este artículo ha sido revisado por el equipo de productos Oracle y se encuentra en cumplimiento de las normas y prácticas para el uso de los productos Oracle.