SlideShare a Scribd company logo
1 of 54
Download to read offline
This presentation is out of date. See the following
link for more up to date information on using
Apache Cassandra from Python.
https://speakerdeck.com/tylerhobbs/intro-to-cassandra-and-the-python-driver
Using Apache Cassandra
from Python
Jeremiah Jordan
Morningstar, Inc.
Who am I?
Software Engineer @ Morningstar, Inc. for 1.5 Years
Using Python 2.6/2.7 for 1.5 Years
Using Cassandra for 1.5 Years
Why are you here?
You were too lazy to get out of your seat.
Someone said “NoSQL”.
You want to learn about using Cassandra from Python.
What am I going to talk about?
What is Cassandra
Starting up a local dev/unit test instance
Using Cassandra from Python
Indexing / Schema Design
What am I not going to talk about?
Setting up and maintaining a production cluster
Where can I get the slides?
http://goo.gl/8Byd8
points to
http://www.slideshare.net/jeremiahdjordan/pycon-2012-apache-cassandra
What is Apache Cassandra?
(Buzz Word Description)
“Cassandra is a highly scalable, eventually consistent, distributed, structured
key-value store. Cassandra brings together the distributed systems
technologies from Dynamo and the data model from Google's BigTable. Like
Dynamo, Cassandra is eventually consistent. Like BigTable, Cassandra
provides a ColumnFamily-based data model richer than typical key/value
systems.”
From the Cassandra Wiki: http://wiki.apache.org/cassandra/
What is Apache Cassandra?
Column based key-value store (multi-level dictionary)
Combination of Dynamo (Amazon)and BigTable (Google)
Schema-optional
Multi-level Dictionary
{"UserInfo":
{"John": {"age" : 32,
"email" : "john@gmail.com",
"gender": "M",
"state" : "IL"}}}
Column Family
Key
Columns
Values
Well really this
{"UserInfo":
{"John":
OrderedDict(
[("age", 32),
("email", "john@gmail.com"),
("gender", "M"),
("state", "IL")])}}
Where do I get it?
From the Apache Cassandra project:
http://cassandra.apache.org/
Or DataStax hosts some Debian and RedHat packages:
http://www.datastax.com/docs/1.0/install/
How do I run it?
Edit conf/cassandra.yaml
Change data/commit log locations
defaults: /var/cassandra/data and /var/cassandra/commitlog
Edit conf/log4j-server.properties
Change the log location/levels
default: /var/log/cassandra/system.log
How do I run it?
Edit conf/cassandra-env.sh
(bin/cassandra.bat on windows)
Update JVM Memory usage
default: 1/2 your ram
How do I run it?
$ ./cassandra -f
Foreground
Setup tips for local instances
Make templates out of cassandra.yaml and log4j-
server.properties
Update “cassandra” script to generate the actual files
(run them through “sed” or something)
Server is running, what now?
$ ./cassandra-cli
connect localhost/9160;
create keyspace ApplicationData
with placement_strategy =
'org.apache.cassandra.
locator.SimpleStrategy'
and strategy_options =
[{replication_factor:1}];
Server is running, what now?
use ApplicationData;
create column family UserInfo
and comparator = 'AsciiType';
create column family ChangesOverTime
and comparator = 'TimeUUIDType';
Connect from Python
http://wiki.apache.org/cassandra/ClientOptions
Thrift - See the “interface” directory (Do not use!!!)
Pycassa - pip install pycassa
Telephus (twisted) - pip telephus
DB-API 2.0 (CQL) - pip cassandra-dbapi2
Thrift (don’t use it)
from thrift.transport import TSocket, TTransport
from thrift.protocol import TBinaryProtocol
from pycassa.cassandra.c10 import Cassandra, ttypes
socket = TSocket.TSocket('localhost', 9160)
transport = TTransport.TFramedTransport(socket)
protocol = TBinaryProtocol.TBinaryProtocolAccelerated(transport)
client = Cassandra.Client(protocol)
transport.open()
client.set_keyspace('ApplicationData')
import time
client.batch_mutate(
mutation_map=
{'John': {'UserInfo':
[ttypes.Mutation(
ttypes.ColumnOrSuperColumn(
ttypes.Column(name='email',
value='john@gmail.com',
timestamp= long(time.time()*1e6),
ttl=None)))]}},
consistency_level= ttypes.ConsistencyLevel.QUORUM)
Pycassa
import pycassa
from pycassa.pool import ConnectionPool
from pycassa.columnfamily import ColumnFamily
pool = ConnectionPool('ApplicationData',
['localhost:9160'])
col_fam = ColumnFamily(pool, 'UserInfo')
col_fam.insert('John', {'email': 'john@gmail.com'})
Pycassa
http://pycassa.github.com/pycassa/
https://github.com/twissandra/twissandra
Connect
pool = ConnectionPool('ApplicationData',
['localhost:9160'])
Keyspace
Server List
Open Column Family
col_fam = ColumnFamily(pool,
'UserInfo')
Connection Pool
Column Family
Write
col_fam.insert('John',
{'email':
'john@gmail.com'})
Key
Column Name
ColumnValue
Read
readData = col_fam.get('John',
columns=['email'])
Key
Column Names
Delete
col_fam.remove('John',
columns=['email'])
Key
Column Names
Batch
col_fam.batch_insert(
{'John': {'email': 'john@gmail.com',
'state': 'IL',
'gender': 'M'},
'Jane': {'email': 'jane@python.org',
'state': 'CA'}})
Keys
Column Names
ColumnValues
Batch (streaming)
b = col_fam.batch(queue_size=10)
b.insert('John',
{'email': 'john@gmail.com',
'state': 'IL',
'gender': 'F'})
b.insert('Jane',
{'email': 'jane@python.org',
'state': 'CA'})
Batch (streaming)
b.remove('John', ['gender'])
b.remove('Jane')
b.send()
Batch (Multi-CF)
from pycassa.batch import Mutator
import uuid
b = Mutator(pool)
b.insert(col_fam,
'John', {'gender':'M'})
b.insert(index_fam,
'2012-03-09',
{uuid.uuid1().bytes:
'John:gender:F:M'})
Batch Read
readData = col_fam.multiget(['John',
'Jane',
'Bill'])
Column Slice
d = col_fam.get('Jane',
column_start='email',
column_finish='state')
d = col_fam.get('Bill',
column_reversed=True,
column_count=2)
Column Slice
startTime = pycassa.util.
convert_time_to_uuid(time.time()-600)
d = index_fam.get('2012-03-31',
column_start=startTime,
column_count=30)
Types
from pycassa.types import *
col_fam.column_validators['age'] =
IntegerType()
col_fam.column_validators['height'] =
FloatType()
col_fam.insert('John', {'age':32,
'height':6.1})
Column Family Map
from pycassa.types import *
class User(object):
key = Utf8Type()
email = AsciiType()
age = IntegerType()
height = FloatType()
joined = DateType()
Column Family Map
from pycassa.columnfamilymap import
ColumnFamilyMap
cfmap = ColumnFamilyMap(User, pool,
'UserInfo')
Write
from datetime import datetime
user = User()
user.key = 'John'
user.email = 'john@gmail.com'
user.age = 32
user.height = 6.1
user.joined = datetime.now()
cfmap.insert(user)
Read/Delete
user = cfmap.get('John')
users = cfmap.multiget(['John', 'Jane'])
cfmap.remove(user)
Timestamps/Consistency
col_fam.read_consistency_level =
ConsistencyLevel.QUORUM
col_fam.write_consistency_level =
ConsistencyLevel.ONE
col_fam.get('John',
read_consistency_level=
ConsistencyLevel.ONE)
col_fam.get('John',
include_timestamp=True)
Indexing
Native secondary indexes
Roll your own with wide rows
Indexing Links
Intro to indexing
http://www.datastax.com/dev/blog/whats-new-cassandra-07-secondary-indexes
Blog post and presentation going through some options
http://www.anuff.com/2011/02/indexing-in-cassandra.html
http://www.slideshare.net/edanuff/indexing-in-cassandra
Another blog post describing different patterns for indexing
http://pkghosh.wordpress.com/2011/03/02/cassandra-secondary-index-patterns/
Native Indexes
Easy to add, just update the schema
Can use filtering queries
Not recommended for high cardinality values (i.e.
timestamps, birth dates, keywords, etc.)
Makes writes slower to indexed columns (read before
Add Index
update column family UserInfo
with column_metadata=[
{column_name: state,
validation_class: UTF8Type,
index_type: KEYS};
Native Indexes
from pycassa.index import *
state_expr = create_index_expression('state',
'IL')
age_expr = create_index_expression('age',
20,
GT)
clause = create_index_clause([state_expr,
age_expr],
count=20)
for key, userInfo in 
col_fam.get_indexed_slices(clause):
# Do Stuff
Rolling Your Own
Removing changed values yourself
Know the new value doesn't exists, no read before write
Index can be denormalized query, not just an index.
Can use things like composite columns, and other tricks to
Lessons Learned
Use indexes. Don't iterate over keys.
New Query == New Column Family
Don't be afraid to write your data to multiple places
(Batch)
Questions?

More Related Content

What's hot

What's hot (20)

Cassandra 2.0 better, faster, stronger
Cassandra 2.0   better, faster, strongerCassandra 2.0   better, faster, stronger
Cassandra 2.0 better, faster, stronger
 
Cassandra for Python Developers
Cassandra for Python DevelopersCassandra for Python Developers
Cassandra for Python Developers
 
Distributed Applications with Apache Zookeeper
Distributed Applications with Apache ZookeeperDistributed Applications with Apache Zookeeper
Distributed Applications with Apache Zookeeper
 
Apache zookeeper seminar_trinh_viet_dung_03_2016
Apache zookeeper seminar_trinh_viet_dung_03_2016Apache zookeeper seminar_trinh_viet_dung_03_2016
Apache zookeeper seminar_trinh_viet_dung_03_2016
 
Administering and Monitoring SolrCloud Clusters
Administering and Monitoring SolrCloud ClustersAdministering and Monitoring SolrCloud Clusters
Administering and Monitoring SolrCloud Clusters
 
So we're running Apache ZooKeeper. Now What? By Camille Fournier
So we're running Apache ZooKeeper. Now What? By Camille Fournier So we're running Apache ZooKeeper. Now What? By Camille Fournier
So we're running Apache ZooKeeper. Now What? By Camille Fournier
 
Zookeeper In Action
Zookeeper In ActionZookeeper In Action
Zookeeper In Action
 
Cassandra Community Webinar | Become a Super Modeler
Cassandra Community Webinar | Become a Super ModelerCassandra Community Webinar | Become a Super Modeler
Cassandra Community Webinar | Become a Super Modeler
 
Cassandra Community Webinar: Back to Basics with CQL3
Cassandra Community Webinar: Back to Basics with CQL3Cassandra Community Webinar: Back to Basics with CQL3
Cassandra Community Webinar: Back to Basics with CQL3
 
Cassandra 2.2 & 3.0
Cassandra 2.2 & 3.0Cassandra 2.2 & 3.0
Cassandra 2.2 & 3.0
 
Zookeeper Introduce
Zookeeper IntroduceZookeeper Introduce
Zookeeper Introduce
 
Cassandra 3.0 advanced preview
Cassandra 3.0 advanced previewCassandra 3.0 advanced preview
Cassandra 3.0 advanced preview
 
Bulk Loading Data into Cassandra
Bulk Loading Data into CassandraBulk Loading Data into Cassandra
Bulk Loading Data into Cassandra
 
Cassandra 3.0 Data Modeling
Cassandra 3.0 Data ModelingCassandra 3.0 Data Modeling
Cassandra 3.0 Data Modeling
 
Nagios Conference 2014 - Jeff Mendoza - Monitoring Microsoft Azure with Nagios
Nagios Conference 2014 - Jeff Mendoza - Monitoring Microsoft Azure with NagiosNagios Conference 2014 - Jeff Mendoza - Monitoring Microsoft Azure with Nagios
Nagios Conference 2014 - Jeff Mendoza - Monitoring Microsoft Azure with Nagios
 
Python database interfaces
Python database  interfacesPython database  interfaces
Python database interfaces
 
使用ZooKeeper打造軟體式負載平衡
使用ZooKeeper打造軟體式負載平衡使用ZooKeeper打造軟體式負載平衡
使用ZooKeeper打造軟體式負載平衡
 
A Cassandra + Solr + Spark Love Triangle Using DataStax Enterprise
A Cassandra + Solr + Spark Love Triangle Using DataStax EnterpriseA Cassandra + Solr + Spark Love Triangle Using DataStax Enterprise
A Cassandra + Solr + Spark Love Triangle Using DataStax Enterprise
 
Cassandra Day SV 2014: Netflix’s Astyanax Java Client Driver for Apache Cassa...
Cassandra Day SV 2014: Netflix’s Astyanax Java Client Driver for Apache Cassa...Cassandra Day SV 2014: Netflix’s Astyanax Java Client Driver for Apache Cassa...
Cassandra Day SV 2014: Netflix’s Astyanax Java Client Driver for Apache Cassa...
 
Cassandra EU - Data model on fire
Cassandra EU - Data model on fireCassandra EU - Data model on fire
Cassandra EU - Data model on fire
 

Viewers also liked

Sample email submission
Sample email submissionSample email submission
Sample email submission
David Sommer
 
How to make intelligent web apps
How to make intelligent web appsHow to make intelligent web apps
How to make intelligent web apps
iapain
 
Bank Account Of Life
Bank Account Of LifeBank Account Of Life
Bank Account Of Life
Nafass
 
Stc 2014 unraveling the mysteries of localization kits
Stc 2014 unraveling the mysteries of localization kitsStc 2014 unraveling the mysteries of localization kits
Stc 2014 unraveling the mysteries of localization kits
David Sommer
 
My Valentine Gift - YOU Decide
My Valentine Gift - YOU DecideMy Valentine Gift - YOU Decide
My Valentine Gift - YOU Decide
SizzlynRose
 
Pycon 2012 What Python can learn from Java
Pycon 2012 What Python can learn from JavaPycon 2012 What Python can learn from Java
Pycon 2012 What Python can learn from Java
jbellis
 
Sample of instructions
Sample of instructionsSample of instructions
Sample of instructions
David Sommer
 
My trans kit checklist gw1 ds1_gw3
My trans kit checklist gw1 ds1_gw3My trans kit checklist gw1 ds1_gw3
My trans kit checklist gw1 ds1_gw3
David Sommer
 

Viewers also liked (20)

Sample email submission
Sample email submissionSample email submission
Sample email submission
 
How to make intelligent web apps
How to make intelligent web appsHow to make intelligent web apps
How to make intelligent web apps
 
Putting Out Fires with Content Strategy (STC Academic SIG)
Putting Out Fires with Content Strategy (STC Academic SIG)Putting Out Fires with Content Strategy (STC Academic SIG)
Putting Out Fires with Content Strategy (STC Academic SIG)
 
Bank Account Of Life
Bank Account Of LifeBank Account Of Life
Bank Account Of Life
 
Stc 2014 unraveling the mysteries of localization kits
Stc 2014 unraveling the mysteries of localization kitsStc 2014 unraveling the mysteries of localization kits
Stc 2014 unraveling the mysteries of localization kits
 
Glossary
GlossaryGlossary
Glossary
 
My Valentine Gift - YOU Decide
My Valentine Gift - YOU DecideMy Valentine Gift - YOU Decide
My Valentine Gift - YOU Decide
 
Putting Out Fires with Content Strategy (InfoDevDC meetup)
Putting Out Fires with Content Strategy (InfoDevDC meetup)Putting Out Fires with Content Strategy (InfoDevDC meetup)
Putting Out Fires with Content Strategy (InfoDevDC meetup)
 
Shrunken Head
 Shrunken Head  Shrunken Head
Shrunken Head
 
mobile development platforms
mobile development platformsmobile development platforms
mobile development platforms
 
Linguistic Potluck: Crowdsourcing localization with Rails
Linguistic Potluck: Crowdsourcing localization with RailsLinguistic Potluck: Crowdsourcing localization with Rails
Linguistic Potluck: Crowdsourcing localization with Rails
 
Pycon 2012 What Python can learn from Java
Pycon 2012 What Python can learn from JavaPycon 2012 What Python can learn from Java
Pycon 2012 What Python can learn from Java
 
Sample of instructions
Sample of instructionsSample of instructions
Sample of instructions
 
Open Software Platforms for Mobile Digital Broadcasting
Open Software Platforms for Mobile Digital BroadcastingOpen Software Platforms for Mobile Digital Broadcasting
Open Software Platforms for Mobile Digital Broadcasting
 
My trans kit checklist gw1 ds1_gw3
My trans kit checklist gw1 ds1_gw3My trans kit checklist gw1 ds1_gw3
My trans kit checklist gw1 ds1_gw3
 
Building Quality Experiences for Users in Any Language
Building Quality Experiences for Users in Any LanguageBuilding Quality Experiences for Users in Any Language
Building Quality Experiences for Users in Any Language
 
Internationalization in Rails 2.2
Internationalization in Rails 2.2Internationalization in Rails 2.2
Internationalization in Rails 2.2
 
Strategies for Friendly English and Successful Localization
Strategies for Friendly English and Successful LocalizationStrategies for Friendly English and Successful Localization
Strategies for Friendly English and Successful Localization
 
Designing for Multiple Mobile Platforms
Designing for Multiple Mobile PlatformsDesigning for Multiple Mobile Platforms
Designing for Multiple Mobile Platforms
 
Strategies for Friendly English and Successful Localization (InfoDevWorld 2014)
Strategies for Friendly English and Successful Localization (InfoDevWorld 2014)Strategies for Friendly English and Successful Localization (InfoDevWorld 2014)
Strategies for Friendly English and Successful Localization (InfoDevWorld 2014)
 

Similar to Pycon 2012 Apache Cassandra

ETL With Cassandra Streaming Bulk Loading
ETL With Cassandra Streaming Bulk LoadingETL With Cassandra Streaming Bulk Loading
ETL With Cassandra Streaming Bulk Loading
alex_araujo
 
fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)
fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)
fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)
Wesley Beary
 
