SlideShare a Scribd company logo
Cassandra Introduction
Basic Cassandra operations overview
Cassandra setup
○ ~$ docker pull cassandra
○ ~$ docker run --name cassandra1 -d cassandra
○ ~$ docker run --name cassandra2 -d -e
CASSANDRA_SEEDS="$(docker inspect --format='{{
.NetworkSettings.IPAddress }}' cassandra1)"
cassandra
○ ~$ docker run -it --name cqlsh --link
cassandra1:cassandra --rm cassandra sh -c
'exec cqlsh "$CASSANDRA_PORT_9042_TCP_ADDR"'
https://www.docker.com
Cassandra setup (docker)
Cassandra Query Language (CQL) is a query language for
the Cassandra database. The Cassandra Query Language
(CQL) is the primary language for communicating with the
Cassandra database. The most basic way to interact with
Cassandra is using the CQL shell, cqlsh.
CQL
CREATE KEYSPACE DEMO WITH REPLICATION = { 'CLASS' :
'SIMPLESTRATEGY', 'REPLICATION_FACTOR' : 2 };
USE DEMO;
Create keyspace
CREATE TABLE WHEATHER_FORECAST (SITE TEXT, SPECIES TEXT,
MEASUREMENTDATE TIMESTAMP, LATITUDE DOUBLE, LONGITUDE DOUBLE, VALUE
DOUBLE,
PRIMARY KEY((SITE, SPECIES), MEASUREMENTDATE)) ;
DESC WHEATHER_FORECAST;
Create Column Family
Create Column Family
INSERT INTO WHEATHER_FORECAST(SITE, SPECIES, MEASUREMENTDATE, LATITUDE ,
LONGITUDE, VALUE ) VALUES ('MY7', 'PM10', 1451628000000, 51.234, -
0.846, 44.4);
INSERT INTO WHEATHER_FORECAST (SITE, SPECIES, MEASUREMENTDATE, LATITUDE ,
LONGITUDE, VALUE ) VALUES ('MY7', 'PM10', 1451631600000, 51.234, -
0.846, 41.7);
Insert Data Rows
INSERT INTO WHEATHER_FORECAST (SITE, SPECIES, MEASUREMENTDATE, LATITUDE ,
LONGITUDE, VALUE ) VALUES ('MY7', 'PM10', 1451638800000, 51.234, -
0.846, 38.5);
INSERT INTO WHEATHER_FORECAST (SITE, SPECIES, MEASUREMENTDATE, LATITUDE ,
LONGITUDE, VALUE ) VALUES ('MY7', 'PM25', 1451639800000, 51.234, -
0.846, 18.8);
Insert Data Rows
SELECT * FROM WHEATHER_FORECAST;
SELECT * FROM WHEATHER_FORECAST WHERE SITE = 'MY7'; //ERROR
SELECT * FROM WHEATHER_FORECAST WHERE SPECIES = 'PM10'; //ERROR
SELECT * FROM WHEATHER_FORECAST WHERE SITE = 'MY7' AND SPECIES = 'PM10';
SELECT * FROM WHEATHER_FORECAST WHERE SITE = 'MY7' AND SPECIES = 'PM10'
AND MEASUREMENTDATE = 1451628000000;
Querying Data
Querying Data
○ The Partition Key is responsible for data distribution across your nodes.
○ The Clustering Key is responsible for data sorting within the partition.
○ The Primary Key is equivalent to the Partition Key in a single-field-key
table.
○ The Composite/Compound Key is just a multiple-columns key
Keys & Clustering
CREATE TABLE WHEATHER_FORECAST (
SITE TEXT,SPECIES TEXT,
MEASUREMENTDATE TIMESTAMP,
LATITUDE DOUBLE,
LONGITUDE DOUBLE,
VALUE DOUBLE,
PRIMARY KEY ((SITE, SPECIES), MEASUREMENTDATE))
Composite Partition Key Clustering Key
SELECT * FROM WHEATHER_FORECAST WHERE SITE = 'MY7' AND SPECIES = 'PM10' AND
LATITUDE = 51.234; //ERROR
SELECT * FROM WHEATHER_FORECAST WHERE SITE = 'MY7' AND SPECIES = 'PM10' AND
LATITUDE = 51.234 ALLOW FILTERING;
SELECT * FROM WHEATHER_FORECAST WHERE SITE = 'MY7' AND SPECIES > 'PM10';
//ERROR
SELECT * FROM WHEATHER_FORECAST WHERE SITE = 'MY7' AND SPECIES IN ('PM10');
SELECT * FROM WHEATHER_FORECAST WHERE SITE = 'MY7' AND SPECIES IN ('PM10') AND
MEASUREMENTDATE >= 1451628000000;
Querying Data
SELECT MIN(SITE), MIN(SPECIES) FROM WHEATHER_FORECAST; //WARNING
SELECT MIN(SITE), MIN(SPECIES), MIN(MEASUREMENTDATE) FROM WHEATHER_FORECAST;
INSERT INTO WHEATHER_FORECAST (SITE, SPECIES, MEASUREMENTDATE, LATITUDE ,
LONGITUDE , VALUE) VALUES ('MY7', 'PM25', 1451639800000, 51.234, -0.846, 28.8);
//UPSERT
Querying Data
Querying Data
INSERT INTO WHEATHER_FORECAST (SITE, SPECIES, MEASUREMENTDATE, LATITUDE ,
LONGITUDE, VALUE ) VALUES ('MY7', 'PM10', 1451616000000, 51.234, -0.846,
88.4) USING TTL 30;
Insert with TTL

