SimpleDB promete una revolución
Escrito por Eduardo Riquelme Pastor   

Amazon dejó de ser una tienda virtual de libros ... solamente. Desde hace un tiempo, Amazon Web Services LLC, ofrece servicios web basándose en el concepto de "cloud computing" y en el concepto de IaaS (infraestructura como servicio), donde se usa un servicio web y pagando solamente por el uso que le da. Además de olvidarse de los costos de implementación de software, se olvida para siempre de los costos de infraestructura (dentro de la nube, casi no se tiene límites en cuanto a oferta de infraestructura), acordándose solo de la maravillosa frase "pay-per-use".

Pero dentro de este nuevo y prometedor negocio de Amazon, hoy queremos dedicarle un espacio a SimpleDB, que por sus características, promete hacer temblar el reinado de las bases de datos en el mundo del software.

¿Qué es SimpleDB?

Amazon SimpleDB es un servicio web para correr consultas sobre datos estructurados en tiempo real.  Este servicio corre sobre otros dos de Amazon: Amazon Simple Storage Service (SS3 cariñosamente), y Amazon Elastic Computing Cloud (EC2), proveyendo colectivamente la posibilidad de almacenar, procesar y consultar conjuntos de datos en la "nube". Estos servicios están diseñados para proveer a los desarrolladores y a los usuarios, mas efectivo desde el punto de vista económico.

Tradicionalmente, una funcionalidad similar conllevaría gastos de licenciamiento de bases de datos (o aunque fuera una base de datos de código abierto, los costos de infraestructura de hardware para soportarla), mas el costo de soportar una infraestructura de cluster, el pago a un DBA (administrador de bases de datos) que diera mantenimiento y optimización a la BD. SimpleDB es fácil de utilizar y además provee la funcionalidad principal de una base de datos - búsqueda en tiempo real y y consulta simple de datos estructurados - sin la complejidad operacional mencionada anteriormente. 

Funcionalidad hecha simple

Amazon SimpleDB provee de una interfaz para crear y almacenar múltiples conjuntos de datos (datasets) consultar los datos fácilmente y devolver los resultados.

Se pueden organizar los datos en "dominios" y correr consultas sobre todos los datos almacenados en un dominio en particular. Los dominios están compuestos de ítems, y los ítems descriptos por propiedades en el par "atributo-valor". Para entender mejor esta metáfora, imagínese los datos almacenados en una hoja de cálculo. Un dominio de SimpleDB es como una hoja de cálculos: ítems como las filas de datos y los atributos como las columnas, mientras que los valores son como las cabeceras de las columnas, mientras que los datos son los valores que se ingresan normalmente en las celdas.

A diferencia de las hojas de cálculo, en un dominio SimpleDB, una celda puede tener un conjunto de atributos asociados (por ejemplo, para el ítem "123"puede haber dos atributos "descripción" y "color", mientras que para el ítem "789" puede  existir "descripción", "color" y "material"). AmazonDB siempre indexa automáticamente los datos, haciendo siempre mas rápido ubicar la información que necesita. No hay necesidad de predefinir un esquema o cambiar un esquema, si posteriormente existe una necesidad de agregar mas información.

Amazon SimpleDB es tan simple como su nombre. Para utilizarlo simplemente:

  • Cree (CREATE) un dominio nuevo para albergar su conjunto único de datos estructurados.
  • Obtenga (GET), ponga (PUT) o borre (DELETE) ítems en su dominio, a través de los pares valor-atributo asociados a cada ítem. Amazon SimpleDB indexa automáticamente los datos a medida que los va ingresando, de manera que puedan ser rápidamente recuperados cuando lo solicite. No hay necesidad de predefinir o cambiar un esquema si nuevos pares valor-atributo son agregados posteriormente. Cada ítem puede tener hasta 256 atributos asociados. Cada atributo puede tener desde 1 a 1024 bytes.
  • Consulte (QUERY) sus conjuntos de datos utilizando este conjunto simple de operadores: =, !=, <, > <=, >=, STARTS-WITH (comienza con),  AND, OR, NOT, INTERSECTION AND UNION.  El tiempo de ejecución de las consultas está limitado actualmente a alrededor de 5 segundos. Amazon SimpleDB está diseñado para aplicaciones de tiempo real y optimizado para esos casos de uso.
  • Pague solamente por los recursos que consume.