Terrastore - A document database for developers
Terrastore - A document database for developersTerrastore - A document database for developers
Terrastore - A document database for developers
Sergio Bossa
 
#NewMeetup Performance
#NewMeetup Performance#NewMeetup Performance
#NewMeetup Performance
Justin Cataldo
 
Systems Bioinformatics Workshop Keynote
Systems Bioinformatics Workshop KeynoteSystems Bioinformatics Workshop Keynote
Systems Bioinformatics Workshop Keynote
Deepak Singh
 

Similar to Pycon 2012 Apache Cassandra (20)

ETL With Cassandra Streaming Bulk Loading
ETL With Cassandra Streaming Bulk LoadingETL With Cassandra Streaming Bulk Loading
ETL With Cassandra Streaming Bulk Loading
 
Burn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websitesBurn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websites
 
fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)
fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)
fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)
 
Sinatra and JSONQuery Web Service
Sinatra and JSONQuery Web ServiceSinatra and JSONQuery Web Service
Sinatra and JSONQuery Web Service
 
fog or: How I Learned to Stop Worrying and Love the Cloud
fog or: How I Learned to Stop Worrying and Love the Cloudfog or: How I Learned to Stop Worrying and Love the Cloud
fog or: How I Learned to Stop Worrying and Love the Cloud
 
