import java.io.IOException;
import java.util.Calendar;
-import java.util.HashMap;
import java.util.List;
import java.util.ArrayList;
public class CassandraNativeConnector {
private static Cluster cluster;
private static Session session;
+
/*
* connect to the cluster and look weather the dababase has any data inside
*/
session.execute("CREATE COLUMNFAMILY IF NOT EXISTS ProteinKeyspace.ProteinLog "
+ "(JobID ascii, DataBegin ascii, DataEnd ascii, ip ascii, FinalStatus ascii, ExecutionStatus ascii, Protein ascii, PRIMARY KEY(JobID));");
session.execute("CREATE COLUMNFAMILY IF NOT EXISTS ProteinKeyspace.ProteinData (jobtime bigint, JobID ascii, Protein ascii, PRIMARY KEY(JobID));");
+ session.execute("CREATE COLUMNFAMILY IF NOT EXISTS ProteinKeyspace.JpredArchive " +
+ "(JobID ascii, Protein varchar, IP ascii, StartTime bigint, ExecTime int, alignment map<ascii,ascii>, predictions map<ascii,ascii>, archive blob, LOG varchar, PRIMARY KEY(JobID));");
session.execute("CREATE INDEX IF NOT EXISTS ProteinSeq ON ProteinKeyspace.ProteinRow (protein);");
session.execute("CREATE INDEX IF NOT EXISTS JobDateStamp ON ProteinKeyspace.ProteinData (jobtime);");
/*
* inserting data into the db
*/
- public void InsertData(long jobtime, String startdate, String enddate, String ip, String jobid, String statusEx, String statusFinal,
+ public void FormQueryTables(long jobtime, String startdate, String enddate, String ip, String jobid, String statusEx, String statusFinal,
String protein, List<FastaSequence> predictions) {
String check1 = "SELECT * FROM ProteinKeyspace.ProteinLog WHERE JobID = '" + jobid + "';";
String check2 = "SELECT * FROM ProteinKeyspace.ProteinRow WHERE JobID = '" + jobid + "';";
ResultSet results2 = session.execute(check2);
if (results2.isExhausted()) {
- String com3 = "INSERT INTO ProteinKeyspace.ProteinRow " + "(Protein, JobID, Predictions)" + " VALUES ('"
- + protein + "','" + jobid + "',{" + final_prediction + "});";
+ String com3 = "INSERT INTO ProteinKeyspace.ProteinRow " + "(Protein, JobID, Predictions)" + " VALUES ('" + protein + "','"
+ + jobid + "',{" + final_prediction + "});";
session.execute(com3);
}
}
}
+ public void ArchiveData(long starttime, int exectime, String ip, String jobid, String statusEx, String statusFinal,
+ String protein, List<FastaSequence> predictions, List<FastaSequence> seqs, String LogFile) {
+
+ String check1 = "SELECT * FROM ProteinKeyspace.JpredArchive WHERE JobID = '" + jobid + "';";
+ ResultSet results1 = session.execute(check1);
+ if (results1.isExhausted()) {
+ String allpredictions = "";
+ for (FastaSequence pred : predictions) {
+ String predictionname = pred.getId();
+ String prediction = pred.getSequence().replaceAll("\n", "");
+ allpredictions += "'" + predictionname + "':'" + prediction + "',";
+ }
+ String final_allpredictions = "";
+ if (null != allpredictions) {
+ final_allpredictions = allpredictions.substring(0, allpredictions.length() - 1);
+ }
+ String alignment = "";
+ for (FastaSequence seq : seqs) {
+ String predictionname = seq.getId();
+ String prediction = seq.getSequence().replaceAll("\n", "");
+ alignment += "'" + predictionname + "':'" + prediction + "',";
+ }
+ String final_alignment = "";
+ if (null != allpredictions) {
+ final_alignment = alignment.substring(0, allpredictions.length() - 1);
+ }
+
+ String com1 = "INSERT INTO ProteinKeyspace.JpredArchive "
+ + "(JobID, Protein, IP, StartTime, ExecTime, alignment, predictions, LOG))"
+ + " VALUES ('"
+ + jobid + "','" + protein + "','" + ip + "'," + starttime + "," + exectime
+ + "',[" + final_allpredictions + "],[" + final_alignment + "],'" + LogFile + "]);";
+ session.execute(com1);
+ }
+ }
+
+
+
/*
* getting data from the db
*/
ResultSet results = session.execute(com);
final long queryTime = System.currentTimeMillis();
List<Row> rows = results.all();
- System.out.println ("Query time is " + (queryTime - startTime) + " msec");
+ System.out.println("Query time is " + (queryTime - startTime) + " msec");
List<Pair<String, String>> res = new ArrayList<Pair<String, String>>();
int c = 0;
for (Row r : rows) {
- Pair<String, String> pair = new Pair<String, String>(r.getString("DataBegin"),r.getString("DataEnd"));
+ Pair<String, String> pair = new Pair<String, String>(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");
+ System.out.println(c + " rows analysed, execution time is " + (endTime - startTime) + " msec");
return res;
}
System.out.println("Command: " + com);
ResultSet results = session.execute(com);
final long queryTime = System.currentTimeMillis();
- System.out.println ("Query time is " + (queryTime - startTime) + " msec");
+ System.out.println("Query time is " + (queryTime - startTime) + " msec");
Calendar cal = Calendar.getInstance();
long res = cal.getTimeInMillis();
++c;
}
final long endTime = System.currentTimeMillis();
- System.out.println (c + " rows analysed, execution time is " + (endTime - startTime) + " msec");
+ System.out.println(c + " rows analysed, execution time is " + (endTime - startTime) + " msec");
return res;
}
-
+
}