introduction to apache cassandra

Post on 14-Apr-2017

142 Views

Category:

Education

8 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Introduction to Apache Cassandra

Jesús GuzmánApache Cassandra Certified

#cassandra

Jesus Alberto Guzmán Polancojguzman@datum.com.gt

Apache Cassandra Certified @Datum

Who am I ?

#cassandra

• Cassandra Overview• Cassandra Architecture• Data Modeling• Datastax Enterprise

Objectives

#cassandra

Big Data

#cassandra

No SQL

#cassandra

About Cassandra

#cassandra

"Apache Cassandra is an open source, distributed, decentralized, elastically scalable, highly available, fault-tolerant, tuneably consistent, column-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.

Apache Cassandra

#cassandra

BigTable Dynamo

Apache Cassandra

#cassandra

• Must always be available• 100% uptime• Must be easy to manage and maintain• Linear scalability at lowest cost• Big Data

World Has Changed - Modern Online Applications

#cassandra

• Operational (OLTP) Data Store• Masterless - No single point of failure• Always on• Linear scale performance• Fast response times• Always on reliability• Data replication across multiple data centers and the cloud• Large amounts of structured, semi-structured, and unstructured data

Why Cassandra?

#cassandra

Linear scalability• Designed expecting failure• Data partitioned among all nodes in the cluster• Configurable data replication to ensure uptime• Linear scalability (performance / storage)

#cassandra

Fault Tolerant

#cassandra

 Data replication – Multi Data Center

#cassandra

Massterless

#cassandra

Internals Cassandra

#cassandra

• Keyspace • Identified by name • Contains tables ("column families") • Determines replication factor

• Table • Identified by name• Has rows

• Row• Contains columns (up to 2 billion!)• Can have different number of columns

• Column• Identified by name• Has data type

Basic Concepts

#cassandra

• Node: A single instance of Cassandra• Rack: A logical grouping of nodes (optional)• Data Center: A logical grouping of racks or nodes • Cluster: A logical grouping of data centers (1 to N)

Architecture

#cassandra

Architecture

#cassandra

• Required for each table• Uniquely identifies row• Partition Key• Determines node• Has one or more columns

• Cluster Key• Determines disk location (order)• Has zero or more columns• Binary search• Search by: >, >=, <=, <, =

Primary Key

#cassandra

Three Key concepts

• Partitioning (data distribution)

• Replication (fault tolerance)

• Consistency (performance tunable)

How Does It Work?

#cassandra

• Partitioner• Generate tokens• Data distribution• Partition Keys are hashed into 128bit • Murmur3 default

Partitioning

Node 1

Node 3

Node 2Node 4

- 263+ 263

#cassandra

• Simplified Token Range: Integers from 0 -> 100

Data Partitioning Example

Node 1

Node 3

Node 2

Node 4

0100

25

50

75

ID NAME DOB

AB1 John Smith 10/11/1972

AB2 Bob Jones 3/1/1964

ZZ3 Mike West 4/22/1968

WX2 Sally Thompson

10/15/1969

MNZ Bill Wright 6/6/1966

HASH 17

HASH 79

HASH 14

HASH 32

HASH 51

Node 2

Node 1

Node 2

Node 3

Node 4

#cassandra

• Provides fault tolerance• Provides geographic distribution• Copies of each partition are distributed to data centers• Defined on a schema level (Replication Factor)

Replication

RF =1 RF = 2 RF = 3

A123 | JOHN SMITH | 11234

A147 | BOB MARTIN | 32235

B212 | JEN JONES | 43323

#cassandra

• Higher Replication Levels = Greater Fault Tolerance

Replication

RF =1 RF = 2 RF = 3

UNAVAILABLE

#cassandra

• Assign Replication Factor for each Data Center and schema

APP {Toronto : 3San Francisco : 3Dubai : 3New York : 3 }

Replication

 

San Francisco

New York

Dubai

Toronto

#cassandra

CAP Theorem

#cassandra

• It is the number of REPLICAS that need to respond for a request to be considered complete (reads and write/updates)• Consistency Level can is set on every request (normally by default)

Consistency

DC 1 DC 2

#cassandra

Some Consistency Levels• Any** (Hints, only in write)• ONE – one replica must respond• Quorum – 51% of replicas must respond• Local_Quorum – 51% of replicas in local data

center• ALL – all replicas must respond

Consistency Level

DC 1 DC 2

RF=3 RF=3

#cassandra

Tunable ConsistencyHow it works in Cassandra

