標籤:port blog mongo asc param sample exec rom select
from cassandra.cluster import Clustercluster = Cluster(["10.178.209.161"])session = cluster.connect()keyspacename = "demo_space"session.execute("create keyspace %s with replication = {‘class‘: ‘SimpleStrategy‘, ‘replication_factor‘: 1};" % keyspacename)# use keyspace; create a sample tablesession.set_keyspace(keyspacename)s = sessiontry: s.execute("CREATE TABLE blobbytes (a ascii PRIMARY KEY, b blob)")except: passparams = [‘key1‘, bytearray(b‘blob1‘)]s.execute("INSERT INTO blobbytes (a, b) VALUES (%s, %s)", params)results = s.execute("SELECT * FROM blobbytes")print "********************"for x in results: print x.a, x.btry: s.execute("CREATE TABLE list_test (a ascii PRIMARY KEY, b list<blob>)")except: passparams = [‘some key here‘, [bytearray(b‘blob1‘), bytearray(b‘hello world‘)]]s.execute("INSERT INTO list_test (a, b) VALUES (%s, %s)", params)results = s.execute("SELECT * FROM list_test")print "********************"for x in results: print x.a, x.b
結果:
********************key1 blob1********************some key here [‘blob1‘, ‘hello world‘]
最後補充:
cassandra的update和mongo的upsert效果一樣!如果where的條件不滿足,則會insert into!
params2 = [[bytearray(b‘blob2‘), bytearray(b‘hello world2‘)], "other key"]s.execute("UPDATE list_test set b = b + %s WHERE a = %s", params2)# 會直接將other key的東西插入資料庫!如果other key不存在的話!
見:http://stackoverflow.com/questions/17348558/does-an-update-become-an-implied-insert
python cassandra 建立space table並寫入和查詢資料