SlideShare una empresa de Scribd logo
1 de 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

Más contenido relacionado

La actualidad más candente (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
 

Destacado

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
 

Destacado (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
 

Similar a 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
 

Similar a 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.
 

Último

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Último (20)

"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
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
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 

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