IBM BluemixDevelop in the cloud at the click of a button!

Cómo gestionar Big Data mediante DB2

Manejo de datos SQL y NoSQL

Hoy en día con el incremento de la información y la diversidad de formatos en la que están representados se convierte en un reto el análisis de la información con grandes volúmenes de información desde un solo manejador de base de datos. Con las características de DB2 ver 10.1 la explotación y análisis de la información se logra de una manera fácil.

Jorge Daniel Anguiano Morales, Consultor Certificado IM DB2 para LUW, IBM México

Jorge AnguianoSe desempeña como Database Migration Specialist para Information Management en IBM para México y Latinoamérica y ha trabajado 17 años con distintas Tecnologías de la Información como Analista, Diseñador, Desarrollador e Implementador de Sistemas. Cuenta con certificaciones en IBM DB2 para LUW de la versión 9.7 - 10.1, IBM IT Specialist, OPEN Group Master IT Specialist y OCP en Oracle.



30-09-2013

Big Data

Los datos son una de las partes más importantes de las empresas y el factor principal en una base. Como el aceite, en su forma pura tiene poco valor, pero una vez procesado y refinado ayuda a alimentar al mundo. Big Data ha llegado a los distintos tipos de organizaciones para el procesamiento y análisis de la información. Podemos citar algunos ejemplos:

  • Empresas de salud donde se pueden procesar más de dos millones de pacientes al año.
  • Incremento de análisis de información en los medios sociales tales como Facebook, Twitter y sitios web para tratar de entender las necesidades del cliente, qué los motiva, qué desean, entre otras.
  • Las empresas están inundadas de datos relacionados a los hábitos de compra de los clientes y a la eficacia de cadena de suministro. Sin embargo, muchos directores luchan por darle sentido a los números.

DB2 está construido para manejar grandes volúmenes de datos. Ha permitido a Hadoop el procesamiento distribuido mediante el uso de MPP por años (DB2 PE, DPF, EEE, ICE, BCU, Smart Analytics System, PureData). DB2 también permite alta compresión administrando mayores volúmenes de datos a un menor costo.

También se han implementado numerosas características para almacenar y consultar más datos de una forma más rápida. Por ejemplo la utilería Ingest permite leer datos desde archivos de una manera más rápida sin afectar la disponibilidad de la información y con la opción de hacer transformaciones de los datos.

DB2 esta construido para manejar la variedad de datos tales como:

  • Big Data, un mundo lleno de datos no estructurados por ejemplo documentos de textos, imágenes, XML, audio, entre otros.
  • Ha administrado datos XML por años (XML Extender in v7, pureXML in DB2 9.1).
  • Permite un procesamiento mas rápido de datos XML:
    • Mejora el procesamiento de la función XMLTable y XQuery para las consultas
    • Creación de índices de tipo DECIMAL, INTEGER, FN:UPPERCASE, FN:EXISTS
    • Velocidad en la transferencia de datos XML entre aplicaciones y DB2 con XML Binario (XDBX)
  • Text Search mejorado para soportar búsquedas difusas, búsquedas de proximidad, ejecutar búsquedas de textos en un servidor independiente al servidor DB2.
  • Capacidad para las aplicaciones de almacenar y consultar datos RDF y NoSQL en DB2.
  • Esta listo para cualquier nube. Por ejemplo: Amazon web services, GoGrid, Eucalyptus, Right Scale, Cloud.com y Rackspace hosting.

Características de Big Data

  • Analiza colectivamente la amplia variedad de datos. 80% de ellos en el mundo son no estructurados.
  • Costo eficiente al procesar grandes volúmenes de información.
  • Establece la veracidad de las fuentes de información en grandes volúmenes. Una de cada tres empresas no confían en la información que utilizan para tomar decisiones.