More Related Content

PDF
Quick reference for Grafana
PDF
Store and Process Big Data with Hadoop and Cassandra
PDF
Lab1-DB-Cassandra
PDF
Codigos
PDF
ClickHouse Unleashed 2020: Our Favorite New Features for Your Analytical Appl...
PDF
Rob Sullivan at Heroku's Waza 2013: Your Database -- A Story of Indifference
DOC
Rac nonrac clone
PPTX
2017 02-07 - elastic & spark. building a search geo locator
Quick reference for Grafana
Store and Process Big Data with Hadoop and Cassandra
Lab1-DB-Cassandra
Codigos
ClickHouse Unleashed 2020: Our Favorite New Features for Your Analytical Appl...
Rob Sullivan at Heroku's Waza 2013: Your Database -- A Story of Indifference
Rac nonrac clone
2017 02-07 - elastic & spark. building a search geo locator

What's hot (20)

PDF
[Pgday.Seoul 2021] 2. Porting Oracle UDF and Optimization
PDF
Big Data in Real-Time: How ClickHouse powers Admiral's visitor relationships ...
PDF
15 MySQL Basics #burningkeyboards
PDF
John Melesky - Federating Queries Using Postgres FDW @ Postgres Open
DOCX
Imports my sql
PDF
Couchdb
PPTX
ElasticSearch 5.x - New Tricks - 2017-02-08 - Elasticsearch Meetup
PDF
[Pgday.Seoul 2019] Citus를 이용한 분산 데이터베이스
PDF
C++ Programming - 7th Study
PDF
16 MySQL Optimization #burningkeyboards
PDF
Efficient Indexes in MySQL
PDF
Apache Cassandra - Data modelling
PDF
Javantura v2 - Replication with MongoDB - what could go wrong... - Philipp Krenn
PDF
MongoDB Database Replication
PDF
Angular Refactoring in Real World
PDF
ClickHouse materialized views - a secret weapon for high performance analytic...
PDF
Webinar slides: Adding Fast Analytics to MySQL Applications with Clickhouse
PPT
FMDB - SLC-Cocoaheads
PDF
Lab2-DB-Mongodb
PDF
Kubernetes - Parte I
[Pgday.Seoul 2021] 2. Porting Oracle UDF and Optimization
Big Data in Real-Time: How ClickHouse powers Admiral's visitor relationships ...
15 MySQL Basics #burningkeyboards
John Melesky - Federating Queries Using Postgres FDW @ Postgres Open
Imports my sql
Couchdb
ElasticSearch 5.x - New Tricks - 2017-02-08 - Elasticsearch Meetup
[Pgday.Seoul 2019] Citus를 이용한 분산 데이터베이스
C++ Programming - 7th Study
16 MySQL Optimization #burningkeyboards
Efficient Indexes in MySQL
Apache Cassandra - Data modelling
Javantura v2 - Replication with MongoDB - what could go wrong... - Philipp Krenn
MongoDB Database Replication
Angular Refactoring in Real World
ClickHouse materialized views - a secret weapon for high performance analytic...
Webinar slides: Adding Fast Analytics to MySQL Applications with Clickhouse
FMDB - SLC-Cocoaheads
Lab2-DB-Mongodb
Kubernetes - Parte I
Ad

Viewers also liked (20)

