Creating a Table in HBase from a Java program with bulk load ( with Table varaibles as Run Configurations)

Problem Statement : Create a HBase table by giving the specifications as run configuration to the program and entire data file by accessing it.


__________________________________________________
create a java program in any IDE as HBaseCreateLoad.java(code below)


import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
//import java.util.ArrayList;
//import java.util.List;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.KeyValue;
import org.apache.hadoop.hbase.MasterNotRunningException;
import org.apache.hadoop.hbase.ZooKeeperConnectionException;
//import org.apache.hadoop.hbase.client.Delete;
//import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.ResultScanner;
import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.util.Bytes;


public class HBaseCreateLoad {

        /**
             * @param args
         */
   
    private static Configuration conf = null;
   
              /**
                   * Initialization
             */

   static {
            conf = HBaseConfiguration.create();
         // Passing the HBase configurations to the program
          }
     
         /**
          * Create a table
        */

    public static void creatTable(String tableName, String[] familys)
    throws Exception
 {
          HBaseAdmin admin = new HBaseAdmin(conf);
         if (admin.tableExists(tableName)) {
               System.out.println("table already exists!");
          }
          else {
                   @SuppressWarnings("deprecation")
               HTableDescriptor tableDesc = new HTableDescriptor(tableName);
                     for (int i = 0; i < familys.length; i++) {
                             tableDesc.addFamily(new HColumnDescriptor(familys[i]));
                       }
         admin.createTable(tableDesc);
         System.out.println("create table " + tableName + " ok.");
             }
    }
  
    public static void deleteTable(String tableName) throws Exception {
    try {
          HBaseAdmin admin = new HBaseAdmin(conf);
         admin.disableTable(tableName);
           admin.deleteTable(tableName);
          System.out.println("delete table " + tableName + " ok.");
         }
     catch (MasterNotRunningException e)
             {
                    e.printStackTrace();
             }
    catch (ZooKeeperConnectionException e) {
                e.printStackTrace();
           }
    }

   /**
    * Put (or insert) a row
    */

    public static void addRecords(String tableName, String[] cFamily,String fp,String[] cols) throws Exception {
 
    //Here fp is location url to file to load , tableName is the name of the table
    // cFamily is the string array to notify how many column families should be in table
    //cols is the string array carrying names of column qualifiers that goes with column family
            try {
                    //reading comma seperated file
                      String csvfile = fp.toString();
                      BufferedReader br = new BufferedReader(new FileReader(csvfile));
                      String line;
                       int row= 0;                
                      //Accessing the table in hbase
                       HTable table = new HTable(conf,tableName);
                       Put p ;                  
                
                 while((line = br.readLine())!=null){
                     int i =0;
                     row++;
                     String value[] = line.split(",");
                     String rowid = Integer.toString(row);
                    // int colNum = cols.length;
                  
                     // here we are adding the value[] values from the csv file we read
                     //cFamily[0],cFamily[1] which are basically passed in run configurations of the program run
                     //cFamily[0],cFamily[1] would be "exName" "stkNm" as per requirement
                     //cols[] is the column qualifiers names as per requirement passed in program execution
                     //cols[] names are "exnm" "tkr" "tdate" "opr" "hpr" "lpr" "cpr" "svol" "pravg"
                     //As per problem statement the first data values in csv file goes into first column family of
                      //"exName" with column qualifier "exnm" while the remaining in column family "stkNm"

                     p = new Put(Bytes.toBytes(rowid));                   
                     p.add(Bytes.toBytes(cFamily[0].toString()), Bytes.toBytes(cols[i]),Bytes.toBytes(value[0]));
                  
                    //increment of column qualifier position every time after adding the current one in varaible i
                     i=i+1;
                     p.add(Bytes.toBytes(cFamily[1].toString()), Bytes.toBytes(cols[i]),Bytes.toBytes(value[1]));
                     i=i+1;
                     p.add(Bytes.toBytes(cFamily[1].toString()), Bytes.toBytes(cols[i]),Bytes.toBytes(value[2]));
                     i=i+1;
                     p.add(Bytes.toBytes(cFamily[1].toString()), Bytes.toBytes(cols[i]),Bytes.toBytes(value[3]));
                     i=i+1;
                     p.add(Bytes.toBytes(cFamily[1].toString()), Bytes.toBytes(cols[i]),Bytes.toBytes(value[4]));
                     i=i+1;
                     p.add(Bytes.toBytes(cFamily[1].toString()), Bytes.toBytes(cols[i]),Bytes.toBytes(value[5]));
                     i=i+1;
                     p.add(Bytes.toBytes(cFamily[1].toString()), Bytes.toBytes(cols[i]),Bytes.toBytes(value[6]));
                     i=i+1;
                     p.add(Bytes.toBytes(cFamily[1].toString()), Bytes.toBytes(cols[i]),Bytes.toBytes(value[7]));
                     i=i+1;
                     p.add(Bytes.toBytes(cFamily[1].toString()), Bytes.toBytes(cols[i]),Bytes.toBytes(value[8]));
                     table.put(p);
                   
                     //System.out.println("Value : "+ value[8]);
                 }        
              
                /*HTable table = new HTable(conf, tableName);
                           Put put = new Put(Bytes.toBytes(rowKey));
                     put.add(Bytes.toBytes(family), Bytes.toBytes(qualifier), Bytes
                          .toBytes(value));
                    table.put(put);
                   System.out.println("insert recored " + rowKey + " to table "
                  + tableName + " ok."); */

                 } catch (IOException e) {
                        e.printStackTrace();
                  }
            }
  
          
    @SuppressWarnings("deprecation")
    public static void getAllRecord (String tableName) {
        try{
               HTable table = new HTable(conf, tableName);
                 Scan s = new Scan();
                ResultScanner ss = table.getScanner(s);
                for(Result r :ss){
                         for(KeyValue kv : r.raw()){
                                 System.out.print(new String(kv.getRow()) + " ");
                                 System.out.print(new String(kv.getFamily()) + ":");
                                System.out.print(new String(kv.getQualifier()) + " ");
                               System.out.print(kv.getTimestamp() + " ");
                              System.out.println(new String(kv.getValue()));
                          }
              }
        } catch (IOException e){
                 e.printStackTrace();
               }
    }  
   
