Este en un blog de informática un batiburrillo de conceptos y conocimientos.
miércoles, 26 de febrero de 2014
jueves, 20 de febrero de 2014
Computación en la nube. Introducción
Hace un tiempo me pidieron que investigara sobre computación en la nube, aquí os dejo una pequeña introducción del tema.
Tipos de Infraestructuras Cloud
Atendiendo a la titularidad de la infraestructura en la nube se pueden distinguir tres tipos de infraestructuras cloud: privada, pública y comunitaria. A continuación se presentan las ventajas e inconvenientes de cada uno.
La
computación en la nube concepto conocido también bajo los términos informática
en la nube, nube de cómputo o nube de conceptos, del inglés Cloud Computing, es
un paradigma que permite ofrecer servicios de computación a través de Internet.
En
este tipo de computación todo lo que puede ofrecer un sistema informático se
ofrece como servicio, de modo que los usuarios puedan acceder a los servicios
disponibles "en la nube de Internet" sin conocimientos (o, al menos
sin ser expertos) en la gestión de los recursos que usan. Según el IEEE
Computer Society, es un paradigma en el que la información se almacena de
manera permanente en servidores de Internet y se envía a cachés temporales de
cliente, lo que incluye equipos de escritorio, centros de ocio, portátiles,
etc.
De forma más sencilla podríamos decir que se trata de
una nueva tendencia de software, en la cual todos los servicios prestados al
ordenador se hacen directamente desde Internet, por lo tanto, ya no se tendrá
que instalar una enorme cantidad de archivos en el ordenador, ya que el
programa que se desea utilizar, se ejecutará directamente desde el servidor del
proveedor de software, aligerando nuestros discos duros.
El
único inconveniente de esta tecnología, es que necesariamente tendremos que
tener una conexión a Internet para acceder a ella. Podemos decir
entonces, que es una tecnología orientada al uso de equipos pequeños y
portátiles (que utilizan servicios online), con la cual se simplifica la
instalación de software y se optimiza el uso del espacio del disco duro, al no
tener que llenarlo con enormes cantidades de archivos complementarios.
Tendencia
En la actualidad una de las tendencias del mercado de los sistemas
de información es la proliferación de los servicios operando en la nube, los
cuales son servicios que permiten la asignación dinámica de recursos en función
de necesidades de los clientes y que aportan una reducción de costes en
infraestructuras considerable.
La reciente publicación del NIST (National Institute of
Standards and Technologies) «Guidelines on Security and Privacy in
Public Cloud Computing» pone de manifiesto, además de la actualidad de este
nuevo modelo para la distribución de servicios y aplicaciones, la necesidad de
difundir buenas prácticas de seguridad para este modelo. Este no es el único
documento que refleja la creciente preocupación por la seguridad en estas
plataformas, como se refleja en documentos de entidades de referencia que
también abordan este tema, e informes recientes de la organización internacional CSA (Cloud
Security Alliance) y de la consultora Gartner.
Los comienzos de la computación en la nube
El concepto de la computación en la nube empezó en proveedores de servicio de Internet a gran escala, como Google, Amazon AWS, Microsoft y otros que construyeron su propia infraestructura. De entre todos ellos emergió una arquitectura: un sistema de recursos distribuidos horizontalmente, introducidos como servicios virtuales de TI escalados masivamente y manejados como recursos configurados y mancomunados de manera continua.
Este modelo de arquitectura fue inmortalizado por George Gilder en su artículo de octubre 2006 en la revista Wired titulado Las fábricas de información. Las granjas de servidores, sobre las que escribió Gilder, eran similares en su arquitectura al procesamiento “grid” (red, parrilla), pero mientras que las redes se utilizan para aplicaciones de procesamiento técnico débilmente acoplados (loosely coupled), un sistema compuesto de subsistemas con cierta autonomía de acción, que mantienen una interrelación continua entre ellos), este nuevo modelo de nube se estaba aplicando a los servicios de Internet.
Este modelo de arquitectura fue inmortalizado por George Gilder en su artículo de octubre 2006 en la revista Wired titulado Las fábricas de información. Las granjas de servidores, sobre las que escribió Gilder, eran similares en su arquitectura al procesamiento “grid” (red, parrilla), pero mientras que las redes se utilizan para aplicaciones de procesamiento técnico débilmente acoplados (loosely coupled), un sistema compuesto de subsistemas con cierta autonomía de acción, que mantienen una interrelación continua entre ellos), este nuevo modelo de nube se estaba aplicando a los servicios de Internet.
Beneficios
Integración
probada de servicios Red. Por su naturaleza, la tecnología de "Cloud
Computing" se puede integrar con mucha mayor facilidad y rapidez con el
resto de sus aplicaciones empresariales (tanto software tradicional como Cloud
Computing basado en infraestructuras), ya sean desarrolladas de manera interna
o externa.
Prestación
de servicios a nivel mundial. Las infraestructuras de "Cloud
Computing" proporcionan mayor capacidad de adaptación, recuperación de
desastres completa y reducción al mínimo de los tiempos de inactividad.
Una
infraestructura 100% de "Cloud Computing" permite al proveedor de
contenidos o servicios en la nube prescindir de instalar cualquier tipo de
hardware, ya que éste es provisto por el proveedor de la infraestructura o la
plataforma en la nube. La belleza de la tecnología de "Cloud
Computing" es su simplicidad… y el hecho de que requiera mucha menor
inversión para empezar a trabajar.
Implementación
más rápida y con menos riesgos. Podrá empezar a trabajar muy rápidamente
gracias a una infraestructura de "Cloud Computing". No tendrá que
volver a esperar meses o años e invertir grandes cantidades de dinero antes de
que un usuario inicie sesión en su nueva solución. Sus aplicaciones en
tecnología de "Cloud Computing" estarán disponibles en cuestión de
horas o días en lugar de semanas o meses, incluso con un nivel considerable de
personalización o integración.
Actualizaciones
automáticas que no afectan negativamente a los recursos de TI. Si actualizamos
a la última versión de la aplicación, nos veremos obligados a dedicar tiempo y
recursos (que no tenemos) a volver a crear nuestras personalizaciones e
integraciones. La tecnología de "Cloud Computing" no le obliga a decidir
entre actualizar y conservar su trabajo, porque esas personalizaciones e
integraciones se conservan automáticamente durante la actualización.
Contribuye
al uso eficiente de la energía. En este caso, a la energía requerida para el
funcionamiento de la infraestructura. En los datacenters tradicionales, los
servidores consumen mucha más energía de la requerida realmente. En cambio, en
las nubes, la energía consumida es sólo la necesaria, reduciendo notablemente
el desperdicio.
Desventajas
La centralización de las aplicaciones y el almacenamiento de los datos origina una interdependencia de los proveedores de servicios.
La disponibilidad de las aplicaciones está ligada a la disponibilidad de acceso a Internet.
Los datos "sensibles" del negocio no residen en las instalaciones de las empresas por lo que podría generar un contexto de alta vulnerabilidad para la sustracción o robo de información.
La confiabilidad de los servicios depende de la "salud" tecnológica y financiera de los proveedores de servicios en nube. Empresas emergentes o alianzas entre empresas podrían crear un ambiente propicio para el monopolio y el crecimiento exagerado en los servicios.
La disponibilidad de servicios altamente especializados podría tardar meses o incluso años para que sean factibles de ser desplegados en la red.
La madurez funcional de las aplicaciones hace que continuamente estén modificando sus interfaces, por lo cual la curva de aprendizaje en empresas de orientación no tecnológica tenga unas pendientes significativas, así como su consumo automático por aplicaciones.
Seguridad. La información de la empresa debe recorrer diferentes nodos para llegar a su destino, cada uno de ellos (y sus canales) son un foco de inseguridad. Si se utilizan protocolos seguros, HTTPS por ejemplo, la velocidad total disminuye debido a la sobrecarga que estos requieren.
Escalabilidad a largo plazo. A medida que más usuarios empiecen a compartir la infraestructura de la nube, la sobrecarga en los servidores de los proveedores aumentará, si la empresa no posee un esquema de crecimiento óptimo puede llevar a degradaciones en el servicio o jitter altos.
Tipos de Infraestructuras Cloud
Atendiendo a la titularidad de la infraestructura en la nube se pueden distinguir tres tipos de infraestructuras cloud: privada, pública y comunitaria. A continuación se presentan las ventajas e inconvenientes de cada uno.
Pública
Es aquel tipo de nube en la cual la infraestructura y los recursos lógicos que forman parte del entorno se encuentran disponibles para el público en general a través de Internet.
Suele ser propiedad de un proveedor que gestiona la infraestructura y el servicio o servicios que se ofrecen.
Las nubes públicas se manejan por terceras partes, y los trabajos de muchos clientes diferentes pueden estar mezclados en los servidores, los sistemas de almacenamiento y otras infraestructuras de la nube. Los usuarios finales no conocen qué trabajos de otros clientes pueden estar corriendo en el mismo servidor, red, discos como los suyos propios
Privada
Este tipo de infraestructuras cloud se crean con los recursos propios de la empresa que lo implanta, generalmente con la ayuda de empresas especializadas en este tipo de tecnologías.
Las nubes privadas son una buena opción para las compañías que necesitan alta protección de datos y ediciones a nivel de servicio. Las nubes privadas están en una infraestructura en-demanda manejada por un solo cliente que controla qué aplicaciones debe correr y dónde. Son propietarios del servidor, red, y disco y pueden decidir qué usuarios están autorizados a utilizar la infraestructura.
Es aquel tipo de nube en la cual la infraestructura y los recursos lógicos que forman parte del entorno se encuentran disponibles para el público en general a través de Internet.
Suele ser propiedad de un proveedor que gestiona la infraestructura y el servicio o servicios que se ofrecen.
Las nubes públicas se manejan por terceras partes, y los trabajos de muchos clientes diferentes pueden estar mezclados en los servidores, los sistemas de almacenamiento y otras infraestructuras de la nube. Los usuarios finales no conocen qué trabajos de otros clientes pueden estar corriendo en el mismo servidor, red, discos como los suyos propios
Ventajas
|
Inconvenientes
|
Escalabilidad.
|
Se comparte la
infraestructura con más organizaciones.
|
Eficiencia de los recursos mediante los modelos de pago
por uso.
|
Poca transparencia para el cliente, ya que no se conoce
el resto de servicios que comparten recursos, almacenamiento, etc.
|
Gran ahorro de
tiempo y costes.
|
Dependencia de la
seguridad de un tercero.
|
Privada
Este tipo de infraestructuras cloud se crean con los recursos propios de la empresa que lo implanta, generalmente con la ayuda de empresas especializadas en este tipo de tecnologías.
Las nubes privadas son una buena opción para las compañías que necesitan alta protección de datos y ediciones a nivel de servicio. Las nubes privadas están en una infraestructura en-demanda manejada por un solo cliente que controla qué aplicaciones debe correr y dónde. Son propietarios del servidor, red, y disco y pueden decidir qué usuarios están autorizados a utilizar la infraestructura.
Ventajas
|
Inconvenientes
|
Cumplimiento de las
políticas internas.
|
Elevado coste
material.
|
Facilidad para trabajo colaborativo entre sedes
distribuidas.
|
Dependencia de la infraestructura contratada.
|
Control total de los
recursos.
|
Retorno de inversión
lento dado su carácter de servicio interno.
|
Un
cloud comunitario se da cuando dos o más organizaciones forman una
alianza para implementar una infraestructura cloud orientada a objetivos
similares y con un marco de seguridad y privacidad común.
Ventajas
|
Inconvenientes
|
Cumplimiento con las
políticas internas.
|
Seguridad
dependiente del anfitrión de la infraestructura.
|
Reducción de costes al compartir la infraestructura y
recursos.
|
Dependencia de la infraestructura contratada.
|
Rápido retorno de
inversión.
|
|
Este
es un término amplio que implica la utilización conjunta de varias
infraestructuras cloud de cualquiera de los tres tipos anteriores, que se
mantienen como entidades separadas pero que a su vez se encuentran unidas por
la tecnología estandarizada o propietaria, proporcionando una portabilidad de
datos y aplicaciones.
En
este caso las ventajas e inconvenientes son los mismos que los relativos a los
tipos de cloud que incluya la infraestructura.
Las
nubes híbridas combinan los modelos
de nubes públicas y privadas. Usted es propietario de unas partes y comparte
otras, aunque de una manera controlada. Las nubes híbridas ofrecen la promesa
del escalado aprovisionada externamente, en-demanda, pero añaden la complejidad
de determinar cómo distribuir las aplicaciones a través de estos ambientes
diferentes. Las empresas pueden sentir cierta atracción por la promesa de una
nube híbrida, pero esta opción, al menos inicialmente, estará probablemente
reservada a aplicaciones simples sin condicionantes, que no requieran de
ninguna sincronización o necesiten bases de datos complejas.
Referencias
- HP cluod consulting
services: http://h20219.www2.hp.com/services/w1/es/consolidated/cloud-overview.html
-soluciones
Cloud Computing HP http://www8.hp.com/es/es/solutions/solutions-detail.html?compURI=tcm:176-300983&pageTitle=cloud-computing
-
Inteco CERT- riesgos y amenazas en Cloud Computing http://cert.inteco.es/extfrontinteco/img/File/intecocert/EstudiosInformes/cert_inf_riesgos_y_amenazas_en_cloud_computing.pdf
Pentaho BI Open Source. Introducción y demo.
He estado viendo este tutorial de Stratebi sobre las posibilidades de Pentaho, me parece interesante. Ahí os lo dejo
Pentaho: Qué es y para que sirve.
Pentaho es una plataforma Open Source para Business Intelligence diseñada para cubrir las necesidades empresariales de Análisis de Datos e Informes. Las soluciones están escritas en Java lo que la hace una solución muy flexible, ya que se pueden crear nuevos módulos para adpatarlo a las necesidades específicas de la organización.
Es la alternativa Open Source comercial para el BI (Business Intelligence o inteligencia de negocio). Entre otras Pentaho proporciona reporting intuitivo, análisis OLAP, cuadros de mando, integración de datos, minería de datos y plataforma BI.
Pentaho nos permite:
- Informar: acceder a los datos y suministrar información a toda la empresa
- Analizar: explorar y analizar los datos interactivamente y de forma muy rápida.
- Sintetizar: conseguir inmediata visibilidad con medidas y ratios a través de cuadros de mando.
- Integrar: pule e integra datos estén donde estén y desde múltiples fuentes.
- Investigar, permite hacer minería de datos para descubrir patrones ocultos o tendencias futuras.
Etiquetas:
análisis de datos,
BI,
inteligencia de negocio,
OLAP,
open source,
Pentaho
Concepto de Datawarehouse y Datamart
DataWarehouse o Almacén de Datos
Según la wikipedia (http://es.wikipedia.org/wiki/Almac%C3%A9n_de_datos) un almacén de datos (del inglés data warehouse) es una colección de datos orientada a un determinado ámbito (empresa, organización, etc.), integrado, no volátil y variable en el tiempo, que ayuda a la toma de decisiones en la entidad en la que se utiliza. Se trata, sobre todo, de un expediente completo de una organización, más allá de la información transaccional y operacional, almacenado en una base de datos diseñada para favorecer el análisis y la divulgación eficiente de datos (especialmente OLAP- online analytic process, procesamiento analítico en línea).
Ralph Kimball , defina un almacén de datos como: "una copia de las transacciones de datos específicamente estructurada para la consulta y el análisis". También fue Kimball quien determinó que un data warehouse no era más que: "la unión de todos los Data marts de una entidad". Defiende por tanto una metodología ascendente (bottom-up) a la hora de diseñar un almacén de datos.
Dicho esto, se puede decir que el datawarehouse va a proporcionar una visión global de los datos de la organización En este almacén de datos se va aguardar la información necesaria relativa a una organización de dónde se sacara información útil para el usuario que va atrabajar con dicha informacióm.
El almacén de datos va a dar respuesta a las necesidades de usuarios expertos, utilizando Sistemas de Soporte a Decisiones (DSS), Sistemas de información ejecutiva (EIS) o herramientas para hacer consultas o informes
DataMart
Un datamart es un subconjunto de datos con el propósito de ayudar a que un área específica dentro del negocio pueda tomar mejores decisiones. Se puede ver como un subconjunto de los datos pertenecientes a un datawarehouse pero que responden a un determinado análisis, función o necesidad y con una población de usuarios específica.
Los datos existentes en este contexto pueden ser agrupados, explorados y propagados de múltiples formas para que diversos grupos de usuarios realicen la explotación de los mismos de la forma más conveniente según sus necesidades.
Etiquetas:
almacén de datos,
datamart,
Datawarehouse,
OLAP
Error Pentaho - Cassandra Could not initialize class org.apache.thrift.transport.TSocket
Cuando estaba investigando cómo conectar desde Pentaho a la base de datos NoSQL Cassandra, uno de los primeros problemas que me encontré fué este Could not initialize class org.apache.thrift.transport TSocket .
Después de investigar durante un rato enconntré la solución, me faltaban los archivos log4j-1.2.16.jar, slf4j-api-1.7.3.jar y slf4j-log4j12-1.7.3.jar en el directorio .../data-integration/plugins/pentaho-cassandra-plugin/lib/ directory
El archivo log4j-1.2.16.jar lo podemos encontrar en la carpeta .../data-integration/lib/ y los otros dos en .../data-integration/plugins/pentaho-big-data-plugin/lib/
miércoles, 19 de febrero de 2014
Conectar Weka a MySQL
Para poder realizar la conexión correcta desde Weka a MySQL necesitamos tener instalado el software de Weka, la base de datos MySQL(en mi caso he instalado la plataforma XAMPP que tiene incorporado un servidor apache aparte de la base de datos) y el conector Mysql de java.
- Weka (http://www.cs.waikato.ac.nz/ml/weka/downloading.html)
- XAMPP (http://www.apachefriends.org/es/download.html)
- Mysql -coinector-java (http://dev.mysql.com/download/connector/j)
En primer lugar nos creamos una base de datos con una tabla en MySQL e introducimos datos para luego poder comprobar si funciona correctamente la coexión. En mi caso he creado la base de datos prueba y una tabla llamada mitabla como se puede observar en la imagen.
Ahora vamos a copiar el archivo descargado .jar (conector mysql) a la carpeta de Weka. En mi caso tengo la versión 3-6 de Weka instalada en el directorio C:\Archivos de programa\Weka-3-6
El siguiente paso es editar el fichero de configuración de Weka, RunWeka.ini,y añadir la ruta del conector mysql.jar
En la linea cp=%CLASSPATH% se le añade nuestra ruta:
C:/Archivos de programa/Weka-3-6/mysql-connector-java-5.1.29-bin.jar
Una vez hecho lo anterior podemos ejecutar Weka , para comprobar que tenemos acceso a la base de datos MySQL. Abrimos el explorer de weka, y seleccionamos OpenDB.
Se muestra una ventana en la que podemos configurar el acceso a nuestra base de datos, si pulsamos en user podemos introducir la url de conexión a la base de datos(jdbc:mysql://localhost/prueba), el usuario y la contraseña.
Una vez introducidos los datos pulsamos OK, y connect.Verificando que se ha realizado la conexión a la base de datos satisfactoriamente, como se muestra.
Para asegurarnos podemos realizar una query sobre nuestra tabla, en mi caso voy a sacar todos los registros de la tabla mitabla que está en la base de datos prueba.: select * from mitabla. en la figura podemos comprobar que nos devuelve
Nota: Weka no admite campos de tipo INT, para no tener problemas podemos utilizar tipos DECIMAL.
viernes, 14 de febrero de 2014
CQL v3.14 Cassandra Query Language. Tipos de Datos
Tipos de Datos
CQL soporta un amplio conjunto de datos para la definición de las columnas, incluyendo colecciones.
<type> ::= <native-type>
| <collection-type>
| <string> // Used for custom types. The fully-qualified name of a JAVA class
<native-type> ::= ascii
| bigint
| blob
| boolean
| counter
| decimal
| double
| float
| inet
| int
| text
| timestamp
| timeuuid
| uuid
| varchar
| varint
<collection-type> ::= list '<' <native-type> '>'
| set '<' <native-type> '>'
| map '<' <native-type> ',' <native-type> '>'
La tabla siguiente muestra información adicional de los tipos de datos y las constantes que soportan:
Arquitectura de Cassandra
Cassandra ha sido diseñada para
manejar grandes volúmenes de datos a través de múltiples nodos sin punto único de fallo. Su arquitectura
está basada en el entendimiento de que los fallos del sistema y del hardware pueden
fallar y lo hacen. Cassandra soluciona
el problema empleando un sistema distribuido punto a punto donde todos los
nodos son los mismos y los datos son distribuidos a través de todos los nodos
en el cluster. Cada nodo intercambia información a través del cluster cada
segundo. Una confirmación de registro captura la actividad de escritura para
asegurar la durabiidad de los datos.
Los datos se escriben en una
estructura de memoria, llamada memtable
, tabla de memoria, y entonces se
escriben a un fichero de dato llamado SSTable en disco una vez que la
estructura de memoria está llena. Todas las escrituras son automáticamente
particionadas y relpicadas a través del cluster.
Cassandra es una base de datos
orientad a columnas. La arquitectura de Cassandra permite a un usuario
autorizado conectarse a cualquier nodo en un centro de datos y acceder a los
datos usando lenguaje CQL. Para que sea más fácil de usar
Cassandra utiliza una sintaxis similar a SQL.
El cliente lee o escribe
peticiones que pueden ir a cualquier nodo en el cluster. Cuando un cliente se
conecta a un nodo con una petición, el nodo atiende como el coordinador para
esa operación particular del cliente. El coordinador actúa como un proxy entre
la aplicación del cliente y todos los nodos que poseen la información
requerida. El coordinador determinará que nodo del anillo cogerá la petición
basado en la configuración del cluster.
Etiquetas:
base de datos,
Cassandra,
coordinador,
CQL,
proxy,
SQL,
SSTable
jueves, 13 de febrero de 2014
Cassandra. El modelo de Datos
Mientras investigaba el concepto de Big Data, Hadoop, Pentaho... me encontré con esta base de datos opensource: Cassandra. Dado que en los últimos tiempos sólo se habla de todos estos conceptos, creo que es bueno aprender un poquito sobre esta base de datos. En este capítulo contaré el modelo de datos de Cassandra.
Tradución de la web original :
El modelo de datos
Cassandra es un almacén de filas
con particiones.
Y es un sistema de bases de datos
distribuido open source que ha sido diseñado para almacenar grandes cantidades
de datos a través de servidores genéricos.
Diseñando el modelo de datos
Una clave para diseñar el modelo
de datos de cassandra es basar el diseño en las querys que vamos a ejecutar,
no modelando entidades y relaciones como se hace en las bases de datos
relacionales. Los elementos esenciales del modelo de datos incluyen:
Familias de columnas
Una base de datos Cassandra
consiste en familias de columnas. Una familia de columnas es un conjunto de
pares clave-valor. Cada familia de columnas tiene una clave y consiste de
columnas y filas. Podemos pensar en una familia de columnas como una tabla y
cada par clave-valor como un registro de la tabla.
Nota : a partir de CQL3 se les
llama tablas no familias de columnas.
Tablas
La definición de tabla depende de
la versión de CQL:
- En CQL 3 una tabla es una colección de columnas ordenadas(por nombre).
- En las versiones anteriores, una familia de columnas era sinónimo, en algunos aspectos a una tabla. En CQL 3 una tabla es escasa, incluyendo sólo las columnas que filas se han asignado un valor.
Keyspace
La agrupación más externa de
datos, similar a un esquema en una base de datos relacional. Todas las tablas
van dentro de un espacio de claves. Por lo general, un clúster sólo tiene un
keyspace por aplicación.
http://www.datastax.com/documentation/gettingstarted/index.html?pagename=docs&version=quick_start&file=cassandra_quickstart#getting_started/../getting_started/gettingStarteddataModel_c.html
Etiquetas:
Cassandra,
clave-valor,
columnas,
CQL,
CQL3,
familias de columnas,
family column,
filas,
keyspace,
Modelo de datos,
tablas
Suscribirse a:
Comentarios (Atom)