Imagine las posibilidades de analizar todos los datos disponibles como por ejemplo:

  • Análisis de la baja latencia en la red.
  • Detención de amenazas precisa y oportuna.
  • Predecir y actuar sobre la intención de compra.
  • Detención de riesgos y fraudes.
  • Entender y actuar sobre la confianza del cliente.
  • Optimización del flujo de trafico en tiempo real.

Big Data es un tema caliente porque la tecnología permite hacer posible el análisis de todos los datos disponibles aún cuando vienen de diferentes fuentes con distintos formatos.

Figura 1. Fuentes de información
Alternative text for image

Integración con Big Data (Hadoop) Framework

Apache Hadoop es un framework de software que permite a las aplicaciones trabajar con miles de nodos y petabytes de datos. Hadoop está inspirado en tecnologías Google (MapReduce y GFS). Inicialmente construido para hacer frente a los problemas de escalabilidad de Nutch, una web de código abierto de la tecnología de búsqueda. Otra de las características importantes de Hadoop es que permite a las aplicaciones trabajar con miles de nodos y petabytes de datos en paralelo, de manera rentable.

  • CPU + caja de discos = Hadoop “nodo”.
  • Las cajas pueden ser combinadas en grupos.
  • Se pueden agregar nodos según sea necesario sin hacer ningún cambio:
    • Formato de datos
    • Como los datos son cargados
    • Como los Jobs son escritos
Ecosistema Hadoop

Los siguientes elementos forman parte del ecosistema Hadoop:

Hadoop= HDFS + Map / Reduce

HDFS= Hadoop Distribution File System

MapReduce= Es procesar grandes conjuntos de datos mediante la distribución de trabajo a través de gran numero de nodos.

PIG= es un lenguaje de alto nivel que genera programas MapReduce.

Hive= utiliza un lenguaje similar a SQL para acceder a datos.

Oozie= es un programador de flujo de trabajo para Hadoop.

ZooKeeper= es una configuración centralizada de servicios y el nombramiento de registro para los grandes sistemas distribuidos.

HBase= No relacionales, son bases de datos distribuidas que se ejecutan en la parte superior de HDFS.

En la siguiente figura podemos observar como el archivo se divide en los diferentes nodos y se escribe en bloques diferentes a diferentes maquinas. Llamado también paralelismo.

Figura 2. Escribiendo a un HDFS

En la siguiente figura se podrá observar como se obtiene la información de una forma rápida.

Figura 3. Procesamiento de datos (Reducción)
Moviendo datos entre Hadoop y DB2

Con la versión DB2 10 se pueden realizar las siguientes operaciones con los datos:

  • Almacenar los resultados del análisis de Hadoop
  • Jalar datos desde HDFS a DB2
    • Mediante DB2 SQL API exendido para Big Data
    • HdfsRead() para leer los archivos de datos desde HDFS
    • JaqlSubmit() para invocar Jaql Jobs
  • Empujar datos HDFS a DB2
    • Utilizando Jaql job para leer desde HDFS y JDBC para escribir a DB2
    • Escribir primero a tablas temporales y copiar a la tabla destino
  • Analizar datos DB2 con Hadoop junto con otras fuentes de datos
    • Utilizar Jaql job para leer datos DB2 utilizando JDBC
    • Los Jobs pueden utilizar múltiples conexiones JDBC para paralelizar la lectura
    • Utilice múltiples tareas para escribir en HDFS
RDMS y Hadoop

Son complementarios y no compiten. Aquí se muestran las diferencias entre cada uno de ellos.

Tabla Diferencias entre RDMS y Hadoop

