public static List<HBaseTraceLog> getTraceLog(String msgId, HBaseSession hsession) throws IOException
{
List<HBaseTraceLog> traceLogList = new ArrayList<HBaseTraceLog>();
ConfigData conf = hsession.getConfigData();
if(!conf.getAdmin().tableExists(strTableName))
{
createTable(conf);
}
// Get Table from HTablePool
HTablePool htablePool = conf.getHtablePool();
HTableInterface table = HBaseUtils.getTableFromPool(htablePool, "DeviceTable"/*strTableName*/);
Get get = new Get(Bytes.toBytes(msgId));
get.setMaxVersions();
Result result = table.get(get);
System.out.println("result :" + result);
// NavigableMap<byte[], byte[]> navigablemap = result.getFamilyMap(Bytes.toBytes(strColumnFamily));
//
// for(byte[] tempColumn : navigablemap.keySet())
// {
// byte[] offsetCol = tempColumn;
// byte[] resu = navigablemap.get(offsetCol);
// System.out.println(Bytes.toString(offsetCol) + " : " + Bytes.toString(resu));
// }
// NavigableMap<byte[],NavigableMap<byte[],NavigableMap<Long,byte[]>>> cfMap = result.getMap();
// for (byte[] cfKey : cfMap.keySet())
// {
// // key : ColumnFamily
// System.out.println("first roop : Column Family ==> "+ Bytes.toString(cfKey));
//
// NavigableMap<byte[],NavigableMap<Long, byte[]>> columnMap = cfMap.get(cfKey);
// for (byte[] columnKey : columnMap.keySet())
// {
// // key : column
// System.out.println("second roop : Column ==> "+ Bytes.toString(columnKey));
//
// NavigableMap<Long, byte[]> timestampMap = columnMap.get(columnKey);
// for (Long timestamp : timestampMap.keySet())
// {
// // Key : timestamp
// System.out.println("third roop : TimeStamp ==> "+ String.valueOf(timestamp));
// byte[] lastvalue = timestampMap.get(timestamp);
// System.out.println("Value : "+ Bytes.toString(lastvalue));
//
// }
// }
// }
System.out.println("=================================================");
System.out.println("MsgID : " +msgId);
NavigableMap<byte[],NavigableMap<byte[],NavigableMap<Long,byte[]>>> cfMap = result.getMap();
List<Long> timestampList = new ArrayList<Long>();
for (byte[] cfKey : cfMap.keySet()) //ColumnFamily
{
System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++++");
System.out.println("columnFamily ==> " + Bytes.toString(cfKey));
System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++++");
NavigableMap<byte[],NavigableMap<Long, byte[]>> columnNaviMap = cfMap.get(cfKey);
byte[] firstColumn = columnNaviMap.firstKey();
// check version from TimeStamp
if(firstColumn.length > 0)
{
NavigableMap<Long, byte[]> timestampMap = columnNaviMap.get(firstColumn);
for (Long timestamp : timestampMap.keySet())
{
timestampList.add(timestamp); // add all version of timeStamp
}
}
// display
for (Long timeStamp : timestampList)
{
System.out.println("TraceTime ==> " + String.valueOf(timeStamp));
System.out.println("-------------------------------------------------");
NavigableMap<byte[],NavigableMap<Long, byte[]>> columnMap = cfMap.get(cfKey);
for (byte[] columnKey : columnMap.keySet()) //column
{
NavigableMap<Long, byte[]> timestampMap = columnMap.get(columnKey);
System.out.println("\t"+Bytes.toString(columnKey)+" : "+ Bytes.toString(timestampMap.get(timeStamp)));
}
System.out.println("-------------------------------------------------");
}
System.out.println();
}
htablePool.putTable(table);
return traceLogList;
}