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

  • 相关阅读:
    windows10安装vmware14教程
    MySQL变量的使用
    软考和软件设计师
    Java web加密之将应用从http换成https的方法
    cmd命令net和sc
    cmd命令 taskkill
    CSS系列:CSS的继承与层叠特性
    CSS系列:CSS选择器
    CSS系列:在HTML中引入CSS的方法
    Sql Server系列:索引维护
  • 原文地址:https://www.cnblogs.com/bonelee/p/6518686.html
Copyright © 2011-2022 走看看