Tabla 1. Datos estructurados con esquemas conocidos
RDMSHadoop
Datos estructurados con esquemas conocidosNo estructurados y estructurados
Registros, campos largos, objetos, XMLArchivos
Se permiten actualizacionesSolo se permite Insertar y Eliminar
SQL y XQueryHive, Pig y Jaql
Respuesta rápida, acceso aleatorioProcesamiento por lotes
La perdida de datos no es aceptableLa perdida de datos puede ocurrir a veces
Seguridad y AuditoriaAún no
EncriptaciónAún no
Sofisticada compresión de datosCompresión simple de archivos
Más de 30 años de innovaciónDos o tres años de edad tecnológica
Acceso aleatorio (Indexación)Solo acceso a archivos (streaming)
Comunidad grande de DBA y aplicacionesPequeño número de empresas lo utilizan en producción
Figura 4. Un típico cluster Hadoop
Análisis con Big Data

Big Data y análisis de negocios representan el nuevo campo de batalla de TI. La cantidad y los tipos de datos que son capturados para el análisis de negocios es cada vez mayor. Un ejemplo clásico de este súper conjunto de datos es web logs, el cual contiene datos no estructurados o sin estructura.

Estas infraestructuras abarcan hardware y software, tales como nuevos sistemas de archivos, lenguajes de consulta y electrodomésticos.

Un buen ejemplo es Hadoop: Es un Framework basado en Java que soporta aplicaciones distribuidas con uso inmenso de datos. Permite a las aplicaciones trabajar con miles de nodos y petabytes de datos. Se utiliza un sistema de archivos distribuido que está diseñado para ser altamente tolerante a fallos.

Por ejemplo, una empresa que recopila datos sobre sus clientes de diversas fuentes, tales como registros históricos de navegación en un sitio web, datos sobre compras anteriores, y los datos de las encuestas en archivos planos. La empresa desea utilizar estos datos para poner en marcha una campaña de publicidad que será de interés para sus clientes. Los retos de esta empresa son determinar los datos que necesita para su campaña de publicidad, reunir los datos de las diferentes fuentes, e integrar esos datos en registros significativos que proporcionaran información útil para futuras consultas analíticas. Todo lo anterior es posible mediante el uso de Hadoop dentro de DB2. A través de Hadoop se tiene la posibilidad de obtener dinámicamente la información y luego integrarlos perfectamente mediante el uso de sentencias SQL.

Figura 5. Análisis con Hadoop
Función de Tabla Java Generic

DB2 también proporciona la capacidad de definir una función de tabla que puede reaccionar a diferentes conjuntos de resultados de diversas infraestructuras sin necesidad de una nueva definición de la función. Usted sólo tiene que utilizar las instrucciones SQL para hacer referencia a la función de tabla genérica y luego definir la forma de la tabla de salida, incluyendo los nombres de columnas y tipos de datos.

Solo los parámetros de entrada se especifican en la función DDL CREATE. Esta característica proporciona una mayor flexibilidad y productividad. Los desarrolladores pueden utilizar la misma función para generar la salida y adaptarse a diferentes escenarios de negocio. Además, estas funciones proporcionan un punto de integración flexible en sentencias SQL y entre las aplicaciones DB2 y otros.

  • Un usuario define la Función de tabla escrita en el lenguaje de programación Java.
    • La implementación es proporcionada por una aplicación fuera de DB2.
    • Una Función de tabla regresa un conjunto registros o filas.
  • ¿Por qué es Generic?
    • Porque es compatible con diversos formatos de salida, los cuales se declaran en tiempo de ejecución.
  • Salida de Función de Tabla
    • Se accedan a través de sentencias SQL.
    • Regresa diferentes resultados con solo modificar la sentencia SQL.
Figura 6. Análisis de datos con función de Tabla Java Generic
  1. Pasos para crear una función de Tabla Java Generic:
    1. Crear un programa Java que tome el archivo CSV y lo maneje como un Input, leerá el archivo y regresará los registros de datos a DB2.
      1. Para programar la rutina en Java asegúrese de utilizar las interfaces o clases javas diseñadas para manejar store procedures y UDFs.
      2. La clase UDF COM.ibm.db2.app soporta UDFs external Java Generic table.
    2. Compilar la rutina externa de Java.
    3. Copiar el archivo java class en la ruta $INSTALLDIR/sqllib/function dentro de su sistema de base de datos. Todos los archivos java class o JARs necesitan residir en el directorio sqllib/function o en el CLASSPATH del administrador de la base de datos.
    4. Registrar la función Java en DB2
    5. Una vez registrada usted puede utilizar la nueva función Java para trabajar con sus datos.

