1 package compbio.cassandra;
3 import java.util.Calendar;
7 import org.apache.log4j.Logger;
9 import com.datastax.driver.core.Row;
10 import com.datastax.driver.core.Session;
11 import com.datastax.driver.core.ResultSet;
12 import com.datastax.driver.core.PreparedStatement;
13 import com.datastax.driver.core.BoundStatement;
14 import com.datastax.driver.core.exceptions.QueryExecutionException;
16 import compbio.engine.ProteoCachePropertyHelperManager;
17 import compbio.cassandra.CassandraNativeConnector;
19 public class CassandraNewTableWriter {
20 private Session session;
21 private static Logger log = Logger.getLogger(CassandraNativeConnector.class);
23 public CassandraNewTableWriter() {
24 Session inis = CassandraNativeConnector.getSession();
28 public void setSession(Session s) {
33 public boolean JobisNotInsterted(String jobid) {
34 ResultSet results1 = session.execute("SELECT * FROM ProteinLog WHERE JobID = '" + jobid + "';");
35 if (results1.isExhausted()) {
41 public boolean JobisNotArchived(String jobid) {
42 ResultSet results1 = session.execute("SELECT * FROM JpredArchive WHERE JobID = '" + jobid + "';");
43 if (results1.isExhausted()) {
50 * update programme name and version
52 public void FillNewParameter() {
53 System.out.println("Updating....");
55 final long StartTime = System.currentTimeMillis();
56 long erldate = CassandraNativeConnector.getEarliestDateInDB();
57 Calendar runnicCal = Calendar.getInstance();
58 runnicCal.setTime(new Date(erldate));
59 Calendar endcal = Calendar.getInstance();
60 long endTime = endcal.getTime().getTime();
61 for (Date date = runnicCal.getTime(); date.getTime() < endTime; runnicCal.add(Calendar.DATE, 1), date = runnicCal.getTime()) {
63 String com = "SELECT JobID, Protein FROM ProteinData WHERE jobtime = " + date.getTime() + ";";
64 System.out.println(com);
65 ResultSet results = session.execute(com);
66 if (results == null || results.isExhausted())
68 List<Row> rows = results.all();
69 System.out.println(rows.size());
71 session.execute("UPDATE ProteinLog SET ProgramName = 'Jpred', ProgramVersion = '3.0.1' WHERE JobID = '"
72 + r.getString("JobID") + "';");
73 session.execute("UPDATE JpredArchive SET ProgramName = 'Jpred', ProgramVersion = '3.0.1' WHERE JobID = '"
74 + r.getString("JobID") + "';");
76 } catch (QueryExecutionException e) {
80 System.out.println("Table ProteinLog filled: total time is " + (System.currentTimeMillis() - StartTime) + " msec");
86 public void FillNewTable() {
87 final long StartTime = System.currentTimeMillis();
88 long erldate = CassandraNativeConnector.getEarliestDateInDB();
89 Calendar runnicCal = Calendar.getInstance();
90 runnicCal.setTime(new Date(erldate));
91 Calendar endcal = Calendar.getInstance();
92 long endTime = endcal.getTime().getTime();
93 for (Date date = runnicCal.getTime(); date.getTime() < endTime; runnicCal.add(Calendar.DATE, 1), date = runnicCal.getTime()) {
95 ResultSet results = session.execute("SELECT * FROM ProteinData WHERE jobtime = " + date.getTime() + ";");
96 session.execute("INSERT INTO JobDateInfo " + "(jobday, Total)" + " VALUES (" + date.getTime() + "," + results.all().size()
98 } catch (QueryExecutionException e) {
102 System.out.println("Table JobDateInfo filled: total time is " + (System.currentTimeMillis() - StartTime) + " msec");
106 * fill a table with the database global parameters
108 public void FillMainDBParameters() {
109 Date bubu = new Date(CassandraNativeConnector.getEarliestDateInDB());
110 System.out.println("Old EarliestJobDate is " + bubu.toString());
112 String query1 = "SELECT jobtime FROM ProteinData LIMIT 2000000;";
113 System.out.println("Query db: " + query1);
114 ResultSet results = session.execute(query1);
115 Calendar endcal = Calendar.getInstance();
116 long newearliestday = endcal.getTime().getTime();
117 while (!results.isExhausted()) {
118 Row r = results.one();
119 long day = r.getLong("jobtime");
120 if (day < newearliestday) {
121 newearliestday = day;
124 String com = "INSERT INTO MainParameters " + "(Name, Value)" + " VALUES ('EarliestJobDate','" + String.valueOf(newearliestday)
126 session.execute(com);
127 Date gaga = new Date(newearliestday);
128 System.out.println("New EarliestJobDate is " + gaga.toString());