WRITING DATA

RF=3 RF=3

CLIENT

CONSISTENCY LEVEL

LOCAL_QUORUM

#cassandra

Tunable Consistency

How it works in Cassandra

READING DATA

CLIENT

CONSISTENCY LEVEL

ONE

#cassandra

Common:• One• Local_Quorum Reads / Writes• Light Weight Transactions (LWT)• Application Level Locking (ING*)

Consistency

DC 1 DC 2

RF=3 RF=3

#cassandra

• Operation = Write/Read

Operations

#cassandra

Operations• Operation = Write/Read

#cassandra

Write Path

#cassandra

Read Path

#cassandra

Read Path

#cassandra

• HintsCoordinator stores missed mutations for later replayTime out after 3 hours

• Read Repair• Mismatched results at read trigger a repair for that partition• Read Repair Chance setting triggers validation of all replicas on small

percentage of reads

• Repair• Process run on Node / Keyspace to true up data• Can be run automatically via Opscenter in DSE• Ensures tombstones are properly evicted during compaction

Anti-Entropy Mechanisms

#cassandra

Compaction

#cassandra

• Snapshots• By table, keyspace, node, cluster• So fast• So Hard-Link

• Do you need Backups ?• Data replication• Data across all nodes

Backups

#cassandra

Data Modeling

#cassandra

• Cassandra is not an RDBMS• Distributed changes the rules • OLTP (not Analytics / Search / ad hoc query)• Rows are accessed by Partition Key • De-normalization (No joins)• Multiple query tables • Use Solr for Search, Hadoop/Spark for Analytics

Data Modeling in Cassandra

#cassandra

• Cassandra Query Language (CQL) is a query language for the Cassandra database.

• A SQL-like query language for communicating with Cassandra

• CQLSH• No Joins• JSON support • Upserts• TTL• Timestamps

CQL

#cassandra

Some datatypes

#cassandra

• Collections:• Set• List• Map

• User defined types (UTD)• Tuples

Interesting Datatypes

#cassandra

Table Example

Track customer transactions by type

DATE CUST_ID TYPE TIME CUST NAME LOCATION AMOUNT

PARTITION KEY CLUSTERING COLUMNS

PRIMARY KEY

#cassandra

Track customer transactions by type

DATE CUST_ID TYPE TIME CUST NAME LOCATION AMOUNT

10/15/14 A11 DEPOSIT 09:24:33.55 JOHN SMITH 30132 252.50

10/15/14 A11 DEPOSIT 09:25:53.21 JOHN SMITH 30132 63.49

10/15/14 A11 WITHDRAW 12:45:22.23 JOHN SMITH 30060 -300.00

10/15/14 B23 DEPOSIT 08:12:22.32 BOB BARKER 94123 500.00

Table Example

Partition size considerations

#cassandra

• Defines transitions between models• Query-driven methodology• Formal analysis and validation

• Defines a scientific approach to data modeling• Modeling rules• Mapping patterns• Schema optimization techniques

Query-Driven Methodology

#cassandra

• ER diagram (Chen notation)• Describes entities, relationships, roles, keys, cardinalities• What is possible and what is not in existing or future data

Conceptual model

#cassandra

QuerysSimple Order Management (queries)

• Q1: Customers by Customer ID• Q2: Customer by email• Q3: Product by Product ID• Q4: Product by Name• Q5: Product By Category• Q6: Order Details by Order ID• Q7: Order Details by Customer / Date

#cassandra

• Logical-level shows column names and properties• Physical-level also shows the column data type

Chebotko Diagram Notation

#cassandra

Logical Model

#cassandra

Physical Model

#cassandra

Version Enterprise

#cassandra

Datastax

Founded in April 2010

~40 600+

Santa Clara, Austin, New York, London, Paris

480+Employees Percent Customers

#cassandra

Datastax Enterprise

• Certified Production Cassandra

• Enterprise Security Options• Integrated Search• Integrated Analytics (Spark)• DSE Graph• Workload Segregation• In Memory• OpsCenter• Management Services

#cassandra

• MDM: Customer 360, Product Catalog• Personalization and Recommendation• Internet of Things and Time Series• Fraud Detection• List Management• Messaging• Inventory Management• Authentication

DSE Use Cases

#cassandra

• Visual, browser-based user interface. • Installation, configuration, and administration tasks

carried out in point-and-click fashion.• Visually supports DataStax Automatic Management

Services.

Datastax OpsCenter

#cassandra

Muchas Gracias

top related