Hadoop Integration in Cassandra
Hadoop Integration in CassandraHadoop Integration in Cassandra
Hadoop Integration in Cassandra
 
What's new in Django 1.2?
What's new in Django 1.2?What's new in Django 1.2?
What's new in Django 1.2?
 
SaltConf14 - Ben Cane - Using SaltStack in High Availability Environments
SaltConf14 - Ben Cane - Using SaltStack in High Availability EnvironmentsSaltConf14 - Ben Cane - Using SaltStack in High Availability Environments
SaltConf14 - Ben Cane - Using SaltStack in High Availability Environments
 
Harmonious Development: Via Vagrant and Puppet
Harmonious Development: Via Vagrant and PuppetHarmonious Development: Via Vagrant and Puppet
Harmonious Development: Via Vagrant and Puppet
 
Terrastore - A document database for developers
Terrastore - A document database for developersTerrastore - A document database for developers
Terrastore - A document database for developers
 
#NewMeetup Performance
#NewMeetup Performance#NewMeetup Performance
#NewMeetup Performance
 
Puppet at Opera Sofware - PuppetCamp Oslo 2013
Puppet at Opera Sofware - PuppetCamp Oslo 2013Puppet at Opera Sofware - PuppetCamp Oslo 2013
Puppet at Opera Sofware - PuppetCamp Oslo 2013
 