    public static void main(String[] args) {
        // TODO Auto-generated method stub
       //A String of ARGS is passed in the main method as per our problem statement
      // args[] contains the data "stocktable"  2 "exName" "stkNm"  "/home/hadoop/Desktop/nyse" "exnm"   
        //"tkr" "tdate" "opr" "hpr" "lpr" "cpr" "svol" "pravg"

         try {
             //access the table name from args in position 0
               String tablename = args[0].toString();
              //Access the total number of column family  must be in the table which is identified by a number in  args position number 1 and relating their names 
                String[] familys =new String[Integer.parseInt(args[1])];
                for(int i=0;(i < Integer.parseInt(args[1]));i++ ){
                int temp1 =(2+i);
                familys[i] = args[temp1].toString();
                }
            //create a table with table name and column family information by accessing ceatTable() function 
            HBaseCreateLoad.creatTable(tablename, familys);

             // To find the file csv path url in args[] position of 4
              int fpath = ((Integer.parseInt(args[1]))+2);
              System.out.println("fpath variable postion value " +fpath);

            // Retrieving the names of the columns qualifier and their starting position in args[]
            int colNames =fpath+1;
            System.out.println("column  variables postion start value " +colNames);
            int argsLen =(args.length-1);
            String[] colTemp = new String[argsLen-fpath];
            int cVar1=0;
               while(colNames<=argsLen){
                       colTemp[cVar1]= args[colNames].toString();
                        System.out.println("column  variables value " +colTemp[cVar1]);
                       cVar1=cVar1+1;
                       colNames =colNames+1;
                       }
              //add entire file
                System.out.println("fpath variable value " + args[fpath].toString());
               HBaseCreateLoad.addRecords(tablename,familys,args[fpath],colTemp);
             
               System.out.println("===========show all record========");
               HBaseCreateLoad.getAllRecord(tablename);
            } catch (Exception e) {
                    e.printStackTrace();
                    }
            }
   
    }
________________________________________________________________
Run the HBaseCreateLoad.java with Run configurations shown below.

"stocktable"  2 "exName" "stkNm"  "/home/hadoop/Desktop/nyse" "exnm" "tkr" "tdate" "opr" "hpr" "lpr" "cpr" "svol" "pravg"
------
Note:(By analyzing the data in data file "nyse") see above

