SlideShare ist ein Scribd-Unternehmen logo
1 von 14
CQL, ‘THEN AND NOW’

   Cassandra London
                Feb, 20th 2012


           Courtney Robinson
           courtney@crlog.info
              @zcourts
           http://crlog.info
   github.com/zcourts
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 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.
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)...
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
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)
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).
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
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
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
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...
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

Weitere ähnliche Inhalte

Was ist angesagt? (6)

How to deploy docker container inside ikoula's cloud
How to deploy docker container inside ikoula's cloudHow to deploy docker container inside ikoula's cloud
How to deploy docker container inside ikoula's cloud
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Aloofix
AloofixAloofix
Aloofix
 
Docker - A Ruby Introduction
Docker - A Ruby IntroductionDocker - A Ruby Introduction
Docker - A Ruby Introduction
 
Rancher OS - A simplified Linux distribution built from containers, for conta...
Rancher OS - A simplified Linux distribution built from containers, for conta...Rancher OS - A simplified Linux distribution built from containers, for conta...
Rancher OS - A simplified Linux distribution built from containers, for conta...
 
Docker consul-registrator
Docker consul-registratorDocker consul-registrator
Docker consul-registrator
 

Andere mochten auch

Understanding plagiarismv2
Understanding plagiarismv2Understanding plagiarismv2
Understanding plagiarismv2
jupislay
 
Locations and Directions - Terry Turner
Locations and Directions - Terry TurnerLocations and Directions - Terry Turner
Locations and Directions - Terry Turner
Vinicius Matos
 
Senior project final (3)
Senior project final (3)Senior project final (3)
Senior project final (3)
blondie50351
 
Senior project photo album
Senior project photo albumSenior project photo album
Senior project photo album
blondie50351
 
Senior project research paper
Senior project research paperSenior project research paper
Senior project research paper
blondie50351
 

Andere mochten auch (16)

TEDxOdessa presentation
TEDxOdessa presentationTEDxOdessa presentation
TEDxOdessa presentation
 
Dolphins run ashore
Dolphins run ashoreDolphins run ashore
Dolphins run ashore
 
บรรยาย สินค้า แผน ใหม่สุดๆๆ
บรรยาย สินค้า แผน ใหม่สุดๆๆบรรยาย สินค้า แผน ใหม่สุดๆๆ
บรรยาย สินค้า แผน ใหม่สุดๆๆ
 
Creativity is More Important than the Knowledge
Creativity is More Important than the Knowledge Creativity is More Important than the Knowledge
Creativity is More Important than the Knowledge
 
Understanding plagiarismv2
Understanding plagiarismv2Understanding plagiarismv2
Understanding plagiarismv2
 
B
BB
B
 
Locations and Directions - Terry Turner
Locations and Directions - Terry TurnerLocations and Directions - Terry Turner
Locations and Directions - Terry Turner
 
Senior project final (3)
Senior project final (3)Senior project final (3)
Senior project final (3)
 
Quality Tool
Quality ToolQuality Tool
Quality Tool
 
Power Point บรรยาย สินค้า+ แผน บริษัทRichyway
Power Point บรรยาย สินค้า+ แผน บริษัทRichyway Power Point บรรยาย สินค้า+ แผน บริษัทRichyway
Power Point บรรยาย สินค้า+ แผน บริษัทRichyway
 
BLM
BLMBLM
BLM
 
Senior project photo album
Senior project photo albumSenior project photo album
Senior project photo album
 
Defense
DefenseDefense
Defense
 
TEDxOdessa Partnership
TEDxOdessa PartnershipTEDxOdessa Partnership
TEDxOdessa Partnership
 
Senior project research paper
Senior project research paperSenior project research paper
Senior project research paper
 
Reheating Refrigeration System
Reheating Refrigeration System Reheating Refrigeration System
Reheating Refrigeration System
 

Ähnlich wie CQL, then and now

TupleJump: Breakthrough OLAP performance on Cassandra and Spark
TupleJump: Breakthrough OLAP performance on Cassandra and SparkTupleJump: Breakthrough OLAP performance on Cassandra and Spark
TupleJump: Breakthrough OLAP performance on Cassandra and Spark
DataStax Academy
 

Ähnlich wie CQL, then and now (20)