Las Funciones de tabla son ineficientes y complejas de utilizar en aquellos casos donde los escenarios del negocio cambian o donde se tienen varias entradas con diferentes esquemas. Como las UDF utilizan la nueva característica de DB2 Generic Table, eso puede ser utilizado para integrar datos de diferentes fuentes y mejorar la interacción entre aplicaciones. En el caso de Hadoop se pueden crear resultados estandarizados basados en diferentes estructuras de datos sin tener que cambiar la definición de la función.

RDF Graph Store

Recordemos que pureXML es también una base de datos NoSQL dentro de DB2 y que soporta el XQuery originalmente desarrollado para Rational Jazz donde se estaban experimentando problemas de desempeño con las principales tiendas de código abierto RDF.

Una de las tendencias emergentes se llama la tienda de gráfico RDF, que significa Resource Description Framework y es una familia de especificaciones W3, que se puede utilizar como un marco de intercambio de datos estándar para el modelado de información. En IBM, nos damos cuenta de que las capacidades de NoSQL con datos no estructurados XML y RDF triples gráficos es una tendencia cada vez mayor y se requiere en aplicaciones de próxima generación, por lo tanto permite que las aplicaciones DB2 almacenen y consulten datos XML y RDF.

Figura 7. Diferencias entre las estructuras de datos

RDF es una nueva implementación de insertar y manipular datos en un formato de No-SQL. Crea relaciones entre los datos en forma de gráfico triples o cuádruples. Por ejemplo, tienes una persona llamada Harold Anguiano, es dueño de un coche y el tipo de su auto. No tiene que estar en una estructura relacional. RDF emplea identificadores uniformes de recursos (URI) para crear una relación entre los datos como una triple, por ejemplo, en forma de expresiones Sujeto-Predicado-Objeto. Puede vincular, exponer y compartir datos estructurados y semiestructurados a través de diferentes aplicaciones mediante el uso de este modelo simple.

Figura 8. Manera optimizada para almacenar triples gráficos en DB2

Cada triple describe la relación entre dos cosas. Ejemplo. (Harold Anguiano, tiene un, Automóvil). Un conjunto de triples define un Graph. Las relaciones son parte de los datos, no parte de la estructura de la base de datos.

Casos de uso RDF Graph Store

Son principalmente tres los casos de uso para RDF, principalmente porque RDF permite consultas complejas a través de datos con esquemas variables.

  • La integración de datos.
    • Cada fuente de datos tiene su propio modelo de dato y el esquema de cada modelo evoluciona de manera diferente con diferentes/iguales entidades y propiedades.
  • Acceso a datos no estructurados.
    • Los metadatos generados por los extractores para videos, textos e imágenes tienen diferentes entidades y relaciones.
  • Desarrollado en colaboración con repositorios del conocimiento.
    • Por ejemplo, Wikipedia/DBpedia, Freebase tienen entidades y propiedades que evolucionan a medida que los usuarios agregan entidades dentro del sistema.
Tabla 2. Ejemplos de RDF
SujetoPredicadoObjeto
IBMes unacompañía
IBMvendeDB2
IBMtieneBusiness Partners
IBMtieneBusiness Partners
Dafroses BP deIBM
XMLes nativo enDB2
Dafroses unacompañía
.........
Figura 9. Representación gráfica de un RDF

En DB2 10, se ha agregado el soporte del lado del cliente para el lenguaje SPARQL para permitir que las aplicaciones sean escritas en este idioma para el apoyo RDF. Las aplicaciones RDF utilizan el lenguaje de consulta SPARQL para recuperar datos en bases de datos DB2.