Streaming Way to Webscale: How We Scale Bitly via Streaming
Streaming Way to Webscale: How We Scale Bitly via StreamingStreaming Way to Webscale: How We Scale Bitly via Streaming
Streaming Way to Webscale: How We Scale Bitly via Streaming
 
Node Boot Camp
Node Boot CampNode Boot Camp
Node Boot Camp
 
Systems Bioinformatics Workshop Keynote
Systems Bioinformatics Workshop KeynoteSystems Bioinformatics Workshop Keynote
Systems Bioinformatics Workshop Keynote
 
Couchdb
CouchdbCouchdb
Couchdb
 
Kraken Front-Trends
Kraken Front-TrendsKraken Front-Trends
Kraken Front-Trends
 
Intro to Ember.JS 2016
Intro to Ember.JS 2016Intro to Ember.JS 2016
Intro to Ember.JS 2016
 
Streamline Hadoop DevOps with Apache Ambari
Streamline Hadoop DevOps with Apache AmbariStreamline Hadoop DevOps with Apache Ambari
Streamline Hadoop DevOps with Apache Ambari
 
PhpBB meets Symfony2
PhpBB meets Symfony2PhpBB meets Symfony2
PhpBB meets Symfony2
 

Recently uploaded

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Recently uploaded (20)

Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 

Pycon 2012 Apache Cassandra