PDF
aravind report
DOCX
Basis graphics
PPTX
As research and planning presentation
PPSX
Τι έτρωγαν οι αρχαίοι 'Ελληνες.
PDF
Co to jest UX?
PPTX
Arreola
PDF
BG - Brochure 2014
DOCX
PDF
Covering the coup (whole article)
DOCX
Podcasting
DOCX
Financing for development
PDF
Eng. Nader Elzamly (English)
PPTX
Innovations in blended finance for infrastructure
PDF
Taame Berhanu
DOCX
MEETING THE “SANITATION FOR ALL” GOAL: GHANA’S PUBLIC PRIVATE PARTNERSHIP MODEL
PPTX
Александр Мищанин,(UX/UI дизайнер, Fortifier), "О дизайн-процессе и трудностя...
PDF
GARAGE BOOK 02 - ANTS SHOWCASE (small size)
PPTX
Assigning a static By: jamesmalto
PPTX
On Facing the age-old issue of Illicit Financial Outflows-Vulture Funds, Squa...
PDF
Продукция
aravind report
Basis graphics
As research and planning presentation
Τι έτρωγαν οι αρχαίοι 'Ελληνες.
Co to jest UX?
Arreola
BG - Brochure 2014
Covering the coup (whole article)
Podcasting
Financing for development
Eng. Nader Elzamly (English)
Innovations in blended finance for infrastructure
Taame Berhanu
MEETING THE “SANITATION FOR ALL” GOAL: GHANA’S PUBLIC PRIVATE PARTNERSHIP MODEL
Александр Мищанин,(UX/UI дизайнер, Fortifier), "О дизайн-процессе и трудностя...
GARAGE BOOK 02 - ANTS SHOWCASE (small size)
Assigning a static By: jamesmalto
On Facing the age-old issue of Illicit Financial Outflows-Vulture Funds, Squa...
Продукция
Ad

Similar to Alexander Pavlenko, Senior Java Developer, "Cassandra into" (20)

PDF
All Things Open 2016 -- Database Programming for Newbies
PDF
Trivadis TechEvent 2016 Big Data Cassandra, wieso brauche ich das? by Jan Ott
PDF
Ss dotnetcodexmpl
PDF
Getting Started with PL/Proxy
PDF
Big Data Day LA 2015 - Sparking up your Cassandra Cluster- Analytics made Awe...
PDF
Spark And Cassandra: 2 Fast, 2 Furious
PDF
Spark and Cassandra 2 Fast 2 Furious
PDF
Introduction to Cassandra
PPTX
Always On, Multi-Site Design Considerations
PDF
Spark Cassandra Connector Dataframes
PDF
Hadoop Integration in Cassandra
PDF
Escape from Hadoop: Ultra Fast Data Analysis with Spark & Cassandra
PDF
Create Static Listener SI _ RAC Duplication.pdf
PPTX
PYTHON_DATABASE_CONNECTIVITY_for_class_12.pptx
PPTX
DataStax: An Introduction to DataStax Enterprise Search
PPTX
Cassandra Summit 2015: Intro to DSE Search
KEY
Designing Opeation Oriented Web Applications / YAPC::Asia Tokyo 2011
PDF
Redis for your boss
PPTX
Using Spark to Load Oracle Data into Cassandra
PPTX
Using Spark to Load Oracle Data into Cassandra (Jim Hatcher, IHS Markit) | C*...
All Things Open 2016 -- Database Programming for Newbies
Trivadis TechEvent 2016 Big Data Cassandra, wieso brauche ich das? by Jan Ott
Ss dotnetcodexmpl
Getting Started with PL/Proxy
Big Data Day LA 2015 - Sparking up your Cassandra Cluster- Analytics made Awe...
Spark And Cassandra: 2 Fast, 2 Furious
Spark and Cassandra 2 Fast 2 Furious
Introduction to Cassandra
Always On, Multi-Site Design Considerations
Spark Cassandra Connector Dataframes
Hadoop Integration in Cassandra
Escape from Hadoop: Ultra Fast Data Analysis with Spark & Cassandra
Create Static Listener SI _ RAC Duplication.pdf
PYTHON_DATABASE_CONNECTIVITY_for_class_12.pptx
DataStax: An Introduction to DataStax Enterprise Search
Cassandra Summit 2015: Intro to DSE Search
Designing Opeation Oriented Web Applications / YAPC::Asia Tokyo 2011
Redis for your boss
Using Spark to Load Oracle Data into Cassandra
Using Spark to Load Oracle Data into Cassandra (Jim Hatcher, IHS Markit) | C*...

More from Alina Vilk (9)

