zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    常用正则表达式大全摘录
    非常好用的CSS样式重置表
    Vue2.0 Props双向绑定报错简易处理办法
    kuangbin带我飞QAQ DLX之一脸懵逼
    乘法逆元+快速幂
    kuangbin带我飞QAQ 线段树
    kuangbin带我飞QAQ 最短路
    uva11401:Triangle Counting 递推 数学
    分块
    今日头条”杯2018年湖北省赛(网络赛)
  • 原文地址:https://www.cnblogs.com/bonelee/p/6518686.html
Copyright © 2011-2022 走看看