Este apoyo le da la capacidad de ser más flexible en el uso de las capacidades de RDF y disfrutar de los beneficios de su formato no estructurado al tiempo de aprovechar las fortalezas fundamentales como seguridad, manejabilidad, resistencia y disponibilidad de DB2.

Las aplicaciones pueden almacenar y consultar datos RDF en DB2 Enterprise Server Edition para Linux, UNIX y Windows. Una tienda RDF en DB2 es un conjunto de tablas de usuario dentro de un esquema de base de datos que almacena un conjunto de datos RDF. Un nombre de tienda único está asociado con cada conjunto de estas tablas. Cada tienda RDF tiene una tabla que contiene los metadatos de la tienda. Esta tabla tiene el mismo nombre que la tienda.

SPARQL 1.0 Lenguaje de consulta para RDF

¿Qué significa SPARQL, Protocolo SPARQL y Lenguaje de Consulta RDF? DB2 10.1 también soporta el lenguaje SPA,RQL el cual es utilizado para realizar consultas a través de diferentes fuentes de datos, se almacenan de manera nativa en RDF y obtener las siguientes ventajas:

  • Alto desempeño.
    • Lograr hasta cuatro veces más rapidez que la semántica utilizada en el marco de código abierto para Web Framework
  • Bajos costos.
    • Rápido desarrollo de aplicaciones.
    • Fácil adaptación conforme evolucionan las necesidades.
    • Simplificación en la administración de datos para triples.

Ejemplo: Mostrar todas las compañías que vendan DB2.

SELECT ?comp,?producto

WHERE {?comp [es una][Compañía]

?comp [vende]?producto

}

Resultados:

?comp - IBM

?comp - Dafros

?producto - DB2

Conclusión

Actualmente, el nuevo concepto en manejo de grandes volúmenes de información a gran escala se llama Big Data. IBM DB2 10.1 muestra que, a través del uso de sus capacidades, se pueden manipular grandes volúmenes de información no solo con datos estructurados sino también con datos no estructurados como por ejemplo PureXML, RDF y aplicaciones desarrolladas en HTML. Aquí se muestran las capacidades que se pueden aprovechar para manipular la información de una forma rápida y flexible con sentencias SQL y NO SQL. DB2 también es capaz de interactuar con diferentes fuentes de información entre los más famosos Google, Facebook y Hadoop, entre otros.

Referencias

Tutorial de Hadoop

Creación y mantenimiento de una RDF Store

Buscar datos RDF utilizando SPARQL

Comentarios

developerWorks: Ingrese

Los campos obligatorios están marcados con un asterisco (*).


¿Necesita un IBM ID?
¿Olvidó su IBM ID?


¿Olvidó su Password?
Cambie su Password

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


La primera vez que inicie sesión en developerWorks, se creará un perfil para usted. La información en su propio perfil (nombre, país/región y nombre de la empresa) se muestra al público y acompañará a cualquier contenido que publique, a menos que opte por la opción de ocultar el nombre de su empresa. Puede actualizar su cuenta de IBM en cualquier momento.

Toda la información enviada es segura.

Elija su nombre para mostrar



La primera vez que inicia sesión en developerWorks se crea un perfil para usted, teniendo que elegir un nombre para mostrar en el mismo. Este nombre acompañará el contenido que usted publique en developerWorks.

Por favor elija un nombre de 3 - 31 caracteres. Su nombre de usuario debe ser único en la comunidad developerWorks y debe ser distinto a su dirección de email por motivos de privacidad.

Los campos obligatorios están marcados con un asterisco (*).

(Por favor elija un nombre de 3 - 31 caracteres.)

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


Toda la información enviada es segura.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=90
Zone=Information mgmt,
ArticleID=946735
ArticleTitle=Cómo gestionar Big Data mediante DB2
publish-date=09302013