本文整理汇总了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))