/ / Cassandra 1.2: ¿Se prefiere el CQL sobre los Clientes basados ​​en Thrift? - cassandra, pycassa

Cassandra 1.2: ¿Se prefiere el CQL sobre los Clientes Basados ​​en Thrift? - cassandra, pycassa

Finalmente me estoy acostumbrando a Cassandra, parte del problema fue aprender / respetar las diferencias entre Thrift y CQL3.

Muchos de los tutoriales que estoy encontrando en línea son paraCQL3. Mi pregunta: ¿Es CQL3 realmente el método preferido, y se está desanimando a Thrift? La razón por la que pregunto es que pasé un par de días tratando de obtener lo que necesitaba a través de Pycassa, que no es compatible con Cassandra 1.2 y que se basa en el modelo Thrift.

Respuestas

5 para la respuesta № 1

¿Es CQL3 realmente el método preferido, y se está desanimando a Thrift?

Respuesta corta es .

La respuesta más larga es:

CQL3 debe ser preferido por muchas razones:

  1. lenguaje independiente de la plataforma: CQL3 se parece a SQL y es más fácil de manejar ese código de API puro de Thrift.

  2. Mayor nivel de abstracción: para los usuarios finales, es más fácil tratar con CQL3 para consultar datos en lugar de hacer malabares con la API de Thrift de bajo nivel, aunque existen algunos buenos marcos de abstracción más altos (Hector para Java, Pycassa para Python ... =

  3. Más fácil de administrar para equipos operativos: cuando se crea una nueva tabla o se agrega una nueva referencial datos, es más fácil escribir scripts CQL3 que opslos equipos pueden entender, verificar y ejecutar en lugar de los scripts de Cassandra-cli crípticos (establecer cf [rowKey] [columnName] = ...). Estoy migrando todos nuestros scripts cassandra-cli a CQL3 porque es un dolor en el culo mantenerlos

  4. Por último, pero no menos importante, CQL3 hace la vida más fácil para los desarrolladores de marcos de terceros. He desarrollado Aquiles, un gestor de persistencia de código abierto para Cassandra. La versión de Thrift fue difícil de implementar, la versión CQL3 fue muy sencilla, especialmente porque utiliza el controlador Java de Datastax

Dicho esto, CQL3 tampoco es un lecho de rosas. antes de Aprovechando todo el poder del lenguaje de consulta, debe comprender cómo funciona el motor de almacenamiento Cassandra.. El lenguaje te da la ilusión de que todo es fácil y funcionará como SQL, pero la verdad es que no. Hay algunas diferencias semánticas importantes, especialmente cuando se usa el DÓNDE cláusula.


1 para la respuesta № 2

Sí, CQL es la API preferida. Es mucho más fácil de usar y no todas las operaciones son compatibles a través de la API de Thrift.

Puedes usar cassandra-dbapi2 para CQL3 en Python: https://code.google.com/a/apache-extras.org/p/cassandra-dbapi2/.


1 para la respuesta № 3

Respuesta corta: si

Sin embargo, dado que es nuevo en comparación con los clientes basados ​​en ahorro, es seguro asumir que hay muchos más clientes en producción.

Dado que Datastax ahora produce su propio controlador de Java que admite exclusivamente CQL3, probablemente sea una buena idea seguir un paquete: https://github.com/datastax/java-driver