Puntos destacados del servicio

  • Simple de usar.

    Amazon SimpleDB provee acceso encadenado (streamlined) a funciones de búsquedas y consultas, que tradicionalmente se logran utilizando un cluster de bases de datos - mientras deja afuera la complejidad, frecuentemente inutilizada, de otras operaciones de bases de datos-. El servicio permite rápidamente agregar datos y fácilmente recuperar o editar esos datos a través de llamadas a una API simple. Accediendo estas capacidades a través de un web service también elimina la complejidad de mantener y escalar estas operaciones.

  • Flexible.

    Con Amazon SimpleDB, no es necesario predefinir todos los formatos de datos que necesitará almacenar; simplemete agregue nuevos atrivutos a sus datos a medida que los necesite, y el sistema indexará esos datos convenientemente. The ability to store structured data without first defining a schema provides developers with greater flexibility when building applications.

  • Escalable

    Amazon SimpleDB permite escalar muy facilmente su aplicación. Puede fácilmente crear nuevos dominios a medida que sus datos crescan o solicitar incremento de rendimiento. Para la versión Beta, un dominio simple está limitado a 10GB y está limitado a 100 dominios por cliente; De todas maneras, esos limites van a ser superados con las próximas versiones.

  • Rápido.

    Amazon SimpleDB provee almacenamiento y recuperación de datos rápida y eficiente, para soportar aplicaciones web de alto rendimiento.

  • Confiable.

    El servicio corre en Data Centers de Alta disponibilidad en Amazon, para proveer rendimiento y fuerte consistencia. Para prevenir que se pierdan datos o se pierda su disponibilidad, sus datos completamente indexados son almacenados en forma redundante a través de multiples servidores y multiples data centers.

  • Diseñado para ser utilizado con otros Web Services de Amazon.

    Amazon SimpleDB está diseñado para integrarse fácilmente con otros servicios web como Amazon EC2 y Amazon S3. Por ejemplo, los desarrolladores pueden correr sus aplicaciones en Amazon EC2 y almacenar sus objetos de datos en S3. Amazon SimpleDB puede ser utilizado para consultar los metadatos de los objetos de una aplicacion en Amazon EC2 y devolver punteros a objetos almacenados en Amazon S3.

  • Barato.

    Amazon SimpleDB pasará seguramente su evaluación financiera y podrá apreciar rápidamente sus beneficios. Usted paga solamente los recursos que consume. Compare esto con las grandes erogaciones de dinero que tradicionalmente se requieren para montar el backend de una aplicación: obtener licencias, comprar y mantener hardware, ya sea en su organización o alquilado. Esta modalidad lo libera de las complejidades del planeamiento de capacidad, transformar grandes erogaciones de capital en costos operativos menores, y tambien le evita la necesidad de comprar de mas "capacidad de red" para manejar los picos de tráfico periódicos.

Resúmen de la API

Amazon SimpleDB provee una API muy pequeña y simple que implementa escritura, indexado y consulta de datos. La interfaz y las características están intencionalmente enfocados en la funcionalidad principal, proveyendo una API básica para desarrolladores para construir sobre ella y hacer del servicio algo fácil de aprender y simple de usar.

  • CreateDomain: Crea un dominio que contendrá su conjunto de datos (dataset).
  • DeleteDomain: Borra un dominio.
  • ListDomains: Lista todos los dominios y los metadatos asociados.
  • PutAttributes: Agrega o actualiza un item y sus atributos, o agrega pares atributo-valor a items existentes. Los ítems son indexados tan pronto como son recibidos.
  • GetAttributes: Recupera un ítem y todos o un subconjunto de sus atributos y valores.
  • DeleteAttributes: Borra un ítem, un atributo o un valor de un atributo.
  • Query: Consulta un conjunto de datos utilizando un lenguaje basado en expresiones el cual especifica pruebas de datos sobre uno o mas atributos. Los valores de prueba soportados son: =, !=, <, >, <=, >=, starts-with. Por ejemplo,
    ["precio" < "12.00"] INTERSECTION ["color" = "verde"]

 

Fuente (en inglés): http://www.amazon.com/SimpleDB-AWS-Service-Pricing/b?ie=UTF8&node=342335011 

 

 

Espacio publicitario

Links destacados:
Ermes
Ermes consulting, el socio estratégico para los negocios de alto rendimiento.
Incidencia
Incidencia.net, la consultora de Recursos Humanos estratégicos en Argentina.
Slashdot
Slashdot, News for nerds, stuff that matters...
Gantthead.com
Gantthead, el sitio en ingles mas completo para los Project Managers.