1)Given table name as "stocktable"
2)configured the entire data in two column families , (exName, stkNm)
3)the data file location (/home/hadoop/Desktop/nyse)
4) the column Qualifiers give as("exnm" "tkr" "tdate" "opr" "hpr" "lpr" "cpr" "svol" "pravg")

_______________________________________________________
Once the program is executed .Go to $HBASE_HOME/bin>hbase shell
Make sure the HBase is running .
In Hbase shell
hbase>list
hbase>scan 'stocktable'
___________________________________________________________________
The data file used:
file named nyse (on Desktop)

NYSE,QTM,08-02-2010,2.37,2.42,2.29,2.36,3013600,2.36
NYSE,QTM,05-02-2010,2.38,2.5,2.34,2.41,2687600,2.41
NYSE,QTM,04-02-2010,2.57,2.64,2.39,2.46,4529800,2.46
NYSE,QTM,03-02-2010,2.64,2.67,2.55,2.63,2688600,2.63
NYSE,QTM,02-02-2010,2.69,2.76,2.56,2.66,2959700,2.66
NYSE,QTM,01-02-2010,2.6,2.8,2.52,2.67,5050100,2.67
NYSE,QTM,29-01-2010,2.63,2.73,2.26,2.56,16484000,2.56
NYSE,QTM,28-01-2010,3.09,3.09,2.95,3.06,3986400,3.06
NYSE,QTM,27-01-2010,3.03,3.1,2.99,3.03,2431900,3.03
NYSE,QTM,26-01-2010,3.07,3.18,3,3.03,4027600,3.03
NYSE,QTM,25-01-2010,2.94,3.07,2.93,3.03,2285400,3.03
NYSE,QTM,22-01-2010,2.94,3.1,2.89,2.9,2986700,2.9
NYSE,QTM,21-01-2010,2.94,3.11,2.92,2.95,4547800,2.95
NYSE,QTM,20-01-2010,2.94,2.97,2.88,2.93,1883900,2.93
NYSE,QTM,19-01-2010,2.89,2.94,2.88,2.94,2089700,2.94
NYSE,QTM,15-01-2010,2.86,2.96,2.85,2.88,2908000,2.88
NYSE,QTM,14-01-2010,2.91,2.98,2.88,2.92,3425500,2.92
NYSE,QTM,13-01-2010,2.69,2.93,2.61,2.91,4795700,2.91
NYSE,QTM,12-01-2010,2.98,2.99,2.18,2.65,8417400,2.65
NYSE,QTM,11-01-2010,3.03,3.03,2.99,3,2082400,3
NYSE,QTM,08-01-2010,2.96,3.07,2.95,2.99,2863600,2.99
NYSE,QTM,07-01-2010,2.88,2.97,2.86,2.96,2580700,2.96
NYSE,QTM,06-01-2010,2.87,2.98,2.85,2.89,2425200,2.89
NYSE,QTM,05-01-2010,3.06,3.1,2.83,2.97,4879600,2.97
NYSE,QTM,04-01-2010,3.1,3.1,2.98,3,5793500,3
NYSE,QTM,31-12-2009,2.96,3,2.92,2.93,1422900,2.93
NYSE,QTM,30-12-2009,2.96,3.04,2.95,2.97,1447900,2.97
NYSE,QTM,29-12-2009,3.05,3.08,2.95,2.98,1763000,2.98
NYSE,QTM,28-12-2009,3.08,3.15,3.03,3.05,2873700,3.05
NYSE,QTM,24-12-2009,2.98,3.04,2.96,3.03,1442300,3.03
NYSE,QTM,23-12-2009,2.95,2.99,2.92,2.97,1823300,2.97
NYSE,QTM,22-12-2009,2.93,2.95,2.9,2.92,1926200,2.92
NYSE,QTM,21-12-2009,2.8,2.92,2.76,2.9,2660100,2.9
NYSE,QTM,18-12-2009,2.89,2.94,2.76,2.76,3187100,2.76
NYSE,QTM,17-12-2009,2.93,2.94,2.85,2.85,1850300,2.85
NYSE,QTM,16-12-2009,2.95,2.95,2.83,2.86,1530500,2.86
NYSE,QTM,15-12-2009,2.82,2.91,2.7,2.88,1574900,2.88
NYSE,QTM,14-12-2009,2.91,2.94,2.87,2.88,1673600,2.88
NYSE,QTM,11-12-2009,2.85,2.94,2.85,2.91,2095100,2.91
NYSE,QTM,10-12-2009,2.81,2.88,2.81,2.87,2141900,2.87
NYSE,QTM,09-12-2009,2.67,2.82,2.65,2.81,2275600,2.81
NYSE,QTM,08-12-2009,2.66,2.79,2.65,2.74,1872800,2.74
NYSE,QTM,07-12-2009,2.72,2.82,2.72,2.78,2544900,2.78
NYSE,QTM,04-12-2009,2.71,2.74,2.63,2.7,1939700,2.7
NYSE,QTM,03-12-2009,2.66,2.71,2.62,2.63,2376900,2.63
NYSE,QTM,02-12-2009,2.6,2.65,2.56,2.62,2133700,2.62
NYSE,QTM,01-12-2009,2.48,2.56,2.42,2.54,4108700,2.54
NYSE,QTM,30-11-2009,2.43,2.44,2.34,2.44,4220700,2.44
NYSE,QTM,27-11-2009,2.33,2.39,2.29,2.34,1254000,2.34
NYSE,QTM,25-11-2009,2.49,2.51,2.41,2.42,1540400,2.42
NYSE,QTM,24-11-2009,2.52,2.55,2.37,2.5,1861800,2.5
NYSE,QTM,23-11-2009,2.55,2.62,2.51,2.53,1701800,2.53
NYSE,QTM,20-11-2009,2.55,2.58,2.5,2.51,1137200,2.51
NYSE,QTM,19-11-2009,2.65,2.67,2.5,2.57,2395200,2.57
NYSE,QTM,18-11-2009,2.78,2.78,2.63,2.66,2107100,2.66
NYSE,QTM,17-11-2009,2.63,2.72,2.58,2.68,3477400,2.68
NYSE,QTM,16-11-2009,2.5,2.61,2.47,2.6,3787700,2.6
NYSE,QTM,13-11-2009,2.47,2.48,2.39,2.45,1478500,2.45
NYSE,QTM,12-11-2009,2.42,2.48,2.42,2.47,2417200,2.47
NYSE,QTM,11-11-2009,2.53,2.53,2.4,2.43,1678000,2.43
NYSE,QTM,10-11-2009,2.54,2.54,2.26,2.4,3190800,2.4
NYSE,QTM,09-11-2009,2.36,2.5,2.36,2.45,2284700,2.45
NYSE,QTM,06-11-2009,2.4,2.5,2.4,2.44,1877000,2.44
NYSE,QTM,05-11-2009,2.54,2.56,2.41,2.46,4835000,2.46
NYSE,QTM,04-11-2009,2.07,2.64,2.05,2.35,8634300,2.35
NYSE,QTM,03-11-2009,1.77,2.05,1.77,2.05,3125400,2.05
NYSE,QTM,02-11-2009,1.82,1.88,1.72,1.79,3163600,1.79
NYSE,QTM,30-10-2009,1.91,1.92,1.81,1.85,2931000,1.85
NYSE,QTM,29-10-2009,2.01,2.02,1.81,1.91,4891300,1.91
NYSE,QTM,28-10-2009,1.8,2.04,1.8,1.98,13317100,1.98
NYSE,QTM,27-10-2009,1.54,1.73,1.53,1.63,3051700,1.63
NYSE,QTM,26-10-2009,1.51,1.57,1.5,1.53,1754700,1.53
NYSE,QTM,23-10-2009,1.54,1.55,1.47,1.51,2100100,1.51
NYSE,QTM,22-10-2009,1.47,1.55,1.46,1.53,2165800,1.53
NYSE,QTM,21-10-2009,1.36,1.6,1.34,1.47,4227400,1.47
NYSE,QTM,20-10-2009,1.45,1.45,1.36,1.36,1008700,1.36
NYSE,QTM,19-10-2009,1.44,1.46,1.42,1.43,675500,1.43
NYSE,QTM,16-10-2009,1.46,1.46,1.41,1.43,927500,1.43
NYSE,QTM,15-10-2009,1.45,1.49,1.44,1.47,1340900,1.47
NYSE,QTM,14-10-2009,1.51,1.52,1.45,1.47,2875900,1.47
NYSE,QTM,13-10-2009,1.44,1.47,1.42,1.46,1077300,1.46
NYSE,QTM,12-10-2009,1.52,1.54,1.42,1.45,1730800,1.45
NYSE,QTM,09-10-2009,1.39,1.5,1.39,1.47,2522100,1.47
NYSE,QTM,08-10-2009,1.31,1.47,1.3,1.38,3701200,1.38
NYSE,QTM,07-10-2009,1.27,1.31,1.27,1.3,738900,1.3
NYSE,QTM,06-10-2009,1.25,1.32,1.24,1.27,2059300,1.27
NYSE,QTM,05-10-2009,1.22,1.25,1.21,1.24,1233500,1.24
NYSE,QTM,02-10-2009,1.21,1.29,1.15,1.22,1220200,1.22
NYSE,QTM,01-10-2009,1.25,1.27,1.18,1.23,1299400,1.23
NYSE,QTM,30-09-2009,1.25,1.3,1.23,1.26,1039800,1.26
NYSE,QTM,29-09-2009,1.25,1.3,1.24,1.25,1016900,1.25
NYSE,QTM,28-09-2009,1.19,1.28,1.18,1.27,1229900,1.27
NYSE,QTM,25-09-2009,1.16,1.19,1.14,1.18,728800,1.18
NYSE,QTM,24-09-2009,1.21,1.24,1.14,1.16,1057300,1.16
NYSE,QTM,23-09-2009,1.25,1.28,1.21,1.21,903700,1.21
NYSE,QTM,22-09-2009,1.25,1.27,1.22,1.24,670900,1.24
NYSE,QTM,21-09-2009,1.26,1.27,1.22,1.23,999900,1.23
NYSE,QTM,18-09-2009,1.28,1.29,1.24,1.27,1466500,1.27
NYSE,QTM,17-09-2009,1.25,1.29,1.22,1.28,1140400,1.28
NYSE,QTM,16-09-2009,1.21,1.28,1.2,1.25,1321300,1.25
NYSE,QTM,15-09-2009,1.17,1.24,1.15,1.2,2024700,1.2
NYSE,QTM,14-09-2009,1.16,1.18,1.14,1.17,555600,1.17
NYSE,QTM,11-09-2009,1.2,1.22,1.15,1.17,600400,1.17
NYSE,QTM,10-09-2009,1.17,1.23,1.16,1.2,1014900,1.2
NYSE,QTM,09-09-2009,1.15,1.19,1.13,1.17,607000,1.17
NYSE,QTM,08-09-2009,1.17,1.18,1.11,1.14,1166900,1.14
NYSE,QTM,04-09-2009,1.13,1.18,1.12,1.17,640400,1.17
NYSE,QTM,03-09-2009,1.14,1.15,1.12,1.14,500700,1.14
NYSE,QTM,02-09-2009,1.15,1.2,1.1,1.14,746000,1.14
NYSE,QTM,01-09-2009,1.19,1.23,1.13,1.16,1123200,1.16
NYSE,QTM,31-08-2009,1.17,1.23,1.15,1.23,2709900,1.23
NYSE,QTM,28-08-2009,1.23,1.24,1.17,1.2,876600,1.2
NYSE,QTM,27-08-2009,1.15,1.22,1.12,1.22,1162500,1.22
NYSE,QTM,26-08-2009,1.16,1.19,1.13,1.16,759800,1.16
NYSE,QTM,25-08-2009,1.19,1.21,1.15,1.16,1218200,1.16
NYSE,QTM,24-08-2009,1.2,1.2,1.16,1.2,1811900,1.2
NYSE,QTM,21-08-2009,1.15,1.18,1.11,1.17,1939200,1.17
NYSE,QTM,20-08-2009,1.05,1.15,1.04,1.12,1940000,1.12
NYSE,QTM,19-08-2009,1.01,1.05,1,1.05,688400,1.05
NYSE,QTM,18-08-2009,1,1.04,1,1.02,551200,1.02
NYSE,QTM,17-08-2009,1.01,1.02,0.97,0.99,1208700,0.99
NYSE,QTM,14-08-2009,1.06,1.07,1.02,1.05,1189300,1.05
NYSE,QTM,13-08-2009,1,1.1,0.99,1.08,2659000,1.08
NYSE,QTM,12-08-2009,0.97,0.99,0.95,0.99,1771900,0.99
NYSE,QTM,11-08-2009,0.97,0.98,0.94,0.96,716200,0.96
NYSE,QTM,10-08-2009,0.91,0.97,0.91,0.97,856900,0.97
NYSE,QTM,07-08-2009,0.96,0.97,0.85,0.92,1311000,0.92
NYSE,QTM,06-08-2009,0.96,0.96,0.91,0.95,596200,0.95
NYSE,QTM,05-08-2009,0.91,0.95,0.89,0.95,1220200,0.95
NYSE,QTM,04-08-2009,0.9,0.94,0.85,0.9,1503300,0.9
NYSE,QTM,03-08-2009,0.93,0.95,0.89,0.91,1809200,0.91
NYSE,QTM,31-07-2009,0.93,0.97,0.92,0.92,850000,0.92
NYSE,QTM,30-07-2009,0.93,0.98,0.93,0.94,758500,0.94
NYSE,QTM,29-07-2009,1,1,0.92,0.92,1766000,0.92
NYSE,QTM,28-07-2009,0.99,1.04,0.95,1.01,1441300,1.01
NYSE,QTM,27-07-2009,0.97,0.99,0.95,0.96,778300,0.96
NYSE,QTM,24-07-2009,0.95,1,0.93,0.97,443700,0.97
NYSE,QTM,23-07-2009,1.02,1.04,0.94,0.98,1808400,0.98
NYSE,QTM,22-07-2009,0.95,0.99,0.93,0.99,636900,0.99
NYSE,QTM,21-07-2009,1.01,1.01,0.96,0.97,416700,0.97
NYSE,QTM,20-07-2009,1.04,1.05,1,1.01,838500,1.01
NYSE,QTM,17-07-2009,0.95,1.05,0.95,1.03,923800,1.03
NYSE,QTM,16-07-2009,1.04,1.05,0.98,1.02,869800,1.02
NYSE,QTM,15-07-2009,0.99,1.05,0.97,1.05,1845900,1.05
NYSE,QTM,14-07-2009,0.92,0.99,0.91,0.99,978200,0.99
NYSE,QTM,13-07-2009,0.84,0.92,0.83,0.92,821200,0.92
NYSE,QTM,10-07-2009,0.82,0.83,0.79,0.83,404000,0.83
NYSE,QTM,09-07-2009,0.88,0.88,0.82,0.82,665500,0.82
NYSE,QTM,08-07-2009,0.88,0.89,0.79,0.87,1068800,0.87
NYSE,QTM,07-07-2009,0.89,0.9,0.86,0.88,494000,0.88
NYSE,QTM,06-07-2009,0.92,0.92,0.85,0.89,695300,0.89
NYSE,QTM,02-07-2009,0.94,0.96,0.9,0.91,846300,0.91
NYSE,QTM,01-07-2009,0.89,0.99,0.89,0.98,2543300,0.98
NYSE,QTM,30-06-2009,0.85,0.89,0.83,0.83,683700,0.83
NYSE,QTM,29-06-2009,0.85,0.88,0.81,0.85,613400,0.85
NYSE,QTM,26-06-2009,0.88,0.88,0.79,0.79,2731700,0.79
NYSE,QTM,25-06-2009,0.81,0.88,0.8,0.88,437600,0.88
NYSE,QTM,24-06-2009,0.82,0.82,0.78,0.81,581500,0.81
NYSE,QTM,23-06-2009,0.8,0.82,0.76,0.8,528000,0.8
NYSE,QTM,22-06-2009,0.85,0.85,0.8,0.8,702400,0.8
NYSE,QTM,19-06-2009,0.83,0.88,0.82,0.85,1002500,0.85
NYSE,QTM,18-06-2009,0.87,0.89,0.8,0.83,1062200,0.83
NYSE,QTM,17-06-2009,0.92,0.92,0.86,0.86,698300,0.86
NYSE,QTM,16-06-2009,0.95,0.95,0.91,0.92,687100,0.92
NYSE,QTM,15-06-2009,0.95,0.96,0.92,0.94,1067700,0.94
NYSE,QTM,12-06-2009,0.92,0.96,0.91,0.95,881300,0.95
NYSE,QTM,11-06-2009,0.9,0.94,0.9,0.92,1183900,0.92
NYSE,QTM,10-06-2009,0.93,0.95,0.87,0.89,1526100,0.89
NYSE,QTM,09-06-2009,0.9,0.95,0.87,0.9,2633000,0.9
NYSE,QTM,08-06-2009,0.98,0.98,0.85,0.86,2143400,0.86
NYSE,QTM,05-06-2009,0.97,0.99,0.95,0.96,1026000,0.96


No comments:

Post a Comment