package com.alimama.quanjingmonitor.mdrillImport.parse.for416tmp;
import java.util.Date;
import org.apache.log4j.Logger;
import com.alimama.mdrillImport.InvalidEntryException;
public class user_rd extends com.alimama.mdrillImport.DataParser{
private static final long serialVersionUID = 1L;
public volatile long groupCreateerror=0;
private static Logger LOG = Logger.getLogger(user_rd.class);
private volatile long lines=0;
private static long TS_MAX=3600l*24*31;
private volatile long laststartts=System.currentTimeMillis()/1000-TS_MAX;
private volatile long lastendts=System.currentTimeMillis()/1000+TS_MAX;
@Override
public DataIter parseLine(String line) throws InvalidEntryException {
try {
if(line==null)
{
return null;
}
String[] clicklog=line.split("\001",-1);
if(clicklog.length<5)
{
return null;
}
// 2.1 1397048787 e8c48f82dd846b6b4e1d493c914891d2 mm_31791272_3084562_21540303 1 182.118.21.1180 laiwang http://redirect.simba.taobao.com/rd?w=laiwang&f=http%3A%2F%2Fm.laiwang.com%2Fmarket%2Flaiwang%2Fevent-square.php%3Feventid%3D3346308%26lwfrom%3D20140409235959005&p=mm_31791272_3084562_21540303&k=9e1261a0d26a4bed http://m.laiwang.com/market/laiwang/event-square.php?eventid=3346308&lwfrom=20140409235959005 0 20140409
// 2.1 1397049262 af005c4080cd028b9815ff0db0a7a8cf mm_31791272_3084562_21538328 1 182.118.21.1200 laiwang http://redirect.simba.taobao.com/rd?w=laiwang&f=http%3A%2F%2Fm.laiwang.com%2Fmarket%2Flaiwang%2Fevent-square.php%3Feventid%3D3563080%26lwfrom%3D20140409235959008&p=mm_31791272_3084562_21538328&k=9e1261a0d26a4bed http://m.laiwang.com/market/laiwang/event-square.php?eventid=3563080&lwfrom=20140409235959008 0 20140409
if(clicklog[4].isEmpty()||clicklog[1].isEmpty()||clicklog[1].length()<=5||clicklog[4].length()>50)
{
return null;
}
this.lines++;
if(this.lines>100000)
{
this.laststartts=(System.currentTimeMillis()/1000)-TS_MAX;
this.lastendts=(System.currentTimeMillis()/1000)+TS_MAX;
this.lines=0;
}
long ts = Long.parseLong(clicklog[1]);
if(ts<laststartts||ts>lastendts)
{
return null;
}
DataIterParse rtn= new DataIterParse(clicklog);
return rtn;
} catch (Throwable nfe) {
if(groupCreateerror<100)
{
LOG.error("InvalidEntryException:"+line,nfe);
groupCreateerror++;
}
throw new InvalidEntryException("Invalid log `" + line + "'\n" , nfe);
}
}
public static class DataIterParse implements DataIter{
private String[] pvlog=null;
public DataIterParse(String[] pvlog) {
this.pvlog = pvlog;
}
@Override
public boolean next() {
return false;
}
@Override
public Number[] getSum() {
return new Number[]{
0
,1
,0
,0
,0
,0
,0
,0
};
}
@Override
public long getTs() {
long ts = Long.parseLong(pvlog[1]);
return (ts/10)*10000;
}
@Override
public Object[] getGroup() {
long ts = Long.parseLong(pvlog[1]);
long ts300=(ts/300)*300000;
Date d= new Date(ts300);
return new String[] {
String.valueOf(ColsDefine.formatDay.format(d)),
String.valueOf(ColsDefine.formatMin.format(d)),
"pc",
"user_rd",
String.valueOf(pvlog[4])
, "pc"
,String.valueOf(ColsDefine.getName(pvlog[11], "tid"))//target
,""
,ColsDefine.version
};
}
}
@Override
public String[] getSumName() {
return ColsDefine.colSumName;
}
@Override
public String getTableName() {
return ColsDefine.tablename;
}
@Override
public String[] getGroupName() {
return ColsDefine.colname;
}
}