tutorial example español cassandra kundera

example - cassandra tutorial español



Acerca de Java Cassandra Client, ¿cuál es mejor? ¿Qué tal CQL? (11)

Ahora hay un nuevo cliente, Astyanax , lanzado por Netflix en enero de 2012.

"Astyanax es un cliente de Java Cassandra. Toma prestados muchos conceptos de Hector, pero difiere en la implementación del conjunto de conexiones así como en la API del cliente. Una de las principales consideraciones de diseño fue proporcionar una abstracción clara entre el conjunto de conexiones y la API de Cassandra para que cada uno Astyanax ofrece una API de estilo fluido que guía al interlocutor para limitar la consulta de una clave a otra, así como consultas para casos de uso más complejos que hemos encontrado. Los beneficios operativos de Astyanax sobre Hector incluyen una latencia más baja , varianza de latencia reducida, y mejor manejo de errores ".

El código fuente de Astyanax se encuentra en Github: https://github.com/Netflix/astyanax

Estoy tratando de desarrollar una aplicación utilizando Hive como la base de datos, y luego también encuentro soluciones noSQL como alternativa.

Ahora decidí desarrollar utilizando Cassandra, mi siguiente problema es sobre qué cliente debo usar? ¿Cuál es mejor, Hector, una solución java pura, o Kundera con JPA como desarrollo?

Prefiero a Héctor, pero tengo curiosidad por Kundera. ¿Hay alguien usando Kundera? ¿Cual es mejor?

Tengo curiosidad por CQL (Cassandra Query Language). ¿Se puede integrar con Hector?


Astyanax api produce un código legible para las personas e incluye la agrupación de conexiones.


El soporte de CQL sobre cassandra se ha integrado en kundera 2.0.6 (aún no se ha lanzado). Permite ejecutar CQL ahora como consulta nativa.

-Vivek


En aras de la exhaustividad, creo que la biblioteca de Pelops debería mencionarse. Hector parece ser el más usado, pero Pelops tiene una API más simple. Pelops no soporta CQL.

Sin embargo, viniendo de Ruby me parece que ambos son extremadamente verbosos e imperativos.


Hector se está moviendo lentamente hacia la integración de CQL. Se han dado los primeros pasos, pero debido a la experiencia de una API inestable, los desarrolladores parecen haber pospuesto un nuevo lanzamiento. La API de CQL es bastante nueva, ya que debería ser casi equivalente a una sintaxis SQL. Realicé algunos pasos básicos con las operaciones CRUD para verificar que los datos pudieran escribirse y leerse a través de CQL.

Sin embargo, el CQL JAR no se puede utilizar de inmediato como un controlador JDBC estándar a partir de ahora, y omite algunos aspectos importantes de la característica. Echando un vistazo a la API de ahorro más o menos difícil de entender y la API hector no mucho más simple, estoy convencido de que CQL se establecerá como la API de acceso de última generación para Cassandra en las versiones 0.8.1 y 1.0 , donde el ahorro seguirá siendo el acceso nativo y sin formato durante algún tiempo.

La competencia entre ambas API no tiene nada que ver con la decisión de Hector. Hector proporciona servicios adicionales como manejo de fallas y conexiones en el clúster. Estas son características que no están dirigidas por thrift ni por CQL.

Realmente no creo en todos los otros mapeadores O / R, o incluso aquellos que afirman proporcionar una JPA completa. No puedo imaginar cómo debería funcionar esto.





Respondiendo a su pregunta sobre los clientes: Hector esencialmente proporciona acceso a la API nativa de Cassandra (columnas, familias de columnas, filas, etc.), mientras que Kundera pretende ocultar estos detalles y proporcionar la asignación de la base de datos de objetos.

Por lo tanto, Kundera probablemente facilita la persistencia rápida de un rango de objetos Java en Cassandra, pero puede que no proporcione un mapeo eficiente, tal vez perdiendo parte del rendimiento que ofrecen los enfoques noSQL.

Hector espera que se adapte al modelo de datos de Cassandra; será un trabajo más difícil, pero es probable que ofrezca más rendimiento.


Todavía tengo que probar Hector, pero estoy involucrado en la última versión de Kundera 2.0.1. Te sugiero que lo intentes. Ha tenido un gran cambio desde su inicio y se pueden ver muchas características nuevas que se agregan y se corrigen errores. Actualmente es compatible con JPA 1.0 y Cassandra 0.7.6, pero estamos planeando agregar soporte para Cassandra 0.8 y JPA 2.0 muy pronto. Aquí hay un buen ejemplo: https://github.com/impetus-opensource/Kundera/wiki/Getting-started que puede ayudarlo a comenzar.


Kundera 2.0.4 lanzado:

Cambios importantes en esta versión:

  • Persistencia entre almacenes de datos (fácil de gestionar la aplicación mysql existente sobre nosql)
  • soporte para bases de datos relacionales (por ejemplo, Mysql, etc.)
  • Reemplazar solandra con indexación basada en lucene.
  • Soporte agregado para asociaciones bidireccionales.
  • Correcciones de mejora de rendimiento.

Probamos y 1 millón de inserciones con indexación adecuada sucedieron en 6 minutos.

Vivek