Cassandra 系統資訊

程式碼回首頁

# -*- coding: utf-8 -*- from datetime import datetime from cassandra.cluster import Cluster class LoadRunner: startTime = None session = None def __init__(self): pass def start(self): self.startTime = datetime.utcnow() def stop(self): stopTime = datetime.utcnow() elapseTime = stopTime - self.startTime return elapseTime def connectDB(self, nodes): cluster = Cluster(nodes) self.session = cluster.connect() def runCQL(self, cql): self.session.execute(cql) def runQuery(self, cql): resultSetDB = self.session.execute(cql) return resultSetDB def closeDB(self): self.session.cluster.shutdown() def showKeySpaces(self): cql = "SELECT keyspace_name FROM system.schema_keyspaces" resultSetDB = loadRunner.runQuery(cql) for rowDB in resultSetDB: for keyspace_name in rowDB: print keyspace_name def showTables(self, nameKeySpace): cql = "SELECT columnfamily_name FROM system.schema_columnfamilies " \ "WHERE keySpace_name='%s'" % (nameKeySpace) resultSetDB = loadRunner.runQuery(cql) if resultSetDB is not None: print nameKeySpace for rowDB in resultSetDB: for columnfamily_name in rowDB: print "\t%s" % (columnfamily_name) def showIndexes(self, nameKeySpace, nameTable): cql = "SELECT column_name, index_name, index_options, " \ "index_type, component_index " \ "FROM system.schema_columns " \ "WHERE keySpace_name='%s' AND columnfamily_name='%s'" % \ (nameKeySpace, nameTable) resultSetDB = loadRunner.runQuery(cql) if resultSetDB is not None: print "%s\t%s" % (nameKeySpace, nameTable) for rowDB in resultSetDB: (column_name, index_name, index_options, index_type, component_index) = rowDB print "\tcolumn_name='%s'" % (column_name) if index_name is not None: print "\t\tindex_name='%s'" % (index_name) if (index_options is not None) and (index_options != 'null'): print "\t\tindex_options='%s'" % (index_options) if index_type is not None: print "\t\tindex_type='%s'" % (index_type) print "\t\tcomponent_index='%s'" % (component_index) if __name__ == "__main__": nameKeySpace = 'smarthome' nameTable = 'stockmarket' loadRunner = LoadRunner() loadRunner.connectDB(['127.0.0.1']) loadRunner.start() loadRunner.showKeySpaces() loadRunner.showTables(nameKeySpace) resultSetDB = loadRunner.showIndexes(nameKeySpace, nameTable) print loadRunner.stop() loadRunner.closeDB()