首页 > 代码库 > python cassandra 创建space table并写入和查询数据
python cassandra 创建space table并写入和查询数据
from cassandra.cluster import Cluster cluster = 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 table session.set_keyspace(keyspacename) s = session try: s.execute("CREATE TABLE blobbytes (a ascii PRIMARY KEY, b blob)") except: pass params = [‘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.b try: s.execute("CREATE TABLE list_test (a ascii PRIMARY KEY, b list<blob>)") except: pass params = [‘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并写入和查询数据
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。