当前位置: 首页>>代码示例>>Python>>正文


Python Cluster.cursor方法代码示例

本文整理汇总了Python中cassandra.cluster.Cluster.cursor方法的典型用法代码示例。如果您正苦于以下问题:Python Cluster.cursor方法的具体用法?Python Cluster.cursor怎么用?Python Cluster.cursor使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在cassandra.cluster.Cluster的用法示例。


在下文中一共展示了Cluster.cursor方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: main

# 需要导入模块: from cassandra.cluster import Cluster [as 别名]
# 或者: from cassandra.cluster.Cluster import cursor [as 别名]
def main(args):
    parser = OptionParser()
    parser.add_option("", "--batch", dest="batch", type="int", default=100, help="query batch size, default: 100")
    parser.add_option("", "--count", dest="count", type="int", default=10, help="number of query iterations, default: 10")
    parser.add_option("", "--phost", dest="phost", default=None, help="Postgres host")
    parser.add_option("", "--pname", dest="pname", default=None, help="Postgres name")
    parser.add_option("", "--puser", dest="puser", default=None, help="Postgres user")
    parser.add_option("", "--chost", dest="chost", default=None, help="Cassandra host")
    parser.add_option("", "--cname", dest="cname", default=None, help="Cassandra name")
    parser.add_option("", "--shost", dest="shost", default=None, help="SOLR host")
    parser.add_option("", "--sname", dest="sname", default=None, help="SOLR collection")
    (opts, args) = parser.parse_args()
    
    handle = None
    mode = ""
    
    # test PSQL
    if opts.phost and opts.pname and opts.puser:
        mode = "sql"
        handle = psycopg2.connect(
            host=opts.phost,
            database=opts.pname,
            user=opts.puser
        )
    # test CASS
    elif opts.chost and opts.cname:
        mode = "cql"
        handle = Cluster(
            contact_points=[opts.chost],
            default_retry_policy = RetryPolicy()
        )
    # test solr
    elif opts.shost and opts.sname:
        mode = "solr"
        surl = "http://"+opts.shost+"/solr/"+opts.sname+"/select"
        shead = {'Content-Type': 'application/x-www-form-urlencoded'}
        sfields = "%2C".join(['md5_id', 'source', 'md5', 'accession', 'function', 'organism'])
    else:
        parser.error("Invalid usage")
    
    start = time.time()
    found = set()
    for i in range(opts.count):
        ints = random_array(opts.batch)
        query = "SELECT * FROM md5_id_annotation WHERE id IN ("+",".join(map(str, ints))+");"
        if mode == "sql":
            cursor = handle.cursor()
            cursor.execute(query)
            data = cursor.fetchone()
            while (data):
                found.add(data[2])
                data = cursor.fetchone()
        elif mode == "cql":
            session = handle.connect(opts.cname)
            rows = session.execute(query)
            for r in rows:
                found.add(r.md5)
        elif mode == "solr":
            query = "md5_id:("+" OR ".join(map(str, ints))+")"
            sdata = "q=*%3A*&fq="+query+"&start=0&rows=1000000000&wt=json&fl="+sfields
            req = requests.post(surl, headers=shead, data=sdata, allow_redirects=True)
            rj = req.json()
            for d in rj['response']['docs']:
                found.add(d['md5'])
    
    end = time.time()
    print "%d loops of size %d ran in %d seconds"%(opts.count, opts.batch, int(round(end-start)))
    print "%d ids requested, %d md5s found"%((opts.count * opts.batch), len(found))
开发者ID:annafhuff,项目名称:MG-RAST,代码行数:70,代码来源:test_cass.py


注:本文中的cassandra.cluster.Cluster.cursor方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。