PPTX
"Intro to-xamarin.forms", Кирилл Стативкин, Microsoft Student Partner
PPTX
Tatyana Matvienko,Senior Java Developer, Big data storages
PPTX
Big data overwiew, Татьяна Матвиенко/Александр Павленко, Senior Java/BigData ...
PPTX
Alexander Pavlenko, Java Software Engineer, DataArt.
PDF
Студия ГрафПром
PPTX
Andrey Chebotarev, Head of UX Design в AltexSoft
PDF
“ComputerVision(Ruby && OpenCV)”, Людмила Дежкина ( Senior Ruby, DataArt)
PDF
«Как научить Ruby / как научиться Ruby», Виктор Шепелев (Team Lead at BrandSp...
PPTX
Aleksandr Mishanin, UX/UI дизайнер, Fortifier, " О трудностях в работе дизайн...
"Intro to-xamarin.forms", Кирилл Стативкин, Microsoft Student Partner
Tatyana Matvienko,Senior Java Developer, Big data storages
Big data overwiew, Татьяна Матвиенко/Александр Павленко, Senior Java/BigData ...
Alexander Pavlenko, Java Software Engineer, DataArt.
Студия ГрафПром
Andrey Chebotarev, Head of UX Design в AltexSoft
“ComputerVision(Ruby && OpenCV)”, Людмила Дежкина ( Senior Ruby, DataArt)
«Как научить Ruby / как научиться Ruby», Виктор Шепелев (Team Lead at BrandSp...
Aleksandr Mishanin, UX/UI дизайнер, Fortifier, " О трудностях в работе дизайн...

Recently uploaded (20)

PDF
Pre independence Education in Inndia.pdf
PDF
O5-L3 Freight Transport Ops (International) V1.pdf
PPTX
Pharma ospi slides which help in ospi learning
PDF
BÀI TẬP BỔ TRỢ 4 KỸ NĂNG TIẾNG ANH 9 GLOBAL SUCCESS - CẢ NĂM - BÁM SÁT FORM Đ...
PDF
Microbial disease of the cardiovascular and lymphatic systems
PDF
FourierSeries-QuestionsWithAnswers(Part-A).pdf
PPTX
Pharmacology of Heart Failure /Pharmacotherapy of CHF
PDF
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
PDF
Anesthesia in Laparoscopic Surgery in India
PDF
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
PDF
STATICS OF THE RIGID BODIES Hibbelers.pdf
PPTX
Institutional Correction lecture only . . .
PDF
Computing-Curriculum for Schools in Ghana
PDF
Insiders guide to clinical Medicine.pdf
PDF
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
PPTX
BOWEL ELIMINATION FACTORS AFFECTING AND TYPES
PPTX
1st Inaugural Professorial Lecture held on 19th February 2020 (Governance and...
PDF
VCE English Exam - Section C Student Revision Booklet
PPTX
Microbial diseases, their pathogenesis and prophylaxis
PPTX
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
Pre independence Education in Inndia.pdf
O5-L3 Freight Transport Ops (International) V1.pdf
Pharma ospi slides which help in ospi learning
BÀI TẬP BỔ TRỢ 4 KỸ NĂNG TIẾNG ANH 9 GLOBAL SUCCESS - CẢ NĂM - BÁM SÁT FORM Đ...
Microbial disease of the cardiovascular and lymphatic systems
FourierSeries-QuestionsWithAnswers(Part-A).pdf
Pharmacology of Heart Failure /Pharmacotherapy of CHF
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
Anesthesia in Laparoscopic Surgery in India
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
STATICS OF THE RIGID BODIES Hibbelers.pdf
Institutional Correction lecture only . . .
Computing-Curriculum for Schools in Ghana
Insiders guide to clinical Medicine.pdf
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
BOWEL ELIMINATION FACTORS AFFECTING AND TYPES
1st Inaugural Professorial Lecture held on 19th February 2020 (Governance and...
VCE English Exam - Section C Student Revision Booklet
Microbial diseases, their pathogenesis and prophylaxis
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx

Alexander Pavlenko, Senior Java Developer, "Cassandra into"

  • 2. Cassandra setup ○ ~$ docker pull cassandra ○ ~$ docker run --name cassandra1 -d cassandra ○ ~$ docker run --name cassandra2 -d -e CASSANDRA_SEEDS="$(docker inspect --format='{{ .NetworkSettings.IPAddress }}' cassandra1)" cassandra ○ ~$ docker run -it --name cqlsh --link cassandra1:cassandra --rm cassandra sh -c 'exec cqlsh "$CASSANDRA_PORT_9042_TCP_ADDR"' https://www.docker.com
  • 4. Cassandra Query Language (CQL) is a query language for the Cassandra database. The Cassandra Query Language (CQL) is the primary language for communicating with the Cassandra database. The most basic way to interact with Cassandra is using the CQL shell, cqlsh. CQL
  • 5. CREATE KEYSPACE DEMO WITH REPLICATION = { 'CLASS' : 'SIMPLESTRATEGY', 'REPLICATION_FACTOR' : 2 }; USE DEMO; Create keyspace
  • 6. CREATE TABLE WHEATHER_FORECAST (SITE TEXT, SPECIES TEXT, MEASUREMENTDATE TIMESTAMP, LATITUDE DOUBLE, LONGITUDE DOUBLE, VALUE DOUBLE, PRIMARY KEY((SITE, SPECIES), MEASUREMENTDATE)) ; DESC WHEATHER_FORECAST; Create Column Family
  • 8. INSERT INTO WHEATHER_FORECAST(SITE, SPECIES, MEASUREMENTDATE, LATITUDE , LONGITUDE, VALUE ) VALUES ('MY7', 'PM10', 1451628000000, 51.234, - 0.846, 44.4); INSERT INTO WHEATHER_FORECAST (SITE, SPECIES, MEASUREMENTDATE, LATITUDE , LONGITUDE, VALUE ) VALUES ('MY7', 'PM10', 1451631600000, 51.234, - 0.846, 41.7); Insert Data Rows
  • 9. INSERT INTO WHEATHER_FORECAST (SITE, SPECIES, MEASUREMENTDATE, LATITUDE , LONGITUDE, VALUE ) VALUES ('MY7', 'PM10', 1451638800000, 51.234, - 0.846, 38.5); INSERT INTO WHEATHER_FORECAST (SITE, SPECIES, MEASUREMENTDATE, LATITUDE , LONGITUDE, VALUE ) VALUES ('MY7', 'PM25', 1451639800000, 51.234, - 0.846, 18.8); Insert Data Rows
  • 10. SELECT * FROM WHEATHER_FORECAST; SELECT * FROM WHEATHER_FORECAST WHERE SITE = 'MY7'; //ERROR SELECT * FROM WHEATHER_FORECAST WHERE SPECIES = 'PM10'; //ERROR SELECT * FROM WHEATHER_FORECAST WHERE SITE = 'MY7' AND SPECIES = 'PM10'; SELECT * FROM WHEATHER_FORECAST WHERE SITE = 'MY7' AND SPECIES = 'PM10' AND MEASUREMENTDATE = 1451628000000; Querying Data
  • 12. ○ The Partition Key is responsible for data distribution across your nodes. ○ The Clustering Key is responsible for data sorting within the partition. ○ The Primary Key is equivalent to the Partition Key in a single-field-key table. ○ The Composite/Compound Key is just a multiple-columns key Keys & Clustering CREATE TABLE WHEATHER_FORECAST ( SITE TEXT,SPECIES TEXT, MEASUREMENTDATE TIMESTAMP, LATITUDE DOUBLE, LONGITUDE DOUBLE, VALUE DOUBLE, PRIMARY KEY ((SITE, SPECIES), MEASUREMENTDATE)) Composite Partition Key Clustering Key
  • 13. SELECT * FROM WHEATHER_FORECAST WHERE SITE = 'MY7' AND SPECIES = 'PM10' AND LATITUDE = 51.234; //ERROR SELECT * FROM WHEATHER_FORECAST WHERE SITE = 'MY7' AND SPECIES = 'PM10' AND LATITUDE = 51.234 ALLOW FILTERING; SELECT * FROM WHEATHER_FORECAST WHERE SITE = 'MY7' AND SPECIES > 'PM10'; //ERROR SELECT * FROM WHEATHER_FORECAST WHERE SITE = 'MY7' AND SPECIES IN ('PM10'); SELECT * FROM WHEATHER_FORECAST WHERE SITE = 'MY7' AND SPECIES IN ('PM10') AND MEASUREMENTDATE >= 1451628000000; Querying Data
  • 14. SELECT MIN(SITE), MIN(SPECIES) FROM WHEATHER_FORECAST; //WARNING SELECT MIN(SITE), MIN(SPECIES), MIN(MEASUREMENTDATE) FROM WHEATHER_FORECAST; INSERT INTO WHEATHER_FORECAST (SITE, SPECIES, MEASUREMENTDATE, LATITUDE , LONGITUDE , VALUE) VALUES ('MY7', 'PM25', 1451639800000, 51.234, -0.846, 28.8); //UPSERT Querying Data
  • 16. INSERT INTO WHEATHER_FORECAST (SITE, SPECIES, MEASUREMENTDATE, LATITUDE , LONGITUDE, VALUE ) VALUES ('MY7', 'PM10', 1451616000000, 51.234, -0.846, 88.4) USING TTL 30; Insert with TTL