你正在運行哪個版本的Cassandra?如果你想去透過表編程,你可以嘗試從系統表查詢的模式:
如果你在卡桑德拉> = 3.x的+:
SELECT column_name FROM system_schema.columns
WHERE keyspace_name='yourkeyspacename' AND table_name='yourtablename';
如果你在卡桑德拉< = 2.2.x;
SELECT column_name FROM system.schema_columns
WHERE keyspace_name='yourkeyspacename' AND columnfamily_name ='yourtablename';
我怎麼能執行這個由python腳本Select語句?
如果我對Cassandra的運行2.2.5,我可以把上面的代碼,使之成爲一個Python腳本(cassConnect.py
)這樣的工作:
from cassandra.cluster import Cluster
from cassandra.auth import PlainTextAuthProvider
import sys
hostname=sys.argv[1]
username=sys.argv[2]
password=sys.argv[3]
keyspace=sys.argv[4]
table=sys.argv[5]
nodes = []
nodes.append(hostname)
auth_provider = PlainTextAuthProvider(username=username, password=password)
cluster = Cluster(nodes,auth_provider=auth_provider)
session = cluster.connect(keyspace)
pStatement = session.prepare("""
SELECT column_name FROM system.schema_columns WHERE keyspace_name=? AND columnfamily_name=?;
""")
rows = session.execute(pStatement,[keyspace,table])
for row in rows:
print row[0]
$ python cassConnect.py 127.0.0.1 aploetz bacon stackoverflow user
email
first
last
username
我怎麼能執行此Select語句從一個python腳本?正如我所提到的,我不能使用@TheScendant編輯所做的cqlsh命令行工具 – TheScendant
。 – Aaron
謝謝你,這是我需要的! – TheScendant