Skip to content

Instantly share code, notes, and snippets.

@antonioalcocer
Last active August 29, 2015 14:10
Show Gist options
  • Save antonioalcocer/515b1b357dc08cb28b95 to your computer and use it in GitHub Desktop.
Save antonioalcocer/515b1b357dc08cb28b95 to your computer and use it in GitHub Desktop.
package com.sinfonier.drains;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.StringTokenizer;
import com.sinfonier.util.CrossdataUtil;
public class InsertCrossData extends CrossdataUtil {
// private BasicDriver xdDriver; // declaramos el driver
private String xdTable;
private String xdCatalog;
private String xdCluster;
private String primaryKey;
private Set<String> tabla;
private boolean bool=false;
private String serversHost;
private String serversPort;
private String[] server;
public InsertCrossData(String xmlFile) {
super(xmlFile);
}
@Override public void userprepare() {
this.xdCatalog=getParam("catalog");
this.xdTable=getParam("table");
this.xdUser=getParam("user");
this.primaryKey=getParam("primary_key");
this.xdCluster=getParam("cluster");
this.serversHost=getParam("servers_hosts");
this.serversPort=getParam("servers_ports");
if (serversHost.split(",").length==serversPort.split(",").length){
server=new String[serversHost.split(",").length];
for (int j = 0;j<server.length;j++ ){
server[j]=serversHost.split(",")[j]+":"+serversPort.split(",")[j];
}
}
else{
LOG.error("no conindiden los puertos y los hosts del server de crossdata");
}
instanceCrossdata(server);
connect();
json= getJson();
}
@Override public void userexecute() {
Map<String, Set<String>> values= new HashMap<String, Set<String>>();
//values.put("algo",getJson().keySet());
if(!bool) {
bool=true;
values=createTable(primaryKey,xdCatalog,xdTable,xdCluster);
for(String a:values.keySet()){
LOG.info("---------------------");
LOG.info("Keyset:"+ a);
LOG.info("---------------------");
executeAsyncQuery(a);
tabla=values.get(a);
}
}
else{
values=alterTable(primaryKey,xdCatalog,xdTable,xdCluster,tabla);
for (String a: values.keySet()){
StringTokenizer tokens=new StringTokenizer(a.substring(0,a.length()),"|");
while(tokens.hasMoreTokens()){
executeAsyncQuery(tokens.nextToken());
}
tabla=values.get(a);
}
}
try {
wait(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
executeAsyncQuery(insertData(xdCatalog,xdTable));
}
@Override public void usercleanup() {
xdDriver.close();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment