SlideShare ist ein Scribd-Unternehmen logo
1 von 48
Downloaden Sie, um offline zu lesen
BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENEVA
HAMBURG COPENHAGEN LAUSANNE MUNICH STUTTGART VIENNA ZURICH
Apache Cassandra
Big Data: Why do I need Cassandra
Jan Ott
Trivadis
Agenda
1. Introduction - What is Apache Cassandra?
2. Cassandra Data Model
3. First Steps in the Cassandra World
4. Cassandra Query Language - CQL
5. Summary
What is Apache Cassandra?
The Cassandra Elevator Pitch
„Apache Cassandra is an open source, distributed, decentralized,
elastically scalable, highly available, fault-tolerant, tuneably
consistent, row-oriented database that bases its distribution
design on Amazon’s Dynamo and its data model on Google’s
Bigtable. Created at Facebook, it is now used at some of the
most popular sites on the Web.“
Cassandra: The Definitive Guide by Jeff Carpenter and Eben Hewitt
History of Cassandra
Bigtable Dynamo
Highlights
• Apache Cassandra™ is free
• Distributed & Decentralized
• Elastic Scalable
• High Available
• Fault Tolerance
• Tunable data consistency
• CQL language (like SQL)
Elastic Scalable
• Capable of comfortably scaling to petabytes
• New nodes = Linear performance increases
• Add and remove nodes online
100'000
txns/sec
200'000	
txns/sec
400'000	
txns/sec
Write Requests
coordinator sends a write request to all replicas that own the row being written
Read Requests
There are two types of read requests that a coordinator can send to a replica:
• A direct read request
• A background read repair request
The number of replicas contacted by a direct read request is determined by the
consistency level specified by the client.
Tunable Data Consistency
What do I need?
• Writes
• Reads
• Consistency 1
2
3
4
5
6
› Any
› One/Two/Three
› Local_One
› Quorum
› Local_Quorum
› Each_Quorum
› All
Writes
› One/Two/Three
› Local_One
› Quorum
› Local_Quorum
› Each_Quorum
› All
Reads
Who is using Cassandra?
Largest infrastructure running over 75,000 Cassandra nodes, storing more than 10
petabytes of data with one cluster was over 1,000 nodes
Cassandra Data Model
Cassandra Data Model
• Forget Normalization – DENORMALIZE
• Design by Query
• No Joins – Denormalize
- Model
- Materialized Views
- Do it on the client side – not recommended
• No Referential Integrity
- Possible to define but not enforced
How Cassandra stores data
• Model brought from Google Bigtable
• Row Key and a lot of columns
• Column names sorted (UTF8, Int, Timestamp, etc.)
Column	Name … Column Name
Column	Value Column	Value
Timestamp Timestamp
TTL TTL
Row	Key
1 2	Billion
Billion	of	Rows
Static Column Family – "Skinny Row"
15
rowkey
CREATE TABLE skinny (rowkey text,
c1 text PRIMARY KEY,
c2 text,
c3 text,
PRIMARY KEY (rowkey));
Grows	up	to	Billion	of	Rows
rowkey-1 c1 c2 c3
value-c1 value-c2 value-c3
rowkey-2 c1 c3
value-c1 value-c3
rowkey-3 c1 c2 c3
value-c1 value-c2 value-c3
c1 c2 c3
Partition	Key
Dynamic Column Family – "Wide Row"
16
rowkey
Billion	of	Rows
rowkey-1 ckey-1:c1 ckey-1:c2
value-c1 value-c2
rowkey-2
rowkey-3
CREATE TABLE wide (rowkey text,
ckey text,
c1 text,
c2 text,
PRIMARY KEY (rowkey, ckey) WITH CLUSTERING ORDER BY (ckey ASC);
ckey-2:c1 ckey-2:c2
value-c1 value-c2
ckey-3:c1 ckey-3:c2
value-c1 value-c2
ckey-1:c1 ckey-1:c2
value-c1 value-c2
ckey-2:c1 ckey-2:c2
value-c1 value-c2
ckey-1:c1 ckey-1:c2
value-c1 value-c2
ckey-2:c1 ckey-2:c2
value-c1 value-c2
ckey-3:c1 ckey-3:c2
value-c1 value-c2
1 2	Billion
Partition	Key Clustering Key
First Steps
Getting Cassandra
Apache Cassandra Distribution
• http://cassandra.apache.org/
DataStax Distribution
• DataStax Enterprice 5.0 - Sandbox - VM
https://academy.datastax.com/downloads/welcome
VM with Cassandra (1 node), DataStax DevCenter, DataStax OpsCenter
• Oracle Virtual Box
http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html
• Login – datastax/datastax
DataStax OpsCenter
• At-a-Glance Cluster Management
• Point-and-Click Provisioning and
Administration
• Secured Administration
• Always On Management and Monitoring
• Visual Monitoring and Tuning
• Best Practice Advice
• Proactive Assistance
• Smart Data Protection
DataStax OpsCenter
Point-and-Click Provisioning and Administration
DataStax OpsCenter
Visual Monitoring and Tuning
CQL – Cassandra Query Language
Introducing CQL
• CQL is a reintroduction of schema so that you don't have to read code to
understand the data model.
• CQL creates a common language so that details of the data model can be easily
communicated.
• CQL is a best-practices Cassandra interface and hides the messy details.
CQL Language
• SQL like syntax
• Data Definition Language – DDL
CREATE / ALTER / DROP / …
• Data Manipulation Language – DML
INSERT, UPDATE, DELETE
• Query data with SELECT
• Build in Functions – COUNT, MIN, MAX, sum, avg, LIMIT, ...
• UDF – User Defined Function / UDA - User Defined Aggregate
CQL Shell for Apache Cassandra
cqlsh is the command line utility for execution CQL commands (think of SQL*Plus for
Cassandra)
CQL3 is default since Cassandra 1.2
$ cqlsh
Connected to DataStaxCluster at localhost:9160.
[cqlsh 4.1.0 | Cassandra 2.0.5.24 | CQL spec 3.1.1 | Thrift
protocol 19.39.0]
Use HELP for help.
cqlsh>
CQL Shell for Apache Cassandra
$ cat create-table.cql | cqlsh
$ cqlsh –f create-table.cql
cqlsh> SOURCE '~/cassandra_training/cql/create-table.cql'
Execute a script with the –f option
Alternatively pie scripts into cqlsh
Source files inside cqlsh
Creating a Keyspace
Create a keyspace with SimpleStrategy and replication factor option
Make the new keyspace the active one
cqlsh> CREATE KEYSPACE my_space
WITH REPLICATION = {'class':'SimpleStrategy',
'replication_factor':1};
cqlsh> USE my_space;
cqlsh:my_space>
Describing a Keyspace
Use the DESCRIBE KEYSPACE to show the metadata of the keyspace
cqlsh> DESCRIBE KEYSPACE my_space;
CREATE KEYSPACE training WITH replication = {
'class': 'SimpleStrategy',
'replication_factor': '1'
};
cqlsh>
Create a Static table Dept
Use CREATE TABLE to create a static column family (table) named ”dept"
cqlsh:my_space> CREATE TABLE dept(
deptno int,
dname varchar,
loc varchar,
PRIMARY KEY (deptno));
dname loc
10 ACCOUNTING NEW	YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
Create a Dynamic table (wide-row) Employee
A Dynamic Table is also created with the CREATE TABLE statement but using a
composite partition key cqlsh:training> CREATE TABLE emp(
empno int,
ename varchar,
…
deptno int,
primary key (dname,ename));
KING:empno ... CLARK:empno ...
10 7839 ... 7782 ...
JONES:empno ... SCOTT:empno ... FORD:empno ...
20 7566 ... 7788 ... 7902 ...
Truncate / Drop Table
Use TRUNCATE to truncate the data
Use DROP TABLE to drop the whole table, operation is irreversible and removes all
information within the specified table!
• Will raise an error, if it does not exist, use IF EXISTS to prevent (new in 2.0):
cqlsh:training> TRUNCATE employee;
cqlsh:training> DROP TABLE employee;
cqlsh:training> DROP TABLE IF EXISTS employee;
Insert data into Dept
• PRIMARY KEY is always required
• Insert with same primary key => update
cqlsh:training> INSERT INTO dept (deptno, dname, loc)
VALUES (10, 'ACCOUNTING', 'NEW YORK');
Retrieving data from Dept table
SELECT statement returns rows and columns, just as in SQL
It can optionally also have a WHERE clause, an ORDER BY clause and a LIMIT clause
cqlsh:training> SELECT deptno, dname FROM dept LIMIT 2;
deptno | dname
--------+------------
10 | ACCOUNTING
30 | SALES
(2 rows)
Retrieving data from Dept table (II)
Restriction on column other than PRIMARY KEY won't work
Can be solved with an Index (but be careful, better use de-normalization)
cqlsh:my_space> SELECT * FROM dept WHERE loc = 'NEW YORK';
InvalidRequest: Error from server: code=2200 [Invalid query]
message="Cannot execute this query as it might involve data filtering
and thus may have unpredictable performance. If you want to execute this
query despite the performance unpredictability, use ALLOW FILTERING"
cqlsh:my_space> CREATE INDEX ON dept(loc);
cqlsh:my_space> SELECT * FROM dept WHERE loc = 'NEW YORK';
deptno | dname | loc
--------+------------+----------
10 | ACCOUNTING | NEW YORK
Update data in Dept
• WHERE over Primary Key
• If Primary Key does not exist => INSERT
cqlsh:my_space> UPDATE dept SET loc = 'LOS ANGELES'
WHERE deptno = 10;
Cassandra Data Types
Category CQL	Data	Type Description
String ascii US-ASCII	character	string
text UTF-8	encoded	string, used	most	of	the	time	for	
storing	String	data.
varchar UTF-8	Strings.
inet Used for	storing	IP	addresses
Numeric int 32-bit	signed	integer
float 32-bit	IEEE-754	floating	point
double 64-bit	IEEE-754	floating	point
varint Arbitrary	precision integers
bigint 64-bit	number,	equivalent	to	long.
decimal Variable-precision	decimal
counter Distributed	counter	value	(64-bit	long)
Cassandra Data Types (II)
Category CQL	Data	Type Description
UUIDs uuid A	UUID	in	standard	UUID	format
timeuuid Type	1	UUID	only,	for	storing	unique	time-base IDs
Collections list Ordered collection	of	one	or	more	elements
map Collection	of	arbitrary key-value	pairs
set Unordered	collection	of	one	or	more	unique	
elements
Miscellaneous boolean Boolean	(true/false)
blob Used	for storing	binary	data	written	in	hexadecimal
timestamp Date/Time
Batch operation
• COMMIT ?
• BEGIN BATCH … APPLY BATCH – execute multiple mutations – single operation
BEGIN BATCH
INSERT INTO dept (deptno, dname, loc)
VALUES (50, 'IT', 'ZURICH');
UPDATE emp SET sal = 9000
WHERE empno = 9000;
APPLY BATCH;
Alter Table
• ALTER TABLE
change meta data
• CQL is quick
flexible schema, not
changes to existing data
cqlsh:my_space> ALTER TABLE dept
ADD operational BOOLEAN;
cqlsh:training> DESCRIBE TABLE employee;
CREATE TABLE my_space.dept (
deptno int PRIMARY KEY,
dname text,
loc text,
operational boolean
) WITH...;
cqlsh:my_space> SELECT * FROM dept LIMIT 2;
deptno | dname | loc | operational
--------+------------+-------------+------------
-
50 | IT | ZURICH | null
10 | ACCOUNTING | LOS ANGELES | null
(2 rows)
Collections
CQL3 also supports collections for storing complex data structures
• Set {value,…}, List [value,…], Map {key:value,…}
cqlsh:training> CREATE TABLE collection_sample(
id int PRIMARY KEY,
string_set set<text>,
string_list list<text>,
string_map map<text, text>);
cqlsh:training> INSERT INTO coll
(id, string_set, string_list, string_map)
VALUES (1,
{'text1','text2','text1'},
['text1','text2','text1'],
{'key1':'value1'});
Collections (II)
cqlsh:training> SELECT * FROM collection_sample;
id | string_list | string_map | string_set
----+-----------------------------+--------------------+--------------------
1 | ['text1', 'text2', 'text1'] | {'key1': 'value1'} | {'text1', 'text2'}
(1 rows)
UDF – User Defined Function
Sample Code
CREATE FUNCTION count_if_true(input boolean)
RETURNS NULL ON NULL INPUT
RETURNS int
LANGUAGE java AS 'if (input) return 1; else return total;';
SELECT door_number, count_if_true(is_open)
FROM my_doors;
„CREATE OR REPLACE” or “IF NOT EXSITS” Syntax possible
UDA – User Defined Aggregate
Sample Code
CREATE FUNCTION state_count_if_true(total int, input boolean)
RETURNS NULL ON NULL INPUT
RETURNS int
LANGUAGE java AS 'if (input) return total+1; else return total;';
CREATE AGGREGATE total_open (boolean)
SFUNC state_count_if_true
STYPE int
INITCOND 0;
SELECT door_number, total_open(is_open)
FROM my_doors;
„CREATE OR REPLACE” or “IF NOT EXSITS” Syntax possible
Materialized Views
Relieve the pain of manual denormalization
cqlsh:training> CREATE MATERIALIZED VIEW employee_by_role (
AS SELECT role, name, age
FROM employee
WHERE role IS NOT NULL
PRIMARY KEY (role, name);
cqlsh:training> CREATE TABLE employee_by_role (
role text, name text, age int,
PRIMARY KEY (role, name));
Cassandra	3.0
Time-to-Live (TTL) on Insert
• Insert a row with a TTL in seconds (30s)
• after that the row is deleted
cqlsh:my_space> UPDATE emp USING ttl 15 SET sal = 8000
WHERE empno = 9000;
cqlsh:my_space> SELECT ename, sal, ttl(sal) FROM emp WHERE empno = 9000;
ename | sal | ttl(sal)
-------+------+----------
null | 8000 | 15
(1 rows)
Summary
• Just great J
• No single point of failure – Ring Model
• Distribution over nodes / rack’s / data center’s
• Tuneable Consistency
• CQL
• Spark / Cassandra Integration
• CQL limited
• Forget 20 years of experience in relational modelling L => DENORMALIZE J
Jan Ott
Senior Consultant
jan.ott@trivadis.com
References
• Books
Cassandra: The Definite Guide, 2nd Edition
• Apache – Cassandra CQL Documentation
https://cassandra.apache.org/doc/latest/cql/index.html
• DataStax – CQL Documentation
http://docs.datastax.com/en/cql/3.3/cql/cql_using/useAboutCQL.html
• Netflix and Cassandra
http://techblog.netflix.com/search/label/Cassandra

Weitere ähnliche Inhalte

Was ist angesagt?

The hadoop 2.0 ecosystem and yarn
The hadoop 2.0 ecosystem and yarnThe hadoop 2.0 ecosystem and yarn
The hadoop 2.0 ecosystem and yarnMichael Joseph
 
Hadoop and Spark for the SAS Developer
Hadoop and Spark for the SAS DeveloperHadoop and Spark for the SAS Developer
Hadoop and Spark for the SAS DeveloperDataWorks Summit
 
Hadoop Integration in Cassandra
Hadoop Integration in CassandraHadoop Integration in Cassandra
Hadoop Integration in CassandraJairam Chandar
 
Hive Evolution: ApacheCon NA 2010
Hive Evolution:  ApacheCon NA 2010Hive Evolution:  ApacheCon NA 2010
Hive Evolution: ApacheCon NA 2010John Sichi
 
Free Code Friday: Drill 101 - Basics of Apache Drill
Free Code Friday: Drill 101 - Basics of Apache DrillFree Code Friday: Drill 101 - Basics of Apache Drill
Free Code Friday: Drill 101 - Basics of Apache DrillMapR Technologies
 
Pivoting Data with SparkSQL by Andrew Ray
Pivoting Data with SparkSQL by Andrew RayPivoting Data with SparkSQL by Andrew Ray
Pivoting Data with SparkSQL by Andrew RaySpark Summit
 
Munich March 2015 - Cassandra + Spark Overview
Munich March 2015 -  Cassandra + Spark OverviewMunich March 2015 -  Cassandra + Spark Overview
Munich March 2015 - Cassandra + Spark OverviewChristopher Batey
 
Introduction to the Hadoop Ecosystem (FrOSCon Edition)
Introduction to the Hadoop Ecosystem (FrOSCon Edition)Introduction to the Hadoop Ecosystem (FrOSCon Edition)
Introduction to the Hadoop Ecosystem (FrOSCon Edition)Uwe Printz
 
Drilling into Data with Apache Drill
Drilling into Data with Apache DrillDrilling into Data with Apache Drill
Drilling into Data with Apache DrillMapR Technologies
 
Introduction to Apache Hive | Big Data Hadoop Spark Tutorial | CloudxLab
Introduction to Apache Hive | Big Data Hadoop Spark Tutorial | CloudxLabIntroduction to Apache Hive | Big Data Hadoop Spark Tutorial | CloudxLab
Introduction to Apache Hive | Big Data Hadoop Spark Tutorial | CloudxLabCloudxLab
 
Getting started with Hadoop, Hive, and Elastic MapReduce
Getting started with Hadoop, Hive, and Elastic MapReduceGetting started with Hadoop, Hive, and Elastic MapReduce
Getting started with Hadoop, Hive, and Elastic MapReduceobdit
 
The Evolution of the Hadoop Ecosystem
The Evolution of the Hadoop EcosystemThe Evolution of the Hadoop Ecosystem
The Evolution of the Hadoop EcosystemCloudera, Inc.
 
Planning with Polyalgebra: Bringing Together Relational, Complex and Machine ...
Planning with Polyalgebra: Bringing Together Relational, Complex and Machine ...Planning with Polyalgebra: Bringing Together Relational, Complex and Machine ...
Planning with Polyalgebra: Bringing Together Relational, Complex and Machine ...Julian Hyde
 
SQL-on-Hadoop with Apache Drill
SQL-on-Hadoop with Apache DrillSQL-on-Hadoop with Apache Drill
SQL-on-Hadoop with Apache DrillMapR Technologies
 
SparkSQL and Dataframe
SparkSQL and DataframeSparkSQL and Dataframe
SparkSQL and DataframeNamgee Lee
 
Hive : WareHousing Over hadoop
Hive :  WareHousing Over hadoopHive :  WareHousing Over hadoop
Hive : WareHousing Over hadoopChirag Ahuja
 
Data profiling with Apache Calcite
Data profiling with Apache CalciteData profiling with Apache Calcite
Data profiling with Apache CalciteJulian Hyde
 
Mapreduce in Search
Mapreduce in SearchMapreduce in Search
Mapreduce in SearchAmund Tveit
 

Was ist angesagt? (20)

Indexed Hive
Indexed HiveIndexed Hive
Indexed Hive
 
The hadoop 2.0 ecosystem and yarn
The hadoop 2.0 ecosystem and yarnThe hadoop 2.0 ecosystem and yarn
The hadoop 2.0 ecosystem and yarn
 
Hadoop and Spark for the SAS Developer
Hadoop and Spark for the SAS DeveloperHadoop and Spark for the SAS Developer
Hadoop and Spark for the SAS Developer
 
Hadoop Integration in Cassandra
Hadoop Integration in CassandraHadoop Integration in Cassandra
Hadoop Integration in Cassandra
 
Hive Evolution: ApacheCon NA 2010
Hive Evolution:  ApacheCon NA 2010Hive Evolution:  ApacheCon NA 2010
Hive Evolution: ApacheCon NA 2010
 
Free Code Friday: Drill 101 - Basics of Apache Drill
Free Code Friday: Drill 101 - Basics of Apache DrillFree Code Friday: Drill 101 - Basics of Apache Drill
Free Code Friday: Drill 101 - Basics of Apache Drill
 
Pivoting Data with SparkSQL by Andrew Ray
Pivoting Data with SparkSQL by Andrew RayPivoting Data with SparkSQL by Andrew Ray
Pivoting Data with SparkSQL by Andrew Ray
 
Munich March 2015 - Cassandra + Spark Overview
Munich March 2015 -  Cassandra + Spark OverviewMunich March 2015 -  Cassandra + Spark Overview
Munich March 2015 - Cassandra + Spark Overview
 
Introduction to the Hadoop Ecosystem (FrOSCon Edition)
Introduction to the Hadoop Ecosystem (FrOSCon Edition)Introduction to the Hadoop Ecosystem (FrOSCon Edition)
Introduction to the Hadoop Ecosystem (FrOSCon Edition)
 
Drilling into Data with Apache Drill
Drilling into Data with Apache DrillDrilling into Data with Apache Drill
Drilling into Data with Apache Drill
 
Introduction to Apache Hive | Big Data Hadoop Spark Tutorial | CloudxLab
Introduction to Apache Hive | Big Data Hadoop Spark Tutorial | CloudxLabIntroduction to Apache Hive | Big Data Hadoop Spark Tutorial | CloudxLab
Introduction to Apache Hive | Big Data Hadoop Spark Tutorial | CloudxLab
 
Getting started with Hadoop, Hive, and Elastic MapReduce
Getting started with Hadoop, Hive, and Elastic MapReduceGetting started with Hadoop, Hive, and Elastic MapReduce
Getting started with Hadoop, Hive, and Elastic MapReduce
 
The Evolution of the Hadoop Ecosystem
The Evolution of the Hadoop EcosystemThe Evolution of the Hadoop Ecosystem
The Evolution of the Hadoop Ecosystem
 
Planning with Polyalgebra: Bringing Together Relational, Complex and Machine ...
Planning with Polyalgebra: Bringing Together Relational, Complex and Machine ...Planning with Polyalgebra: Bringing Together Relational, Complex and Machine ...
Planning with Polyalgebra: Bringing Together Relational, Complex and Machine ...
 
SQL-on-Hadoop with Apache Drill
SQL-on-Hadoop with Apache DrillSQL-on-Hadoop with Apache Drill
SQL-on-Hadoop with Apache Drill
 
SparkSQL and Dataframe
SparkSQL and DataframeSparkSQL and Dataframe
SparkSQL and Dataframe
 
Hive : WareHousing Over hadoop
Hive :  WareHousing Over hadoopHive :  WareHousing Over hadoop
Hive : WareHousing Over hadoop
 
Hive(ppt)
Hive(ppt)Hive(ppt)
Hive(ppt)
 
Data profiling with Apache Calcite
Data profiling with Apache CalciteData profiling with Apache Calcite
Data profiling with Apache Calcite
 
Mapreduce in Search
Mapreduce in SearchMapreduce in Search
Mapreduce in Search
 

Ähnlich wie Trivadis TechEvent 2016 Big Data Cassandra, wieso brauche ich das? by Jan Ott

Cassandra - A decentralized storage system
Cassandra - A decentralized storage systemCassandra - A decentralized storage system
Cassandra - A decentralized storage systemArunit Gupta
 
Appache Cassandra
Appache Cassandra  Appache Cassandra
Appache Cassandra nehabsairam
 
Intro to cassandra
Intro to cassandraIntro to cassandra
Intro to cassandraAaron Ploetz
 
Introduction to Apache Cassandra
Introduction to Apache CassandraIntroduction to Apache Cassandra
Introduction to Apache CassandraRobert Stupp
 
Cassandra Java APIs Old and New – A Comparison
Cassandra Java APIs Old and New – A ComparisonCassandra Java APIs Old and New – A Comparison
Cassandra Java APIs Old and New – A Comparisonshsedghi
 
Apache Cassandra at the Geek2Geek Berlin
Apache Cassandra at the Geek2Geek BerlinApache Cassandra at the Geek2Geek Berlin
Apache Cassandra at the Geek2Geek BerlinChristian Johannsen
 
Cassandra Summit 2014: Interactive OLAP Queries using Apache Cassandra and Spark
Cassandra Summit 2014: Interactive OLAP Queries using Apache Cassandra and SparkCassandra Summit 2014: Interactive OLAP Queries using Apache Cassandra and Spark
Cassandra Summit 2014: Interactive OLAP Queries using Apache Cassandra and SparkDataStax Academy
 
Introduction to NoSQL CassandraDB
Introduction to NoSQL CassandraDBIntroduction to NoSQL CassandraDB
Introduction to NoSQL CassandraDBJanos Geronimo
 
Deep Dive into Cassandra
Deep Dive into CassandraDeep Dive into Cassandra
Deep Dive into CassandraBrent Theisen
 
Big data analytics with Spark & Cassandra
Big data analytics with Spark & Cassandra Big data analytics with Spark & Cassandra
Big data analytics with Spark & Cassandra Matthias Niehoff
 
From Postgres to Cassandra (Rimas Silkaitis, Heroku) | C* Summit 2016
From Postgres to Cassandra (Rimas Silkaitis, Heroku) | C* Summit 2016From Postgres to Cassandra (Rimas Silkaitis, Heroku) | C* Summit 2016
From Postgres to Cassandra (Rimas Silkaitis, Heroku) | C* Summit 2016DataStax
 
N07_RoundII_20220405.pptx
N07_RoundII_20220405.pptxN07_RoundII_20220405.pptx
N07_RoundII_20220405.pptxNguyễn Thái
 
Cassandra - A Distributed Database System
Cassandra - A Distributed Database System Cassandra - A Distributed Database System
Cassandra - A Distributed Database System Md. Shohel Rana
 
Breakthrough OLAP performance with Cassandra and Spark
Breakthrough OLAP performance with Cassandra and SparkBreakthrough OLAP performance with Cassandra and Spark
Breakthrough OLAP performance with Cassandra and SparkEvan Chan
 

Ähnlich wie Trivadis TechEvent 2016 Big Data Cassandra, wieso brauche ich das? by Jan Ott (20)

Cassandra - A decentralized storage system
Cassandra - A decentralized storage systemCassandra - A decentralized storage system
Cassandra - A decentralized storage system
 
Appache Cassandra
Appache Cassandra  Appache Cassandra
Appache Cassandra
 
Intro to cassandra
Intro to cassandraIntro to cassandra
Intro to cassandra
 
Introduction to Apache Cassandra
Introduction to Apache CassandraIntroduction to Apache Cassandra
Introduction to Apache Cassandra
 
Cassandra Database
Cassandra DatabaseCassandra Database
Cassandra Database
 
Cassandra Java APIs Old and New – A Comparison
Cassandra Java APIs Old and New – A ComparisonCassandra Java APIs Old and New – A Comparison
Cassandra Java APIs Old and New – A Comparison
 
Apache Cassandra at the Geek2Geek Berlin
Apache Cassandra at the Geek2Geek BerlinApache Cassandra at the Geek2Geek Berlin
Apache Cassandra at the Geek2Geek Berlin
 
Cassandra Summit 2014: Interactive OLAP Queries using Apache Cassandra and Spark
Cassandra Summit 2014: Interactive OLAP Queries using Apache Cassandra and SparkCassandra Summit 2014: Interactive OLAP Queries using Apache Cassandra and Spark
Cassandra Summit 2014: Interactive OLAP Queries using Apache Cassandra and Spark
 
Introduction to NoSQL CassandraDB
Introduction to NoSQL CassandraDBIntroduction to NoSQL CassandraDB
Introduction to NoSQL CassandraDB
 
Deep Dive into Cassandra
Deep Dive into CassandraDeep Dive into Cassandra
Deep Dive into Cassandra
 
Big data analytics with Spark & Cassandra
Big data analytics with Spark & Cassandra Big data analytics with Spark & Cassandra
Big data analytics with Spark & Cassandra
 
Cassndra (4).pptx
Cassndra (4).pptxCassndra (4).pptx
Cassndra (4).pptx
 
From Postgres to Cassandra (Rimas Silkaitis, Heroku) | C* Summit 2016
From Postgres to Cassandra (Rimas Silkaitis, Heroku) | C* Summit 2016From Postgres to Cassandra (Rimas Silkaitis, Heroku) | C* Summit 2016
From Postgres to Cassandra (Rimas Silkaitis, Heroku) | C* Summit 2016
 
N07_RoundII_20220405.pptx
N07_RoundII_20220405.pptxN07_RoundII_20220405.pptx
N07_RoundII_20220405.pptx
 
Cassandra training
Cassandra trainingCassandra training
Cassandra training
 
Cassandra - A Distributed Database System
Cassandra - A Distributed Database System Cassandra - A Distributed Database System
Cassandra - A Distributed Database System
 
Breakthrough OLAP performance with Cassandra and Spark
Breakthrough OLAP performance with Cassandra and SparkBreakthrough OLAP performance with Cassandra and Spark
Breakthrough OLAP performance with Cassandra and Spark
 
NoSQL Session II
NoSQL Session IINoSQL Session II
NoSQL Session II
 
Presentation
PresentationPresentation
Presentation
 
BigData Developers MeetUp
BigData Developers MeetUpBigData Developers MeetUp
BigData Developers MeetUp
 

Mehr von Trivadis

Azure Days 2019: Azure Chatbot Development for Airline Irregularities (Remco ...
Azure Days 2019: Azure Chatbot Development for Airline Irregularities (Remco ...Azure Days 2019: Azure Chatbot Development for Airline Irregularities (Remco ...
Azure Days 2019: Azure Chatbot Development for Airline Irregularities (Remco ...Trivadis
 
Azure Days 2019: Trivadis Azure Foundation – Das Fundament für den ... (Nisan...
Azure Days 2019: Trivadis Azure Foundation – Das Fundament für den ... (Nisan...Azure Days 2019: Trivadis Azure Foundation – Das Fundament für den ... (Nisan...
Azure Days 2019: Trivadis Azure Foundation – Das Fundament für den ... (Nisan...Trivadis
 
Azure Days 2019: Business Intelligence auf Azure (Marco Amhof & Yves Mauron)
Azure Days 2019: Business Intelligence auf Azure (Marco Amhof & Yves Mauron)Azure Days 2019: Business Intelligence auf Azure (Marco Amhof & Yves Mauron)
Azure Days 2019: Business Intelligence auf Azure (Marco Amhof & Yves Mauron)Trivadis
 
Azure Days 2019: Master the Move to Azure (Konrad Brunner)
Azure Days 2019: Master the Move to Azure (Konrad Brunner)Azure Days 2019: Master the Move to Azure (Konrad Brunner)
Azure Days 2019: Master the Move to Azure (Konrad Brunner)Trivadis
 
Azure Days 2019: Keynote Azure Switzerland – Status Quo und Ausblick (Primo A...
Azure Days 2019: Keynote Azure Switzerland – Status Quo und Ausblick (Primo A...Azure Days 2019: Keynote Azure Switzerland – Status Quo und Ausblick (Primo A...
Azure Days 2019: Keynote Azure Switzerland – Status Quo und Ausblick (Primo A...Trivadis
 
Azure Days 2019: Grösser und Komplexer ist nicht immer besser (Meinrad Weiss)
Azure Days 2019: Grösser und Komplexer ist nicht immer besser (Meinrad Weiss)Azure Days 2019: Grösser und Komplexer ist nicht immer besser (Meinrad Weiss)
Azure Days 2019: Grösser und Komplexer ist nicht immer besser (Meinrad Weiss)Trivadis
 
Azure Days 2019: Get Connected with Azure API Management (Gerry Keune & Stefa...
Azure Days 2019: Get Connected with Azure API Management (Gerry Keune & Stefa...Azure Days 2019: Get Connected with Azure API Management (Gerry Keune & Stefa...
Azure Days 2019: Get Connected with Azure API Management (Gerry Keune & Stefa...Trivadis
 
Azure Days 2019: Infrastructure as Code auf Azure (Jonas Wanninger & Daniel H...
Azure Days 2019: Infrastructure as Code auf Azure (Jonas Wanninger & Daniel H...Azure Days 2019: Infrastructure as Code auf Azure (Jonas Wanninger & Daniel H...
Azure Days 2019: Infrastructure as Code auf Azure (Jonas Wanninger & Daniel H...Trivadis
 
Azure Days 2019: Wie bringt man eine Data Analytics Plattform in die Cloud? (...
Azure Days 2019: Wie bringt man eine Data Analytics Plattform in die Cloud? (...Azure Days 2019: Wie bringt man eine Data Analytics Plattform in die Cloud? (...
Azure Days 2019: Wie bringt man eine Data Analytics Plattform in die Cloud? (...Trivadis
 
Azure Days 2019: Azure@Helsana: Die Erweiterung von Dynamics CRM mit Azure Po...
Azure Days 2019: Azure@Helsana: Die Erweiterung von Dynamics CRM mit Azure Po...Azure Days 2019: Azure@Helsana: Die Erweiterung von Dynamics CRM mit Azure Po...
Azure Days 2019: Azure@Helsana: Die Erweiterung von Dynamics CRM mit Azure Po...Trivadis
 
TechEvent 2019: Kundenstory - Kein Angebot, kein Auftrag – Wie Du ein individ...
TechEvent 2019: Kundenstory - Kein Angebot, kein Auftrag – Wie Du ein individ...TechEvent 2019: Kundenstory - Kein Angebot, kein Auftrag – Wie Du ein individ...
TechEvent 2019: Kundenstory - Kein Angebot, kein Auftrag – Wie Du ein individ...Trivadis
 
TechEvent 2019: Oracle Database Appliance M/L - Erfahrungen und Erfolgsmethod...
TechEvent 2019: Oracle Database Appliance M/L - Erfahrungen und Erfolgsmethod...TechEvent 2019: Oracle Database Appliance M/L - Erfahrungen und Erfolgsmethod...
TechEvent 2019: Oracle Database Appliance M/L - Erfahrungen und Erfolgsmethod...Trivadis
 
TechEvent 2019: Security 101 für Web Entwickler; Roland Krüger - Trivadis
TechEvent 2019: Security 101 für Web Entwickler; Roland Krüger - TrivadisTechEvent 2019: Security 101 für Web Entwickler; Roland Krüger - Trivadis
TechEvent 2019: Security 101 für Web Entwickler; Roland Krüger - TrivadisTrivadis
 
TechEvent 2019: Trivadis & Swisscom Partner Angebote; Konrad Häfeli, Markus O...
TechEvent 2019: Trivadis & Swisscom Partner Angebote; Konrad Häfeli, Markus O...TechEvent 2019: Trivadis & Swisscom Partner Angebote; Konrad Häfeli, Markus O...
TechEvent 2019: Trivadis & Swisscom Partner Angebote; Konrad Häfeli, Markus O...Trivadis
 
TechEvent 2019: DBaaS from Swisscom Cloud powered by Trivadis; Konrad Häfeli ...
TechEvent 2019: DBaaS from Swisscom Cloud powered by Trivadis; Konrad Häfeli ...TechEvent 2019: DBaaS from Swisscom Cloud powered by Trivadis; Konrad Häfeli ...
TechEvent 2019: DBaaS from Swisscom Cloud powered by Trivadis; Konrad Häfeli ...Trivadis
 
TechEvent 2019: Status of the partnership Trivadis and EDB - Comparing Postgr...
TechEvent 2019: Status of the partnership Trivadis and EDB - Comparing Postgr...TechEvent 2019: Status of the partnership Trivadis and EDB - Comparing Postgr...
TechEvent 2019: Status of the partnership Trivadis and EDB - Comparing Postgr...Trivadis
 
TechEvent 2019: More Agile, More AI, More Cloud! Less Work?!; Oliver Dörr - T...
TechEvent 2019: More Agile, More AI, More Cloud! Less Work?!; Oliver Dörr - T...TechEvent 2019: More Agile, More AI, More Cloud! Less Work?!; Oliver Dörr - T...
TechEvent 2019: More Agile, More AI, More Cloud! Less Work?!; Oliver Dörr - T...Trivadis
 
TechEvent 2019: Kundenstory - Vom Hauptmann zu Köpenick zum Polizisten 2020 -...
TechEvent 2019: Kundenstory - Vom Hauptmann zu Köpenick zum Polizisten 2020 -...TechEvent 2019: Kundenstory - Vom Hauptmann zu Köpenick zum Polizisten 2020 -...
TechEvent 2019: Kundenstory - Vom Hauptmann zu Köpenick zum Polizisten 2020 -...Trivadis
 
TechEvent 2019: Vom Rechenzentrum in die Oracle Cloud - Übertragungsmethoden;...
TechEvent 2019: Vom Rechenzentrum in die Oracle Cloud - Übertragungsmethoden;...TechEvent 2019: Vom Rechenzentrum in die Oracle Cloud - Übertragungsmethoden;...
TechEvent 2019: Vom Rechenzentrum in die Oracle Cloud - Übertragungsmethoden;...Trivadis
 
TechEvent 2019: The sleeping Power of Data; Eberhard Lösch - Trivadis
TechEvent 2019: The sleeping Power of Data; Eberhard Lösch - TrivadisTechEvent 2019: The sleeping Power of Data; Eberhard Lösch - Trivadis
TechEvent 2019: The sleeping Power of Data; Eberhard Lösch - TrivadisTrivadis
 

Mehr von Trivadis (20)

Azure Days 2019: Azure Chatbot Development for Airline Irregularities (Remco ...
Azure Days 2019: Azure Chatbot Development for Airline Irregularities (Remco ...Azure Days 2019: Azure Chatbot Development for Airline Irregularities (Remco ...
Azure Days 2019: Azure Chatbot Development for Airline Irregularities (Remco ...
 
Azure Days 2019: Trivadis Azure Foundation – Das Fundament für den ... (Nisan...
Azure Days 2019: Trivadis Azure Foundation – Das Fundament für den ... (Nisan...Azure Days 2019: Trivadis Azure Foundation – Das Fundament für den ... (Nisan...
Azure Days 2019: Trivadis Azure Foundation – Das Fundament für den ... (Nisan...
 
Azure Days 2019: Business Intelligence auf Azure (Marco Amhof & Yves Mauron)
Azure Days 2019: Business Intelligence auf Azure (Marco Amhof & Yves Mauron)Azure Days 2019: Business Intelligence auf Azure (Marco Amhof & Yves Mauron)
Azure Days 2019: Business Intelligence auf Azure (Marco Amhof & Yves Mauron)
 
Azure Days 2019: Master the Move to Azure (Konrad Brunner)
Azure Days 2019: Master the Move to Azure (Konrad Brunner)Azure Days 2019: Master the Move to Azure (Konrad Brunner)
Azure Days 2019: Master the Move to Azure (Konrad Brunner)
 
Azure Days 2019: Keynote Azure Switzerland – Status Quo und Ausblick (Primo A...
Azure Days 2019: Keynote Azure Switzerland – Status Quo und Ausblick (Primo A...Azure Days 2019: Keynote Azure Switzerland – Status Quo und Ausblick (Primo A...
Azure Days 2019: Keynote Azure Switzerland – Status Quo und Ausblick (Primo A...
 
Azure Days 2019: Grösser und Komplexer ist nicht immer besser (Meinrad Weiss)
Azure Days 2019: Grösser und Komplexer ist nicht immer besser (Meinrad Weiss)Azure Days 2019: Grösser und Komplexer ist nicht immer besser (Meinrad Weiss)
Azure Days 2019: Grösser und Komplexer ist nicht immer besser (Meinrad Weiss)
 
Azure Days 2019: Get Connected with Azure API Management (Gerry Keune & Stefa...
Azure Days 2019: Get Connected with Azure API Management (Gerry Keune & Stefa...Azure Days 2019: Get Connected with Azure API Management (Gerry Keune & Stefa...
Azure Days 2019: Get Connected with Azure API Management (Gerry Keune & Stefa...
 
Azure Days 2019: Infrastructure as Code auf Azure (Jonas Wanninger & Daniel H...
Azure Days 2019: Infrastructure as Code auf Azure (Jonas Wanninger & Daniel H...Azure Days 2019: Infrastructure as Code auf Azure (Jonas Wanninger & Daniel H...
Azure Days 2019: Infrastructure as Code auf Azure (Jonas Wanninger & Daniel H...
 
Azure Days 2019: Wie bringt man eine Data Analytics Plattform in die Cloud? (...
Azure Days 2019: Wie bringt man eine Data Analytics Plattform in die Cloud? (...Azure Days 2019: Wie bringt man eine Data Analytics Plattform in die Cloud? (...
Azure Days 2019: Wie bringt man eine Data Analytics Plattform in die Cloud? (...
 
Azure Days 2019: Azure@Helsana: Die Erweiterung von Dynamics CRM mit Azure Po...
Azure Days 2019: Azure@Helsana: Die Erweiterung von Dynamics CRM mit Azure Po...Azure Days 2019: Azure@Helsana: Die Erweiterung von Dynamics CRM mit Azure Po...
Azure Days 2019: Azure@Helsana: Die Erweiterung von Dynamics CRM mit Azure Po...
 
TechEvent 2019: Kundenstory - Kein Angebot, kein Auftrag – Wie Du ein individ...
TechEvent 2019: Kundenstory - Kein Angebot, kein Auftrag – Wie Du ein individ...TechEvent 2019: Kundenstory - Kein Angebot, kein Auftrag – Wie Du ein individ...
TechEvent 2019: Kundenstory - Kein Angebot, kein Auftrag – Wie Du ein individ...
 
TechEvent 2019: Oracle Database Appliance M/L - Erfahrungen und Erfolgsmethod...
TechEvent 2019: Oracle Database Appliance M/L - Erfahrungen und Erfolgsmethod...TechEvent 2019: Oracle Database Appliance M/L - Erfahrungen und Erfolgsmethod...
TechEvent 2019: Oracle Database Appliance M/L - Erfahrungen und Erfolgsmethod...
 
TechEvent 2019: Security 101 für Web Entwickler; Roland Krüger - Trivadis
TechEvent 2019: Security 101 für Web Entwickler; Roland Krüger - TrivadisTechEvent 2019: Security 101 für Web Entwickler; Roland Krüger - Trivadis
TechEvent 2019: Security 101 für Web Entwickler; Roland Krüger - Trivadis
 
TechEvent 2019: Trivadis & Swisscom Partner Angebote; Konrad Häfeli, Markus O...
TechEvent 2019: Trivadis & Swisscom Partner Angebote; Konrad Häfeli, Markus O...TechEvent 2019: Trivadis & Swisscom Partner Angebote; Konrad Häfeli, Markus O...
TechEvent 2019: Trivadis & Swisscom Partner Angebote; Konrad Häfeli, Markus O...
 
TechEvent 2019: DBaaS from Swisscom Cloud powered by Trivadis; Konrad Häfeli ...
TechEvent 2019: DBaaS from Swisscom Cloud powered by Trivadis; Konrad Häfeli ...TechEvent 2019: DBaaS from Swisscom Cloud powered by Trivadis; Konrad Häfeli ...
TechEvent 2019: DBaaS from Swisscom Cloud powered by Trivadis; Konrad Häfeli ...
 
TechEvent 2019: Status of the partnership Trivadis and EDB - Comparing Postgr...
TechEvent 2019: Status of the partnership Trivadis and EDB - Comparing Postgr...TechEvent 2019: Status of the partnership Trivadis and EDB - Comparing Postgr...
TechEvent 2019: Status of the partnership Trivadis and EDB - Comparing Postgr...
 
TechEvent 2019: More Agile, More AI, More Cloud! Less Work?!; Oliver Dörr - T...
TechEvent 2019: More Agile, More AI, More Cloud! Less Work?!; Oliver Dörr - T...TechEvent 2019: More Agile, More AI, More Cloud! Less Work?!; Oliver Dörr - T...
TechEvent 2019: More Agile, More AI, More Cloud! Less Work?!; Oliver Dörr - T...
 
TechEvent 2019: Kundenstory - Vom Hauptmann zu Köpenick zum Polizisten 2020 -...
TechEvent 2019: Kundenstory - Vom Hauptmann zu Köpenick zum Polizisten 2020 -...TechEvent 2019: Kundenstory - Vom Hauptmann zu Köpenick zum Polizisten 2020 -...
TechEvent 2019: Kundenstory - Vom Hauptmann zu Köpenick zum Polizisten 2020 -...
 
TechEvent 2019: Vom Rechenzentrum in die Oracle Cloud - Übertragungsmethoden;...
TechEvent 2019: Vom Rechenzentrum in die Oracle Cloud - Übertragungsmethoden;...TechEvent 2019: Vom Rechenzentrum in die Oracle Cloud - Übertragungsmethoden;...
TechEvent 2019: Vom Rechenzentrum in die Oracle Cloud - Übertragungsmethoden;...
 
TechEvent 2019: The sleeping Power of Data; Eberhard Lösch - Trivadis
TechEvent 2019: The sleeping Power of Data; Eberhard Lösch - TrivadisTechEvent 2019: The sleeping Power of Data; Eberhard Lösch - Trivadis
TechEvent 2019: The sleeping Power of Data; Eberhard Lösch - Trivadis
 

Kürzlich hochgeladen

Multiple time frame trading analysis -brianshannon.pdf
Multiple time frame trading analysis -brianshannon.pdfMultiple time frame trading analysis -brianshannon.pdf
Multiple time frame trading analysis -brianshannon.pdfchwongval
 
Predictive Analysis for Loan Default Presentation : Data Analysis Project PPT
Predictive Analysis for Loan Default  Presentation : Data Analysis Project PPTPredictive Analysis for Loan Default  Presentation : Data Analysis Project PPT
Predictive Analysis for Loan Default Presentation : Data Analysis Project PPTBoston Institute of Analytics
 
Indian Call Girls in Abu Dhabi O5286O24O8 Call Girls in Abu Dhabi By Independ...
Indian Call Girls in Abu Dhabi O5286O24O8 Call Girls in Abu Dhabi By Independ...Indian Call Girls in Abu Dhabi O5286O24O8 Call Girls in Abu Dhabi By Independ...
Indian Call Girls in Abu Dhabi O5286O24O8 Call Girls in Abu Dhabi By Independ...dajasot375
 
RABBIT: A CLI tool for identifying bots based on their GitHub events.
RABBIT: A CLI tool for identifying bots based on their GitHub events.RABBIT: A CLI tool for identifying bots based on their GitHub events.
RABBIT: A CLI tool for identifying bots based on their GitHub events.natarajan8993
 
Customer Service Analytics - Make Sense of All Your Data.pptx
Customer Service Analytics - Make Sense of All Your Data.pptxCustomer Service Analytics - Make Sense of All Your Data.pptx
Customer Service Analytics - Make Sense of All Your Data.pptxEmmanuel Dauda
 
Beautiful Sapna Vip Call Girls Hauz Khas 9711199012 Call /Whatsapps
Beautiful Sapna Vip  Call Girls Hauz Khas 9711199012 Call /WhatsappsBeautiful Sapna Vip  Call Girls Hauz Khas 9711199012 Call /Whatsapps
Beautiful Sapna Vip Call Girls Hauz Khas 9711199012 Call /Whatsappssapnasaifi408
 
原版1:1定制南十字星大学毕业证(SCU毕业证)#文凭成绩单#真实留信学历认证永久存档
原版1:1定制南十字星大学毕业证(SCU毕业证)#文凭成绩单#真实留信学历认证永久存档原版1:1定制南十字星大学毕业证(SCU毕业证)#文凭成绩单#真实留信学历认证永久存档
原版1:1定制南十字星大学毕业证(SCU毕业证)#文凭成绩单#真实留信学历认证永久存档208367051
 
dokumen.tips_chapter-4-transient-heat-conduction-mehmet-kanoglu.ppt
dokumen.tips_chapter-4-transient-heat-conduction-mehmet-kanoglu.pptdokumen.tips_chapter-4-transient-heat-conduction-mehmet-kanoglu.ppt
dokumen.tips_chapter-4-transient-heat-conduction-mehmet-kanoglu.pptSonatrach
 
INTERNSHIP ON PURBASHA COMPOSITE TEX LTD
INTERNSHIP ON PURBASHA COMPOSITE TEX LTDINTERNSHIP ON PURBASHA COMPOSITE TEX LTD
INTERNSHIP ON PURBASHA COMPOSITE TEX LTDRafezzaman
 
ASML's Taxonomy Adventure by Daniel Canter
ASML's Taxonomy Adventure by Daniel CanterASML's Taxonomy Adventure by Daniel Canter
ASML's Taxonomy Adventure by Daniel Cantervoginip
 
Generative AI for Social Good at Open Data Science East 2024
Generative AI for Social Good at Open Data Science East 2024Generative AI for Social Good at Open Data Science East 2024
Generative AI for Social Good at Open Data Science East 2024Colleen Farrelly
 
EMERCE - 2024 - AMSTERDAM - CROSS-PLATFORM TRACKING WITH GOOGLE ANALYTICS.pptx
EMERCE - 2024 - AMSTERDAM - CROSS-PLATFORM  TRACKING WITH GOOGLE ANALYTICS.pptxEMERCE - 2024 - AMSTERDAM - CROSS-PLATFORM  TRACKING WITH GOOGLE ANALYTICS.pptx
EMERCE - 2024 - AMSTERDAM - CROSS-PLATFORM TRACKING WITH GOOGLE ANALYTICS.pptxthyngster
 
GA4 Without Cookies [Measure Camp AMS]
GA4 Without Cookies [Measure Camp AMS]GA4 Without Cookies [Measure Camp AMS]
GA4 Without Cookies [Measure Camp AMS]📊 Markus Baersch
 
High Class Call Girls Noida Sector 39 Aarushi 🔝8264348440🔝 Independent Escort...
High Class Call Girls Noida Sector 39 Aarushi 🔝8264348440🔝 Independent Escort...High Class Call Girls Noida Sector 39 Aarushi 🔝8264348440🔝 Independent Escort...
High Class Call Girls Noida Sector 39 Aarushi 🔝8264348440🔝 Independent Escort...soniya singh
 
Top 5 Best Data Analytics Courses In Queens
Top 5 Best Data Analytics Courses In QueensTop 5 Best Data Analytics Courses In Queens
Top 5 Best Data Analytics Courses In Queensdataanalyticsqueen03
 
NLP Data Science Project Presentation:Predicting Heart Disease with NLP Data ...
NLP Data Science Project Presentation:Predicting Heart Disease with NLP Data ...NLP Data Science Project Presentation:Predicting Heart Disease with NLP Data ...
NLP Data Science Project Presentation:Predicting Heart Disease with NLP Data ...Boston Institute of Analytics
 
Kantar AI Summit- Under Embargo till Wednesday, 24th April 2024, 4 PM, IST.pdf
Kantar AI Summit- Under Embargo till Wednesday, 24th April 2024, 4 PM, IST.pdfKantar AI Summit- Under Embargo till Wednesday, 24th April 2024, 4 PM, IST.pdf
Kantar AI Summit- Under Embargo till Wednesday, 24th April 2024, 4 PM, IST.pdfSocial Samosa
 
Call Us ➥97111√47426🤳Call Girls in Aerocity (Delhi NCR)
Call Us ➥97111√47426🤳Call Girls in Aerocity (Delhi NCR)Call Us ➥97111√47426🤳Call Girls in Aerocity (Delhi NCR)
Call Us ➥97111√47426🤳Call Girls in Aerocity (Delhi NCR)jennyeacort
 

Kürzlich hochgeladen (20)

Multiple time frame trading analysis -brianshannon.pdf
Multiple time frame trading analysis -brianshannon.pdfMultiple time frame trading analysis -brianshannon.pdf
Multiple time frame trading analysis -brianshannon.pdf
 
Predictive Analysis for Loan Default Presentation : Data Analysis Project PPT
Predictive Analysis for Loan Default  Presentation : Data Analysis Project PPTPredictive Analysis for Loan Default  Presentation : Data Analysis Project PPT
Predictive Analysis for Loan Default Presentation : Data Analysis Project PPT
 
E-Commerce Order PredictionShraddha Kamble.pptx
E-Commerce Order PredictionShraddha Kamble.pptxE-Commerce Order PredictionShraddha Kamble.pptx
E-Commerce Order PredictionShraddha Kamble.pptx
 
Indian Call Girls in Abu Dhabi O5286O24O8 Call Girls in Abu Dhabi By Independ...
Indian Call Girls in Abu Dhabi O5286O24O8 Call Girls in Abu Dhabi By Independ...Indian Call Girls in Abu Dhabi O5286O24O8 Call Girls in Abu Dhabi By Independ...
Indian Call Girls in Abu Dhabi O5286O24O8 Call Girls in Abu Dhabi By Independ...
 
RABBIT: A CLI tool for identifying bots based on their GitHub events.
RABBIT: A CLI tool for identifying bots based on their GitHub events.RABBIT: A CLI tool for identifying bots based on their GitHub events.
RABBIT: A CLI tool for identifying bots based on their GitHub events.
 
Customer Service Analytics - Make Sense of All Your Data.pptx
Customer Service Analytics - Make Sense of All Your Data.pptxCustomer Service Analytics - Make Sense of All Your Data.pptx
Customer Service Analytics - Make Sense of All Your Data.pptx
 
Deep Generative Learning for All - The Gen AI Hype (Spring 2024)
Deep Generative Learning for All - The Gen AI Hype (Spring 2024)Deep Generative Learning for All - The Gen AI Hype (Spring 2024)
Deep Generative Learning for All - The Gen AI Hype (Spring 2024)
 
Beautiful Sapna Vip Call Girls Hauz Khas 9711199012 Call /Whatsapps
Beautiful Sapna Vip  Call Girls Hauz Khas 9711199012 Call /WhatsappsBeautiful Sapna Vip  Call Girls Hauz Khas 9711199012 Call /Whatsapps
Beautiful Sapna Vip Call Girls Hauz Khas 9711199012 Call /Whatsapps
 
原版1:1定制南十字星大学毕业证(SCU毕业证)#文凭成绩单#真实留信学历认证永久存档
原版1:1定制南十字星大学毕业证(SCU毕业证)#文凭成绩单#真实留信学历认证永久存档原版1:1定制南十字星大学毕业证(SCU毕业证)#文凭成绩单#真实留信学历认证永久存档
原版1:1定制南十字星大学毕业证(SCU毕业证)#文凭成绩单#真实留信学历认证永久存档
 
dokumen.tips_chapter-4-transient-heat-conduction-mehmet-kanoglu.ppt
dokumen.tips_chapter-4-transient-heat-conduction-mehmet-kanoglu.pptdokumen.tips_chapter-4-transient-heat-conduction-mehmet-kanoglu.ppt
dokumen.tips_chapter-4-transient-heat-conduction-mehmet-kanoglu.ppt
 
INTERNSHIP ON PURBASHA COMPOSITE TEX LTD
INTERNSHIP ON PURBASHA COMPOSITE TEX LTDINTERNSHIP ON PURBASHA COMPOSITE TEX LTD
INTERNSHIP ON PURBASHA COMPOSITE TEX LTD
 
ASML's Taxonomy Adventure by Daniel Canter
ASML's Taxonomy Adventure by Daniel CanterASML's Taxonomy Adventure by Daniel Canter
ASML's Taxonomy Adventure by Daniel Canter
 
Generative AI for Social Good at Open Data Science East 2024
Generative AI for Social Good at Open Data Science East 2024Generative AI for Social Good at Open Data Science East 2024
Generative AI for Social Good at Open Data Science East 2024
 
EMERCE - 2024 - AMSTERDAM - CROSS-PLATFORM TRACKING WITH GOOGLE ANALYTICS.pptx
EMERCE - 2024 - AMSTERDAM - CROSS-PLATFORM  TRACKING WITH GOOGLE ANALYTICS.pptxEMERCE - 2024 - AMSTERDAM - CROSS-PLATFORM  TRACKING WITH GOOGLE ANALYTICS.pptx
EMERCE - 2024 - AMSTERDAM - CROSS-PLATFORM TRACKING WITH GOOGLE ANALYTICS.pptx
 
GA4 Without Cookies [Measure Camp AMS]
GA4 Without Cookies [Measure Camp AMS]GA4 Without Cookies [Measure Camp AMS]
GA4 Without Cookies [Measure Camp AMS]
 
High Class Call Girls Noida Sector 39 Aarushi 🔝8264348440🔝 Independent Escort...
High Class Call Girls Noida Sector 39 Aarushi 🔝8264348440🔝 Independent Escort...High Class Call Girls Noida Sector 39 Aarushi 🔝8264348440🔝 Independent Escort...
High Class Call Girls Noida Sector 39 Aarushi 🔝8264348440🔝 Independent Escort...
 
Top 5 Best Data Analytics Courses In Queens
Top 5 Best Data Analytics Courses In QueensTop 5 Best Data Analytics Courses In Queens
Top 5 Best Data Analytics Courses In Queens
 
NLP Data Science Project Presentation:Predicting Heart Disease with NLP Data ...
NLP Data Science Project Presentation:Predicting Heart Disease with NLP Data ...NLP Data Science Project Presentation:Predicting Heart Disease with NLP Data ...
NLP Data Science Project Presentation:Predicting Heart Disease with NLP Data ...
 
Kantar AI Summit- Under Embargo till Wednesday, 24th April 2024, 4 PM, IST.pdf
Kantar AI Summit- Under Embargo till Wednesday, 24th April 2024, 4 PM, IST.pdfKantar AI Summit- Under Embargo till Wednesday, 24th April 2024, 4 PM, IST.pdf
Kantar AI Summit- Under Embargo till Wednesday, 24th April 2024, 4 PM, IST.pdf
 
Call Us ➥97111√47426🤳Call Girls in Aerocity (Delhi NCR)
Call Us ➥97111√47426🤳Call Girls in Aerocity (Delhi NCR)Call Us ➥97111√47426🤳Call Girls in Aerocity (Delhi NCR)
Call Us ➥97111√47426🤳Call Girls in Aerocity (Delhi NCR)
 

Trivadis TechEvent 2016 Big Data Cassandra, wieso brauche ich das? by Jan Ott

  • 1. BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENEVA HAMBURG COPENHAGEN LAUSANNE MUNICH STUTTGART VIENNA ZURICH Apache Cassandra Big Data: Why do I need Cassandra Jan Ott Trivadis
  • 2. Agenda 1. Introduction - What is Apache Cassandra? 2. Cassandra Data Model 3. First Steps in the Cassandra World 4. Cassandra Query Language - CQL 5. Summary
  • 3. What is Apache Cassandra?
  • 4. The Cassandra Elevator Pitch „Apache Cassandra is an open source, distributed, decentralized, elastically scalable, highly available, fault-tolerant, tuneably consistent, row-oriented database that bases its distribution design on Amazon’s Dynamo and its data model on Google’s Bigtable. Created at Facebook, it is now used at some of the most popular sites on the Web.“ Cassandra: The Definitive Guide by Jeff Carpenter and Eben Hewitt
  • 6. Highlights • Apache Cassandra™ is free • Distributed & Decentralized • Elastic Scalable • High Available • Fault Tolerance • Tunable data consistency • CQL language (like SQL)
  • 7. Elastic Scalable • Capable of comfortably scaling to petabytes • New nodes = Linear performance increases • Add and remove nodes online 100'000 txns/sec 200'000 txns/sec 400'000 txns/sec
  • 8. Write Requests coordinator sends a write request to all replicas that own the row being written
  • 9. Read Requests There are two types of read requests that a coordinator can send to a replica: • A direct read request • A background read repair request The number of replicas contacted by a direct read request is determined by the consistency level specified by the client.
  • 10. Tunable Data Consistency What do I need? • Writes • Reads • Consistency 1 2 3 4 5 6 › Any › One/Two/Three › Local_One › Quorum › Local_Quorum › Each_Quorum › All Writes › One/Two/Three › Local_One › Quorum › Local_Quorum › Each_Quorum › All Reads
  • 11. Who is using Cassandra? Largest infrastructure running over 75,000 Cassandra nodes, storing more than 10 petabytes of data with one cluster was over 1,000 nodes
  • 13. Cassandra Data Model • Forget Normalization – DENORMALIZE • Design by Query • No Joins – Denormalize - Model - Materialized Views - Do it on the client side – not recommended • No Referential Integrity - Possible to define but not enforced
  • 14. How Cassandra stores data • Model brought from Google Bigtable • Row Key and a lot of columns • Column names sorted (UTF8, Int, Timestamp, etc.) Column Name … Column Name Column Value Column Value Timestamp Timestamp TTL TTL Row Key 1 2 Billion Billion of Rows
  • 15. Static Column Family – "Skinny Row" 15 rowkey CREATE TABLE skinny (rowkey text, c1 text PRIMARY KEY, c2 text, c3 text, PRIMARY KEY (rowkey)); Grows up to Billion of Rows rowkey-1 c1 c2 c3 value-c1 value-c2 value-c3 rowkey-2 c1 c3 value-c1 value-c3 rowkey-3 c1 c2 c3 value-c1 value-c2 value-c3 c1 c2 c3 Partition Key
  • 16. Dynamic Column Family – "Wide Row" 16 rowkey Billion of Rows rowkey-1 ckey-1:c1 ckey-1:c2 value-c1 value-c2 rowkey-2 rowkey-3 CREATE TABLE wide (rowkey text, ckey text, c1 text, c2 text, PRIMARY KEY (rowkey, ckey) WITH CLUSTERING ORDER BY (ckey ASC); ckey-2:c1 ckey-2:c2 value-c1 value-c2 ckey-3:c1 ckey-3:c2 value-c1 value-c2 ckey-1:c1 ckey-1:c2 value-c1 value-c2 ckey-2:c1 ckey-2:c2 value-c1 value-c2 ckey-1:c1 ckey-1:c2 value-c1 value-c2 ckey-2:c1 ckey-2:c2 value-c1 value-c2 ckey-3:c1 ckey-3:c2 value-c1 value-c2 1 2 Billion Partition Key Clustering Key
  • 18. Getting Cassandra Apache Cassandra Distribution • http://cassandra.apache.org/ DataStax Distribution • DataStax Enterprice 5.0 - Sandbox - VM https://academy.datastax.com/downloads/welcome VM with Cassandra (1 node), DataStax DevCenter, DataStax OpsCenter • Oracle Virtual Box http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html • Login – datastax/datastax
  • 19. DataStax OpsCenter • At-a-Glance Cluster Management • Point-and-Click Provisioning and Administration • Secured Administration • Always On Management and Monitoring • Visual Monitoring and Tuning • Best Practice Advice • Proactive Assistance • Smart Data Protection
  • 22. CQL – Cassandra Query Language
  • 23. Introducing CQL • CQL is a reintroduction of schema so that you don't have to read code to understand the data model. • CQL creates a common language so that details of the data model can be easily communicated. • CQL is a best-practices Cassandra interface and hides the messy details.
  • 24. CQL Language • SQL like syntax • Data Definition Language – DDL CREATE / ALTER / DROP / … • Data Manipulation Language – DML INSERT, UPDATE, DELETE • Query data with SELECT • Build in Functions – COUNT, MIN, MAX, sum, avg, LIMIT, ... • UDF – User Defined Function / UDA - User Defined Aggregate
  • 25. CQL Shell for Apache Cassandra cqlsh is the command line utility for execution CQL commands (think of SQL*Plus for Cassandra) CQL3 is default since Cassandra 1.2 $ cqlsh Connected to DataStaxCluster at localhost:9160. [cqlsh 4.1.0 | Cassandra 2.0.5.24 | CQL spec 3.1.1 | Thrift protocol 19.39.0] Use HELP for help. cqlsh>
  • 26. CQL Shell for Apache Cassandra $ cat create-table.cql | cqlsh $ cqlsh –f create-table.cql cqlsh> SOURCE '~/cassandra_training/cql/create-table.cql' Execute a script with the –f option Alternatively pie scripts into cqlsh Source files inside cqlsh
  • 27. Creating a Keyspace Create a keyspace with SimpleStrategy and replication factor option Make the new keyspace the active one cqlsh> CREATE KEYSPACE my_space WITH REPLICATION = {'class':'SimpleStrategy', 'replication_factor':1}; cqlsh> USE my_space; cqlsh:my_space>
  • 28. Describing a Keyspace Use the DESCRIBE KEYSPACE to show the metadata of the keyspace cqlsh> DESCRIBE KEYSPACE my_space; CREATE KEYSPACE training WITH replication = { 'class': 'SimpleStrategy', 'replication_factor': '1' }; cqlsh>
  • 29. Create a Static table Dept Use CREATE TABLE to create a static column family (table) named ”dept" cqlsh:my_space> CREATE TABLE dept( deptno int, dname varchar, loc varchar, PRIMARY KEY (deptno)); dname loc 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON
  • 30. Create a Dynamic table (wide-row) Employee A Dynamic Table is also created with the CREATE TABLE statement but using a composite partition key cqlsh:training> CREATE TABLE emp( empno int, ename varchar, … deptno int, primary key (dname,ename)); KING:empno ... CLARK:empno ... 10 7839 ... 7782 ... JONES:empno ... SCOTT:empno ... FORD:empno ... 20 7566 ... 7788 ... 7902 ...
  • 31. Truncate / Drop Table Use TRUNCATE to truncate the data Use DROP TABLE to drop the whole table, operation is irreversible and removes all information within the specified table! • Will raise an error, if it does not exist, use IF EXISTS to prevent (new in 2.0): cqlsh:training> TRUNCATE employee; cqlsh:training> DROP TABLE employee; cqlsh:training> DROP TABLE IF EXISTS employee;
  • 32. Insert data into Dept • PRIMARY KEY is always required • Insert with same primary key => update cqlsh:training> INSERT INTO dept (deptno, dname, loc) VALUES (10, 'ACCOUNTING', 'NEW YORK');
  • 33. Retrieving data from Dept table SELECT statement returns rows and columns, just as in SQL It can optionally also have a WHERE clause, an ORDER BY clause and a LIMIT clause cqlsh:training> SELECT deptno, dname FROM dept LIMIT 2; deptno | dname --------+------------ 10 | ACCOUNTING 30 | SALES (2 rows)
  • 34. Retrieving data from Dept table (II) Restriction on column other than PRIMARY KEY won't work Can be solved with an Index (but be careful, better use de-normalization) cqlsh:my_space> SELECT * FROM dept WHERE loc = 'NEW YORK'; InvalidRequest: Error from server: code=2200 [Invalid query] message="Cannot execute this query as it might involve data filtering and thus may have unpredictable performance. If you want to execute this query despite the performance unpredictability, use ALLOW FILTERING" cqlsh:my_space> CREATE INDEX ON dept(loc); cqlsh:my_space> SELECT * FROM dept WHERE loc = 'NEW YORK'; deptno | dname | loc --------+------------+---------- 10 | ACCOUNTING | NEW YORK
  • 35. Update data in Dept • WHERE over Primary Key • If Primary Key does not exist => INSERT cqlsh:my_space> UPDATE dept SET loc = 'LOS ANGELES' WHERE deptno = 10;
  • 36. Cassandra Data Types Category CQL Data Type Description String ascii US-ASCII character string text UTF-8 encoded string, used most of the time for storing String data. varchar UTF-8 Strings. inet Used for storing IP addresses Numeric int 32-bit signed integer float 32-bit IEEE-754 floating point double 64-bit IEEE-754 floating point varint Arbitrary precision integers bigint 64-bit number, equivalent to long. decimal Variable-precision decimal counter Distributed counter value (64-bit long)
  • 37. Cassandra Data Types (II) Category CQL Data Type Description UUIDs uuid A UUID in standard UUID format timeuuid Type 1 UUID only, for storing unique time-base IDs Collections list Ordered collection of one or more elements map Collection of arbitrary key-value pairs set Unordered collection of one or more unique elements Miscellaneous boolean Boolean (true/false) blob Used for storing binary data written in hexadecimal timestamp Date/Time
  • 38. Batch operation • COMMIT ? • BEGIN BATCH … APPLY BATCH – execute multiple mutations – single operation BEGIN BATCH INSERT INTO dept (deptno, dname, loc) VALUES (50, 'IT', 'ZURICH'); UPDATE emp SET sal = 9000 WHERE empno = 9000; APPLY BATCH;
  • 39. Alter Table • ALTER TABLE change meta data • CQL is quick flexible schema, not changes to existing data cqlsh:my_space> ALTER TABLE dept ADD operational BOOLEAN; cqlsh:training> DESCRIBE TABLE employee; CREATE TABLE my_space.dept ( deptno int PRIMARY KEY, dname text, loc text, operational boolean ) WITH...; cqlsh:my_space> SELECT * FROM dept LIMIT 2; deptno | dname | loc | operational --------+------------+-------------+------------ - 50 | IT | ZURICH | null 10 | ACCOUNTING | LOS ANGELES | null (2 rows)
  • 40. Collections CQL3 also supports collections for storing complex data structures • Set {value,…}, List [value,…], Map {key:value,…} cqlsh:training> CREATE TABLE collection_sample( id int PRIMARY KEY, string_set set<text>, string_list list<text>, string_map map<text, text>); cqlsh:training> INSERT INTO coll (id, string_set, string_list, string_map) VALUES (1, {'text1','text2','text1'}, ['text1','text2','text1'], {'key1':'value1'});
  • 41. Collections (II) cqlsh:training> SELECT * FROM collection_sample; id | string_list | string_map | string_set ----+-----------------------------+--------------------+-------------------- 1 | ['text1', 'text2', 'text1'] | {'key1': 'value1'} | {'text1', 'text2'} (1 rows)
  • 42. UDF – User Defined Function Sample Code CREATE FUNCTION count_if_true(input boolean) RETURNS NULL ON NULL INPUT RETURNS int LANGUAGE java AS 'if (input) return 1; else return total;'; SELECT door_number, count_if_true(is_open) FROM my_doors; „CREATE OR REPLACE” or “IF NOT EXSITS” Syntax possible
  • 43. UDA – User Defined Aggregate Sample Code CREATE FUNCTION state_count_if_true(total int, input boolean) RETURNS NULL ON NULL INPUT RETURNS int LANGUAGE java AS 'if (input) return total+1; else return total;'; CREATE AGGREGATE total_open (boolean) SFUNC state_count_if_true STYPE int INITCOND 0; SELECT door_number, total_open(is_open) FROM my_doors; „CREATE OR REPLACE” or “IF NOT EXSITS” Syntax possible
  • 44. Materialized Views Relieve the pain of manual denormalization cqlsh:training> CREATE MATERIALIZED VIEW employee_by_role ( AS SELECT role, name, age FROM employee WHERE role IS NOT NULL PRIMARY KEY (role, name); cqlsh:training> CREATE TABLE employee_by_role ( role text, name text, age int, PRIMARY KEY (role, name)); Cassandra 3.0
  • 45. Time-to-Live (TTL) on Insert • Insert a row with a TTL in seconds (30s) • after that the row is deleted cqlsh:my_space> UPDATE emp USING ttl 15 SET sal = 8000 WHERE empno = 9000; cqlsh:my_space> SELECT ename, sal, ttl(sal) FROM emp WHERE empno = 9000; ename | sal | ttl(sal) -------+------+---------- null | 8000 | 15 (1 rows)
  • 46. Summary • Just great J • No single point of failure – Ring Model • Distribution over nodes / rack’s / data center’s • Tuneable Consistency • CQL • Spark / Cassandra Integration • CQL limited • Forget 20 years of experience in relational modelling L => DENORMALIZE J
  • 48. References • Books Cassandra: The Definite Guide, 2nd Edition • Apache – Cassandra CQL Documentation https://cassandra.apache.org/doc/latest/cql/index.html • DataStax – CQL Documentation http://docs.datastax.com/en/cql/3.3/cql/cql_using/useAboutCQL.html • Netflix and Cassandra http://techblog.netflix.com/search/label/Cassandra