CQL, ‘THEN AND NOW’   Cassandra London                Feb, 20th 2012           Courtney Robinson           courtney@crlog....
IN THE BEGINNING   ...horrible thrift code here
AND THEN THERE WAS...   ...better looking hector code here
NOT QUITE   ...slightly better (my hector wrapper) Still not excellent, but better (I think) Remember, not all language...
YAY! CQL TO SAVE THE DAY! ...because not everyone has an Ops team to torture. Upgrading wasn’t such a pain, little or no...
BRIEF INTRO – WHAT IS IT?   Simple, structured query language for Cassandra   Very much SQL (except where it can’t be) ...
CONTROVERSY, POLITICS AND OUT RIGHT BI***ING   Always been an outspoken    (some more than others)                       ...
SO WHAT, CAN I USE THIS THING?   CQL is very much production ready.   If anyone tells you otherwise, ask them to prove i...
CQL V1.0.0 - DEBUT KEYWORDS USE SELECT                         That’s right! UPDATE DELETE                        No I...
TIME TELLS NO LIES, CQL V2   ALTER COLUMNFAMILY   BATCH                      Create table is nothing more               ...
CQL V3, AKA CASSANDRA-3761   About 13 sub-tickets   Most unresolved   It’d be unwise to list features   Any of these c...
TERMINOLOGY WAR...   CQL’s changing fast (maybe too fast?)   Terminology looks to be changing   Creating over lap in so...
COURTNEY ROBINSON @ZCOURTS           Thank you for listening.            Questions?                                Links: ...
CQL, then and now
Upcoming SlideShare
Loading in …5
×

CQL, then and now

1,312 views
1,211 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,312
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
8
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

CQL, then and now

  1. 1. CQL, ‘THEN AND NOW’ Cassandra London Feb, 20th 2012 Courtney Robinson courtney@crlog.info @zcourts http://crlog.info github.com/zcourts
  2. 2. IN THE BEGINNING ...horrible thrift code here
  3. 3. AND THEN THERE WAS... ...better looking hector code here
  4. 4. NOT QUITE ...slightly better (my hector wrapper) Still not excellent, but better (I think) Remember, not all languages have clients as good as hector. Usability varied* vastly between the supported languages So much so I chose Play! Framework over PHP for a small admin front end.
  5. 5. YAY! CQL TO SAVE THE DAY! ...because not everyone has an Ops team to torture. Upgrading wasn’t such a pain, little or no code breaking CQL offered stability (ish)...
  6. 6. BRIEF INTRO – WHAT IS IT? Simple, structured query language for Cassandra Very much SQL (except where it can’t be) Alternative to the Thrift RPC API. Available since Cassandra version 0.8.0 In keeping with Eric Evan’s attempts, just pronounce it ‘siːkwəl’ Isn’t much* to say about CQL, its does what it says on the tin
  7. 7. CONTROVERSY, POLITICS AND OUT RIGHT BI***ING Always been an outspoken (some more than others) few against it Never been much in the way of facts to backup their claims such as: SQL like syntax is a very idiomatic RDMS thing. Parsing a string will be slow, just because its parsing a string and for no other reason The aforementioned will make Cassandra ‘as vulnerable’ to injection ...etc (all speculation mind you)
  8. 8. SO WHAT, CAN I USE THIS THING? CQL is very much production ready. If anyone tells you otherwise, ask them to prove its not before you decide. My tiny 5 Node cluster is nothing to boast about, but it handles a good 150+ GB of data a day Every* query is done with CQL Except on a single CF which uses super columns. CQL does not and most likely will not ever support super columns. Compound column (CASSANDRA-2474 monster ticket) resolved (ish).
  9. 9. CQL V1.0.0 - DEBUT KEYWORDS USE SELECT That’s right! UPDATE DELETE No INSERT...? TRUNCATE DROP BATCH SPECIAL STATEMENTS CREATE KEYSPACE CREATE COLUMNFAMILY CREATE INDEX 10 total
  10. 10. TIME TELLS NO LIES, CQL V2 ALTER COLUMNFAMILY BATCH Create table is nothing more than an alias to create CREATE INDEX columnfamily CREATE KEYSPACE CREATE COLUMNFAMILY CREATE TABLE (CASSANDRA-2743) DELETE Rational: ‘create an DROP COLUMNFAMILY alias to be friendlier DROP INDEX to existing tools’ DROP KEYSPACE INSERT SELECT TRUNCATE 15 total UPDATE USE
  11. 11. CQL V3, AKA CASSANDRA-3761 About 13 sub-tickets Most unresolved It’d be unwise to list features Any of these could be dropped/altered before V3 is finalized (C* V1.1.1 is the roadmap release for V3) Backwards incompatibility (hence major version jump) Not the little project it used to be, would take all night to cover each feature with enough details
  12. 12. TERMINOLOGY WAR... CQL’s changing fast (maybe too fast?) Terminology looks to be changing Creating over lap in some places May become, or already is confusing Not sure those in charge are seeing it At a stage where its probably as confusing as other, more complicated C* features Progress is great, but so is usability & simplicity...
  13. 13. COURTNEY ROBINSON @ZCOURTS Thank you for listening. Questions? Links: https://github.com/apache/cassandra/blob/trunk/doc/cql/CQL.textile http://crlog.info/2011/09/17/cassandra-query-language-cql-v2-0-reference/ https://issues.apache.org/jira/browse/CASSANDRA-2743

×