Trivadis TechEvent 2016 Big Data Cassandra, wieso brauche ich das? by Jan Ott
Trivadis TechEvent 2016 Big Data Cassandra, wieso brauche ich das? by Jan OttTrivadis TechEvent 2016 Big Data Cassandra, wieso brauche ich das? by Jan Ott
Trivadis TechEvent 2016 Big Data Cassandra, wieso brauche ich das? by Jan Ott
 
Katello on TorqueBox
Katello on TorqueBoxKatello on TorqueBox
Katello on TorqueBox
 
The Do’s and Don’ts of Benchmarking Databases
The Do’s and Don’ts of Benchmarking DatabasesThe Do’s and Don’ts of Benchmarking Databases
The Do’s and Don’ts of Benchmarking Databases
 
Cassandra To Infinity And Beyond
Cassandra To Infinity And BeyondCassandra To Infinity And Beyond
Cassandra To Infinity And Beyond
 
Introduction to Apache Cassandra
Introduction to Apache CassandraIntroduction to Apache Cassandra
Introduction to Apache Cassandra
 
Cassandra vs. ScyllaDB: Evolutionary Differences
Cassandra vs. ScyllaDB: Evolutionary DifferencesCassandra vs. ScyllaDB: Evolutionary Differences
Cassandra vs. ScyllaDB: Evolutionary Differences
 
Austin Web Architecture
Austin Web ArchitectureAustin Web Architecture
Austin Web Architecture
 
Corwin on Containers
Corwin on ContainersCorwin on Containers
Corwin on Containers
 
Apache Cassandra Lunch #74: ScyllaDB - Peter Corless
Apache Cassandra Lunch #74: ScyllaDB - Peter CorlessApache Cassandra Lunch #74: ScyllaDB - Peter Corless
Apache Cassandra Lunch #74: ScyllaDB - Peter Corless
 
KSQL: The Streaming SQL Engine for Apache Kafka
KSQL: The Streaming SQL Engine for Apache KafkaKSQL: The Streaming SQL Engine for Apache Kafka
KSQL: The Streaming SQL Engine for Apache Kafka
 
Cassandra Fundamentals - C* 2.0
Cassandra Fundamentals - C* 2.0Cassandra Fundamentals - C* 2.0
Cassandra Fundamentals - C* 2.0
 
TupleJump: Breakthrough OLAP performance on Cassandra and Spark
TupleJump: Breakthrough OLAP performance on Cassandra and SparkTupleJump: Breakthrough OLAP performance on Cassandra and Spark
TupleJump: Breakthrough OLAP performance on Cassandra and Spark
 
FiloDB - Breakthrough OLAP Performance with Cassandra and Spark
FiloDB - Breakthrough OLAP Performance with Cassandra and SparkFiloDB - Breakthrough OLAP Performance with Cassandra and Spark
FiloDB - Breakthrough OLAP Performance with Cassandra and Spark
 
Networking in Kubernetes
Networking in KubernetesNetworking in Kubernetes
Networking in Kubernetes
 
Making It To Veteren Cassandra Status
Making It To Veteren Cassandra StatusMaking It To Veteren Cassandra Status
Making It To Veteren Cassandra Status
 
Azure Kubernetes Service - benefits and challenges
Azure Kubernetes Service - benefits and challengesAzure Kubernetes Service - benefits and challenges
Azure Kubernetes Service - benefits and challenges
 
Scylla: 1 Million CQL operations per second per server
Scylla: 1 Million CQL operations per second per serverScylla: 1 Million CQL operations per second per server
Scylla: 1 Million CQL operations per second per server
 
NoSQL in MySQL
NoSQL in MySQLNoSQL in MySQL
NoSQL in MySQL
 
Scylla db@cassandra meetup, tlv, 2015
Scylla db@cassandra meetup, tlv, 2015Scylla db@cassandra meetup, tlv, 2015
Scylla db@cassandra meetup, tlv, 2015
 
CQL: This is not the SQL you are looking for.
CQL: This is not the SQL you are looking for.CQL: This is not the SQL you are looking for.
CQL: This is not the SQL you are looking for.
 

Kürzlich hochgeladen

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Kürzlich hochgeladen (20)

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 

CQL, then and now

  • 1. CQL, ‘THEN AND NOW’ Cassandra London Feb, 20th 2012 Courtney Robinson courtney@crlog.info @zcourts http://crlog.info github.com/zcourts
  • 2. IN THE BEGINNING  ...horrible thrift code here
  • 3. AND THEN THERE WAS...  ...better looking hector code here
  • 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. 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. 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. 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. 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. 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. 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. 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. 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.
  • 14. 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