X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=datadb%2Fcompbio%2Fcassandra%2FCassandraReader.java;h=00f878ad1be07fa57361208257fa89cb7f6c65ea;hb=23ef7a6a36233ee82656f6d0f602b82f009847ed;hp=250c7053448d2b4d329f6e273f98c67fd2eb64c9;hpb=1128ff389aa843f434814b4a67fbc3b683683d12;p=proteocache.git diff --git a/datadb/compbio/cassandra/CassandraReader.java b/datadb/compbio/cassandra/CassandraReader.java index 250c705..00f878a 100644 --- a/datadb/compbio/cassandra/CassandraReader.java +++ b/datadb/compbio/cassandra/CassandraReader.java @@ -1,184 +1,39 @@ package compbio.cassandra; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.ArrayList; -import java.util.Map; - import org.apache.log4j.Logger; -import com.datastax.driver.core.Row; -import com.datastax.driver.core.Session; import com.datastax.driver.core.ResultSet; +import com.datastax.driver.core.Session; public class CassandraReader { + private static long earlestDate = 0; private Session session; private static Logger log = Logger.getLogger(CassandraNativeConnector.class); public CassandraReader() { Session inis = CassandraNativeConnector.getSession(); - setSession (inis); + setSession(inis); } public void setSession(Session s) { assert s != null; session = s; } - - /* - * getting data from the db - */ - public List> ReadProteinDataTable() { - final long startTime = System.currentTimeMillis(); - String com = "SELECT DataBegin,DataEnd FROM ProteinLog;"; - System.out.println("Command: " + com); - ResultSet results = session.execute(com); - final long queryTime = System.currentTimeMillis(); - List rows = results.all(); - System.out.println("Query time is " + (queryTime - startTime) + " msec"); - - List> res = new ArrayList>(); - int c = 0; - for (Row r : rows) { - Pair pair = new Pair(r.getString("DataBegin"), r.getString("DataEnd")); - res.add(pair); - ++c; - } - final long endTime = System.currentTimeMillis(); - System.out.println(c + " rows analysed, execution time is " + (endTime - startTime) + " msec"); - return res; - } - - /* - * getting data from the db JobDateInfo - */ - public List ReadDateTable(long queryDate) { - ResultSet results = session.execute("SELECT * FROM JobDateInfo WHERE jobday = " + queryDate + ";"); - if (results.isExhausted()) - return null; - Row therow = results.one(); - List res = new ArrayList(); - res.add(therow.getLong("Total")); - res.add(therow.getLong("TotalOK")); - res.add(therow.getLong("TotalStopped")); - res.add(therow.getLong("TotalError")); - res.add(therow.getLong("TotalTimeOut")); - if (!results.isExhausted()) { - Date date = new Date (queryDate); - log.warn("CassandraReader.ReadDateTable: date row for " + date.toString () + " ("+ queryDate + ") duplicated "); - } - return res; - } - /* - * getting whole protein sequence from the db ProteinRow - */ - public List ReadWholeSequence(String queryProtein) { - final long startTime = System.currentTimeMillis(); - String com = "SELECT JobID, Predictions FROM ProteinRow WHERE Protein = '" + queryProtein + "';"; - System.out.println("Command: " + com); - ResultSet results = session.execute(com); - if (results.isExhausted()) - return null; - final long queryTime = System.currentTimeMillis(); - List rows = results.all(); - System.out.println("Query time is " + (queryTime - startTime) + " msec"); - System.out.println(" rows analysed, " + rows.size()); - List res = new ArrayList(); - int c = 0; - for (Row r : rows) { - StructureProteinPrediction structure = new StructureProteinPrediction(queryProtein, r.getString("JobID"), r.getMap( - "Predictions", String.class, String.class)); - res.add(structure); - ++c; - } - final long endTime = System.currentTimeMillis(); - System.out.println(c + " rows analysed, execution time is " + (endTime - startTime) + " msec"); - return res; - } - - /* - * getting part of protein sequence from the db ProteinRow - */ - public List ReadPartOfSequence(String queryProtein) { - final long startTime = System.currentTimeMillis(); - String com = "SELECT * FROM ProteinRow;"; + + public ResultSet CassandraQuery(String column, String table, String condition) { + String com = "SELECT " + column + " FROM " + table + ";"; System.out.println("Command: " + com); ResultSet results = session.execute(com); - if (results.isExhausted()) - return null; - final long queryTime = System.currentTimeMillis(); - List rows = results.all(); - System.out.println("Query time is " + (queryTime - startTime) + " msec"); - System.out.println(" rows analysed, " + rows.size()); - List res = new ArrayList(); - int c = 0; - for (Row r : rows) { - String prot = r.getString("Protein"); - if (prot.matches("(.*)" + queryProtein + "(.*)")) { - StructureProteinPrediction structure = new StructureProteinPrediction(prot, r.getString("JobID"), r.getMap("Predictions", - String.class, String.class)); - res.add(structure); - ++c; - } - } - final long endTime = System.currentTimeMillis(); - System.out.println(c + " rows analysed, execution time is " + (endTime - startTime) + " msec"); - return res; + return results; } - + /* - * getting protein sequences by counter + * find the earliest date in the database */ - public Map ReadProteinSequenceByCounter() { - final long startTime = System.currentTimeMillis(); - String com = "SELECT Protein, JobID FROM ProteinRow;"; - System.out.println("Command: " + com); - ResultSet results = session.execute(com); - if (results.isExhausted()) - return null; - final long queryTime = System.currentTimeMillis(); - List rows = results.all(); - System.out.println("Query time is " + (queryTime - startTime) + " msec"); - System.out.println(" rows analysed, " + rows.size()); - Map res = new HashMap(); - int c = 0; - for (Row r : rows) { - String protein = r.getString("Protein"); - String id = r.getString("JobID"); - if (res.containsKey(protein)) - res.put(protein, res.get(protein) + 1); - else - res.put(protein, 1); - } - final long endTime = System.currentTimeMillis(); - System.out.println(c + " rows analysed, execution time is " + (endTime - startTime) + " msec"); - return res; + public static long earliestDate() { + earlestDate = CassandraNativeConnector.getEarliestDateInDB(); + return earlestDate; } - /* - * getting protein sequences by counter - */ - public StructureJobLog ReadJobLog(String jobid) { - final long startTime = System.currentTimeMillis(); - String com = "SELECT * FROM ProteinLog WHERE JobID = '" + jobid + "';"; - System.out.println("Command: " + com); - ResultSet results = session.execute(com); - if (results.isExhausted()) - return null; - final long queryTime = System.currentTimeMillis(); - Row row = results.one(); - String com1 = "SELECT * FROM ProteinRow WHERE JobID = '" + jobid + "' ALLOW FILTERING;"; - System.out.println("Command: " + com1); - ResultSet results1 = session.execute(com1); - if (results1.isExhausted()) - return null; - Row row1 = results1.one(); - StructureJobLog res = new StructureJobLog(row.getString("Protein"), row.getString("JobID"), row.getString("DataBegin"), - row.getString("DataEnd"), row.getString("ip"), row1.getMap("Predictions", String.class, String.class)); - System.out.println("Query time is " + (queryTime - startTime) + " msec"); - final long endTime = System.currentTimeMillis(); - System.out.println(" rows analysed, execution time is " + (endTime - startTime) + " msec"); - return res; - } + }