Add filling new tables with data from old tables
[proteocache.git] / datadb / compbio / cassandra / CassandraNewTableWriter.java
1 package compbio.cassandra;
2
3 import java.util.Calendar;
4 import java.util.Date;
5 import java.util.List;
6
7 import org.apache.log4j.Logger;
8
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
15 import compbio.engine.ProteoCachePropertyHelperManager;
16 import compbio.cassandra.CassandraNativeConnector;
17 import compbio.util.PropertyHelper;
18
19 public class CassandraNewTableWriter {
20         private Session session;
21         private static Logger log = Logger.getLogger(CassandraNativeConnector.class);
22
23         public CassandraNewTableWriter() {
24                 Session inis = CassandraNativeConnector.getSession();
25                 setSession(inis);
26         }
27
28         public void setSession(Session s) {
29                 assert s != null;
30                 session = s;
31         }
32
33         public boolean JobisNotInsterted(String jobid) {
34                 ResultSet results1 = session.execute("SELECT * FROM ProteinLog WHERE JobID = '" + jobid + "';");
35                 if (results1.isExhausted()) {
36                         return true;
37                 }
38                 return false;
39         }
40
41         public boolean JobisNotArchived(String jobid) {
42                 ResultSet results1 = session.execute("SELECT * FROM JpredArchive WHERE JobID = '" + jobid + "';");
43                 if (results1.isExhausted()) {
44                         return true;
45                 }
46                 return false;
47         }
48
49         /*
50          * fill new table
51          */
52         public void FillNewTable() {
53                 long date1 = CassandraNativeConnector.getEarliestDateInDB();
54                 Calendar start = Calendar.getInstance();
55                 start.setTime(new Date(date1));
56                 Calendar endcal = Calendar.getInstance();
57                 Date end = endcal.getTime();
58                 for (Date date = start.getTime(); !start.after(end); start.add(Calendar.DATE, 1), date = start.getTime()) {
59                         String query1 = "SELECT * FROM ProteinData WHERE jobtime = " + date.getTime() + ";";
60                         System.out.println("Query db: " + query1);
61                         ResultSet results = session.execute(query1);
62                         String query2 = "INSERT INTO JobDateInfo " + "(jobday, Total)" + " VALUES (" + date.getTime() + "," + results.all().size()+ ");";
63                         System.out.println("Insert DB: " + query2);
64                         session.execute(query2);
65                 }
66                 System.out.println("Table JobDateInfo filled");
67         }
68         
69         /*
70          * fill new table
71          */
72         public void FillParameters() {
73                 Date bubu = new Date(CassandraNativeConnector.getEarliestDateInDB());
74                 System.out.println("Old EarliestJobDate is " + bubu.toString());
75
76                 String query1 = "SELECT jobtime FROM ProteinData LIMIT 2000000;";
77                 System.out.println("Query db: " + query1);
78                 ResultSet results = session.execute(query1);
79                 Calendar endcal = Calendar.getInstance();
80                 long newearliestday = endcal.getTime().getTime();
81                 while (!results.isExhausted()) {
82                         Row r = results.one();
83                         long day = r.getLong("jobtime");
84                         if (day < newearliestday) {
85                                 newearliestday = day;
86                         }
87                 }
88                 String com = "INSERT INTO MainParameters " + "(Name, Value)" + " VALUES ('EarliestJobDate','" + String.valueOf(newearliestday)
89                                 + "');";
90                 session.execute(com);
91                 Date gaga = new Date(newearliestday);
92                 System.out.println("New EarliestJobDate is " + gaga.toString());
93         }
94 }