package com.alimama.mdrill.ui.service;
public class AdhocHiveTmpTable {
public static String createTmpTable(String tablename,String[] cols,String split)
{
StringBuffer buffer=new StringBuffer();
buffer.append("CREATE EXTERNAL TABLE IF NOT EXISTS "+tablename);
buffer.append(" (");
String joinchar="";
for(String s:cols)
{
buffer.append(joinchar);
buffer.append(s+" String ");
joinchar=",";
}
buffer.append(")");
buffer.append(" PARTITIONED BY (ppp string) ");
buffer.append(" ROW FORMAT DELIMITED ");
buffer.append(" FIELDS TERMINATED BY '"+parseSplit(split)+"' ");
buffer.append(" LINES TERMINATED BY '\\n' ");
buffer.append(" STORED AS TextFile ");
return buffer.toString();
}
private static String parseSplit(String split)
{
if(split.equals("\001"))
{
return "\\001";
}
return split;
}
public static String addData(String tablename,String storepath)
{
StringBuffer buffer=new StringBuffer();
buffer.append("ALTER TABLE "+tablename+" ADD IF NOT EXISTS PARTITION (ppp='"+System.currentTimeMillis()+"') ");
buffer.append(" LOCATION '"+storepath+"'");
return buffer.toString();
}
public static String dropTable(String tablename)
{
StringBuffer buffer=new StringBuffer();
buffer.append("drop TABLE "+tablename+" ");
return buffer.toString();
}
}