You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by li...@apache.org on 2016/10/10 13:54:15 UTC

[01/12] kylin git commit: minor, bin/sample.sh [Forced Update!]

Repository: kylin
Updated Branches:
  refs/heads/yang21-hbase1.x c1d707e7d -> d5dded682 (forced update)


minor, bin/sample.sh


Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/8aa91eb7
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/8aa91eb7
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/8aa91eb7

Branch: refs/heads/yang21-hbase1.x
Commit: 8aa91eb79d99e9cd831e09ae0a66bc0509a26c2a
Parents: 85c2754
Author: Yang Li <li...@apache.org>
Authored: Thu Oct 6 17:02:35 2016 +0800
Committer: Yang Li <li...@apache.org>
Committed: Thu Oct 6 17:02:35 2016 +0800

----------------------------------------------------------------------
 build/bin/sample.sh | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/8aa91eb7/build/bin/sample.sh
----------------------------------------------------------------------
diff --git a/build/bin/sample.sh b/build/bin/sample.sh
index 92caace..fdb8601 100644
--- a/build/bin/sample.sh
+++ b/build/bin/sample.sh
@@ -17,7 +17,8 @@
 # limitations under the License.
 #
 
-dir=$(dirname ${0})
+dir=$(cd -P -- "$(dirname -- "$0")" && pwd -P)
+export KYLIN_HOME=${KYLIN_HOME:-"${dir}/../"}
 
 source ${dir}/check-env.sh
 job_jar=`find -L ${KYLIN_HOME}/lib/ -name kylin-job*.jar`
@@ -57,4 +58,5 @@ sed -i "s/%default_engine_type%/${default_engine_type}/g" ${KYLIN_HOME}/sample_c
 
 cd ${KYLIN_HOME}
 hbase org.apache.hadoop.util.RunJar ${job_jar} org.apache.kylin.common.persistence.ResourceTool upload ${KYLIN_HOME}/sample_cube/metadata  || { exit 1; }
-echo "Sample cube is created successfully in project 'learn_kylin'; Restart Kylin server or reload the metadata from web UI to see the change."
+echo "Sample cube is created successfully in project 'learn_kylin'."
+echo "Restart Kylin server or reload the metadata from web UI to see the change."


[07/12] kylin git commit: KYLIN-1923 update context columns

Posted by li...@apache.org.
KYLIN-1923 update context columns

Signed-off-by: Li Yang <li...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/20093f47
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/20093f47
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/20093f47

Branch: refs/heads/yang21-hbase1.x
Commit: 20093f47b0d8e1f31a96222c220ef7476d374458
Parents: c553782
Author: Cheng Wang <ch...@kyligence.io>
Authored: Sun Oct 9 17:15:51 2016 +0800
Committer: Li Yang <li...@apache.org>
Committed: Mon Oct 10 15:32:14 2016 +0800

----------------------------------------------------------------------
 .../relnode/OLAPToEnumerableConverter.java      | 35 +++++++++++++++++---
 1 file changed, 31 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/20093f47/query/src/main/java/org/apache/kylin/query/relnode/OLAPToEnumerableConverter.java
----------------------------------------------------------------------
diff --git a/query/src/main/java/org/apache/kylin/query/relnode/OLAPToEnumerableConverter.java b/query/src/main/java/org/apache/kylin/query/relnode/OLAPToEnumerableConverter.java
index 95ec617..55c27d3 100644
--- a/query/src/main/java/org/apache/kylin/query/relnode/OLAPToEnumerableConverter.java
+++ b/query/src/main/java/org/apache/kylin/query/relnode/OLAPToEnumerableConverter.java
@@ -19,6 +19,7 @@
 package org.apache.kylin.query.relnode;
 
 import java.util.List;
+import java.util.Set;
 
 import org.apache.calcite.adapter.enumerable.EnumerableRel;
 import org.apache.calcite.adapter.enumerable.EnumerableRelImplementor;
@@ -40,14 +41,18 @@ import org.apache.calcite.rel.type.RelDataType;
 import org.apache.calcite.sql.SqlExplainLevel;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.ClassUtil;
+import org.apache.kylin.metadata.filter.ColumnTupleFilter;
 import org.apache.kylin.metadata.filter.LogicalTupleFilter;
 import org.apache.kylin.metadata.filter.TupleFilter;
 import org.apache.kylin.metadata.filter.TupleFilter.FilterOperatorEnum;
+import org.apache.kylin.metadata.model.TblColRef;
 import org.apache.kylin.metadata.realization.IRealization;
 import org.apache.kylin.query.routing.NoRealizationFoundException;
 import org.apache.kylin.query.routing.QueryRouter;
 import org.apache.kylin.query.schema.OLAPTable;
 
+import com.google.common.collect.Sets;
+
 /**
  */
 public class OLAPToEnumerableConverter extends ConverterImpl implements EnumerableRel {
@@ -90,7 +95,11 @@ public class OLAPToEnumerableConverter extends ConverterImpl implements Enumerab
                 if (null != controllerCls && !controllerCls.isEmpty()) {
                     OLAPContext.IAccessController accessController = (OLAPContext.IAccessController) ClassUtil.newInstance(controllerCls);
                     TupleFilter tupleFilter = accessController.check(context.olapAuthen, context.allColumns, context.realization);
-                    context.filter = and(context.filter, tupleFilter);
+                    if (null != tupleFilter) {
+                        context.filterColumns.addAll(collectColumns(tupleFilter));
+                        context.allColumns.addAll(collectColumns(tupleFilter));
+                        context.filter = and(context.filter, tupleFilter);
+                    }
                 }
             }
         } catch (NoRealizationFoundException e) {
@@ -126,23 +135,41 @@ public class OLAPToEnumerableConverter extends ConverterImpl implements Enumerab
             return f2;
         if (f2 == null)
             return f1;
-        
+
         if (f1.getOperator() == FilterOperatorEnum.AND) {
             f1.addChild(f2);
             return f1;
         }
-        
+
         if (f2.getOperator() == FilterOperatorEnum.AND) {
             f2.addChild(f1);
             return f2;
         }
-        
+
         LogicalTupleFilter and = new LogicalTupleFilter(FilterOperatorEnum.AND);
         and.addChild(f1);
         and.addChild(f2);
         return and;
     }
 
+    private Set<TblColRef> collectColumns(TupleFilter filter) {
+        Set<TblColRef> ret = Sets.newHashSet();
+        collectColumnsRecursively(filter, ret);
+        return ret;
+    }
+
+    private void collectColumnsRecursively(TupleFilter filter, Set<TblColRef> collector) {
+        if (filter == null)
+            return;
+
+        if (filter instanceof ColumnTupleFilter) {
+            collector.add(((ColumnTupleFilter) filter).getColumn());
+        }
+        for (TupleFilter child : filter.getChildren()) {
+            collectColumnsRecursively(child, collector);
+        }
+    }
+
     private Result buildHiveResult(EnumerableRelImplementor enumImplementor, Prefer pref, OLAPContext context) {
         RelDataType hiveRowType = getRowType();
 


[09/12] kylin git commit: KYLIN-2076 Improve sample cube and data

Posted by li...@apache.org.
http://git-wip-us.apache.org/repos/asf/kylin/blob/5a114585/examples/sample_cube/data/DEFAULT.KYLIN_SALES.csv
----------------------------------------------------------------------
diff --git a/examples/sample_cube/data/DEFAULT.KYLIN_SALES.csv b/examples/sample_cube/data/DEFAULT.KYLIN_SALES.csv
index 13c7d85..dffa43b 100644
--- a/examples/sample_cube/data/DEFAULT.KYLIN_SALES.csv
+++ b/examples/sample_cube/data/DEFAULT.KYLIN_SALES.csv
@@ -1,10000 +1,10000 @@
-0,2012-12-14,Others,88750,0,11,36.2828,0,10000349
-0,2012-08-28,Others,175750,0,13,23.8563,0,10000927
-0,2012-02-16,ABIN,148324,15,13,88.3418,0,10000005
-0,2013-10-19,FP-non GTC,37831,0,13,47.3015,0,10000209
-0,2012-10-22,Others,140746,100,11,83.4540,0,10000154
-0,2013-01-25,FP-GTC,16509,0,-99,22.9896,0,10000372
-0,2013-04-04,Others,963,0,13,88.5907,0,10000648
-0,2012-04-11,Others,15687,0,15,88.1940,0,10000866
-0,2013-01-19,ABIN,60606,3,13,77.9727,0,10000936
-0,2012-04-30,FP-non GTC,106246,0,14,52.2950,0,10000047
-0,2013-02-03,Auction,45333,0,16,56.3584,0,10000470
-0,2012-09-02,FP-GTC,25147,0,-99,15.3553,0,10000203
-0,2013-07-30,Others,24760,0,16,25.0770,0,10000382
-0,2012-04-17,Auction,31519,0,16,72.7384,0,10000069
-0,2013-04-30,FP-GTC,51582,0,15,75.8200,0,10000085
-0,2013-03-23,FP-GTC,16509,0,15,8.6653,0,10000559
-0,2013-04-01,ABIN,175750,3,16,64.2802,0,10000507
-0,2013-07-12,ABIN,50677,0,-99,24.5987,0,10000938
-0,2012-04-23,FP-GTC,45333,0,5,72.6553,0,10000863
-0,2012-12-19,ABIN,3838,0,12,87.4142,0,10000612
-0,2012-08-15,FP-GTC,62179,0,16,67.4238,0,10000839
-0,2013-08-22,Auction,1357,0,5,18.3600,0,10000303
-0,2013-08-23,ABIN,31519,0,5,67.6344,0,10000877
-0,2013-09-12,FP-GTC,223,0,14,71.7898,0,10000848
-0,2012-03-14,FP-GTC,132939,0,15,26.1496,0,10000815
-0,2013-07-13,Others,67703,3,16,83.9661,0,10000858
-0,2013-12-15,FP-non GTC,100847,0,5,34.3451,0,10000387
-0,2012-08-30,Auction,62179,0,11,21.0496,0,10000393
-0,2013-01-10,FP-GTC,48027,0,13,23.4142,0,10000757
-0,2013-01-25,ABIN,145970,0,5,26.7842,0,10000402
-0,2012-07-05,Auction,48027,0,-99,46.7320,0,10000972
-0,2012-11-07,FP-GTC,20213,0,-99,19.7270,0,10000873
-0,2013-06-20,ABIN,100847,0,5,76.2783,0,10000409
-0,2012-10-08,ABIN,26262,0,5,48.7447,0,10000029
-0,2013-04-30,ABIN,87118,0,15,63.2187,0,10000529
-0,2013-04-24,FP-non GTC,20213,0,16,39.5057,0,10000329
-0,2012-05-13,Others,164261,0,13,84.1246,0,10000688
-0,2013-08-02,ABIN,31519,0,5,37.1504,0,10000905
-0,2012-04-03,Auction,164261,0,11,92.0974,0,10000341
-0,2012-09-02,FP-GTC,31519,0,14,87.7829,0,10000460
-0,2013-10-05,ABIN,13987,0,16,74.0719,0,10000381
-0,2012-01-13,FP-GTC,48027,0,15,71.2637,0,10000915
-0,2013-03-01,Others,13836,0,14,16.7288,0,10000953
-0,2012-09-12,FP-non GTC,16509,0,5,12.2933,0,10000277
-0,2012-02-07,Auction,45333,0,5,64.9770,0,10000040
-0,2013-12-14,FP-non GTC,158798,0,16,72.4413,0,10000500
-0,2013-10-13,Auction,31519,0,5,79.3053,0,10000816
-0,2012-06-11,ABIN,4943,0,5,11.6942,0,10000696
-0,2012-10-18,ABIN,80053,0,-99,54.0933,0,10000604
-0,2012-11-03,Auction,20886,0,5,9.8258,0,10000764
-0,2012-01-15,Auction,44079,0,14,13.0371,0,10000343
-0,2012-07-03,FP-GTC,159184,0,-99,92.5314,0,10000724
-0,2012-02-16,FP-GTC,314,0,13,49.1825,0,10000334
-0,2012-06-17,FP-non GTC,31387,3,12,0.6677,0,10000603
-0,2012-07-15,FP-non GTC,32876,0,-99,50.9634,0,10000248
-0,2012-07-24,FP-GTC,150265,15,16,57.5645,0,10000653
-0,2012-10-06,Auction,145970,0,5,44.3091,0,10000082
-0,2013-06-14,ABIN,80053,0,5,20.2388,0,10000632
-0,2013-10-10,FP-non GTC,15868,0,11,28.6290,0,10000523
-0,2012-09-30,ABIN,31673,0,12,75.8658,0,10000719
-0,2012-04-02,FP-GTC,63861,0,5,25.8748,0,10000311
-0,2012-03-16,Others,314,0,-99,9.2733,0,10000409
-0,2012-09-30,FP-non GTC,60340,0,14,74.6610,0,10000790
-0,2012-03-20,Others,87118,0,5,79.3781,0,10000384
-0,2012-09-12,FP-GTC,1120,3,5,61.4408,0,10000645
-0,2013-12-10,FP-non GTC,20886,0,11,14.8140,0,10000943
-0,2012-12-05,FP-GTC,106246,0,12,24.9380,0,10000858
-0,2012-08-21,Auction,43479,0,12,22.2008,0,10000310
-0,2012-11-30,FP-GTC,175750,0,15,35.1161,0,10000440
-0,2013-10-10,Others,95672,0,11,82.3718,0,10000128
-0,2012-10-17,Auction,80053,0,15,9.8166,0,10000105
-0,2012-03-16,FP-non GTC,57784,0,5,66.2369,0,10000439
-0,2012-11-14,ABIN,65,0,11,17.5513,0,10000855
-0,2013-06-24,FP-GTC,16509,0,15,53.9195,0,10000130
-0,2012-08-13,FP-non GTC,65,0,5,69.8447,0,10000548
-0,2012-01-03,Others,38238,0,11,90.3722,0,10000739
-0,2013-11-24,FP-non GTC,175750,3,13,47.3441,0,10000291
-0,2013-11-08,Auction,106246,0,5,38.6729,0,10000310
-0,2013-04-07,Others,73506,0,-99,69.8999,0,10000235
-0,2012-10-15,FP-GTC,314,0,13,44.1598,0,10000265
-0,2012-01-20,FP-GTC,80287,0,-99,85.7263,0,10000704
-0,2012-08-17,ABIN,32876,0,16,21.2934,0,10000163
-0,2013-07-09,Auction,37831,0,15,38.2213,0,10000557
-0,2013-09-21,Others,45333,0,13,25.5384,0,10000184
-0,2013-10-28,FP-non GTC,11554,0,16,89.9654,0,10000940
-0,2013-04-05,Auction,11554,0,14,41.8676,0,10000384
-0,2013-03-25,FP-GTC,43398,0,14,75.0110,0,10000697
-0,2012-05-03,ABIN,33038,15,12,64.6735,0,10000147
-0,2012-10-13,ABIN,95672,3,14,3.2128,0,10000547
-0,2012-09-11,FP-GTC,37831,0,16,60.3228,0,10000899
-0,2012-08-31,Auction,314,0,5,13.2480,0,10000350
-0,2012-12-25,Others,165888,0,16,60.3492,0,10000367
-0,2012-12-26,FP-non GTC,50677,0,5,58.6078,0,10000523
-0,2012-05-24,FP-GTC,145970,0,5,33.1342,0,10000926
-0,2012-06-27,Auction,174106,3,13,55.3039,0,10000430
-0,2012-01-02,ABIN,87118,0,14,48.2433,0,10000731
-0,2013-12-14,FP-GTC,50508,0,5,51.5822,0,10000977
-0,2012-12-30,Auction,63889,0,12,3.8393,0,10000957
-0,2013-10-26,FP-non GTC,24541,0,5,23.6812,0,10000350
-0,2013-12-29,ABIN,38238,0,15,99.4389,0,10000605
-0,2012-05-26,FP-GTC,100847,0,15,11.0672,0,10000291
-0,2012-12-18,FP-non GTC,164261,0,11,54.9352,0,10000509
-0,2013-03-12,ABIN,95672,0,15,85.7152,0,10000742
-0,2013-02-22,ABIN,43398,0,11,65.1970,0,10000294
-0,2012-02-20,Others,175750,0,14,63.2187,0,10000364
-0,2013-08-06,Others,32876,0,13,50.8111,0,10000542
-0,2013-06-27,Others,13987,0,13,2.3165,0,10000979
-0,2012-07-17,Others,13987,0,16,25.2136,0,10000744
-0,2013-10-12,FP-non GTC,16509,0,5,15.3986,0,10000652
-0,2012-12-07,Others,158798,0,5,1.6111,0,10000149
-0,2013-02-09,Auction,32876,0,5,37.3237,0,10000467
-0,2012-10-26,Others,44079,0,12,18.1870,0,10000420
-0,2012-04-10,ABIN,132939,0,13,88.5950,0,10000103
-0,2013-04-08,FP-non GTC,159184,0,5,92.4421,0,10000933
-0,2012-05-30,Others,80287,0,14,68.1663,0,10000195
-0,2012-02-23,FP-GTC,88750,0,11,19.4075,0,10000038
-0,2013-10-25,ABIN,11554,0,11,27.2512,0,10000228
-0,2012-12-02,FP-GTC,41940,0,14,49.5504,0,10000927
-0,2013-09-16,FP-GTC,314,0,-99,3.4785,0,10000304
-0,2013-11-01,Others,31519,3,15,46.1783,0,10000771
-0,2012-10-21,FP-non GTC,31519,0,15,1.7696,0,10000507
-0,2013-08-25,Auction,95173,0,13,89.2083,0,10000868
-0,2013-11-09,FP-non GTC,150047,3,12,58.2634,0,10000497
-0,2012-02-04,FP-GTC,175750,0,11,41.3850,0,10000947
-0,2012-10-17,ABIN,26249,0,14,10.5789,0,10000965
-0,2012-03-16,FP-non GTC,963,0,5,17.8949,0,10000908
-0,2012-08-06,Others,94847,0,13,96.0332,0,10000595
-0,2013-12-23,FP-non GTC,24760,0,16,90.7096,0,10000700
-0,2013-03-29,FP-GTC,9426,3,13,50.9023,0,10000090
-0,2013-03-25,Others,20886,0,-99,35.0414,0,10000171
-0,2013-12-10,Auction,95672,0,15,29.8872,0,10000216
-0,2012-03-14,Others,12688,0,14,10.4067,0,10000626
-0,2013-11-29,FP-non GTC,31519,0,13,89.2334,0,10000199
-0,2013-04-29,ABIN,31519,0,-99,99.2460,0,10000565
-0,2012-02-01,FP-GTC,161567,15,11,56.3989,0,10000651
-0,2012-03-17,FP-GTC,4943,0,16,0.4422,0,10000829
-0,2012-11-06,FP-GTC,156614,0,12,2.3454,0,10000370
-0,2012-12-03,Auction,155226,0,13,51.1354,0,10000867
-0,2012-09-09,FP-GTC,99985,0,12,9.1236,0,10000281
-0,2012-06-16,ABIN,99985,0,16,16.4070,0,10000143
-0,2012-05-06,FP-GTC,99985,0,14,6.4304,0,10000514
-0,2013-10-20,FP-GTC,36250,0,13,55.6895,0,10000390
-0,2012-10-11,ABIN,106246,0,15,30.6373,0,10000980
-0,2013-08-08,Others,103178,15,12,41.4904,0,10000751
-0,2012-09-05,Auction,314,0,16,3.2615,0,10000280
-0,2012-08-07,ABIN,48904,0,13,57.7688,0,10000245
-0,2013-07-05,ABIN,314,0,14,28.9444,0,10000888
-0,2012-09-10,FP-non GTC,95672,0,-99,54.0914,0,10000601
-0,2012-09-18,Auction,25147,0,12,74.4422,0,10000679
-0,2012-08-24,FP-non GTC,175750,3,16,45.8282,0,10000397
-0,2013-05-29,Others,26249,0,14,12.7681,0,10000967
-0,2012-11-17,FP-GTC,94847,0,14,74.4181,0,10000175
-0,2012-09-22,ABIN,175750,0,15,85.6879,0,10000453
-0,2013-09-17,ABIN,533,0,11,85.5838,0,10000642
-0,2013-03-28,Others,60340,0,12,72.6495,0,10000397
-0,2013-08-09,Others,216,0,15,88.6918,0,10000867
-0,2013-12-19,Others,43398,0,-99,88.0444,0,10000482
-0,2013-12-02,FP-non GTC,15115,0,-99,29.6027,0,10000538
-0,2012-11-23,Others,46575,0,5,49.3124,0,10000678
-0,2013-06-25,FP-non GTC,16145,0,15,7.4413,0,10000897
-0,2012-01-22,FP-GTC,164,0,14,71.8071,0,10000510
-0,2013-04-24,FP-GTC,1504,0,12,95.5706,0,10000554
-0,2012-03-05,FP-non GTC,12688,0,5,47.7646,0,10000175
-0,2013-02-15,FP-non GTC,16145,0,13,40.9511,0,10000647
-0,2013-01-18,Others,36250,0,13,77.3572,0,10000687
-0,2012-06-04,Others,15115,0,15,25.3400,0,10000493
-0,2013-10-13,FP-GTC,165888,0,-99,58.1861,0,10000753
-0,2012-05-21,Auction,145970,0,5,37.2504,0,10000292
-0,2012-04-26,Auction,11848,0,13,29.2954,0,10000804
-0,2013-09-26,FP-GTC,61323,0,13,84.7095,0,10000761
-0,2013-03-06,Auction,100847,0,-99,81.7980,0,10000593
-0,2012-08-08,ABIN,51582,0,15,15.9790,0,10000138
-0,2012-01-09,Others,1504,0,14,34.0508,0,10000954
-0,2013-10-20,ABIN,20886,0,12,36.9353,0,10000408
-0,2013-06-25,Auction,53064,0,11,99.7714,0,10000409
-0,2013-05-03,FP-GTC,63861,0,5,39.2974,0,10000668
-0,2013-01-26,FP-GTC,100847,0,13,59.5009,0,10000536
-0,2012-09-19,FP-GTC,164261,0,13,15.7583,0,10000231
-0,2013-11-16,FP-GTC,164261,0,16,83.6234,0,10000927
-0,2013-05-07,FP-non GTC,20485,0,5,52.9100,0,10000491
-0,2013-08-15,Others,32996,15,12,54.7122,0,10000411
-0,2013-10-31,FP-GTC,63861,0,14,0.3599,0,10000903
-0,2012-06-13,FP-non GTC,159184,0,11,49.9550,0,10000849
-0,2012-12-25,Auction,20213,0,-99,11.4752,0,10000583
-0,2013-12-15,Auction,759,0,13,33.6991,0,10000390
-0,2012-04-30,Others,87118,0,16,51.4630,0,10000572
-0,2012-07-14,Others,10866,0,11,36.9614,0,10000467
-0,2013-06-25,FP-non GTC,1357,0,12,17.5618,0,10000426
-0,2013-02-06,Auction,13836,0,12,74.3179,0,10000346
-0,2012-06-03,ABIN,60340,0,12,82.3722,0,10000531
-0,2013-07-23,FP-GTC,139973,0,-99,75.2548,0,10000385
-0,2013-07-06,Others,11554,0,14,40.1129,0,10000724
-0,2013-08-10,FP-non GTC,31519,0,-99,5.2432,0,10000356
-0,2013-07-31,Auction,31673,0,14,51.1089,0,10000598
-0,2013-12-05,Auction,314,0,13,19.9031,0,10000068
-0,2012-12-30,ABIN,50508,0,5,73.8659,0,10000482
-0,2012-09-22,Auction,165888,0,12,81.9826,0,10000832
-0,2012-07-16,Auction,223,0,5,76.0284,0,10000354
-0,2013-01-26,Others,20485,0,12,71.6623,0,10000552
-0,2012-11-07,FP-non GTC,57013,0,16,73.2931,0,10000801
-0,2012-01-26,FP-non GTC,175750,0,13,18.8970,0,10000649
-0,2012-06-09,FP-non GTC,60340,0,12,11.1614,0,10000830
-0,2012-06-20,Auction,57990,3,5,69.1183,0,10000557
-0,2013-01-01,FP-non GTC,45333,0,13,94.0586,0,10000253
-0,2013-07-26,FP-non GTC,139973,0,11,39.7239,0,10000441
-0,2012-09-15,FP-GTC,24541,0,15,0.3239,0,10000379
-0,2013-09-22,Auction,31519,3,12,80.0315,0,10000436
-0,2012-10-27,FP-GTC,223,0,15,39.3790,0,10000420
-0,2012-11-20,FP-non GTC,533,0,5,49.4951,0,10000390
-0,2013-12-07,FP-GTC,1349,0,15,93.3008,0,10000398
-0,2012-05-30,FP-non GTC,46575,0,12,66.7652,0,10000915
-0,2012-09-07,FP-non GTC,95672,0,14,29.5970,0,10000231
-0,2013-04-26,Auction,31673,0,-99,15.8347,0,10000260
-0,2012-09-11,FP-non GTC,50508,0,14,80.5444,0,10000263
-0,2013-09-03,FP-non GTC,95173,0,16,33.1487,0,10000493
-0,2012-10-03,FP-non GTC,44079,0,15,99.7408,0,10000828
-0,2012-12-26,ABIN,16145,0,14,40.7826,0,10000062
-0,2012-07-17,Auction,26249,0,15,28.6663,0,10000534
-0,2013-06-30,ABIN,63861,0,14,75.6832,0,10000944
-0,2012-01-09,ABIN,156614,0,11,98.4996,0,10000353
-0,2013-09-08,FP-GTC,156614,0,13,12.7473,0,10000063
-0,2013-09-23,Auction,41940,0,5,37.5254,0,10000383
-0,2012-11-11,Auction,145970,0,5,77.1361,0,10000420
-0,2013-08-26,Others,11848,0,16,28.2799,0,10000323
-0,2012-09-15,Others,11554,0,13,63.7232,0,10000729
-0,2012-01-09,FP-non GTC,25147,0,11,7.3009,0,10000745
-0,2012-08-16,Others,87118,0,15,47.8997,0,10000240
-0,2013-12-26,FP-non GTC,16145,0,12,51.0442,0,10000050
-0,2012-03-24,ABIN,48027,0,5,26.2083,0,10000600
-0,2012-08-22,ABIN,216,0,5,79.9268,0,10000706
-0,2013-11-03,FP-GTC,24541,0,12,83.0235,0,10000293
-0,2013-05-18,FP-non GTC,88750,0,-99,84.8856,0,10000147
-0,2013-01-15,ABIN,95672,0,15,86.0386,0,10000590
-0,2012-12-03,ABIN,50508,0,11,67.9981,0,10000582
-0,2012-06-19,FP-GTC,148324,15,15,53.4811,0,10000793
-0,2013-10-06,Auction,6762,0,14,73.5338,0,10000544
-0,2013-12-18,ABIN,63861,0,5,50.2892,0,10000769
-0,2013-12-04,Auction,25147,0,5,48.3303,0,10000590
-0,2012-04-25,FP-non GTC,62179,0,14,72.3156,0,10000102
-0,2013-11-20,Auction,24760,0,14,91.4883,0,10000370
-0,2013-02-08,Others,20485,0,11,29.1083,0,10000261
-0,2013-04-18,Others,2023,0,5,48.4321,0,10000355
-0,2012-11-21,Others,32876,0,12,16.7365,0,10000352
-0,2012-03-07,FP-GTC,61323,0,-99,32.5836,0,10000494
-0,2012-01-20,FP-non GTC,175750,0,16,52.8153,0,10000025
-0,2013-10-06,FP-GTC,26249,0,-99,1.9539,0,10000660
-0,2012-01-10,Auction,57990,0,14,57.5800,0,10000830
-0,2013-09-13,Others,46575,0,15,60.3315,0,10000528
-0,2012-11-19,FP-non GTC,44079,0,11,73.0457,0,10000482
-0,2012-09-23,Auction,95672,0,13,84.6345,0,10000586
-0,2013-08-31,Others,216,0,12,34.7429,0,10000676
-0,2013-04-11,FP-GTC,963,0,-99,77.7226,0,10000367
-0,2013-03-28,ABIN,15687,0,-99,8.2384,0,10000542
-0,2012-05-24,ABIN,152801,0,15,39.0204,0,10000277
-0,2013-03-05,ABIN,67698,0,16,40.6091,0,10000886
-0,2013-08-06,Auction,13987,0,13,36.5088,0,10000628
-0,2013-02-04,ABIN,20213,0,11,73.5301,0,10000134
-0,2012-05-19,FP-non GTC,38238,0,12,59.3237,0,10000500
-0,2013-08-19,ABIN,57990,0,12,10.1688,0,10000715
-0,2012-03-28,FP-non GTC,46575,0,16,77.7396,0,10000756
-0,2012-02-19,Auction,43479,0,-99,45.2450,0,10000049
-0,2012-04-02,FP-GTC,41940,0,15,58.8415,0,10000195
-0,2013-08-24,Others,16145,0,11,5.4971,0,10000119
-0,2013-01-10,Auction,106340,15,12,24.1336,0,10000603
-0,2012-09-23,Auction,152801,0,5,70.4024,0,10000384
-0,2013-07-29,FP-GTC,73506,0,16,14.5932,0,10000580
-0,2012-02-16,FP-non GTC,67698,0,5,4.4981,0,10000524
-0,2013-01-06,Others,65,0,13,64.8343,0,10000731
-0,2013-03-02,Auction,43398,0,16,22.6621,0,10000734
-0,2013-10-25,Auction,57990,0,13,64.3384,0,10000961
-0,2012-07-07,FP-GTC,156356,0,16,47.3744,0,10000795
-0,2013-12-19,FP-GTC,67698,0,16,96.9535,0,10000207
-0,2013-11-04,Auction,63861,0,5,34.8173,0,10000964
-0,2013-01-18,FP-non GTC,174053,3,5,94.6036,0,10000393
-0,2013-01-30,Auction,43479,0,16,28.9982,0,10000854
-0,2012-05-16,ABIN,24541,0,15,91.6347,0,10000536
-0,2013-06-03,FP-non GTC,159184,0,15,27.9722,0,10000644
-0,2013-08-24,FP-GTC,2635,0,14,95.7894,0,10000503
-0,2012-07-02,FP-non GTC,16509,0,5,76.9646,0,10000320
-0,2013-09-09,ABIN,80287,0,16,68.9620,0,10000934
-0,2012-04-15,FP-GTC,156356,0,12,95.3640,0,10000269
-0,2013-07-10,FP-GTC,1349,0,13,82.7969,0,10000033
-0,2012-12-02,FP-GTC,963,0,13,31.4196,0,10000717
-0,2013-02-17,Auction,26249,0,14,9.5202,0,10000543
-0,2013-02-17,Others,87118,0,16,77.3899,0,10000647
-0,2012-12-12,Others,6762,0,15,76.3422,0,10000076
-0,2013-07-08,Others,80053,0,5,95.2412,0,10000723
-0,2012-08-19,ABIN,32876,0,12,40.9587,0,10000352
-0,2013-07-24,Auction,314,0,11,78.8147,0,10000996
-0,2013-10-10,Others,57990,0,12,89.8124,0,10000549
-0,2013-11-13,Others,139973,0,16,85.5451,0,10000089
-0,2013-03-29,FP-non GTC,25147,0,16,16.2290,0,10000017
-0,2012-06-04,FP-non GTC,44079,0,-99,0.1588,0,10000758
-0,2012-07-19,FP-non GTC,57784,0,12,84.9441,0,10000553
-0,2012-01-08,FP-GTC,155226,0,15,31.9705,0,10000778
-0,2012-09-13,FP-non GTC,963,0,16,39.6392,0,10000799
-0,2012-12-24,Others,175750,0,15,77.3617,0,10000164
-0,2013-08-31,Auction,57990,0,12,76.7885,0,10000580
-0,2013-08-06,FP-non GTC,156356,0,13,86.0218,0,10000445
-0,2013-05-29,FP-non GTC,11848,0,11,23.0269,0,10000372
-0,2013-05-19,Others,53064,0,13,66.3990,0,10000390
-0,2012-11-01,FP-non GTC,51582,0,14,57.6157,0,10000061
-0,2013-01-01,Auction,1357,0,-99,18.2117,0,10000860
-0,2013-05-17,Others,121153,0,14,79.4534,0,10000155
-0,2013-07-04,FP-GTC,80053,0,5,43.3271,0,10000456
-0,2013-12-17,Others,165888,0,-99,9.8402,0,10000357
-0,2013-11-28,FP-GTC,26262,0,-99,1.4013,0,10000731
-0,2013-02-08,FP-GTC,65,0,11,61.9604,0,10000176
-0,2012-05-17,ABIN,9426,3,12,68.0170,0,10000895
-0,2012-08-29,Auction,159184,0,13,43.7406,0,10000723
-0,2013-10-06,FP-GTC,61323,0,14,85.9325,0,10000692
-0,2013-08-08,FP-GTC,20886,0,14,88.0137,0,10000063
-0,2013-04-06,FP-non GTC,156356,0,16,67.1201,0,10000441
-0,2012-03-09,Auction,1504,0,13,45.8878,0,10000862
-0,2013-12-13,FP-GTC,139973,3,16,58.7879,0,10000947
-0,2013-02-03,ABIN,95173,0,-99,33.2714,0,10000634
-0,2013-02-19,Others,41940,0,5,32.2179,0,10000257
-0,2012-05-09,ABIN,65,0,11,96.0579,0,10000675
-0,2012-10-30,Auction,80135,0,11,55.5335,0,10000288
-0,2013-07-14,ABIN,11554,0,16,9.7012,0,10000210
-0,2012-07-29,Others,11554,0,5,91.5938,0,10000736
-0,2012-06-03,ABIN,80287,0,13,99.7431,0,10000403
-0,2012-10-10,Auction,36250,0,13,14.7056,0,10000561
-0,2013-06-20,ABIN,20485,0,5,23.9120,0,10000798
-0,2013-12-26,Others,11554,0,15,27.2028,0,10000154
-0,2013-05-07,Auction,11848,0,-99,73.7354,0,10000448
-0,2013-12-14,ABIN,61323,0,16,44.6086,0,10000555
-0,2012-08-29,FP-GTC,139973,0,14,34.7404,0,10000686
-0,2013-12-31,FP-GTC,100847,0,15,70.6027,0,10000534
-0,2013-12-13,FP-non GTC,16145,3,12,76.5802,0,10000864
-0,2012-01-24,FP-non GTC,57990,0,-99,54.7904,0,10000325
-0,2013-07-26,Others,20485,0,11,9.3130,0,10000991
-0,2013-09-30,ABIN,31519,0,15,95.7797,0,10000701
-0,2012-03-30,FP-non GTC,88750,0,16,34.6777,0,10000494
-0,2012-05-11,Others,20485,0,16,2.2782,0,10000436
-0,2012-11-21,FP-non GTC,156356,0,13,3.4276,0,10000574
-0,2012-11-19,FP-non GTC,36250,0,16,42.1665,0,10000885
-0,2013-01-07,Others,20485,0,13,29.1424,0,10000931
-0,2013-01-16,ABIN,88750,0,13,87.3858,0,10000276
-0,2012-07-20,ABIN,25147,0,-99,41.9809,0,10000928
-0,2013-06-27,FP-non GTC,75665,0,11,65.3889,0,10000587
-0,2013-12-04,FP-non GTC,45333,0,15,41.7577,0,10000979
-0,2012-05-01,Auction,4943,0,11,76.3978,0,10000385
-0,2013-05-03,Others,66767,15,-99,69.0620,0,10000186
-0,2013-02-14,FP-non GTC,95672,0,14,15.6152,0,10000356
-0,2012-01-01,Others,1357,0,13,16.7271,0,10000263
-0,2012-01-05,FP-non GTC,67703,3,5,32.2005,0,10000141
-0,2013-12-15,Others,2023,0,-99,55.3349,0,10000920
-0,2012-10-02,FP-GTC,314,0,14,95.9217,0,10000647
-0,2012-10-27,Others,64076,0,5,3.4266,0,10000486
-0,2013-10-17,Others,41940,0,15,3.0363,0,10000299
-0,2013-02-09,Others,13836,0,15,37.1746,0,10000799
-0,2013-04-03,FP-GTC,31519,0,15,83.3031,0,10000656
-0,2013-08-30,Others,63861,0,13,37.8620,0,10000958
-0,2012-01-01,Others,1349,0,13,0.7227,0,10000774
-0,2013-03-24,FP-non GTC,87118,0,13,32.5615,0,10000661
-0,2012-12-03,FP-non GTC,216,0,5,40.1447,0,10000923
-0,2012-07-12,FP-GTC,94847,0,5,74.4586,0,10000161
-0,2013-03-18,Others,1161,3,-99,70.1521,0,10000123
-0,2013-11-17,Auction,165888,0,5,16.1344,0,10000029
-0,2013-11-25,FP-non GTC,44079,0,5,18.0996,0,10000461
-0,2012-12-06,FP-GTC,159184,0,15,63.6868,0,10000399
-0,2013-09-27,FP-non GTC,161567,15,15,35.8966,0,10000283
-0,2013-11-02,ABIN,20865,0,5,70.2863,0,10000724
-0,2013-04-29,Auction,314,0,13,53.6862,0,10000676
-0,2013-01-21,Auction,20886,0,-99,32.5548,0,10000052
-0,2012-04-18,FP-GTC,67698,0,14,90.8206,0,10000221
-0,2013-10-14,Others,46575,0,13,92.8392,0,10000187
-0,2013-07-06,FP-GTC,26249,0,-99,54.6729,0,10000651
-0,2012-09-15,Others,16145,0,15,70.0461,0,10000279
-0,2013-11-02,Others,38238,0,11,22.9595,0,10000451
-0,2012-06-03,ABIN,57013,0,11,28.9005,0,10000028
-0,2013-10-08,FP-GTC,20886,0,14,24.6958,0,10000676
-0,2013-04-11,Auction,100847,0,14,42.1878,0,10000645
-0,2013-11-07,Auction,45333,0,13,58.1089,0,10000182
-0,2012-10-18,FP-non GTC,57990,0,15,37.9049,0,10000696
-0,2012-11-28,FP-non GTC,63889,0,5,59.1268,0,10000116
-0,2012-03-02,Auction,45333,0,13,37.4799,0,10000298
-0,2013-07-27,FP-non GTC,75665,0,12,19.4230,0,10000333
-0,2012-12-01,Auction,44079,0,11,95.4596,0,10000163
-0,2012-04-11,FP-non GTC,161567,15,13,47.4582,0,10000082
-0,2013-06-23,ABIN,175750,3,13,23.9511,0,10000560
-0,2012-02-17,Others,46575,0,15,25.7613,0,10000308
-0,2013-05-19,ABIN,223,0,15,64.7127,0,10000850
-0,2012-10-29,FP-non GTC,159184,0,5,15.4188,0,10000995
-0,2012-07-17,Auction,4943,0,11,32.1734,0,10000820
-0,2013-01-03,ABIN,57784,0,5,47.7542,0,10000563
-0,2013-07-17,FP-GTC,150047,3,16,35.0905,0,10000545
-0,2013-07-20,Others,87118,0,14,24.6574,0,10000985
-0,2013-12-14,Others,11848,0,14,80.9504,0,10000318
-0,2013-01-16,Auction,106246,0,12,94.2201,0,10000113
-0,2012-11-04,Others,63861,0,12,71.8354,0,10000985
-0,2012-08-25,FP-non GTC,100847,0,5,68.7418,0,10000581
-0,2013-07-22,Auction,156356,0,15,63.6314,0,10000140
-0,2013-11-04,Auction,67698,0,16,15.6061,0,10000128
-0,2013-03-01,FP-GTC,20485,0,-99,49.2253,0,10000722
-0,2013-12-03,FP-GTC,46575,0,-99,71.5261,0,10000796
-0,2013-03-25,FP-non GTC,60340,0,11,23.0796,0,10000605
-0,2012-11-16,FP-non GTC,99985,0,11,91.6223,0,10000619
-0,2012-05-24,Auction,16509,0,16,97.7044,0,10000002
-0,2012-04-04,ABIN,139973,3,13,16.7393,0,10000923
-0,2012-07-20,FP-GTC,174106,3,13,8.8874,0,10000134
-0,2013-09-12,Auction,33038,15,13,46.7475,0,10000154
-0,2012-06-12,ABIN,57990,0,11,33.1479,0,10000036
-0,2013-08-31,ABIN,46575,0,12,41.0635,0,10000310
-0,2012-12-18,Auction,1349,0,5,14.6328,0,10000296
-0,2012-02-18,ABIN,16509,0,-99,76.3163,0,10000486
-0,2013-07-02,Auction,3838,0,11,95.7402,0,10000963
-0,2012-06-28,Auction,145970,0,16,41.1425,0,10000646
-0,2013-11-03,FP-GTC,12688,0,5,73.9106,0,10000357
-0,2012-03-30,FP-non GTC,16509,0,5,39.5703,0,10000495
-0,2012-08-18,FP-non GTC,75665,0,11,61.4928,0,10000522
-0,2013-07-29,Others,156356,0,16,98.2405,0,10000417
-0,2013-07-19,Others,32876,0,12,68.5148,0,10000306
-0,2012-02-13,ABIN,175750,0,16,64.5444,0,10000274
-0,2013-02-04,FP-non GTC,13836,0,-99,65.7663,0,10000511
-0,2013-07-24,FP-GTC,165888,0,16,91.7808,0,10000330
-0,2012-04-25,Others,41940,0,-99,6.5053,0,10000357
-0,2013-11-28,ABIN,106340,15,12,71.4264,0,10000155
-0,2012-09-16,FP-non GTC,170083,3,-99,80.2442,0,10000690
-0,2012-05-10,FP-GTC,16145,0,14,11.0775,0,10000372
-0,2013-10-28,FP-non GTC,15687,0,16,65.9436,0,10000032
-0,2013-05-17,FP-non GTC,94847,0,13,37.3520,0,10000044
-0,2013-05-31,FP-GTC,223,0,5,93.3181,0,10000365
-0,2012-01-07,FP-non GTC,73506,0,13,13.1225,0,10000218
-0,2013-07-01,FP-GTC,64076,0,15,78.1094,0,10000081
-0,2013-07-26,Others,67698,0,11,14.9245,0,10000775
-0,2013-03-02,Auction,75665,0,5,84.2445,0,10000162
-0,2012-01-13,FP-GTC,1120,3,16,43.8855,0,10000157
-0,2012-06-02,ABIN,53064,0,12,17.3600,0,10000091
-0,2012-02-23,ABIN,31387,3,14,43.1757,0,10000071
-0,2013-10-22,FP-non GTC,158798,0,15,10.9759,0,10000341
-0,2013-05-23,FP-GTC,11848,0,-99,7.5230,0,10000277
-0,2013-07-25,FP-GTC,43479,0,14,13.2620,0,10000500
-0,2012-03-03,FP-non GTC,11848,0,14,95.0683,0,10000164
-0,2012-01-09,ABIN,11554,0,15,6.8777,0,10000785
-0,2013-05-08,ABIN,80287,0,14,95.5320,0,10000595
-0,2013-07-26,FP-GTC,121153,0,12,28.7213,0,10000829
-0,2012-11-27,FP-GTC,31673,0,14,7.8033,0,10000498
-0,2013-06-04,ABIN,43398,0,15,76.0187,0,10000061
-0,2012-10-05,ABIN,15687,0,13,87.1235,0,10000649
-0,2013-06-29,Auction,61323,0,14,78.4000,0,10000765
-0,2012-07-25,ABIN,216,0,12,43.1556,0,10000597
-0,2013-01-03,FP-non GTC,121153,0,12,70.1009,0,10000201
-0,2013-10-22,FP-non GTC,170302,15,12,92.5959,0,10000151
-0,2012-02-03,FP-non GTC,155226,0,12,68.6486,0,10000870
-0,2013-03-30,FP-GTC,139973,0,11,93.3324,0,10000585
-0,2012-11-21,Others,20865,0,11,68.0525,0,10000115
-0,2012-11-09,ABIN,11848,0,13,66.3745,0,10000652
-0,2012-10-22,Auction,2023,0,13,52.4918,0,10000836
-0,2013-01-07,Auction,164261,0,-99,56.4680,0,10000560
-0,2012-01-05,Others,80053,0,-99,34.1305,0,10000905
-0,2012-08-27,FP-GTC,64076,0,14,3.0691,0,10000389
-0,2013-06-23,Others,139973,0,16,89.7673,0,10000636
-0,2013-09-13,Auction,67698,0,15,62.9192,0,10000596
-0,2012-08-18,FP-GTC,43398,0,12,45.3384,0,10000382
-0,2012-10-27,FP-non GTC,1120,3,5,84.6466,0,10000487
-0,2012-05-24,Auction,24541,0,14,56.7041,0,10000366
-0,2013-02-12,Auction,64076,0,13,1.1360,0,10000089
-0,2012-02-19,FP-non GTC,43398,0,14,7.2416,0,10000129
-0,2012-07-30,ABIN,48027,0,11,41.6704,0,10000761
-0,2013-10-04,FP-non GTC,37831,0,16,31.9567,0,10000610
-0,2013-11-18,Auction,223,0,16,21.8155,0,10000079
-0,2012-06-08,Others,80135,0,16,90.0166,0,10000478
-0,2012-10-25,Others,159184,0,16,92.0436,0,10000166
-0,2013-10-22,ABIN,13987,0,15,62.5546,0,10000592
-0,2013-11-01,ABIN,103324,15,16,14.9475,0,10000924
-0,2013-03-21,FP-GTC,1120,3,-99,29.5252,0,10000758
-0,2012-03-13,Others,759,0,16,62.4158,0,10000810
-0,2012-05-14,Auction,95672,0,16,92.0781,0,10000609
-0,2013-09-28,FP-GTC,64076,0,12,37.3599,0,10000487
-0,2013-10-09,ABIN,60606,3,13,48.9467,0,10000007
-0,2013-04-21,ABIN,26249,0,14,67.1520,0,10000257
-0,2013-05-08,FP-GTC,20886,0,13,19.5685,0,10000122
-0,2013-12-29,ABIN,1357,0,12,89.9069,0,10000900
-0,2013-02-14,FP-GTC,63889,0,16,74.5657,0,10000676
-0,2012-02-25,Auction,88750,0,-99,92.3939,0,10000769
-0,2012-06-22,Others,13836,0,14,77.1277,0,10000795
-0,2012-01-30,FP-GTC,43479,0,15,48.2346,0,10000013
-0,2013-08-17,ABIN,57990,3,-99,87.0638,0,10000277
-0,2013-06-24,FP-GTC,1357,0,15,75.0985,0,10000056
-0,2013-04-08,ABIN,57013,0,11,21.4485,0,10000195
-0,2012-04-07,FP-non GTC,24541,0,-99,40.6197,0,10000313
-0,2012-07-26,Others,963,0,16,99.8137,0,10000257
-0,2012-07-18,Others,15115,0,-99,9.9153,0,10000937
-0,2012-01-04,Auction,63889,0,13,84.5004,0,10000467
-0,2013-05-25,Auction,1120,3,14,40.3618,0,10000076
-0,2013-03-30,FP-GTC,38238,0,12,94.9870,0,10000997
-0,2012-05-12,Auction,32876,0,-99,38.5800,0,10000943
-0,2012-11-21,FP-GTC,100847,0,14,7.7495,0,10000588
-0,2013-10-02,Auction,15868,0,5,92.2309,0,10000520
-0,2013-11-05,ABIN,31673,0,-99,75.9838,0,10000344
-0,2013-03-23,FP-non GTC,48904,0,-99,15.4260,0,10000090
-0,2012-12-27,FP-non GTC,43479,0,5,35.7689,0,10000066
-0,2013-01-11,FP-non GTC,223,0,12,5.9423,0,10000174
-0,2012-05-25,Auction,50508,0,16,81.5853,0,10000337
-0,2012-09-08,Others,6762,0,15,11.8473,0,10000718
-0,2013-07-08,Auction,139973,0,5,11.7025,0,10000537
-0,2013-04-23,ABIN,32876,0,12,40.4116,0,10000798
-0,2013-03-22,Auction,2023,0,15,89.8093,0,10000662
-0,2012-11-01,Others,75708,3,11,95.9527,0,10000776
-0,2012-01-29,ABIN,156356,0,16,64.6181,0,10000910
-0,2012-01-20,Others,2635,0,11,81.6196,0,10000893
-0,2012-05-27,FP-non GTC,94847,0,15,87.1713,0,10000121
-0,2013-12-17,Others,156614,0,14,87.7791,0,10000531
-0,2013-03-05,ABIN,80135,0,16,64.8966,0,10000452
-0,2013-01-26,ABIN,156356,0,16,59.0108,0,10000671
-0,2012-01-08,FP-non GTC,57990,0,15,56.3470,0,10000028
-0,2013-08-04,ABIN,13836,0,11,98.5679,0,10000481
-0,2013-04-04,Others,63861,0,13,14.3911,0,10000944
-0,2013-02-15,FP-GTC,2023,0,5,5.5878,0,10000816
-0,2013-05-05,FP-non GTC,175750,0,-99,80.9471,0,10000727
-0,2013-06-24,FP-GTC,38238,0,12,96.7825,0,10000202
-0,2013-11-04,ABIN,45333,0,14,57.9540,0,10000767
-0,2012-02-23,FP-non GTC,57990,0,5,16.4790,0,10000146
-0,2013-01-13,ABIN,158798,0,11,45.5371,0,10000133
-0,2013-11-16,ABIN,73506,0,16,35.7207,0,10000304
-0,2012-11-15,Auction,64076,0,15,66.0059,0,10000375
-0,2012-01-03,ABIN,156614,0,15,84.8759,0,10000095
-0,2012-09-22,Auction,57990,0,14,42.7313,0,10000953
-0,2013-11-03,FP-non GTC,67698,0,11,8.9322,0,10000913
-0,2012-08-31,ABIN,1504,0,5,34.3706,0,10000748
-0,2013-12-13,FP-GTC,15868,0,-99,18.3204,0,10000495
-0,2012-07-20,ABIN,533,0,11,24.9451,0,10000237
-0,2012-07-14,ABIN,41940,0,11,42.9796,0,10000328
-0,2013-11-06,Others,32876,0,15,4.2693,0,10000383
-0,2012-07-02,Auction,41940,0,12,19.2987,0,10000196
-0,2012-06-21,FP-GTC,20865,0,-99,36.5029,0,10000098
-0,2012-09-19,ABIN,159184,0,15,65.9768,0,10000517
-0,2012-02-11,Others,16145,0,14,41.4762,0,10000733
-0,2012-07-19,Auction,63861,0,11,30.7294,0,10000351
-0,2013-05-24,ABIN,1349,0,12,61.0346,0,10000078
-0,2013-06-26,Auction,139973,3,11,49.3849,0,10000537
-0,2013-11-30,Others,1357,0,16,62.0388,0,10000532
-0,2012-11-01,Others,121153,0,5,64.8814,0,10000820
-0,2013-10-20,Auction,20485,0,5,88.9093,0,10000467
-0,2013-04-15,FP-GTC,43479,0,13,72.5969,0,10000352
-0,2012-04-02,FP-GTC,33977,15,16,42.1845,0,10000614
-0,2012-03-20,ABIN,2023,0,16,95.0254,0,10000014
-0,2013-02-21,FP-non GTC,57990,0,5,25.0404,0,10000386
-0,2013-06-02,FP-non GTC,6762,0,12,60.3684,0,10000783
-0,2012-01-07,FP-GTC,759,0,11,80.1720,0,10000952
-0,2012-12-01,FP-non GTC,533,0,12,47.1653,0,10000550
-0,2012-11-03,ABIN,99985,0,16,40.8280,0,10000629
-0,2013-10-15,FP-GTC,64076,0,15,55.9541,0,10000531
-0,2013-12-30,Auction,80135,0,13,13.2503,0,10000425
-0,2012-06-28,FP-GTC,15868,0,12,76.8360,0,10000557
-0,2013-04-07,FP-GTC,10866,0,16,37.7540,0,10000810
-0,2013-08-03,FP-GTC,139255,15,13,70.8704,0,10000514
-0,2012-07-23,ABIN,121153,0,5,65.6362,0,10000166
-0,2013-05-04,FP-GTC,31519,0,5,38.9751,0,10000932
-0,2013-01-27,ABIN,175750,3,-99,81.7736,0,10000529
-0,2013-03-30,ABIN,11554,0,15,37.8703,0,10000509
-0,2012-06-03,FP-GTC,20485,0,-99,62.4729,0,10000404
-0,2012-05-09,FP-non GTC,63861,0,11,35.1334,0,10000175
-0,2013-12-25,FP-non GTC,6762,0,12,95.0363,0,10000101
-0,2012-11-18,FP-GTC,175750,0,5,95.8938,0,10000537
-0,2013-01-07,FP-non GTC,57784,0,14,0.2995,0,10000847
-0,2012-03-11,Auction,63861,0,12,58.1028,0,10000912
-0,2012-03-23,Others,80287,0,14,24.7900,0,10000967
-0,2012-03-19,ABIN,99985,0,16,5.9564,0,10000684
-0,2013-11-24,Auction,20886,0,15,28.1384,0,10000239
-0,2012-04-04,FP-GTC,100847,0,11,91.4446,0,10000743
-0,2013-12-15,ABIN,44079,0,16,39.6860,0,10000476
-0,2013-10-06,FP-GTC,132939,0,12,20.8855,0,10000854
-0,2013-12-07,Others,25147,0,14,16.4357,0,10000198
-0,2012-02-04,Others,158798,0,13,44.5451,0,10000543
-0,2013-11-07,FP-GTC,10866,0,16,8.5249,0,10000105
-0,2012-08-04,FP-GTC,2635,0,12,11.7572,0,10000382
-0,2012-08-14,Auction,152801,0,15,46.6818,0,10000205
-0,2013-02-25,Auction,50508,0,15,37.8443,0,10000644
-0,2013-10-09,ABIN,223,0,13,58.8049,0,10000768
-0,2012-01-10,Auction,20485,0,11,92.2997,0,10000975
-0,2013-05-03,FP-non GTC,37831,0,12,15.9399,0,10000280
-0,2013-11-12,ABIN,73506,0,12,13.9272,0,10000332
-0,2013-08-16,Others,164,0,12,39.2371,0,10000887
-0,2013-10-27,FP-non GTC,15868,0,16,51.4769,0,10000303
-0,2013-04-27,FP-non GTC,80287,0,15,90.8971,0,10000207
-0,2013-11-06,FP-non GTC,11554,0,12,26.0123,0,10000855
-0,2013-11-25,Others,6762,0,14,96.0198,0,10000418
-0,2012-08-09,ABIN,80135,0,15,89.0544,0,10000861
-0,2013-09-28,ABIN,16509,0,12,90.2997,0,10000520
-0,2012-03-19,FP-GTC,43479,0,-99,93.8319,0,10000045
-0,2012-05-25,FP-GTC,139973,0,16,8.9816,0,10000684
-0,2013-04-04,Auction,25147,0,11,43.4557,0,10000801
-0,2013-07-07,Auction,67698,0,14,59.3634,0,10000305
-0,2013-10-27,ABIN,63861,0,14,48.1526,0,10000963
-0,2012-05-31,Auction,130,0,5,1.0560,0,10000357
-0,2012-08-21,Auction,13836,0,16,14.4247,0,10000278
-0,2013-07-24,Auction,15568,15,14,14.5748,0,10000590
-0,2013-04-05,ABIN,12688,0,12,2.0636,0,10000951
-0,2013-02-27,FP-non GTC,73506,0,14,2.7139,0,10000134
-0,2013-06-16,FP-non GTC,164,0,5,59.4198,0,10000745
-0,2012-04-01,Others,20213,0,11,77.8490,0,10000929
-0,2013-12-02,FP-non GTC,155226,0,16,71.1100,0,10000433
-0,2013-06-07,Auction,158798,0,15,98.6517,0,10000320
-0,2012-11-25,ABIN,31519,0,12,68.8974,0,10000726
-0,2013-04-17,FP-GTC,57013,0,14,49.4405,0,10000050
-0,2013-03-18,FP-non GTC,175750,0,13,2.3784,0,10000559
-0,2013-08-13,Others,62179,0,11,36.4940,0,10000652
-0,2012-10-15,ABIN,175750,0,14,42.7269,0,10000560
-0,2012-01-08,Others,6762,0,5,58.5212,0,10000829
-0,2013-05-20,FP-non GTC,216,0,14,16.9644,0,10000104
-0,2012-12-07,Others,51582,0,5,6.0617,0,10000228
-0,2013-12-04,ABIN,57013,0,16,48.2921,0,10000347
-0,2013-12-17,ABIN,759,0,14,12.8117,0,10000161
-0,2012-02-08,FP-non GTC,24760,0,13,11.3190,0,10000938
-0,2013-01-03,FP-non GTC,15568,15,14,0.3508,0,10000964
-0,2013-04-21,Others,87118,0,12,9.5385,0,10000949
-0,2013-11-13,Others,36250,0,12,0.9029,0,10000532
-0,2013-03-18,FP-GTC,164,0,12,3.7727,0,10000237
-0,2013-06-29,Others,15868,0,11,23.3421,0,10000671
-0,2013-12-25,Others,25147,0,5,99.4168,0,10000708
-0,2012-10-06,FP-GTC,533,0,12,40.5069,0,10000295
-0,2013-02-21,ABIN,216,0,14,84.3818,0,10000637
-0,2012-08-27,FP-non GTC,67698,0,16,7.0299,0,10000671
-0,2013-04-13,Others,51582,0,13,67.9730,0,10000778
-0,2013-07-10,FP-GTC,139973,0,13,24.8423,0,10000253
-0,2013-11-02,ABIN,1349,0,14,56.6310,0,10000922
-0,2013-05-11,Others,26249,0,16,49.7279,0,10000610
-0,2013-01-17,FP-non GTC,118687,3,11,34.6913,0,10000002
-0,2012-07-02,Others,148324,15,-99,90.6687,0,10000613
-0,2013-07-14,ABIN,41940,0,-99,60.2733,0,10000145
-0,2013-06-13,Auction,63889,0,11,87.9644,0,10000920
-0,2013-05-05,FP-non GTC,1120,3,16,99.4791,0,10000720
-0,2012-03-30,Others,4943,0,14,56.9643,0,10000105
-0,2012-01-13,FP-non GTC,139973,3,-99,15.8380,0,10000587
-0,2012-09-02,ABIN,12688,0,13,69.4513,0,10000756
-0,2013-08-08,Others,121153,0,11,29.2318,0,10000289
-0,2013-03-09,Others,99985,0,15,14.7661,0,10000453
-0,2012-10-17,FP-non GTC,25147,0,11,96.1909,0,10000054
-0,2012-01-20,Others,73506,0,14,56.0157,0,10000909
-0,2012-04-15,FP-GTC,16145,0,12,94.6354,0,10000551
-0,2013-08-08,Others,3838,0,13,85.7695,0,10000464
-0,2013-01-21,Others,139973,0,13,64.5021,0,10000107
-0,2012-06-17,Others,139973,0,-99,72.8065,0,10000495
-0,2013-12-31,Others,20886,0,15,91.2326,0,10000746
-0,2012-02-11,FP-non GTC,4943,0,14,28.3146,0,10000649
-0,2013-10-01,Auction,155226,0,15,72.2196,0,10000576
-0,2012-08-25,ABIN,223,0,15,17.6408,0,10000661
-0,2012-07-10,Others,67698,0,15,70.9451,0,10000115
-0,2013-12-27,FP-non GTC,26262,0,13,64.5694,0,10000740
-0,2012-02-05,Auction,32996,15,12,9.9521,0,10000833
-0,2012-11-07,FP-non GTC,25147,0,16,83.3886,0,10000494
-0,2014-01-01,Others,45333,0,16,19.2606,0,10000869
-0,2013-10-05,Auction,50508,0,14,39.1465,0,10000904
-0,2012-02-25,FP-GTC,37831,0,11,12.4616,0,10000680
-0,2012-05-16,Others,31519,0,12,66.9268,0,10000548
-0,2013-11-08,FP-GTC,100847,0,11,47.7510,0,10000699
-0,2012-03-15,ABIN,106246,0,16,96.1592,0,10000922
-0,2013-05-15,Auction,64076,0,15,37.7430,0,10000148
-0,2012-11-03,Auction,61323,0,15,14.3851,0,10000353
-0,2012-07-28,ABIN,175750,0,-99,45.5415,0,10000869
-0,2013-06-26,FP-non GTC,95672,0,14,90.7320,0,10000507
-0,2012-09-11,Others,223,0,15,10.5185,0,10000705
-0,2012-09-24,FP-GTC,43479,0,16,3.4611,0,10000991
-0,2013-09-13,FP-GTC,100847,0,-99,51.0213,0,10000871
-0,2013-07-01,Others,132939,0,16,14.6584,0,10000859
-0,2012-06-13,Others,26262,0,-99,46.0446,0,10000041
-0,2013-10-26,Auction,3838,0,12,24.8196,0,10000561
-0,2012-03-05,Others,26262,0,13,66.7748,0,10000859
-0,2012-12-10,FP-GTC,20485,0,12,52.3473,0,10000171
-0,2013-11-15,Others,2023,0,5,84.6955,0,10000451
-0,2013-12-12,ABIN,80135,0,11,95.0112,0,10000718
-0,2013-04-16,ABIN,106340,15,16,14.6367,0,10000822
-0,2012-03-10,Auction,161567,15,16,5.2800,0,10000081
-0,2013-09-19,Auction,11848,0,11,27.6166,0,10000388
-0,2013-12-28,FP-GTC,216,0,15,90.1257,0,10000122
-0,2012-01-26,ABIN,314,0,12,3.5634,0,10000912
-0,2013-12-13,FP-GTC,158798,0,5,41.6652,0,10000485
-0,2013-09-26,FP-non GTC,80135,0,11,20.5746,0,10000138
-0,2012-01-20,Auction,62179,0,14,94.2904,0,10000310
-0,2013-04-20,ABIN,963,0,5,68.3604,0,10000571
-0,2012-02-03,FP-GTC,164,0,11,94.0501,0,10000120
-0,2013-10-14,Others,2023,0,12,84.9792,0,10000371
-0,2013-08-19,FP-GTC,57990,3,14,57.0343,0,10000171
-0,2012-06-18,Others,963,0,12,44.4186,0,10000343
-0,2012-10-18,Others,31519,0,12,50.6753,0,10000875
-0,2013-07-09,Others,36250,0,16,99.5251,0,10000446
-0,2012-01-19,ABIN,38238,0,14,0.1259,0,10000242
-0,2013-05-19,FP-non GTC,13836,0,16,92.7668,0,10000895
-0,2013-01-29,Others,95672,0,5,13.6012,0,10000843
-0,2013-01-30,ABIN,67698,0,5,13.9968,0,10000424
-0,2012-09-02,FP-GTC,223,0,-99,38.0021,0,10000803
-0,2012-05-11,Auction,11848,0,13,7.1910,0,10000964
-0,2013-05-14,FP-non GTC,759,0,16,43.1720,0,10000123
-0,2013-03-06,ABIN,3838,0,16,59.8866,0,10000653
-0,2012-08-23,FP-GTC,20213,0,16,91.3442,0,10000615
-0,2013-03-24,FP-GTC,4943,0,-99,18.4365,0,10000718
-0,2012-01-26,FP-non GTC,11554,0,14,41.6729,0,10000174
-0,2013-10-07,Others,108782,15,14,14.9130,0,10000643
-0,2013-07-25,Others,13987,0,-99,28.7021,0,10000154
-0,2013-11-08,FP-non GTC,31673,0,13,83.8884,0,10000059
-0,2013-01-06,ABIN,82494,15,12,74.4582,0,10000023
-0,2013-01-21,FP-non GTC,13987,0,11,72.4276,0,10000541
-0,2013-11-22,Auction,67698,0,11,53.1908,0,10000553
-0,2012-02-02,FP-non GTC,175750,0,12,79.1160,0,10000121
-0,2012-10-14,FP-GTC,24760,0,11,70.5894,0,10000677
-0,2012-10-20,ABIN,73506,0,11,3.7214,0,10000076
-0,2013-12-01,Others,16145,0,15,54.8674,0,10000092
-0,2012-11-07,FP-non GTC,53064,0,14,53.4385,0,10000267
-0,2012-04-20,FP-non GTC,53064,0,15,76.5825,0,10000551
-0,2012-11-18,Auction,50677,0,11,44.5149,0,10000924
-0,2013-07-31,FP-GTC,51582,0,14,86.5325,0,10000652
-0,2012-12-25,Others,31387,3,13,79.7624,0,10000495
-0,2012-08-10,ABIN,2635,0,12,54.5975,0,10000453
-0,2012-06-09,Others,31519,0,15,20.1828,0,10000226
-0,2012-09-16,Others,44079,0,16,46.0626,0,10000193
-0,2012-04-23,Others,16145,0,11,60.2064,0,10000058
-0,2012-01-03,Others,164,0,15,94.1749,0,10000509
-0,2012-05-16,FP-GTC,13987,0,15,5.6834,0,10000052
-0,2012-07-24,FP-non GTC,16145,0,15,8.1625,0,10000036
-0,2013-01-01,FP-non GTC,32996,15,15,75.5057,0,10000393
-0,2013-01-28,FP-non GTC,155226,0,16,49.2395,0,10000966
-0,2013-03-19,FP-GTC,20485,0,5,57.4433,0,10000138
-0,2013-02-03,FP-GTC,57784,0,5,11.8152,0,10000731
-0,2012-01-02,Others,53064,0,-99,45.8162,0,10000785
-0,2013-02-23,ABIN,16145,0,14,25.1092,0,10000582
-0,2013-04-19,Auction,159184,0,12,85.3510,0,10000422
-0,2012-10-12,FP-non GTC,139973,0,11,95.7331,0,10000791
-0,2012-04-20,FP-non GTC,87118,0,16,15.2148,0,10000621
-0,2013-04-30,Auction,53064,0,5,89.5035,0,10000377
-0,2013-10-24,FP-non GTC,73506,0,12,84.0199,0,10000503
-0,2012-01-08,Auction,63861,0,13,74.8860,0,10000589
-0,2012-05-21,Others,63861,3,16,63.7247,0,10000730
-0,2013-01-29,Auction,24541,0,15,22.2189,0,10000167
-0,2012-02-08,Auction,533,0,5,53.5867,0,10000564
-0,2012-08-11,FP-non GTC,174053,3,13,0.5792,0,10000568
-0,2012-07-05,FP-GTC,20886,0,12,31.1464,0,10000806
-0,2012-01-08,Auction,156356,0,5,7.4293,0,10000638
-0,2012-02-14,Others,65,0,14,62.6745,0,10000253
-0,2013-03-25,FP-non GTC,48027,0,-99,53.4890,0,10000899
-0,2012-09-30,Others,57013,0,12,75.9109,0,10000274
-0,2013-09-01,ABIN,32876,0,12,75.0498,0,10000086
-0,2013-11-11,FP-GTC,164,0,12,36.6051,0,10000521
-0,2012-02-18,FP-GTC,57013,0,12,14.3117,0,10000763
-0,2013-11-23,ABIN,139973,0,15,58.3344,0,10000787
-0,2012-03-21,FP-non GTC,41940,0,15,38.2502,0,10000342
-0,2012-02-24,Auction,57990,0,5,73.5795,0,10000175
-0,2013-07-20,Auction,88750,0,-99,58.2532,0,10000122
-0,2012-10-17,Others,43479,0,13,67.9585,0,10000516
-0,2012-11-03,FP-non GTC,118687,3,13,90.9173,0,10000957
-0,2012-10-22,FP-GTC,60340,0,14,68.5877,0,10000502
-0,2013-04-25,FP-GTC,11554,0,5,60.8280,0,10000074
-0,2012-10-23,FP-GTC,24760,0,13,6.0732,0,10000138
-0,2013-04-29,ABIN,175750,0,11,8.0341,0,10000077
-0,2012-05-06,Auction,106340,15,14,8.0384,0,10000234
-0,2012-07-15,ABIN,57784,0,14,27.1882,0,10000729
-0,2012-10-15,Auction,67698,0,-99,63.1790,0,10000226
-0,2013-03-22,FP-non GTC,57013,0,14,27.7251,0,10000658
-0,2013-08-12,FP-non GTC,11848,0,13,38.5597,0,10000020
-0,2012-07-14,FP-GTC,80053,0,-99,81.0002,0,10000850
-0,2012-08-12,FP-non GTC,38238,0,11,58.6987,0,10000377
-0,2013-09-09,FP-GTC,106246,0,11,5.0352,0,10000594
-0,2013-02-11,FP-non GTC,57784,0,12,80.8420,0,10000657
-0,2013-03-09,Others,175750,0,14,87.9884,0,10000152
-0,2013-12-18,FP-non GTC,20485,0,14,74.4627,0,10000272
-0,2013-03-16,FP-non GTC,106246,0,5,64.1494,0,10000459
-0,2012-09-06,FP-non GTC,80135,0,13,30.1506,0,10000269
-0,2013-06-18,FP-non GTC,80135,0,-99,75.5826,0,10000706
-0,2013-03-16,FP-GTC,156614,0,15,36.7157,0,10000761
-0,2012-11-07,Others,1349,0,15,96.7575,0,10000612
-0,2012-11-25,ABIN,95173,0,5,61.1186,0,10000364
-0,2013-08-10,ABIN,31673,0,11,63.4095,0,10000421
-0,2012-02-17,ABIN,88750,0,14,87.8624,0,10000306
-0,2013-03-29,ABIN,139973,0,16,9.1685,0,10000089
-0,2012-12-27,ABIN,121153,0,12,88.7482,0,10000726
-0,2013-10-13,FP-GTC,67698,0,16,20.8225,0,10000504
-0,2012-09-26,ABIN,2023,0,11,83.6499,0,10000641
-0,2012-08-01,Others,139973,0,-99,1.0542,0,10000202
-0,2012-03-02,ABIN,113802,15,5,23.4439,0,10000068
-0,2012-10-25,Others,10866,0,11,60.7453,0,10000770
-0,2013-01-07,FP-non GTC,20485,0,16,16.4177,0,10000698
-0,2012-03-18,FP-non GTC,46575,0,15,55.2768,0,10000962
-0,2012-07-09,FP-GTC,106246,0,14,99.6346,0,10000563
-0,2012-09-26,FP-GTC,314,0,13,45.8302,0,10000769
-0,2012-01-14,FP-non GTC,15868,0,16,47.5496,0,10000869
-0,2012-01-01,ABIN,63861,0,13,76.1393,0,10000028
-0,2012-08-15,FP-GTC,26249,0,5,40.7448,0,10000419
-0,2012-09-24,FP-non GTC,43398,0,12,54.0864,0,10000688
-0,2013-10-13,Others,533,0,-99,58.0312,0,10000658
-0,2012-07-13,FP-GTC,148324,15,11,71.6067,0,10000006
-0,2012-01-21,FP-GTC,32996,15,11,86.8077,0,10000928
-0,2012-04-04,Others,63861,3,16,85.2671,0,10000648
-0,2012-10-20,FP-non GTC,31519,0,13,99.1930,0,10000469
-0,2013-12-28,FP-GTC,1504,0,5,14.9821,0,10000342
-0,2013-06-19,Others,25147,0,5,77.4671,0,10000212
-0,2013-05-04,Others,13836,0,11,13.4655,0,10000331
-0,2012-06-28,ABIN,145970,0,15,74.3304,0,10000900
-0,2012-12-24,FP-non GTC,156614,0,12,79.4508,0,10000743
-0,2013-07-17,FP-GTC,139973,0,13,30.0555,0,10000949
-0,2013-11-23,Others,31519,3,11,9.0845,0,10000883
-0,2013-01-15,Others,164261,0,12,31.5563,0,10000029
-0,2012-04-15,FP-non GTC,20213,0,-99,55.6917,0,10000513
-0,2013-01-20,FP-non GTC,24760,0,15,71.7279,0,10000274
-0,2012-11-13,FP-GTC,95173,0,5,95.7043,0,10000418
-0,2012-09-03,ABIN,57990,0,12,1.5845,0,10000703
-0,2012-01-02,FP-non GTC,57990,3,16,12.3706,0,10000090
-0,2013-12-06,Auction,67703,3,5,70.4134,0,10000753
-0,2012-06-09,Others,50677,0,12,88.7297,0,10000990
-0,2012-05-17,ABIN,31519,0,14,37.7070,0,10000326
-0,2012-03-03,Others,156356,0,16,50.7844,0,10000693
-0,2012-05-21,Auction,44079,0,5,86.7590,0,10000795
-0,2013-10-15,Auction,26262,0,15,56.3327,0,10000077
-0,2013-12-27,ABIN,20213,0,13,96.1815,0,10000195
-0,2012-02-15,ABIN,314,0,5,6.5869,0,10000753
-0,2012-08-17,FP-non GTC,6762,0,15,41.0782,0,10000797
-0,2013-04-29,Auction,145970,0,15,11.0876,0,10000208
-0,2013-10-27,Auction,80053,0,14,81.7435,0,10000310
-0,2012-12-21,FP-GTC,63861,0,13,57.9491,0,10000971
-0,2013-07-29,ABIN,45333,0,12,33.5405,0,10000475
-0,2012-04-18,Auction,64076,0,13,83.3621,0,10000697
-0,2012-12-14,FP-non GTC,63889,0,16,0.9640,0,10000607
-0,2013-06-07,Auction,145970,0,13,6.1316,0,10000450
-0,2012-11-27,Others,164,0,15,53.7718,0,10000305
-0,2012-08-03,ABIN,61323,0,15,62.2945,0,10000214
-0,2012-07-07,ABIN,75665,0,15,77.0551,0,10000094
-0,2012-08-06,FP-non GTC,99985,0,13,39.1253,0,10000609
-0,2012-10-01,Auction,759,0,15,69.1790,0,10000199
-0,2012-03-22,Auction,20865,0,5,40.7800,0,10000392
-0,2012-02-06,FP-non GTC,132939,0,11,66.8705,0,10000207
-0,2012-10-17,FP-non GTC,63861,3,14,35.8018,0,10000096
-0,2013-02-21,Others,41940,0,5,87.4721,0,10000858
-0,2012-11-16,FP-GTC,57784,0,15,96.2799,0,10000537
-0,2012-01-10,Others,158666,15,11,7.4077,0,10000190
-0,2013-10-29,FP-non GTC,65,0,-99,21.3439,0,10000182
-0,2013-07-30,Auction,103178,15,-99,94.8679,0,10000943
-0,2012-08-05,FP-non GTC,175750,0,14,10.0980,0,10000212
-0,2012-07-29,ABIN,24760,0,13,44.5270,0,10000168
-0,2013-04-27,FP-GTC,57990,3,-99,75.6664,0,10000878
-0,2012-12-06,FP-GTC,37831,0,11,57.1191,0,10000090
-0,2013-08-29,FP-GTC,164,0,16,75.2345,0,10000689
-0,2012-08-30,FP-GTC,63861,0,12,21.2099,0,10000643
-0,2013-05-30,ABIN,57013,0,15,28.8410,0,10000290
-0,2013-10-17,ABIN,50677,0,-99,16.3836,0,10000705
-0,2012-04-25,FP-GTC,67698,0,11,52.3502,0,10000257
-0,2013-08-18,ABIN,759,0,16,23.8258,0,10000911
-0,2013-02-24,Others,13836,0,-99,40.6826,0,10000399
-0,2012-07-22,FP-non GTC,158798,0,15,94.1886,0,10000705
-0,2012-08-05,FP-GTC,100847,0,-99,74.1500,0,10000797
-0,2012-12-30,Auction,31519,0,11,69.1499,0,10000576
-0,2013-05-18,Auction,63864,3,14,44.5408,0,10000232
-0,2012-11-01,ABIN,53064,0,15,19.9817,0,10000065
-0,2013-06-25,FP-GTC,156614,0,16,91.4652,0,10000326
-0,2013-07-11,FP-non GTC,10058,3,5,92.6671,0,10000787
-0,2013-01-19,FP-non GTC,13987,0,12,49.0313,0,10000556
-0,2013-06-17,Auction,94847,0,13,95.5377,0,10000047
-0,2012-12-23,Others,64076,0,-99,50.1173,0,10000063
-0,2013-01-07,FP-non GTC,67698,0,5,6.5979,0,10000412
-0,2012-01-20,ABIN,175750,3,16,79.6931,0,10000270
-0,2013-01-14,Others,95672,3,12,31.7315,0,10000044
-0,2013-02-22,Others,26249,0,16,43.7969,0,10000634
-0,2013-04-13,FP-non GTC,156614,0,16,79.3213,0,10000321
-0,2013-09-18,FP-non GTC,43398,0,5,17.3702,0,10000621
-0,2013-09-05,ABIN,67703,3,11,55.6439,0,10000784
-0,2013-05-25,FP-GTC,43398,0,15,73.0548,0,10000921
-0,2012-10-06,Others,100847,0,16,77.0258,0,10000606
-0,2013-11-08,Others,164261,0,11,16.6959,0,10000136
-0,2012-04-13,FP-non GTC,3838,0,5,68.4347,0,10000451
-0,2012-07-03,FP-GTC,63861,0,-99,89.5962,0,10000893
-0,2012-02-21,Auction,40059,3,-99,84.7455,0,10000613
-0,2012-02-25,FP-non GTC,759,0,13,23.9258,0,10000826
-0,2013-10-30,FP-non GTC,57990,0,16,88.4859,0,10000782
-0,2013-10-12,FP-non GTC,57784,0,14,85.8986,0,10000220
-0,2012-08-15,FP-GTC,223,0,12,32.1974,0,10000316
-0,2012-10-18,FP-GTC,15115,0,16,52.5243,0,10000353
-0,2013-11-09,FP-GTC,20886,0,13,94.0128,0,10000690
-0,2012-09-27,ABIN,31673,0,12,24.1332,0,10000404
-0,2012-05-08,FP-GTC,95672,0,16,88.8853,0,10000984
-0,2013-01-14,Others,95173,0,12,86.3987,0,10000501
-0,2012-12-02,Auction,152801,0,-99,71.8799,0,10000021
-0,2012-03-13,ABIN,31519,3,15,96.8998,0,10000188
-0,2013-06-15,Auction,121153,0,14,66.2729,0,10000101
-0,2012-04-11,Others,63861,0,15,88.0097,0,10000536
-0,2013-01-25,FP-non GTC,1357,0,16,49.8991,0,10000637
-0,2013-10-17,FP-GTC,106246,0,15,92.2507,0,10000046
-0,2012-10-04,Others,4943,0,13,88.8498,0,10000215
-0,2013-05-14,Auction,314,0,13,77.3441,0,10000900
-0,2013-03-17,FP-non GTC,759,0,16,17.9719,0,10000759
-0,2013-01-20,FP-non GTC,51582,0,16,3.6644,0,10000961
-0,2013-03-20,FP-non GTC,57990,0,12,9.3680,0,10000846
-0,2012-06-06,FP-non GTC,165888,0,16,9.4584,0,10000312
-0,2012-12-13,Auction,43479,0,16,84.0632,0,10000349
-0,2012-05-13,FP-non GTC,139973,3,5,37.3510,0,10000790
-0,2013-03-27,Auction,48027,0,5,75.7167,0,10000424
-0,2013-08-08,FP-GTC,37831,0,-99,27.7800,0,10000637
-0,2012-04-06,ABIN,314,0,12,18.3274,0,10000749
-0,2013-10-11,FP-non GTC,57013,0,14,39.1868,0,10000599
-0,2012-01-18,FP-GTC,41940,0,12,94.5165,0,10000102
-0,2013-05-20,ABIN,50677,0,16,25.6136,0,10000423
-0,2012-06-24,FP-GTC,963,0,13,20.9442,0,10000069
-0,2013-04-01,ABIN,75665,0,12,65.3307,0,10000543
-0,2012-02-05,ABIN,50508,0,-99,69.4516,0,10000623
-0,2012-06-24,ABIN,314,0,5,13.8612,0,10000347
-0,2013-12-07,Others,1349,0,16,10.8619,0,10000784
-0,2013-03-01,ABIN,73506,0,11,7.7818,0,10000882
-0,2012-08-24,Auction,45333,0,16,94.9583,0,10000495
-0,2012-08-04,FP-non GTC,20886,0,15,69.7300,0,10000428
-0,2012-11-08,Auction,31519,0,15,41.4423,0,10000431
-0,2013-08-07,FP-GTC,156356,0,13,44.6853,0,10000305
-0,2013-09-25,ABIN,43398,0,16,46.5536,0,10000387
-0,2012-04-26,FP-non GTC,95672,0,13,30.9202,0,10000591
-0,2012-03-30,Others,159184,0,12,58.3993,0,10000381
-0,2012-04-25,Auction,73506,0,14,46.1501,0,10000010
-0,2012-09-13,FP-GTC,20485,0,5,2.4112,0,10000959
-0,2013-09-27,ABIN,80287,0,-99,64.4361,0,10000770
-0,2013-01-17,Others,36250,0,11,73.5773,0,10000948
-0,2012-07-07,Auction,103324,15,16,4.8559,0,10000123
-0,2013-08-15,ABIN,13836,0,16,25.8438,0,10000851
-0,2012-07-07,Others,12688,0,5,3.4934,0,10000096
-0,2012-06-03,Auction,80135,0,12,17.8258,0,10000144
-0,2013-12-24,FP-GTC,60340,0,11,22.6409,0,10000341
-0,2012-10-06,ABIN,36250,0,5,7.4322,0,10000384
-0,2013-01-03,Auction,175750,0,15,14.1976,0,10000366
-0,2013-04-15,Auction,88750,0,11,98.6057,0,10000584
-0,2013-06-03,FP-non GTC,1349,0,15,11.0419,0,10000866
-0,2013-01-30,FP-GTC,2635,0,14,54.5175,0,10000959
-0,2013-08-27,FP-non GTC,26249,0,13,50.0365,0,10000289
-0,2012-05-14,FP-non GTC,9426,3,5,60.0224,0,10000730
-0,2012-10-16,FP-non GTC,16145,0,-99,53.0896,0,10000195
-0,2012-09-24,FP-GTC,57013,0,14,81.7929,0,10000498
-0,2012-08-20,FP-non GTC,25147,0,-99,30.7605,0,10000242
-0,2012-02-19,Others,94847,0,13,20.6395,0,10000707
-0,2013-11-14,ABIN,50508,0,15,91.9217,0,10000208
-0,2012-07-10,Others,95672,0,13,21.1886,0,10000762
-0,2012-03-14,ABIN,44079,0,13,89.6838,0,10000227
-0,2012-01-17,FP-non GTC,314,0,14,44.3066,0,10000251
-0,2012-02-27,FP-non GTC,15868,0,14,80.8427,0,10000741
-0,2012-10-23,Others,1161,3,5,54.0104,0,10000289
-0,2013-06-12,Others,53064,0,12,87.1336,0,10000871
-0,2013-03-06,Auction,34273,100,15,6.7044,0,10000269
-0,2012-06-16,Others,533,0,14,43.7104,0,10000172
-0,2012-12-19,FP-GTC,15868,0,15,94.1727,0,10000366
-0,2012-07-21,ABIN,121153,0,12,42.3437,0,10000688
-0,2013-08-19,FP-non GTC,65,0,11,3.0275,0,10000055
-0,2012-08-08,Auction,15687,0,14,72.9505,0,10000725
-0,2013-12-13,FP-GTC,4943,0,-99,37.7781,0,10000932
-0,2013-05-18,FP-GTC,3838,0,14,45.1642,0,10000370
-0,2012-01-31,Auction,25147,0,14,78.6580,0,10000721
-0,2013-12-05,FP-GTC,62179,0,12,76.4692,0,10000423
-0,2012-03-07,Auction,175750,0,15,19.5357,0,10000053
-0,2013-09-30,Others,100847,0,12,38.2299,0,10000772
-0,2013-01-07,Others,15115,0,12,82.5099,0,10000864
-0,2013-11-04,FP-non GTC,57013,0,-99,61.3731,0,10000335
-0,2012-08-11,FP-non GTC,31673,0,12,12.7001,0,10000303
-0,2012-12-30,ABIN,156356,0,14,99.3562,0,10000427
-0,2013-05-19,Others,113593,15,11,31.1634,0,10000361
-0,2013-06-03,ABIN,314,0,13,32.6968,0,10000373
-0,2013-06-29,Auction,15808,15,12,18.3967,0,10000484
-0,2012-06-10,FP-GTC,61323,0,13,10.8143,0,10000403
-0,2012-01-29,FP-GTC,1349,0,15,0.4358,0,10000639
-0,2013-05-30,FP-non GTC,759,0,14,19.5920,0,10000116
-0,2013-07-28,ABIN,15868,0,14,59.7123,0,10000668
-0,2013-03-23,Auction,165888,0,12,67.1201,0,10000063
-0,2012-05-29,FP-GTC,118687,3,-99,98.2030,0,10000886
-0,2013-09-15,FP-non GTC,156614,0,5,43.1795,0,10000302
-0,2012-05-21,FP-GTC,223,0,-99,66.2850,0,10000118
-0,2012-04-03,FP-non GTC,26262,0,12,17.5241,0,10000440
-0,2012-05-22,ABIN,44079,0,16,25.2405,0,10000183
-0,2014-01-01,Others,50508,0,16,92.5843,0,10000911
-0,2012-04-08,Others,16145,3,12,90.2242,0,10000825
-0,2013-11-27,ABIN,95672,0,16,90.9380,0,10000829
-0,2013-03-22,Auction,41940,0,15,72.0648,0,10000795
-0,2012-04-06,Others,64076,0,14,86.9185,0,10000356
-0,2013-05-02,Others,156356,0,11,41.6871,0,10000122
-0,2012-04-02,Others,132939,0,12,75.8372,0,10000395
-0,2012-06-29,ABIN,26262,0,13,83.6043,0,10000120
-0,2012-07-06,FP-GTC,11554,0,16,38.4329,0,10000352
-0,2012-06-10,ABIN,156614,0,-99,94.1812,0,10000280
-0,2012-04-05,Auction,164261,0,12,0.9691,0,10000480
-0,2012-11-02,Auction,31519,0,11,98.0505,0,10000893
-0,2012-05-20,Auction,50508,0,15,61.9439,0,10000363
-0,2012-03-31,Auction,80135,0,16,11.1543,0,10000692
-0,2012-07-01,FP-non GTC,63889,0,-99,86.6557,0,10000402
-0,2013-01-04,ABIN,41940,0,-99,48.4505,0,10000296
-0,2013-02-10,FP-non GTC,63861,0,13,60.3535,0,10000214
-0,2012-03-25,Others,73506,0,11,74.2113,0,10000801
-0,2013-07-23,FP-non GTC,53064,0,16,69.2368,0,10000542
-0,2012-04-09,Auction,11848,0,15,76.1720,0,10000555
-0,2012-08-01,Others,12688,0,5,85.4589,0,10000130
-0,2012-07-15,FP-non GTC,31519,3,-99,17.8485,0,10000045
-0,2013-10-06,ABIN,1349,0,11,52.2780,0,10000622
-0,2012-10-26,Auction,25147,0,13,60.9912,0,10000379
-0,2013-01-04,FP-non GTC,37831,0,15,61.0134,0,10000785
-0,2012-03-24,Auction,139973,0,-99,8.1533,0,10000487
-0,2012-12-30,Auction,6762,0,-99,77.8179,0,10000645
-0,2012-10-03,ABIN,103178,15,12,15.2201,0,10000824
-0,2012-04-18,FP-non GTC,50508,0,14,11.9715,0,10000012
-0,2012-09-30,FP-non GTC,31673,0,12,90.0864,0,10000281
-0,2013-03-24,ABIN,4943,0,12,11.0294,0,10000785
-0,2012-05-02,Others,87118,0,14,52.6549,0,10000924
-0,2013-05-03,FP-GTC,24760,0,5,8.9077,0,10000758
-0,2012-08-05,FP-non GTC,38238,0,11,0.8463,0,10000066
-0,2012-08-15,Auction,67698,0,11,23.6278,0,10000085
-0,2013-04-04,Auction,164261,0,13,52.3718,0,10000965
-0,2013-04-18,ABIN,25147,0,14,71.7687,0,10000157
-0,2013-11-09,ABIN,43479,0,12,39.9269,0,10000024
-0,2013-05-02,FP-non GTC,175750,0,12,17.6149,0,10000862
-0,2012-09-01,ABIN,50508,0,14,99.1518,0,10000746
-0,2013-02-23,FP-non GTC,139255,15,-99,74.6182,0,10000447
-0,2012-01-19,FP-non GTC,6762,0,13,0.1297,0,10000189
-0,2012-11-10,Auction,113802,15,-99,11.9583,0,10000596
-0,2012-12-11,FP-non GTC,95173,0,5,67.9416,0,10000582
-0,2012-01-05,ABIN,2635,0,11,72.3723,0,10000375
-0,2012-05-04,FP-non GTC,43479,0,13,79.1307,0,10000944
-0,2013-07-20,ABIN,63861,0,13,86.7155,0,10000274
-0,2013-08-25,FP-GTC,80053,0,5,11.7108,0,10000059
-0,2012-10-24,ABIN,38238,0,5,79.2964,0,10000388
-0,2012-01-10,ABIN,73506,0,5,3.8878,0,10000895
-0,2013-07-11,Auction,174106,3,12,46.7087,0,10000683
-0,2013-06-16,FP-GTC,61323,0,15,64.0224,0,10000121
-0,2013-06-23,ABIN,63889,0,5,59.2766,0,10000466
-0,2013-01-25,Others,156356,0,14,79.9992,0,10000611
-0,2013-10-09,Auction,50508,0,16,70.9682,0,10000009
-0,2013-05-19,Auction,25147,0,16,8.0973,0,10000731
-0,2012-10-14,Auction,67698,0,5,49.0497,0,10000605
-0,2012-06-08,Auction,65,0,14,76.5149,0,10000165
-0,2012-12-21,FP-GTC,15868,0,5,45.9224,0,10000215
-0,2012-12-02,Auction,1357,0,15,8.9337,0,10000730
-0,2013-11-27,ABIN,24760,0,11,62.4675,0,10000932
-0,2013-11-24,Auction,95173,0,16,16.7927,0,10000795
-0,2013-11-30,ABIN,164,0,11,10.8897,0,10000914
-0,2012-12-22,Auction,15868,0,15,7.4153,0,10000540
-0,2012-05-13,FP-non GTC,26249,0,5,58.8647,0,10000898
-0,2013-06-22,ABIN,95672,3,12,71.8628,0,10000026
-0,2013-05-22,ABIN,63861,0,11,71.8836,0,10000650
-0,2012-11-17,FP-GTC,32876,0,12,35.6019,0,10000959
-0,2013-04-13,Auction,38238,0,5,21.7443,0,10000036
-0,2012-09-09,FP-non GTC,87118,0,14,46.2858,0,10000512
-0,2013-08-23,FP-non GTC,41940,0,11,98.4779,0,10000844
-0,2012-09-02,FP-non GTC,43398,0,12,91.8543,0,10000917
-0,2012-11-23,Others,145970,0,11,43.8631,0,10000997
-0,2012-01-22,FP-non GTC,164261,0,16,74.9772,0,10000091
-0,2012-05-02,ABIN,152801,0,13,15.2794,0,10000649
-0,2013-08-14,Others,50677,0,13,26.5329,0,10000275
-0,2012-06-04,Others,156614,0,14,42.7810,0,10000347
-0,2012-08-04,FP-non GTC,145970,0,15,92.6953,0,10000622
-0,2012-08-15,Auction,32876,0,16,35.2015,0,10000533
-0,2012-11-05,Auction,95672,0,11,0.5233,0,10000965
-0,2013-10-12,ABIN,165888,0,11,27.3564,0,10000036
-0,2012-10-22,ABIN,20485,0,14,28.6742,0,10000448
-0,2012-07-02,Auction,20213,0,15,81.3332,0,10000484
-0,2013-01-13,Others,152801,0,11,3.3406,0,10000124
-0,2012-05-17,Others,132939,0,15,55.3503,0,10000086
-0,2013-02-05,Others,48904,0,15,25.2340,0,10000246
-0,2013-09-13,FP-GTC,32876,0,-99,10.7672,0,10000729
-0,2012-06-14,ABIN,20865,0,14,47.9841,0,10000406
-0,2013-02-11,Auction,152801,0,5,86.4355,0,10000050
-0,2012-12-13,Auction,50508,0,5,72.5114,0,10000715
-0,2013-11-30,Auction,3838,0,-99,6.8517,0,10000706
-0,2013-03-15,FP-non GTC,20865,0,14,93.3040,0,10000926
-0,2012-08-12,FP-GTC,57784,0,-99,18.4045,0,10000231
-0,2013-10-19,Others,1161,3,14,79.1353,0,10000561
-0,2013-02-17,Others,31519,0,-99,49.0409,0,10000904
-0,2012-03-30,FP-non GTC,314,0,11,93.6413,0,10000041
-0,2012-08-26,Others,175750,0,-99,46.6557,0,10000719
-0,2012-12-26,Auction,139973,0,15,6.9809,0,10000044
-0,2013-01-30,Others,159184,0,13,45.4599,0,10000131
-0,2012-04-27,Auction,48904,0,5,16.3472,0,10000157
-0,2012-11-10,ABIN,16145,0,13,0.4693,0,10000668
-0,2012-05-13,Auction,121153,0,5,24.6420,0,10000314
-0,2012-02-01,FP-GTC,6762,0,13,5.9417,0,10000851
-0,2012-07-16,Auction,95672,0,-99,11.9934,0,10000828
-0,2012-09-21,Auction,106246,0,5,39.0057,0,10000826
-0,2012-10-20,FP-GTC,314,0,16,5.5339,0,10000011
-0,2013-04-29,FP-non GTC,100847,0,13,3.3872,0,10000840
-0,2013-02-16,FP-non GTC,43398,0,13,3.4171,0,10000106
-0,2013-09-11,FP-GTC,63889,0,12,15.4662,0,10000004
-0,2012-12-18,Others,80287,0,15,71.3090,0,10000722
-0,2013-09-14,FP-non GTC,20865,0,-99,98.0987,0,10000591
-0,2013-01-27,FP-non GTC,57990,3,14,84.9483,0,10000304
-0,2013-02-07,Others,95672,0,14,9.7034,0,10000894
-0,2013-03-24,FP-non GTC,38238,0,-99,98.5328,0,10000286
-0,2012-01-05,Others,164,0,15,21.3336,0,10000151
-0,2012-11-14,Auction,57990,0,12,91.1773,0,10000087
-0,2013-03-24,Auction,13987,0,13,5.9953,0,10000551
-0,2013-12-26,FP-GTC,32876,0,11,86.1904,0,10000012
-0,2013-06-23,FP-non GTC,1504,0,12,9.4689,0,10000720
-0,2012-01-11,FP-GTC,57013,0,13,96.6705,0,10000790
-0,2012-08-30,FP-non GTC,62179,0,5,22.4244,0,10000403
-0,2012-09-01,ABIN,61323,0,12,30.1513,0,10000283
-0,2013-04-20,Auction,16145,3,12,77.9327,0,10000043
-0,2013-10-03,Others,963,0,14,82.3371,0,10000002
-0,2012-10-23,ABIN,45333,0,16,86.7017,0,10000180
-0,2013-10-09,ABIN,63889,0,-99,33.9942,0,10000485
-0,2013-04-28,ABIN,73506,0,5,22.6563,0,10000070
-0,2013-07-07,ABIN,57990,0,11,11.7659,0,10000834
-0,2012-01-04,FP-non GTC,165888,0,16,78.7873,0,10000743
-0,2012-05-05,ABIN,158666,15,16,55.1036,0,10000372
-0,2012-08-04,ABIN,43479,0,13,61.3469,0,10000425
-0,2013-02-18,Others,161567,15,5,43.5109,0,10000315
-0,2013-08-09,FP-GTC,161567,15,14,0.9756,0,10000420
-0,2012-04-30,Others,65,0,12,31.5741,0,10000858
-0,2013-10-16,FP-non GTC,16509,0,15,8.4323,0,10000376
-0,2013-11-06,FP-GTC,15115,0,12,91.7204,0,10000495
-0,2012-04-13,ABIN,37831,0,16,86.9150,0,10000947
-0,2013-04-21,FP-GTC,95672,0,-99,60.6048,0,10000052
-0,2013-12-04,FP-GTC,121153,0,13,9.3639,0,10000384
-0,2012-08-03,Others,50508,0,13,74.2474,0,10000103
-0,2013-12-29,FP-GTC,1357,0,5,46.9382,0,10000987
-0,2012-11-01,Others,46575,0,13,54.4520,0,10000247
-0,2012-06-30,FP-non GTC,26249,0,5,74.2755,0,10000641
-0,2012-06-20,Auction,26262,0,11,11.9173,0,10000418
-0,2012-07-24,Others,80287,0,14,49.7794,0,10000590
-0,2012-08-11,FP-GTC,26262,0,11,16.2910,0,10000698
-0,2013-06-27,ABIN,63861,0,-99,5.4086,0,10000810
-0,2012-04-28,FP-GTC,15115,0,15,91.7724,0,10000414
-0,2013-04-19,ABIN,73506,0,13,14.8212,0,10000728
-0,2012-01-25,Others,32876,0,13,23.4295,0,10000673
-0,2013-11-06,ABIN,139973,3,12,41.9681,0,10000902
-0,2013-03-09,Auction,61323,0,15,53.8594,0,10000323
-0,2012-03-01,ABIN,60340,0,11,78.1279,0,10000947
-0,2012-07-28,FP-non GTC,279,15,16,80.8961,0,10000691
-0,2013-02-04,Others,24541,0,11,40.4673,0,10000727
-0,2012-02-24,Auction,152801,0,13,9.8921,0,10000661
-0,2013-08-13,ABIN,156614,0,15,61.6452,0,10000734
-0,2012-04-02,ABIN,63861,3,11,18.4644,0,10000446
-0,2013-09-28,Others,95173,0,-99,51.2096,0,10000049
-0,2013-08-13,FP-non GTC,64076,0,12,85.3952,0,10000581
-0,2012-09-09,ABIN,20485,0,15,0.5979,0,10000081
-0,2012-04-26,Auction,145970,0,11,40.5874,0,10000401
-0,2013-05-10,Others,26262,0,11,83.8561,0,10000545
-0,2013-05-23,FP-GTC,80287,0,11,27.6123,0,10000529
-0,2012-01-08,Others,175750,0,14,45.4268,0,10000408
-0,2012-07-20,ABIN,38238,0,16,44.1376,0,10000796
-0,2012-09-15,Auction,65,0,-99,97.3146,0,10000792
-0,2012-10-17,ABIN,65,0,12,68.5363,0,10000569
-0,2013-08-03,FP-GTC,40059,3,15,87.3892,0,10000317
-0,2013-08-28,FP-non GTC,80287,0,14,61.9829,0,10000015
-0,2012-07-21,Auction,25147,0,11,24.7662,0,10000333
-0,2013-10-17,Auction,132939,0,11,11.6038,0,10000926
-0,2012-09-04,Auction,44079,0,15,75.1095,0,10000435
-0,2012-11-01,Auction,67698,0,5,8.8273,0,10000834
-0,2013-12-02,Auction,24541,0,15,95.2195,0,10000259
-0,2012-02-06,Auction,533,0,12,66.4962,0,10000007
-0,2013-12-03,FP-non GTC,99985,0,12,0.0537,0,10000244
-0,2013-05-11,FP-non GTC,60606,3,12,76.6828,0,10000002
-0,2012-09-18,Auction,156614,0,16,72.1912,0,10000174
-0,2012-05-19,Auction,60340,0,16,42.9975,0,10000813
-0,2012-04-26,FP-GTC,165888,0,14,88.3875,0,10000919
-0,2013-08-30,Others,963,0,15,6.6424,0,10000994
-0,2013-08-28,ABIN,10866,0,12,79.7295,0,10000832
-0,2012-01-16,ABIN,145970,0,11,72.3940,0,10000008
-0,2013-12-23,Others,65,0,15,94.0397,0,10000812
-0,2013-09-06,FP-GTC,25147,0,11,72.9395,0,10000956
-0,2012-05-07,FP-GTC,16509,0,11,9.8290,0,10000940
-0,2013-09-07,Others,139973,0,11,22.9964,0,10000563
-0,2012-11-17,Others,65,0,-99,62.7316,0,10000227
-0,2012-05-14,ABIN,57013,0,13,19.0969,0,10000844
-0,2012-06-01,FP-non GTC,30059,3,16,26.9105,0,10000516
-0,2012-11-24,Auction,75665,0,15,26.5788,0,10000717
-0,2013-10-23,FP-non GTC,75708,3,12,10.5298,0,10000238
-0,2012-10-19,Auction,64076,0,11,49.0746,0,10000389
-0,2012-02-17,ABIN,65,0,12,58.3004,0,10000219
-0,2012-01-08,FP-GTC,15115,0,16,3.2380,0,10000435
-0,2012-02-04,Others,164261,0,14,45.9304,0,10000748
-0,2012-08-25,FP-GTC,156356,0,5,70.3654,0,10000864
-0,2013-04-10,FP-GTC,38238,0,5,72.9872,0,10000638
-0,2013-05-16,FP-GTC,175750,0,5,95.3008,0,10000366
-0,2012-06-27,FP-GTC,100847,0,14,64.8447,0,10000686
-0,2013-03-06,Auction,139255,15,12,20.7811,0,10000261
-0,2013-08-04,Auction,67698,0,14,20.1344,0,10000142
-0,2013-08-15,Auction,20865,0,12,64.6842,0,10000235
-0,2012-04-17,Auction,24760,0,-99,88.4159,0,10000039
-0,2013-03-14,Others,75665,0,13,36.9770,0,10000480
-0,2012-12-09,Others,139973,0,15,85.1056,0,10000801
-0,2012-07-02,Others,36250,0,11,71.5548,0,10000926
-0,2013-08-04,FP-non GTC,31519,0,16,23.9847,0,10000680
-0,2013-02-15,FP-non GTC,80053,0,15,68.4438,0,10000487
-0,2012-07-12,FP-non GTC,64076,0,5,54.5740,0,10000628
-0,2012-11-07,Others,164,0,12,45.1637,0,10000846
-0,2013-09-14,FP-GTC,106340,15,15,38.1572,0,10000201
-0,2013-12-19,Auction,759,0,-99,53.0086,0,10000250
-0,2012-05-11,Others,16509,0,-99,68.3043,0,10000809
-0,2013-07-20,Others,45333,0,15,58.5554,0,10000981
-0,2013-03-24,FP-GTC,20485,0,5,62.1012,0,10000877
-0,2013-08-09,ABIN,63861,0,5,44.1975,0,10000554
-0,2013-12-04,FP-GTC,53064,0,14,29.8358,0,10000491
-0,2013-07-06,ABIN,139973,0,5,26.8986,0,10000978
-0,2013-04-29,FP-non GTC,67698,0,11,46.9203,0,10000148
-0,2013-10-18,FP-non GTC,95173,0,14,25.5313,0,10000068
-0,2014-01-01,Auction,6762,0,13,30.6746,0,10000592
-0,2013-07-14,Auction,13836,0,16,79.4600,0,10000944
-0,2012-10-12,FP-GTC,145970,0,5,32.3728,0,10000396
-0,2013-07-28,Auction,1357,0,13,8.7896,0,10000836
-0,2013-12-06,FP-non GTC,73506,0,-99,95.4405,0,10000914
-0,2012-08-01,FP-non GTC,37831,0,11,12.8673,0,10000993
-0,2013-09-07,FP-non GTC,223,0,-99,16.9111,0,10000028
-0,2012-12-27,FP-GTC,82494,15,15,73.5475,0,10000609
-0,2012-04-07,Others,36250,0,16,7.5886,0,10000838
-0,2012-10-07,FP-GTC,139973,0,12,45.3171,0,10000439
-0,2012-01-19,FP-non GTC,63861,0,16,31.1155,0,10000338
-0,2013-12-16,FP-non GTC,164,0,16,41.0688,0,10000377
-0,2012-03-25,ABIN,41940,0,14,8.1251,0,10000318
-0,2012-04-15,FP-non GTC,65,0,-99,56.9993,0,10000697
-0,2012-11-27,Auction,25147,0,14,14.5707,0,10000303
-0,2012-08-04,FP-non GTC,20213,0,11,20.6361,0,10000443
-0,2013-11-15,Auction,95672,3,5,40.1888,0,10000506
-0,2013-12-26,Others,16145,0,13,34.4427,0,10000307
-0,2013-11-25,Others,139973,0,16,60.8826,0,10000762
-0,2013-09-01,Others,24760,0,16,22.9159,0,10000759
-0,2012-12-10,ABIN,53064,0,14,51.2661,0,10000626
-0,2013-08-24,Auction,759,0,13,48.4301,0,10000370
-0,2012-11-29,Auction,32876,0,5,86.2750,0,10000755
-0,2012-06-11,Others,61323,0,13,14.7483,0,10000812
-0,2012-04-23,Others,67698,0,-99,21.2161,0,10000384
-0,2013-07-12,Others,40059,3,5,88.2983,0,10000937
-0,2012-12-27,FP-GTC,13987,0,5,29.1748,0,10000223
-0,2013-02-15,Others,113802,15,5,31.4243,0,10000672
-0,2013-02-20,Auction,166013,15,15,22.9952,0,10000618
-0,2013-03-13,ABIN,73506,0,16,94.7440,0,10000476
-0,2012-02-19,FP-GTC,95672,0,15,28.6221,0,10000421
-0,2013-11-30,FP-GTC,166013,15,5,92.5521,0,10000729
-0,2012-09-30,ABIN,36250,0,15,18.6346,0,10000606
-0,2013-02-13,Auction,20886,0,14,24.7987,0,10000535
-0,2013-11-10,FP-GTC,759,0,13,53.7935,0,10000711
-0,2013-02-10,Auction,20886,0,12,84.2953,0,10000811
-0,2012-05-28,ABIN,10866,0,13,64.3564,0,10000804
-0,2013-03-19,Auction,314,0,16,36.1791,0,10000379
-0,2012-01-26,FP-non GTC,132939,0,-99,31.4514,0,10000690
-0,2013-02-02,FP-non GTC,20485,0,14,97.4265,0,10000642
-0,2013-07-25,Auction,139973,0,16,12.3287,0,10000972
-0,2012-09-21,Others,15115,0,11,2.7636,0,10000896
-0,2012-07-26,ABIN,533,0,15,0.6745,0,10000762
-0,2012-06-02,FP-non GTC,48904,0,-99,56.1505,0,10000937
-0,2012-12-11,FP-non GTC,155226,0,14,59.4547,0,10000197
-0,2012-05-30,Others,26249,0,14,18.0992,0,10000836
-0,2012-12-25,Auction,20485,0,15,23.8257,0,10000992
-0,2013-07-08,ABIN,57013,0,12,59.6550,0,10000196
-0,2013-02-22,Auction,156356,0,14,36.1970,0,10000014
-0,2012-03-28,ABIN,25147,0,-99,56.3283,0,10000943
-0,2012-10-09,Others,63861,0,16,9.5503,0,10000659
-0,2012-12-29,FP-non GTC,95672,0,12,57.7305,0,10000568
-0,2013-06-14,Others,80053,0,13,89.8029,0,10000580
-0,2012-02-14,Others,67698,0,16,73.0734,0,10000857
-0,2013-05-14,FP-non GTC,62179,0,5,58.7369,0,10000091
-0,2013-06-16,FP-GTC,1504,0,5,7.2913,0,10000054
-0,2013-07-30,FP-non GTC,31673,0,-99,13.2961,0,10000654
-0,2013-05-22,ABIN,130,0,-99,1.3005,0,10000925
-0,2012-03-06,FP-GTC,35570,100,15,45.7240,0,10000773
-0,2012-07-20,Auction,15868,0,15,88.4248,0,10000965
-0,2013-10-02,Auction,38238,0,15,34.7237,0,10000987
-0,2012-11-06,Others,67698,0,-99,3.3750,0,10000902
-0,2012-01-11,FP-GTC,62179,0,11,77.9520,0,10000540
-0,2012-09-23,FP-GTC,64076,0,12,57.1896,0,10000772
-0,2012-03-03,ABIN,103178,15,11,26.3886,0,10000000
-0,2012-05-26,FP-GTC,48027,0,16,87.2722,0,10000836
-0,2012-05-06,ABIN,38238,0,16,34.7669,0,10000942
-0,2014-01-01,Auction,170302,15,11,62.2724,0,10000988
-0,2012-06-19,FP-GTC,37831,0,13,78.1533,0,10000362
-0,2012-01-12,ABIN,48904,0,-99,80.2518,0,10000266
-0,2013-06-24,ABIN,10866,0,12,87.3794,0,10000655
-0,2013-07-17,Others,1349,0,12,40.6979,0,10000754
-0,2013-06-14,Auction,139973,0,14,54.9050,0,10000105
-0,2012-06-18,ABIN,15868,0,-99,69.2751,0,10000988
-0,2012-09-07,Auction,1349,0,11,24.7687,0,10000323
-0,2012-02-01,ABIN,61323,0,-99,72.0754,0,10000321
-0,2013-07-28,ABIN,152801,0,11,71.8684,0,10000701
-0,2013-04-16,Others,60340,0,-99,9.8364,0,10000952
-0,2012-01-06,ABIN,80053,0,12,45.9154,0,10000726
-0,2012-02-07,Auction,223,0,12,90.7522,0,10000949
-0,2012-09-15,Others,50677,0,5,50.2863,0,10000285
-0,2013-04-01,Auction,75665,0,12,40.7265,0,10000498
-0,2012-11-09,ABIN,95672,0,12,85.7492,0,10000180
-0,2013-09-22,FP-GTC,16145,0,16,37.4930,0,10000453
-0,2012-11-02,Auction,73506,0,5,61.7567,0,10000361
-0,2013-10-27,Auction,963,0,-99,26.4725,0,10000909
-0,2012-01-13,FP-GTC,10866,0,16,84.3734,0,10000539
-0,2012-05-26,FP-non GTC,152801,0,5,77.1831,0,10000961
-0,2013-06-04,ABIN,57013,0,-99,59.7825,0,10000542
-0,2012-11-26,FP-GTC,9426,3,5,83.8080,0,10000847
-0,2013-12-11,ABIN,67698,0,14,67.3561,0,10000409
-0,2013-06-01,ABIN,95173,0,13,50.4721,0,10000245
-0,2012-07-25,FP-GTC,175750,0,16,62.5123,0,10000399
-0,2012-01-22,FP-GTC,31673,0,13,8.1462,0,10000125
-0,2012-01-17,Auction,63861,0,15,86.7921,0,10000067
-0,2012-07-06,Others,20886,0,-99,91.8578,0,10000349
-0,2012-02-26,FP-non GTC,216,0,13,25.5255,0,10000465
-0,2013-10-05,Others,65,0,11,50.8591,0,10000718
-0,2012-12-30,FP-non GTC,87118,0,11,81.3002,0,10000122
-0,2013-08-20,ABIN,130,0,13,61.5051,0,10000685
-0,2012-11-07,ABIN,57013,0,15,87.1409,0,10000157
-0,2012-11-26,Others,75665,0,16,85.4010,0,10000935
-0,2013-12-17,FP-GTC,63861,0,14,45.7096,0,10000650
-0,2012-08-12,FP-non GTC,20485,0,-99,44.4235,0,10000954
-0,2012-01-17,Auction,314,0,12,75.8335,0,10000514
-0,2013-01-24,ABIN,2635,0,12,10.6521,0,10000839
-0,2012-02-05,ABIN,3838,0,12,76.2544,0,10000344
-0,2013-05-13,FP-GTC,106246,0,14,25.5924,0,10000291
-0,2013-03-16,Auction,82494,15,5,15.6450,0,10000366
-0,2012-01-06,Auction,65,0,11,9.8382,0,10000415
-0,2012-08-10,ABIN,24541,0,-99,21.1252,0,10000872
-0,2012-06-01,Others,106246,0,11,51.6742,0,10000000
-0,2013-05-10,Others,63861,0,-99,69.1514,0,10000869
-0,2013-04-04,FP-non GTC,73506,0,13,7.8706,0,10000986
-0,2013-10-23,ABIN,43972,100,-99,31.5134,0,10000011
-0,2013-05-10,Auction,80053,0,-99,2.8786,0,10000544
-0,2012-03-26,FP-non GTC,80053,0,13,59.3087,0,10000881
-0,2012-07-24,Auction,20485,0,-99,49.9084,0,10000757
-0,2013-04-10,ABIN,66767,15,5,48.4303,0,10000471
-0,2013-07-09,ABIN,13987,0,12,82.6598,0,10000495
-0,2012-12-25,ABIN,145970,0,5,6.4088,0,10000723
-0,2013-11-14,FP-non GTC,113593,15,15,10.9465,0,10000701
-0,2013-08-17,Auction,26249,0,12,90.2925,0,10000684
-0,2013-03-28,Auction,53064,0,13,1.5558,0,10000884
-0,2013-05-04,ABIN,88750,0,15,41.8885,0,10000078
-0,2013-07-20,Others,60340,0,-99,79.8564,0,10000590
-0,2012-12-10,ABIN,1504,0,13,22.2111,0,10000603
-0,2012-01-18,FP-non GTC,1349,0,-99,40.5209,0,10000684
-0,2013-01-21,FP-non GTC,25147,0,13,47.2094,0,10000676
-0,2013-10-18,FP-non GTC,164261,0,5,71.2879,0,10000998
-0,2012-08-18,Others,61323,0,15,59.1738,0,10000705
-0,2012-01-28,ABIN,1357,0,11,31.3101,0,10000131
-0,2013-12-25,Others,94847,0,13,90.8027,0,10000674
-0,2013-12-26,Others,156614,0,5,14.9093,0,10000123
-0,2012-06-19,Others,43398,0,13,85.5022,0,10000874
-0,2012-12-12,FP-non GTC,145970,0,16,71.8714,0,10000686
-0,2012-02-11,Others,24760,0,14,49.0051,0,10000611
-0,2013-06-02,Others,759,0,13,56.3362,0,10000185
-0,2012-09-30,Auction,75665,0,16,89.9688,0,10000378
-0,2013-11-10,Others,43479,0,16,2.0896,0,10000272
-0,2012-06-19,FP-GTC,759,0,5,34.9300,0,10000531
-0,2012-02-02,FP-non GTC,57990,3,-99,12.9845,0,10000591
-0,2013-04-04,FP-GTC,73506,0,11,32.9647,0,10000464
-0,2012-07-01,FP-non GTC,24760,0,11,84.6443,0,10000646
-0,2012-10-29,ABIN,46575,0,5,71.8566,0,10000247
-0,2013-11-19,Others,25147,0,16,61.2794,0,10000146
-0,2013-09-10,Others,95672,0,13,13.8226,0,10000353
-0,2013-07-29,FP-non GTC,67698,0,16,36.8872,0,10000266
-0,2013-10-17,ABIN,73506,0,11,57.0211,0,10000341
-0,2013-03-25,Others,20213,0,11,55.2006,0,10000627
-0,2012-05-30,FP-GTC,38238,0,5,9.9162,0,10000418
-0,2013-07-17,Auction,100847,0,11,11.3573,0,10000097
-0,2012-02-11,Others,166013,15,16,49.2212,0,10000634
-0,2012-08-17,FP-GTC,45333,0,16,99.5103,0,10000769
-0,2012-03-26,Auction,11554,0,14,58.2225,0,10000444
-0,2012-11-16,FP-non GTC,100847,0,16,67.4826,0,10000523
-0,2012-06-22,Auction,20213,0,5,44.8452,0,10000639
-0,2012-07-04,ABIN,1504,0,16,64.0222,0,10000827
-0,2012-10-10,Others,16145,0,14,81.1907,0,10000468
-0,2012-06-12,FP-non GTC,45333,0,14,20.5268,0,10000808
-0,2012-07-27,FP-non GTC,156614,0,11,28.1814,0,10000053
-0,2012-05-01,ABIN,61323,0,12,78.4665,0,10000767
-0,2013-05-04,ABIN,20485,0,16,94.0624,0,10000715
-0,2013-06-21,ABIN,20485,0,-99,92.7954,0,10000066
-0,2013-09-23,FP-non GTC,25147,0,5,81.3970,0,10000728
-0,2013-01-13,Auction,88750,0,-99,18.9880,0,10000265
-0,2012-01-12,FP-GTC,2023,0,14,91.3572,0,10000139
-0,2013-11-08,Auction,63861,0,11,17.1466,0,10000247
-0,2012-12-02,Auction,87118,0,5,75.0804,0,10000364
-0,2013-09-23,Others,46575,0,11,10.2322,0,10000384
-0,2012-01-26,FP-GTC,20865,0,16,6.7215,0,10000538
-0,2013-09-11,Others,158666,15,14,10.9434,0,10000153
-0,2013-02-19,Others,106340,15,16,32.2718,0,10000481
-0,2012-08-21,FP-non GTC,57784,0,11,29.4936,0,10000682
-0,2013-12-17,ABIN,314,0,13,45.6416,0,10000323
-0,2012-11-28,ABIN,46575,0,11,74.3051,0,10000167
-0,2013-10-25,Auction,1357,0,16,63.2572,0,10000556
-0,2012-08-13,ABIN,51582,0,16,12.5932,0,10000744
-0,2012-03-14,FP-GTC,1161,3,15,36.8516,0,10000221
-0,2012-10-12,Others,1349,0,13,9.8277,0,10000954
-0,2013-07-30,Auction,16145,0,13,25.6803,0,10000527
-0,2013-04-20,Auction,121153,0,-99,94.4016,0,10000033
-0,2013-12-11,FP-GTC,45333,0,13,50.3231,0,10000488
-0,2012-03-12,Others,80135,0,14,46.9661,0,10000800
-0,2012-01-26,FP-non GTC,62179,0,15,6.7796,0,10000298
-0,2012-07-18,Others,13836,0,12,59.3458,0,10000932
-0,2013-11-01,Others,13836,0,13,7.5394,0,10000014
-0,2013-06-11,Auction,16509,0,12,53.2002,0,10000309
-0,2012-01-14,Auction,20865,0,12,9.5903,0,10000003
-0,2013-12-13,FP-GTC,43479,0,5,28.2234,0,10000654
-0,2012-02-17,Auction,6762,0,5,84.1040,0,10000246
-0,2013-11-01,FP-GTC,16145,0,5,44.8790,0,10000358
-0,2013-08-26,Others,67698,0,5,24.7653,0,10000110
-0,2012-02-01,FP-non GTC,99985,0,5,73.9172,0,10000822
-0,2013-01-05,Auction,11554,0,13,82.7057,0,10000554
-0,2012-12-05,FP-GTC,13987,0,-99,91.9448,0,10000377
-0,2012-04-27,FP-non GTC,13836,0,14,93.1923,0,10000766
-0,2012-09-23,ABIN,43479,0,16,74.2753,0,10000603
-0,2013-11-21,ABIN,164,0,14,81.0875,0,10000489
-0,2013-04-04,Auction,170083,3,12,12.4107,0,10000183
-0,2013-02-02,Auction,30059,3,11,66.0915,0,10000644
-0,2013-09-29,Auction,2635,0,13,41.5935,0,10000488
-0,2012-11-27,ABIN,26262,0,16,27.6081,0,10000191
-0,2013-01-10,Others,130,0,11,19.0647,0,10000056
-0,2013-07-28,FP-non GTC,164261,0,5,25.9751,0,10000663
-0,2012-10-05,FP-GTC,10866,0,-99,42.0352,0,10000058
-0,2013-11-22,Auction,20485,0,16,18.9452,0,10000996
-0,2013-11-30,FP-non GTC,175750,3,11,10.0374,0,10000358
-0,2013-04-23,ABIN,113802,15,15,40.0768,0,10000497
-0,2012-09-17,FP-GTC,216,0,14,32.8424,0,10000113
-0,2012-11-02,FP-non GTC,16145,3,14,63.9673,0,10000471
-0,2013-06-27,ABIN,67698,0,16,35.2993,0,10000722
-0,2013-12-16,ABIN,121153,0,-99,60.6539,0,10000709
-0,2012-03-27,ABIN,20886,0,12,69.1836,0,10000768
-0,2013-11-04,ABIN,57013,0,14,37.7805,0,10000450
-0,2012-09-04,FP-non GTC,57990,0,13,13.8693,0,10000743
-0,2013-06-22,Auction,20485,0,16,17.1755,0,10000336
-0,2012-10-14,FP-GTC,156614,0,12,29.0308,0,10000577
-0,2013-08-04,ABIN,106246,0,13,98.4005,0,10000297
-0,2012-06-13,ABIN,43398,0,16,95.3892,0,10000984
-0,2012-05-21,Auction,20485,0,12,44.0443,0,10000357
-0,2013-08-12,Auction,165888,0,14,0.5521,0,10000804
-0,2013-03-12,Others,95672,0,14,54.3816,0,10000338
-0,2012-11-29,Others,15868,0,11,9.4996,0,10000177
-0,2013-10-25,FP-GTC,31519,0,12,58.8241,0,10000720
-0,2012-03-08,FP-GTC,165888,0,16,46.6778,0,10000484
-0,2012-04-30,Auction,1504,0,11,48.3609,0,10000835
-0,2012-08-31,FP-GTC,314,0,15,41.9195,0,10000284
-0,2012-04-02,Auction,33038,15,13,89.7577,0,10000947
-0,2013-07-21,Auction,45333,0,16,0.4349,0,10000941
-0,2012-07-13,ABIN,16509,0,5,98.1480,0,10000363
-0,2013-06-05,ABIN,4943,0,5,96.3653,0,10000029
-0,2013-10-12,FP-GTC,15115,0,12,64.1499,0,10000339
-0,2012-11-08,FP-GTC,25147,0,15,87.9610,0,10000149
-0,2013-02-17,Others,61323,0,16,92.5311,0,10000932
-0,2012-04-26,Others,20485,0,11,20.2247,0,10000245
-0,2013-07-13,FP-non GTC,95173,0,16,95.5853,0,10000150
-0,2012-10-08,FP-GTC,11554,0,15,29.6721,0,10000584
-0,2012-01-05,ABIN,31519,0,5,40.7845,0,10000365
-0,2013-07-11,ABIN,139973,0,16,64.1171,0,10000712
-0,2012-02-24,FP-GTC,62179,0,-99,93.5801,0,10000634
-0,2012-07-29,Others,152801,0,-99,23.4592,0,10000351
-0,2012-08-19,Others,10866,0,5,90.3864,0,10000665
-0,2012-05-10,ABIN,174053,3,14,90.5710,0,10000685
-0,2013-11-10,Auction,46575,0,-99,86.3150,0,10000982
-0,2012-05-03,FP-GTC,67703,3,14,17.5203,0,10000985
-0,2013-04-13,Auction,20213,0,-99,28.1159,0,10000357
-0,2013-12-01,FP-non GTC,13987,0,5,75.0139,0,10000703
-0,2013-06-06,Auction,10866,0,5,57.2098,0,10000916
-0,2013-04-20,Others,63861,0,15,97.3023,0,10000021
-0,2012-02-01,FP-non GTC,13836,0,13,54.2758,0,10000217
-0,2013-11-01,FP-non GTC,99985,0,12,76.3203,0,10000817
-0,2013-02-23,Others,80287,0,13,17.8778,0,10000937
-0,2012-04-22,Auction,3838,0,14,64.5441,0,10000466
-0,2013-03-14,Others,20485,0,11,25.2019,0,10000098
-0,2012-04-01,Others,31519,3,15,65.6555,0,10000121
-0,2012-01-28,FP-GTC,60606,3,14,11.4888,0,10000057
-0,2012-12-23,Auction,31519,0,14,38.8159,0,10000563
-0,2013-02-12,ABIN,4943,0,14,99.1697,0,10000525
-0,2013-08-07,Auction,67698,0,-99,42.5442,0,10000547
-0,2012-12-21,FP-non GTC,57990,0,11,56.5816,0,10000092
-0,2013-02-28,FP-GTC,20485,0,14,13.4842,0,10000463
-0,2013-09-26,ABIN,10866,0,16,28.3103,0,10000185
-0,2013-05-16,FP-GTC,63889,0,-99,16.0623,0,10000533
-0,2012-04-03,ABIN,32876,0,11,88.8682,0,10000702
-0,2013-02-28,FP-GTC,50508,0,-99,80.6989,0,10000669
-0,2012-07-24,ABIN,95672,0,12,77.5250,0,10000322
-0,2013-07-21,Auction,31519,0,11,26.2578,0,10000442
-0,2012-07-18,Others,43398,0,11,16.4674,0,10000831
-0,2013-07-31,Auction,26262,0,11,60.5816,0,10000182
-0,2013-12-18,ABIN,164261,0,14,61.6805,0,10000522
-0,2013-03-31,FP-GTC,25147,0,13,75.9632,0,10000685
-0,2012-05-30,FP-GTC,15687,0,13,61.0666,0,10000600
-0,2012-04-15,FP-non GTC,57784,0,5,30.0380,0,10000419
-0,2013-05-19,ABIN,139973,3,15,15.0669,0,10000388
-0,2013-02-20,Others,164261,0,15,18.6774,0,10000276
-0,2012-03-16,FP-non GTC,61323,0,14,49.2798,0,10000187
-0,2013-11-22,FP-GTC,62179,0,-99,92.8435,0,10000014
-0,2013-08-25,ABIN,1504,0,-99,39.5945,0,10000183
-0,2013-08-14,FP-non GTC,1357,0,-99,47.7304,0,10000079
-0,2012-12-19,Others,32876,0,16,67.1409,0,10000867
-0,2012-03-28,Others,80135,0,16,62.6308,0,10000577
-0,2013-01-01,FP-GTC,38238,0,5,52.0108,0,10000514
-0,2012-02-28,Auction,63889,0,15,28.0304,0,10000595
-0,2013-08-04,Auction,61323,0,16,38.9078,0,10000608
-0,2012-06-21,FP-GTC,95173,0,15,94.9831,0,10000156
-0,2013-06-06,Auction,57013,0,11,75.3949,0,10000992
-0,2012-08-08,FP-non GTC,26249,0,11,64.1580,0,10000469
-0,2012-05-13,ABIN,132939,0,-99,71.6430,0,10000542
-0,2012-03-06,FP-non GTC,57990,0,11,77.1134,0,10000093
-0,2012-08-07,ABIN,16145,3,16,65.5825,0,10000841
-0,2012-07-29,FP-GTC,164,0,5,62.5545,0,10000552
-0,2012-07-26,FP-non GTC,37831,0,13,2.1842,0,10000802
-0,2013-11-23,ABIN,13987,0,11,9.7841,0,10000094
-0,2013-12-13,Auction,1349,0,11,93.3393,0,10000024
-0,2013-09-25,ABIN,80053,0,13,0.2014,0,10000693
-0,2012-05-17,ABIN,31519,0,16,39.1773,0,10000060
-0,2013-02-27,ABIN,175750,0,15,44.1286,0,10000721
-0,2012-04-04,Others,1349,0,16,45.4831,0,10000828
-0,2012-04-12,Auction,63889,0,-99,84.5028,0,10000402
-0,2013-07-02,FP-non GTC,80053,0,5,44.1441,0,10000742
-0,2013-12-22,Others,1349,0,13,83.7579,0,10000223
-0,2013-06-10,ABIN,95173,0,15,20.0108,0,10000952
-0,2012-10-20,Auction,11848,0,13,33.2825,0,10000329
-0,2013-10-17,ABIN,26249,0,16,18.9369,0,10000685
-0,2012-08-20,FP-non GTC,3838,0,-99,35.9469,0,10000069
-0,2012-02-12,FP-GTC,31519,3,14,35.2504,0,10000991
-0,2012-01-09,FP-GTC,100847,0,13,99.8144,0,10000782
-0,2013-09-09,Auction,73506,0,16,36.6553,0,10000835
-0,2013-07-30,FP-non GTC,67703,3,16,3.5994,0,10000203
-0,2012-05-09,Others,139973,0,13,8.8491,0,10000074
-0,2012-10-13,FP-GTC,20865,0,14,19.0378,0,10000747
-0,2012-09-10,FP-GTC,158798,0,11,37.8799,0,10000312
-0,2012-07-25,FP-GTC,95173,0,14,83.3301,0,10000893
-0,2013-08-19,Auction,166013,15,16,41.9336,0,10000846
-0,2012-02-13,Others,87118,0,12,93.4500,0,10000136
-0,2013-07-06,FP-non GTC,1120,3,-99,45.6255,0,10000086
-0,2012-12-20,Auction,50677,0,12,15.1782,0,10000452
-0,2013-08-20,FP-non GTC,165888,0,11,63.8546,0,10000780
-0,2012-11-29,FP-GTC,63861,0,14,35.9757,0,10000134
-0,2013-09-10,Auction,95672,0,-99,13.9615,0,10000553
-0,2013-12-11,Others,314,0,14,61.2280,0,10000269
-0,2013-05-27,FP-GTC,1504,0,16,89.8299,0,10000168
-0,2012-06-22,FP-non GTC,94847,0,11,86.5431,0,10000641
-0,2012-02-24,FP-non GTC,314,0,14,7.0223,0,10000288
-0,2013-01-12,FP-GTC,20865,0,15,99.4581,0,10000069
-0,2013-10-28,Auction,174106,3,15,19.0917,0,10000198
-0,2012-01-29,Auction,121153,0,11,16.5034,0,10000492
-0,2012-12-02,FP-non GTC,53064,0,5,40.0250,0,10000002
-0,2013-04-17,ABIN,60340,0,13,96.5255,0,10000357
-0,2013-12-16,Auction,61323,0,15,72.7839,0,10000195
-0,2012-06-20,Auction,37831,0,5,8.3551,0,10000429
-0,2012-11-22,ABIN,31387,3,14,17.2673,0,10000854
-0,2012-11-22,FP-GTC,95173,0,-99,70.2540,0,10000619
-0,2013-09-30,FP-non GTC,57990,0,11,81.0956,0,10000431
-0,2013-08-09,ABIN,155226,0,-99,41.4198,0,10000204
-0,2012-09-03,Auction,88750,0,11,45.2273,0,10000947
-0,2012-01-01,FP-non GTC,156356,0,12,44.7485,0,10000439
-0,2012-04-21,ABIN,50677,0,16,80.4618,0,10000466
-0,2013-03-30,Others,20213,0,12,86.3777,0,10000781
-0,2012-05-18,FP-GTC,12688,0,14,11.7047,0,10000550
-0,2013-08-18,Auction,31519,0,13,57.6148,0,10000608
-0,2013-10-27,FP-non GTC,24760,0,5,34.9687,0,10000322
-0,2013-03-26,FP-GTC,1349,0,11,51.2759,0,10000800
-0,2012-08-31,FP-GTC,4943,0,14,43.3525,0,10000916
-0,2013-10-27,FP-GTC,99985,0,13,91.0379,0,10000091
-0,2012-07-10,Others,24760,0,16,39.2775,0,10000813
-0,2012-11-06,FP-non GTC,50508,0,16,22.9019,0,10000271
-0,2013-11-27,FP-non GTC,175750,0,16,36.9125,0,10000898
-0,2013-12-22,FP-GTC,80053,0,13,83.0584,0,10000443
-0,2012-12-16,Auction,6762,0,14,97.8880,0,10000723
-0,2012-08-08,Others,57990,0,5,65.6268,0,10000715
-0,2012-07-23,FP-GTC,48027,0,-99,98.0398,0,10000565
-0,2012-12-20,FP-GTC,106246,0,12,67.1574,0,10000293
-0,2013-11-01,ABIN,1349,0,5,10.9577,0,10000369
-0,2012-04-28,Auction,139973,3,11,25.6617,0,10000067
-0,2012-11-01,FP-non GTC,155226,0,14,65.7990,0,10000083
-0,2013-05-27,FP-GTC,48027,0,13,61.6990,0,10000100
-0,2013-08-07,FP-GTC,314,0,14,30.0501,0,10000344
-0,2013-03-13,FP-non GTC,175750,0,-99,82.5221,0,10000683
-0,2013-07-30,FP-GTC,31519,3,16,95.1425,0,10000606
-0,2013-12-18,Auction,50508,0,15,93.7747,0,10000283
-0,2012-11-28,FP-non GTC,53064,0,11,65.5664,0,10000903
-0,2013-10-04,Others,26249,0,14,66.2702,0,10000149
-0,2012-02-01,ABIN,15687,0,-99,55.4663,0,10000025
-0,2012-11-09,Auction,132939,0,5,0.4841,0,10000477
-0,2012-05-31,FP-non GTC,67698,0,13,5.6112,0,10000205
-0,2012-01-10,ABIN,170083,3,14,91.3684,0,10000968
-0,2013-10-02,FP-GTC,41940,0,14,85.7042,0,10000503
-0,2013-06-20,Others,106340,15,11,64.5684,0,10000573
-0,2013-03-30,FP-GTC,87118,0,12,11.5656,0,10000456
-0,2013-05-20,Others,37831,0,16,76.5619,0,10000829
-0,2012-01-30,Others,16145,0,16,0.1008,0,10000079
-0,2013-12-08,FP-GTC,46575,0,14,44.8329,0,10000439
-0,2013-01-14,ABIN,73506,0,-99,14.5712,0,10000568
-0,2012-04-19,Others,130,0,13,73.6383,0,10000907
-0,2012-11-09,Others,11848,0,15,6.9025,0,10000095
-0,2013-03-15,FP-GTC,175750,0,5,55.2025,0,10000359
-0,2012-02-18,FP-non GTC,2635,0,-99,81.9584,0,10000506
-0,2013-12-07,Auction,80135,0,12,85.1453,0,10000262
-0,2013-04-19,ABIN,174106,3,11,94.1872,0,10000252
-0,2012-09-04,FP-non GTC,6762,0,16,79.4180,0,10000819
-0,2012-11-21,Others,37831,0,15,72.2244,0,10000911
-0,2013-06-03,Auction,164261,0,16,3.6716,0,10000112
-0,2013-01-23,FP-non GTC,121153,0,11,85.4725,0,10000843
-0,2013-12-30,Auction,3838,0,5,28.5619,0,10000995
-0,2013-09-26,ABIN,95672,0,15,21.3948,0,10000679
-0,2013-06-07,FP-non GTC,10866,0,-99,92.6345,0,10000466
-0,2013-11-04,FP-non GTC,63861,0,13,60.7962,0,10000174
-0,2012-07-14,Others,48027,0,16,46.3174,0,10000603
-0,2013-04-28,ABIN,87118,0,11,8.2679,0,10000590
-0,2013-07-22,ABIN,41940,0,13,76.5107,0,10000159
-0,2012-03-03,Auction,44079,0,11,95.7853,0,10000806
-0,2013-09-20,Others,20213,0,5,35.7134,0,10000922
-0,2012-09-13,Auction,62179,0,-99,80.7493,0,10000356
-0,2012-06-15,ABIN,314,0,13,66.0961,0,10000139
-0,2013-01-29,Others,24541,0,-99,66.4687,0,10000803
-0,2013-06-19,Others,1357,0,15,35.6912,0,10000723
-0,2012-11-15,Others,80135,0,11,44.1951,0,10000083
-0,2012-10-22,Others,67698,0,12,6.8778,0,10000535
-0,2013-09-09,FP-non GTC,50508,0,16,31.1656,0,10000160
-0,2013-10-22,Others,3838,0,5,98.1652,0,10000875
-0,2012-10-11,Others,1349,0,15,31.2521,0,10000663
-0,2013-08-30,FP-GTC,20485,0,-99,15.8748,0,10000988
-0,2013-04-10,Others,38238,0,15,29.3240,0,10000686
-0,2013-07-20,Auction,24760,0,-99,57.0828,0,10000657
-0,2012-08-04,FP-GTC,159184,0,12,51.4276,0,10000895
-0,2013-06-28,FP-non GTC,13836,0,-99,27.7177,0,10000897
-0,2013-05-06,FP-non GTC,43398,0,5,51.7179,0,10000862
-0,2013-02-01,ABIN,15868,0,5,46.3238,0,10000744
-0,2013-05-12,Auction,533,0,5,83.6965,0,10000200
-0,2012-04-26,Auction,4943,0,16,59.3741,0,10000918
-0,2012-03-12,Others,48027,0,14,76.2845,0,10000564
-0,2012-08-15,ABIN,32876,0,-99,72.1322,0,10000483
-0,2012-03-03,Others,43479,0,15,40.9293,0,10000937
-0,2013-01-20,Auction,38238,0,15,59.0009,0,10000040
-0,2012-03-17,Others,38238,0,12,59.9178,0,10000267
-0,2012-03-30,ABIN,50508,0,11,27.4960,0,10000970
-0,2012-04-22,ABIN,53064,0,-99,48.6321,0,10000750
-0,2012-05-29,Others,1504,0,11,98.6906,0,10000143
-0,2013-07-02,FP-non GTC,80135,0,11,40.2555,0,10000353
-0,2012-01-14,FP-GTC,6762,0,13,7.0226,0,10000466
-0,2012-11-19,Others,130,0,12,99.7620,0,10000731
-0,2012-06-23,Others,6762,0,5,63.1128,0,10000103
-0,2013-06-16,FP-non GTC,16145,3,12,64.2030,0,10000530
-0,2013-12-30,Auction,99985,0,5,23.4290,0,10000972
-0,2013-06-09,Others,46575,0,13,13.4803,0,10000745
-0,2013-12-10,Auction,103324,15,16,99.7648,0,10000786
-0,2012-09-28,ABIN,24760,0,15,11.3547,0,10000673
-0,2012-11-29,Others,158798,0,-99,82.8002,0,10000586
-0,2012-04-16,Others,175750,0,12,16.9311,0,10000751
-0,2012-03-16,Auction,46575,0,5,3.2964,0,10000589
-0,2012-01-24,ABIN,150265,15,14,64.6865,0,10000434
-0,2012-09-26,Others,38238,0,12,73.3389,0,10000438
-0,2012-01-30,FP-GTC,15868,0,-99,5.6161,0,10000671
-0,2013-05-25,FP-non GTC,38238,0,-99,93.9862,0,10000669
-0,2012-11-15,FP-non GTC,6762,0,14,19.2198,0,10000276
-0,2012-08-17,FP-non GTC,64076,0,14,88.5536,0,10000347
-0,2013-06-02,ABIN,67698,2,11,24.6629,0,10000487
-0,2012-02-14,FP-non GTC,175750,0,11,28.6018,0,10000292
-0,2013-03-29,Auction,314,0,12,14.1619,0,10000757
-0,2012-02-24,FP-GTC,12688,0,5,48.2185,0,10000829
-0,2013-06-20,FP-non GTC,67698,0,5,68.2468,0,10000640
-0,2013-02-12,FP-GTC,57784,0,13,80.4582,0,10000435
-0,2013-06-20,Auction,26249,0,-99,60.6520,0,10000950
-0,2013-04-25,Auction,152801,0,15,76.0514,0,10000612
-0,2012-09-15,FP-non GTC,32876,0,16,56.6683,0,10000146
-0,2012-05-03,Others,1357,0,-99,1.3769,0,10000268
-0,2012-01-14,Auction,9426,3,11,71.7337,0,10000443
-0,2012-08-12,FP-non GTC,139973,0,5,80.5935,0,10000932
-0,2012-11-27,Others,175750,0,5,54.8804,0,10000716
-0,2013-08-28,FP-non GTC,16145,3,-99,70.7167,0,10000244
-0,2012-09-23,Auction,20213,0,16,4.5554,0,10000608
-0,2013-10-15,ABIN,1504,0,5,38.8845,0,10000803
-0,2013-04-30,FP-non GTC,6762,0,14,47.3754,0,10000538
-0,2012-01-06,ABIN,15868,0,5,33.4885,0,10000847
-0,2012-04-30,ABIN,57990,0,5,63.8902,0,10000821
-0,2012-09-27,ABIN,38238,0,16,43.0875,0,10000524
-0,2012-06-30,FP-non GTC,152801,0,12,29.8433,0,10000102
-0,2013-05-25,ABIN,40059,3,5,43.0317,0,10000899
-0,2013-08-11,FP-non GTC,10866,0,15,50.1175,0,10000211
-0,2013-05-28,Auction,150265,15,14,79.0973,0,10000675
-0,2012-10-01,FP-non GTC,48904,0,13,28.9811,0,10000301
-0,2013-04-14,FP-GTC,103324,15,13,45.0386,0,10000853
-0,2012-07-23,Auction,20485,0,13,21.4452,0,10000116
-0,2013-01-11,ABIN,80287,0,5,90.5218,0,10000503
-0,2012-10-07,FP-GTC,25147,0,16,98.8443,0,10000667
-0,2012-12-12,FP-non GTC,100847,0,16,27.8064,0,10000075
-0,2012-04-24,ABIN,165888,0,-99,41.8494,0,10000323
-0,2012-01-13,FP-GTC,80053,0,14,30.7342,0,10000781
-0,2013-02-23,FP-GTC,121153,0,-99,50.0159,0,10000361
-0,2012-10-22,ABIN,1349,0,11,39.3281,0,10000951
-0,2012-01-20,ABIN,2635,0,-99,34.4591,0,10000433
-0,2012-04-14,FP-GTC,26262,0,13,34.2101,0,10000000
-0,2012-07-20,Others,12688,0,5,83.1926,0,10000755
-0,2012-09-12,FP-non GTC,216,0,11,61.5914,0,10000504
-0,2012-01-29,Others,13987,0,5,49.9596,0,10000340
-0,2013-01-10,ABIN,65,0,12,84.5331,0,10000988
-0,2012-08-20,FP-GTC,2023,0,16,46.2586,0,10000802
-0,2013-11-24,Others,156614,0,-99,68.9025,0,10000372
-0,2012-12-02,Auction,158798,0,16,62.5343,0,10000020
-0,2012-06-12,FP-non GTC,175750,0,14,21.6343,0,10000451
-0,2013-02-11,ABIN,9426,3,14,54.9943,0,10000615
-0,2012-11-01,FP-non GTC,88750,0,-99,16.7597,0,10000145
-0,2013-08-16,Auction,15868,0,15,14.8127,0,10000190
-0,2013-07-30,Auction,45333,0,14,67.5141,0,10000870
-0,2012-01-05,Others,24541,0,15,92.5069,0,10000821
-0,2013-04-30,Auction,57990,3,16,39.4144,0,10000140
-0,2013-01-03,Auction,314,0,14,73.2865,0,10000848
-0,2012-02-05,ABIN,38238,0,5,21.4669,0,10000158
-0,2012-05-08,FP-non GTC,13987,0,16,15.7925,0,10000816
-0,2012-12-08,Others,164261,0,12,33.2040,0,10000614
-0,2013-08-14,FP-non GTC,139255,15,16,37.1862,0,10000745
-0,2012-08-29,Auction,156614,0,14,11.0487,0,10000181
-0,2013-09-20,FP-GTC,95173,0,-99,42.2822,0,10000642
-0,2013-01-02,Auction,43479,0,5,21.7236,0,10000900
-0,2012-11-18,FP-GTC,139973,0,11,9.9099,0,10000191
-0,2012-02-03,Others,40059,3,5,74.0231,0,10000422
-0,2012-04-28,FP-non GTC,3838,0,5,6.5803,0,10000162
-0,2013-05-23,Others,80287,0,14,79.3278,0,10000474
-0,2012-06-16,Auction,108782,15,13,15.8824,0,10000259
-0,2013-12-05,FP-non GTC,63861,0,-99,78.2662,0,10000510
-0,2013-02-14,ABIN,31519,0,5,98.5361,0,10000591
-0,2012-07-27,ABIN,38238,0,16,97.9582,0,10000396
-0,2012-09-20,FP-non GTC,31519,0,13,15.0370,0,10000080
-0,2013-09-16,Auction,45333,0,15,99.9888,0,10000082
-0,2013-03-23,ABIN,1357,0,-99,78.1418,0,10000091
-0,2013-04-11,FP-GTC,45333,0,11,58.2670,0,10000078
-0,2012-01-23,Auction,63864,3,12,78.3096,0,10000755
-0,2012-01-27,FP-non GTC,15115,0,13,62.3493,0,10000191
-0,2012-10-30,FP-non GTC,1357,0,16,75.3922,0,10000178
-0,2012-05-22,Auction,75665,0,16,25.2559,0,10000662
-0,2013-08-22,Auction,51582,0,11,22.2512,0,10000937
-0,2012-10-20,ABIN,139973,0,-99,5.9459,0,10000542
-0,2013-04-06,FP-GTC,15868,0,5,44.5247,0,10000090
-0,2012-09-06,Others,43479,0,13,22.0043,0,10000822
-0,2012-05-19,ABIN,31519,0,12,67.8089,0,10000046
-0,2012-08-13,Auction,57990,3,12,51.2947,0,10000472
-0,2012-09-18,FP-GTC,139973,0,15,50.6074,0,10000482
-0,2013-02-27,Auction,13836,0,5,12.9600,0,10000057
-0,2012-10-02,Others,53064,0,11,21.0200,0,10000142
-0,2013-02-23,FP-GTC,26262,0,11,18.1814,0,10000457
-0,2012-10-05,FP-non GTC,100847,0,16,17.3068,0,10000061
-0,2013-05-03,FP-GTC,99985,0,11,88.9624,0,10000299
-0,2012-05-22,Others,11848,0,13,25.6477,0,10000572
-0,2013-01-21,ABIN,33038,15,16,37.8162,0,10000036
-0,2013-09-22,FP-non GTC,57990,0,12,72.4322,0,10000304
-0,2013-09-22,ABIN,65,0,13,5.8659,0,10000424
-0,2012-08-09,ABIN,44079,0,5,65.9028,0,10000790
-0,2013-08-05,Auction,1504,0,13,87.7795,0,10000621
-0,2013-08-06,FP-non GTC,88750,0,5,47.7266,0,10000579
-0,2013-11-22,Auction,62179,0,16,17.7918,0,10000626
-0,2013-08-19,ABIN,16145,0,16,56.5899,0,10000818
-0,2012-09-24,ABIN,4943,0,16,85.8548,0,10000515
-0,2013-05-14,ABIN,43479,0,5,12.9686,0,10000527
-0,2013-07-15,Others,73506,0,-99,88.5967,0,10000266
-0,2012-11-25,FP-GTC,64076,0,14,28.2347,0,10000361
-0,2012-01-07,ABIN,80053,0,13,77.0661,0,10000149
-0,2013-06-08,FP-non GTC,80287,0,-99,98.5548,0,10000668
-0,2013-10-03,ABIN,88750,0,11,34.1582,0,10000116
-0,2012-04-26,Auction,175750,0,12,53.9184,0,10000084
-0,2013-01-31,FP-non GTC,15868,0,12,71.5902,0,10000372
-0,2013-04-23,FP-non GTC,32876,0,14,94.0781,0,10000798
-0,2013-10-20,ABIN,38238,0,13,43.3655,0,10000837
-0,2013-04-21,ABIN,1504,0,5,32.5360,0,10000954
-0,2013-03-05,FP-non GTC,156356,0,11,48.8941,0,10000480
-0,2013-05-08,FP-non GTC,139973,0,16,94.5155,0,10000278
-0,2013-09-06,FP-GTC,45333,0,

<TRUNCATED>

[06/12] kylin git commit: KYLIN-2073 Tag timestamp in basic information

Posted by li...@apache.org.
KYLIN-2073 Tag timestamp in basic information

Signed-off-by: lidongsjtu <li...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/c553782f
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/c553782f
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/c553782f

Branch: refs/heads/yang21-hbase1.x
Commit: c553782f64815952a33ac08cdb2f4145e283eafa
Parents: a2fb71d
Author: Yifan Zhang <ev...@gmail.com>
Authored: Sun Oct 9 13:27:33 2016 +0800
Committer: lidongsjtu <li...@apache.org>
Committed: Sun Oct 9 18:17:39 2016 +0800

----------------------------------------------------------------------
 .../src/main/java/org/apache/kylin/tool/AbstractInfoExtractor.java | 2 ++
 1 file changed, 2 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/c553782f/tool/src/main/java/org/apache/kylin/tool/AbstractInfoExtractor.java
----------------------------------------------------------------------
diff --git a/tool/src/main/java/org/apache/kylin/tool/AbstractInfoExtractor.java b/tool/src/main/java/org/apache/kylin/tool/AbstractInfoExtractor.java
index 5797928..42a6706 100644
--- a/tool/src/main/java/org/apache/kylin/tool/AbstractInfoExtractor.java
+++ b/tool/src/main/java/org/apache/kylin/tool/AbstractInfoExtractor.java
@@ -141,6 +141,8 @@ public abstract class AbstractInfoExtractor extends AbstractApplication {
         StringBuilder basicSb = new StringBuilder();
         basicSb.append("MetaStoreID: ").append(ToolUtil.getHBaseMetaStoreId()).append("\n");
         basicSb.append("PackageType: ").append(packageType.toUpperCase()).append("\n");
+        SimpleDateFormat format  = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z");
+        basicSb.append("PackageTimestamp: ").append(format.format(new Date())).append("\n");
         basicSb.append("Host: ").append(ToolUtil.getHostName()).append("\n");
         FileUtils.writeStringToFile(new File(exportDir, "info"), basicSb.toString(), Charset.defaultCharset());
     }


[05/12] kylin git commit: minor, output error message to response of diagnosis

Posted by li...@apache.org.
minor, output error message to response of diagnosis


Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/a2fb71d7
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/a2fb71d7
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/a2fb71d7

Branch: refs/heads/yang21-hbase1.x
Commit: a2fb71d76aa342c7917a508ec981d232fb818f5a
Parents: 7ec0aac
Author: lidongsjtu <li...@apache.org>
Authored: Sun Oct 9 12:50:33 2016 +0800
Committer: lidongsjtu <li...@apache.org>
Committed: Sun Oct 9 12:50:33 2016 +0800

----------------------------------------------------------------------
 .../org/apache/kylin/rest/controller/DiagnosisController.java  | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/a2fb71d7/server-base/src/main/java/org/apache/kylin/rest/controller/DiagnosisController.java
----------------------------------------------------------------------
diff --git a/server-base/src/main/java/org/apache/kylin/rest/controller/DiagnosisController.java b/server-base/src/main/java/org/apache/kylin/rest/controller/DiagnosisController.java
index 826f888..d16547e 100644
--- a/server-base/src/main/java/org/apache/kylin/rest/controller/DiagnosisController.java
+++ b/server-base/src/main/java/org/apache/kylin/rest/controller/DiagnosisController.java
@@ -82,7 +82,7 @@ public class DiagnosisController extends BasicController {
         try {
             filePath = dgService.dumpProjectDiagnosisInfo(project);
         } catch (IOException e) {
-            throw new InternalErrorException("Failed to dump diagnosis info.", e);
+            throw new InternalErrorException("Failed to dump project diagnosis info. " + e.getMessage(), e);
         }
 
         setDownloadResponse(filePath, response);
@@ -98,7 +98,7 @@ public class DiagnosisController extends BasicController {
         try {
             filePath = dgService.dumpJobDiagnosisInfo(jobId);
         } catch (IOException e) {
-            throw new InternalErrorException("Failed to dump diagnosis info.", e);
+            throw new InternalErrorException("Failed to dump job diagnosis info. " + e.getMessage(), e);
         }
 
         setDownloadResponse(filePath, response);
@@ -114,7 +114,7 @@ public class DiagnosisController extends BasicController {
             IOUtils.copyLarge(fileInputStream, output);
             output.flush();
         } catch (IOException e) {
-            throw new InternalErrorException("Failed to dump diagnosis info.", e);
+            throw new InternalErrorException("Failed to create download for diagnosis. " + e.getMessage(), e);
         }
     }
 }


[02/12] kylin git commit: minor, a cautious check in TrieDictionaryBuilder

Posted by li...@apache.org.
minor, a cautious check in TrieDictionaryBuilder


Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/2abf2d33
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/2abf2d33
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/2abf2d33

Branch: refs/heads/yang21-hbase1.x
Commit: 2abf2d33a1f23e0a6ef12eb40a75b04d67b11c5f
Parents: 8aa91eb
Author: Yang Li <li...@apache.org>
Authored: Fri Oct 7 12:39:09 2016 +0800
Committer: Yang Li <li...@apache.org>
Committed: Fri Oct 7 12:39:09 2016 +0800

----------------------------------------------------------------------
 .../src/main/java/org/apache/kylin/dict/TrieDictionaryBuilder.java | 2 ++
 1 file changed, 2 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/2abf2d33/core-dictionary/src/main/java/org/apache/kylin/dict/TrieDictionaryBuilder.java
----------------------------------------------------------------------
diff --git a/core-dictionary/src/main/java/org/apache/kylin/dict/TrieDictionaryBuilder.java b/core-dictionary/src/main/java/org/apache/kylin/dict/TrieDictionaryBuilder.java
index 1271483..94dd208 100644
--- a/core-dictionary/src/main/java/org/apache/kylin/dict/TrieDictionaryBuilder.java
+++ b/core-dictionary/src/main/java/org/apache/kylin/dict/TrieDictionaryBuilder.java
@@ -417,6 +417,8 @@ public class TrieDictionaryBuilder<T> {
         int sizeNoValuesBeneath = stats.mbpn_sizeNoValueBeneath;
         int sizeChildOffset = stats.mbpn_sizeChildOffset;
         
+        if (stats.mbpn_footprint <= 0) // must never happen, but let us be cautious
+            throw new IllegalStateException("Too big dictionary, dictionary cannot be bigger than 2GB");
         if (stats.mbpn_footprint > _2GB)
             throw new RuntimeException("Too big dictionary, dictionary cannot be bigger than 2GB");
 


[11/12] kylin git commit: KYLIN-1528 Create a branch for v1.5 with HBase 1.x API

Posted by li...@apache.org.
http://git-wip-us.apache.org/repos/asf/kylin/blob/d5dded68/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/steps/MergeGCStep.java
----------------------------------------------------------------------
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/steps/MergeGCStep.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/steps/MergeGCStep.java
index 5b2441c..2f7e164 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/steps/MergeGCStep.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/steps/MergeGCStep.java
@@ -24,11 +24,11 @@ import java.util.Collections;
 import java.util.List;
 
 import org.apache.commons.lang.StringUtils;
-import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.HTableDescriptor;
-import org.apache.hadoop.hbase.client.HBaseAdmin;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.Admin;
+import org.apache.hadoop.hbase.client.Connection;
 import org.apache.kylin.common.KylinConfig;
-import org.apache.kylin.common.util.Bytes;
 import org.apache.kylin.job.exception.ExecuteException;
 import org.apache.kylin.job.execution.AbstractExecutable;
 import org.apache.kylin.job.execution.ExecutableContext;
@@ -69,19 +69,20 @@ public class MergeGCStep extends AbstractExecutable {
         List<String> oldTables = getOldHTables();
         if (oldTables != null && oldTables.size() > 0) {
             String metadataUrlPrefix = KylinConfig.getInstanceFromEnv().getMetadataUrlPrefix();
-            Configuration conf = HBaseConnection.getCurrentHBaseConfiguration();
-            HBaseAdmin admin = null;
+            Admin admin = null;
             try {
-                admin = new HBaseAdmin(conf);
+                Connection conn = HBaseConnection.get(KylinConfig.getInstanceFromEnv().getStorageUrl());
+                admin = conn.getAdmin();
+
                 for (String table : oldTables) {
-                    if (admin.tableExists(table)) {
-                        HTableDescriptor tableDescriptor = admin.getTableDescriptor(Bytes.toBytes(table));
+                    if (admin.tableExists(TableName.valueOf(table))) {
+                        HTableDescriptor tableDescriptor = admin.getTableDescriptor(TableName.valueOf((table)));
                         String host = tableDescriptor.getValue(IRealizationConstants.HTableTag);
                         if (metadataUrlPrefix.equalsIgnoreCase(host)) {
-                            if (admin.isTableEnabled(table)) {
-                                admin.disableTable(table);
+                            if (admin.isTableEnabled(TableName.valueOf(table))) {
+                                admin.disableTable(TableName.valueOf(table));
                             }
-                            admin.deleteTable(table);
+                            admin.deleteTable(TableName.valueOf(table));
                             logger.debug("Dropped htable: " + table);
                             output.append("HBase table " + table + " is dropped. \n");
                         } else {

http://git-wip-us.apache.org/repos/asf/kylin/blob/d5dded68/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CleanHtableCLI.java
----------------------------------------------------------------------
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CleanHtableCLI.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CleanHtableCLI.java
index a150607..56f867a 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CleanHtableCLI.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CleanHtableCLI.java
@@ -21,9 +21,11 @@ package org.apache.kylin.storage.hbase.util;
 import java.io.IOException;
 
 import org.apache.commons.cli.Options;
-import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.HTableDescriptor;
-import org.apache.hadoop.hbase.client.HBaseAdmin;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.Admin;
+import org.apache.hadoop.hbase.client.Connection;
+import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.AbstractApplication;
 import org.apache.kylin.common.util.OptionsHelper;
 import org.apache.kylin.metadata.realization.IRealizationConstants;
@@ -38,8 +40,8 @@ public class CleanHtableCLI extends AbstractApplication {
     protected static final Logger logger = LoggerFactory.getLogger(CleanHtableCLI.class);
 
     private void clean() throws IOException {
-        Configuration conf = HBaseConnection.getCurrentHBaseConfiguration();
-        HBaseAdmin hbaseAdmin = new HBaseAdmin(conf);
+        Connection conn = HBaseConnection.get(KylinConfig.getInstanceFromEnv().getStorageUrl());
+        Admin hbaseAdmin = conn.getAdmin();
 
         for (HTableDescriptor descriptor : hbaseAdmin.listTables()) {
             String name = descriptor.getNameAsString().toLowerCase();
@@ -50,7 +52,7 @@ public class CleanHtableCLI extends AbstractApplication {
                 System.out.println();
 
                 descriptor.setValue(IRealizationConstants.HTableOwner, "DL-eBay-Kylin@ebay.com");
-                hbaseAdmin.modifyTable(descriptor.getNameAsString(), descriptor);
+                hbaseAdmin.modifyTable(TableName.valueOf(descriptor.getNameAsString()), descriptor);
             }
         }
         hbaseAdmin.close();

http://git-wip-us.apache.org/repos/asf/kylin/blob/d5dded68/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CubeMigrationCLI.java
----------------------------------------------------------------------
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CubeMigrationCLI.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CubeMigrationCLI.java
index 52aa7ea..b78e3d7 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CubeMigrationCLI.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CubeMigrationCLI.java
@@ -33,12 +33,13 @@ import org.apache.hadoop.hbase.Cell;
 import org.apache.hadoop.hbase.CellUtil;
 import org.apache.hadoop.hbase.HTableDescriptor;
 import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.Admin;
+import org.apache.hadoop.hbase.client.Connection;
 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.HTableInterface;
 import org.apache.hadoop.hbase.client.Put;
 import org.apache.hadoop.hbase.client.Result;
+import org.apache.hadoop.hbase.client.Table;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.persistence.JsonSerializer;
 import org.apache.kylin.common.persistence.RawResource;
@@ -86,7 +87,7 @@ public class CubeMigrationCLI {
     private static ResourceStore srcStore;
     private static ResourceStore dstStore;
     private static FileSystem hdfsFS;
-    private static HBaseAdmin hbaseAdmin;
+    private static Admin hbaseAdmin;
 
     public static final String ACL_INFO_FAMILY = "i";
     private static final String ACL_TABLE_NAME = "_acl";
@@ -130,8 +131,8 @@ public class CubeMigrationCLI {
 
         checkAndGetHbaseUrl();
 
-        Configuration conf = HBaseConnection.getCurrentHBaseConfiguration();
-        hbaseAdmin = new HBaseAdmin(conf);
+        Connection conn = HBaseConnection.get(srcConfig.getStorageUrl());
+        hbaseAdmin = conn.getAdmin();
 
         hdfsFS = FileSystem.get(new Configuration());
 
@@ -229,6 +230,7 @@ public class CubeMigrationCLI {
             operations.add(new Opt(OptType.COPY_DICT_OR_SNAPSHOT, new Object[] { item, cube.getName() }));
         }
     }
+
     private static void addCubeAndModelIntoProject(CubeInstance srcCube, String cubeName, String projectName) throws IOException {
         String projectResPath = ProjectInstance.concatResourcePath(projectName);
         if (!dstStore.exists(projectResPath))
@@ -322,8 +324,8 @@ public class CubeMigrationCLI {
 
         switch (opt.type) {
         case CHANGE_HTABLE_HOST: {
-            String tableName = (String) opt.params[0];
-            HTableDescriptor desc = hbaseAdmin.getTableDescriptor(TableName.valueOf(tableName));
+            TableName tableName = TableName.valueOf((String) opt.params[0]);
+            HTableDescriptor desc = hbaseAdmin.getTableDescriptor(tableName);
             hbaseAdmin.disableTable(tableName);
             desc.setValue(IRealizationConstants.HTableTag, dstConfig.getMetadataUrlPrefix());
             hbaseAdmin.modifyTable(tableName, desc);
@@ -445,11 +447,11 @@ public class CubeMigrationCLI {
             Serializer<ProjectInstance> projectSerializer = new JsonSerializer<ProjectInstance>(ProjectInstance.class);
             ProjectInstance project = dstStore.getResource(projectResPath, ProjectInstance.class, projectSerializer);
             String projUUID = project.getUuid();
-            HTableInterface srcAclHtable = null;
-            HTableInterface destAclHtable = null;
+            Table srcAclHtable = null;
+            Table destAclHtable = null;
             try {
-                srcAclHtable = HBaseConnection.get(srcConfig.getStorageUrl()).getTable(srcConfig.getMetadataUrlPrefix() + ACL_TABLE_NAME);
-                destAclHtable = HBaseConnection.get(dstConfig.getStorageUrl()).getTable(dstConfig.getMetadataUrlPrefix() + ACL_TABLE_NAME);
+                srcAclHtable = HBaseConnection.get(srcConfig.getStorageUrl()).getTable(TableName.valueOf(srcConfig.getMetadataUrlPrefix() + ACL_TABLE_NAME));
+                destAclHtable = HBaseConnection.get(dstConfig.getStorageUrl()).getTable(TableName.valueOf(dstConfig.getMetadataUrlPrefix() + ACL_TABLE_NAME));
 
                 // cube acl
                 Result result = srcAclHtable.get(new Get(Bytes.toBytes(cubeId)));
@@ -469,7 +471,6 @@ public class CubeMigrationCLI {
                         destAclHtable.put(put);
                     }
                 }
-                destAclHtable.flushCommits();
             } finally {
                 IOUtils.closeQuietly(srcAclHtable);
                 IOUtils.closeQuietly(destAclHtable);
@@ -500,8 +501,8 @@ public class CubeMigrationCLI {
 
         switch (opt.type) {
         case CHANGE_HTABLE_HOST: {
-            String tableName = (String) opt.params[0];
-            HTableDescriptor desc = hbaseAdmin.getTableDescriptor(TableName.valueOf(tableName));
+            TableName tableName = TableName.valueOf((String) opt.params[0]);
+            HTableDescriptor desc = hbaseAdmin.getTableDescriptor(tableName);
             hbaseAdmin.disableTable(tableName);
             desc.setValue(IRealizationConstants.HTableTag, srcConfig.getMetadataUrlPrefix());
             hbaseAdmin.modifyTable(tableName, desc);
@@ -535,13 +536,12 @@ public class CubeMigrationCLI {
         case COPY_ACL: {
             String cubeId = (String) opt.params[0];
             String modelId = (String) opt.params[1];
-            HTableInterface destAclHtable = null;
+            Table destAclHtable = null;
             try {
-                destAclHtable = HBaseConnection.get(dstConfig.getStorageUrl()).getTable(dstConfig.getMetadataUrlPrefix() + ACL_TABLE_NAME);
+                destAclHtable = HBaseConnection.get(dstConfig.getStorageUrl()).getTable(TableName.valueOf(dstConfig.getMetadataUrlPrefix() + ACL_TABLE_NAME));
 
                 destAclHtable.delete(new Delete(Bytes.toBytes(cubeId)));
                 destAclHtable.delete(new Delete(Bytes.toBytes(modelId)));
-                destAclHtable.flushCommits();
             } finally {
                 IOUtils.closeQuietly(destAclHtable);
             }
@@ -558,7 +558,7 @@ public class CubeMigrationCLI {
         }
     }
 
-    private static void updateMeta(KylinConfig config){
+    private static void updateMeta(KylinConfig config) {
         String[] nodes = config.getRestServers();
         for (String node : nodes) {
             RestClient restClient = new RestClient(node);

http://git-wip-us.apache.org/repos/asf/kylin/blob/d5dded68/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CubeMigrationCheckCLI.java
----------------------------------------------------------------------
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CubeMigrationCheckCLI.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CubeMigrationCheckCLI.java
index 295750a..efda4e4 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CubeMigrationCheckCLI.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/CubeMigrationCheckCLI.java
@@ -26,10 +26,10 @@ import org.apache.commons.cli.Option;
 import org.apache.commons.cli.OptionBuilder;
 import org.apache.commons.cli.Options;
 import org.apache.commons.cli.ParseException;
-import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.HTableDescriptor;
 import org.apache.hadoop.hbase.TableName;
-import org.apache.hadoop.hbase.client.HBaseAdmin;
+import org.apache.hadoop.hbase.client.Admin;
+import org.apache.hadoop.hbase.client.Connection;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.OptionsHelper;
 import org.apache.kylin.cube.CubeInstance;
@@ -60,7 +60,7 @@ public class CubeMigrationCheckCLI {
     private static final Option OPTION_CUBE = OptionBuilder.withArgName("cube").hasArg().isRequired(false).withDescription("The name of cube migrated").create("cube");
 
     private KylinConfig dstCfg;
-    private HBaseAdmin hbaseAdmin;
+    private Admin hbaseAdmin;
 
     private List<String> issueExistHTables;
     private List<String> inconsistentHTables;
@@ -128,9 +128,8 @@ public class CubeMigrationCheckCLI {
         this.dstCfg = kylinConfig;
         this.ifFix = isFix;
 
-        Configuration conf = HBaseConnection.getCurrentHBaseConfiguration();
-        hbaseAdmin = new HBaseAdmin(conf);
-
+        Connection conn = HBaseConnection.get(kylinConfig.getStorageUrl());
+        hbaseAdmin = conn.getAdmin();
         issueExistHTables = Lists.newArrayList();
         inconsistentHTables = Lists.newArrayList();
     }
@@ -187,10 +186,10 @@ public class CubeMigrationCheckCLI {
                 String[] sepNameList = segFullName.split(",");
                 HTableDescriptor desc = hbaseAdmin.getTableDescriptor(TableName.valueOf(sepNameList[0]));
                 logger.info("Change the host of htable " + sepNameList[0] + "belonging to cube " + sepNameList[1] + " from " + desc.getValue(IRealizationConstants.HTableTag) + " to " + dstCfg.getMetadataUrlPrefix());
-                hbaseAdmin.disableTable(sepNameList[0]);
+                hbaseAdmin.disableTable(TableName.valueOf(sepNameList[0]));
                 desc.setValue(IRealizationConstants.HTableTag, dstCfg.getMetadataUrlPrefix());
-                hbaseAdmin.modifyTable(sepNameList[0], desc);
-                hbaseAdmin.enableTable(sepNameList[0]);
+                hbaseAdmin.modifyTable(TableName.valueOf(sepNameList[0]), desc);
+                hbaseAdmin.enableTable(TableName.valueOf(sepNameList[0]));
             }
         } else {
             logger.info("------ Inconsistent HTables Needed To Be Fixed ------");

http://git-wip-us.apache.org/repos/asf/kylin/blob/d5dded68/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/DeployCoprocessorCLI.java
----------------------------------------------------------------------
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/DeployCoprocessorCLI.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/DeployCoprocessorCLI.java
index a1193e7..48ab67c 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/DeployCoprocessorCLI.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/DeployCoprocessorCLI.java
@@ -40,7 +40,8 @@ import org.apache.hadoop.hbase.HConstants;
 import org.apache.hadoop.hbase.HTableDescriptor;
 import org.apache.hadoop.hbase.TableName;
 import org.apache.hadoop.hbase.TableNotFoundException;
-import org.apache.hadoop.hbase.client.HBaseAdmin;
+import org.apache.hadoop.hbase.client.Admin;
+import org.apache.hadoop.hbase.client.Connection;
 import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.KylinVersion;
@@ -76,7 +77,8 @@ public class DeployCoprocessorCLI {
         KylinConfig kylinConfig = KylinConfig.getInstanceFromEnv();
         Configuration hconf = HBaseConnection.getCurrentHBaseConfiguration();
         FileSystem fileSystem = FileSystem.get(hconf);
-        HBaseAdmin hbaseAdmin = new HBaseAdmin(hconf);
+        Connection conn = HBaseConnection.get(kylinConfig.getStorageUrl());
+        Admin hbaseAdmin = conn.getAdmin();
 
         String localCoprocessorJar;
         if ("default".equals(args[0])) {
@@ -159,10 +161,10 @@ public class DeployCoprocessorCLI {
     public static void deployCoprocessor(HTableDescriptor tableDesc) {
         try {
             initHTableCoprocessor(tableDesc);
-            logger.info("hbase table " + tableDesc.getName() + " deployed with coprocessor.");
+            logger.info("hbase table " + tableDesc.getTableName() + " deployed with coprocessor.");
 
         } catch (Exception ex) {
-            logger.error("Error deploying coprocessor on " + tableDesc.getName(), ex);
+            logger.error("Error deploying coprocessor on " + tableDesc.getTableName(), ex);
             logger.error("Will try creating the table without coprocessor.");
         }
     }
@@ -184,9 +186,9 @@ public class DeployCoprocessorCLI {
         desc.addCoprocessor(CubeObserverClass, hdfsCoprocessorJar, 1002, null);
     }
 
-    public static void resetCoprocessor(String tableName, HBaseAdmin hbaseAdmin, Path hdfsCoprocessorJar) throws IOException {
+    public static void resetCoprocessor(String tableName, Admin hbaseAdmin, Path hdfsCoprocessorJar) throws IOException {
         logger.info("Disable " + tableName);
-        hbaseAdmin.disableTable(tableName);
+        hbaseAdmin.disableTable(TableName.valueOf(tableName));
 
         logger.info("Unset coprocessor on " + tableName);
         HTableDescriptor desc = hbaseAdmin.getTableDescriptor(TableName.valueOf(tableName));
@@ -214,13 +216,13 @@ public class DeployCoprocessorCLI {
             desc.setValue(IRealizationConstants.HTableGitTag, commitInfo);
         }
 
-        hbaseAdmin.modifyTable(tableName, desc);
+        hbaseAdmin.modifyTable(TableName.valueOf(tableName), desc);
 
         logger.info("Enable " + tableName);
-        hbaseAdmin.enableTable(tableName);
+        hbaseAdmin.enableTable(TableName.valueOf(tableName));
     }
 
-    private static List<String> resetCoprocessorOnHTables(HBaseAdmin hbaseAdmin, Path hdfsCoprocessorJar, List<String> tableNames) throws IOException {
+    private static List<String> resetCoprocessorOnHTables(Admin hbaseAdmin, Path hdfsCoprocessorJar, List<String> tableNames) throws IOException {
         List<String> processed = new ArrayList<String>();
 
         for (String tableName : tableNames) {
@@ -331,7 +333,7 @@ public class DeployCoprocessorCLI {
         return coprocessorDir;
     }
 
-    private static Set<String> getCoprocessorJarPaths(HBaseAdmin hbaseAdmin, List<String> tableNames) throws IOException {
+    private static Set<String> getCoprocessorJarPaths(Admin hbaseAdmin, List<String> tableNames) throws IOException {
         HashSet<String> result = new HashSet<String>();
 
         for (String tableName : tableNames) {

http://git-wip-us.apache.org/repos/asf/kylin/blob/d5dded68/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/ExtendCubeToHybridCLI.java
----------------------------------------------------------------------
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/ExtendCubeToHybridCLI.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/ExtendCubeToHybridCLI.java
index a5a85fa..29ca7b2 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/ExtendCubeToHybridCLI.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/ExtendCubeToHybridCLI.java
@@ -26,10 +26,11 @@ import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.hadoop.hbase.Cell;
 import org.apache.hadoop.hbase.CellUtil;
+import org.apache.hadoop.hbase.TableName;
 import org.apache.hadoop.hbase.client.Get;
-import org.apache.hadoop.hbase.client.HTableInterface;
 import org.apache.hadoop.hbase.client.Put;
 import org.apache.hadoop.hbase.client.Result;
+import org.apache.hadoop.hbase.client.Table;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.persistence.JsonSerializer;
 import org.apache.kylin.common.persistence.ResourceStore;
@@ -231,9 +232,9 @@ public class ExtendCubeToHybridCLI {
         Serializer<ProjectInstance> projectSerializer = new JsonSerializer<ProjectInstance>(ProjectInstance.class);
         ProjectInstance project = store.getResource(projectResPath, ProjectInstance.class, projectSerializer);
         String projUUID = project.getUuid();
-        HTableInterface aclHtable = null;
+        Table aclHtable = null;
         try {
-            aclHtable = HBaseConnection.get(kylinConfig.getStorageUrl()).getTable(kylinConfig.getMetadataUrlPrefix() + "_acl");
+            aclHtable = HBaseConnection.get(kylinConfig.getStorageUrl()).getTable(TableName.valueOf(kylinConfig.getMetadataUrlPrefix() + "_acl"));
 
             // cube acl
             Result result = aclHtable.get(new Get(Bytes.toBytes(origCubeId)));
@@ -253,7 +254,6 @@ public class ExtendCubeToHybridCLI {
                     aclHtable.put(put);
                 }
             }
-            aclHtable.flushCommits();
         } finally {
             IOUtils.closeQuietly(aclHtable);
         }

http://git-wip-us.apache.org/repos/asf/kylin/blob/d5dded68/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/GridTableHBaseBenchmark.java
----------------------------------------------------------------------
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/GridTableHBaseBenchmark.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/GridTableHBaseBenchmark.java
index 86ba22f..dd5f8fa 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/GridTableHBaseBenchmark.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/GridTableHBaseBenchmark.java
@@ -28,13 +28,13 @@ import org.apache.hadoop.hbase.HColumnDescriptor;
 import org.apache.hadoop.hbase.HTableDescriptor;
 import org.apache.hadoop.hbase.TableName;
 import org.apache.hadoop.hbase.TableNotFoundException;
-import org.apache.hadoop.hbase.client.HBaseAdmin;
-import org.apache.hadoop.hbase.client.HConnection;
-import org.apache.hadoop.hbase.client.HTableInterface;
+import org.apache.hadoop.hbase.client.Admin;
+import org.apache.hadoop.hbase.client.Connection;
 import org.apache.hadoop.hbase.client.Put;
 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.Table;
 import org.apache.hadoop.hbase.filter.KeyOnlyFilter;
 import org.apache.kylin.common.util.Bytes;
 import org.apache.kylin.common.util.Pair;
@@ -75,7 +75,7 @@ public class GridTableHBaseBenchmark {
         System.out.println("Testing grid table scanning, hit ratio " + hitRatio + ", index ratio " + indexRatio);
         String hbaseUrl = "hbase"; // use hbase-site.xml on classpath
 
-        HConnection conn = HBaseConnection.get(hbaseUrl);
+        Connection conn = HBaseConnection.get(hbaseUrl);
         createHTableIfNeeded(conn, TEST_TABLE);
         prepareData(conn);
 
@@ -91,10 +91,10 @@ public class GridTableHBaseBenchmark {
 
     }
 
-    private static void testColumnScan(HConnection conn, List<Pair<Integer, Integer>> colScans) throws IOException {
+    private static void testColumnScan(Connection conn, List<Pair<Integer, Integer>> colScans) throws IOException {
         Stats stats = new Stats("COLUMN_SCAN");
 
-        HTableInterface table = conn.getTable(TEST_TABLE);
+        Table table = conn.getTable(TableName.valueOf(TEST_TABLE));
         try {
             stats.markStart();
 
@@ -122,20 +122,20 @@ public class GridTableHBaseBenchmark {
         }
     }
 
-    private static void testRowScanNoIndexFullScan(HConnection conn, boolean[] hits) throws IOException {
+    private static void testRowScanNoIndexFullScan(Connection conn, boolean[] hits) throws IOException {
         fullScan(conn, hits, new Stats("ROW_SCAN_NO_IDX_FULL"));
     }
 
-    private static void testRowScanNoIndexSkipScan(HConnection conn, boolean[] hits) throws IOException {
+    private static void testRowScanNoIndexSkipScan(Connection conn, boolean[] hits) throws IOException {
         jumpScan(conn, hits, new Stats("ROW_SCAN_NO_IDX_SKIP"));
     }
 
-    private static void testRowScanWithIndex(HConnection conn, boolean[] hits) throws IOException {
+    private static void testRowScanWithIndex(Connection conn, boolean[] hits) throws IOException {
         jumpScan(conn, hits, new Stats("ROW_SCAN_IDX"));
     }
 
-    private static void fullScan(HConnection conn, boolean[] hits, Stats stats) throws IOException {
-        HTableInterface table = conn.getTable(TEST_TABLE);
+    private static void fullScan(Connection conn, boolean[] hits, Stats stats) throws IOException {
+        Table table = conn.getTable(TableName.valueOf(TEST_TABLE));
         try {
             stats.markStart();
 
@@ -156,11 +156,11 @@ public class GridTableHBaseBenchmark {
         }
     }
 
-    private static void jumpScan(HConnection conn, boolean[] hits, Stats stats) throws IOException {
+    private static void jumpScan(Connection conn, boolean[] hits, Stats stats) throws IOException {
 
         final int jumpThreshold = 6; // compensate for Scan() overhead, totally by experience
 
-        HTableInterface table = conn.getTable(TEST_TABLE);
+        Table table = conn.getTable(TableName.valueOf(TEST_TABLE));
         try {
 
             stats.markStart();
@@ -204,8 +204,8 @@ public class GridTableHBaseBenchmark {
         }
     }
 
-    private static void prepareData(HConnection conn) throws IOException {
-        HTableInterface table = conn.getTable(TEST_TABLE);
+    private static void prepareData(Connection conn) throws IOException {
+        Table table = conn.getTable(TableName.valueOf(TEST_TABLE));
 
         try {
             // check how many rows existing
@@ -258,8 +258,8 @@ public class GridTableHBaseBenchmark {
         return bytes;
     }
 
-    private static void createHTableIfNeeded(HConnection conn, String tableName) throws IOException {
-        HBaseAdmin hbase = new HBaseAdmin(conn);
+    private static void createHTableIfNeeded(Connection conn, String tableName) throws IOException {
+        Admin hbase = conn.getAdmin();
 
         try {
             boolean tableExist = false;

http://git-wip-us.apache.org/repos/asf/kylin/blob/d5dded68/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/HBaseClean.java
----------------------------------------------------------------------
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/HBaseClean.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/HBaseClean.java
index 6749d6c..940d64a 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/HBaseClean.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/HBaseClean.java
@@ -24,9 +24,11 @@ import java.util.List;
 import org.apache.commons.cli.Option;
 import org.apache.commons.cli.OptionBuilder;
 import org.apache.commons.cli.Options;
-import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.HTableDescriptor;
-import org.apache.hadoop.hbase.client.HBaseAdmin;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.Admin;
+import org.apache.hadoop.hbase.client.Connection;
+import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.AbstractApplication;
 import org.apache.kylin.common.util.OptionsHelper;
 import org.apache.kylin.metadata.realization.IRealizationConstants;
@@ -55,8 +57,8 @@ public class HBaseClean extends AbstractApplication {
     private void cleanUp() {
         try {
             // get all kylin hbase tables
-            Configuration conf = HBaseConnection.getCurrentHBaseConfiguration();
-            HBaseAdmin hbaseAdmin = new HBaseAdmin(conf);
+            Connection conn = HBaseConnection.get(KylinConfig.getInstanceFromEnv().getStorageUrl());
+            Admin hbaseAdmin = conn.getAdmin();
             String tableNamePrefix = IRealizationConstants.SharedHbaseStorageLocationPrefix;
             HTableDescriptor[] tableDescriptors = hbaseAdmin.listTables(tableNamePrefix + ".*");
             List<String> allTablesNeedToBeDropped = Lists.newArrayList();
@@ -71,12 +73,12 @@ public class HBaseClean extends AbstractApplication {
                 // drop tables
                 for (String htableName : allTablesNeedToBeDropped) {
                     logger.info("Deleting HBase table " + htableName);
-                    if (hbaseAdmin.tableExists(htableName)) {
-                        if (hbaseAdmin.isTableEnabled(htableName)) {
-                            hbaseAdmin.disableTable(htableName);
+                    if (hbaseAdmin.tableExists(TableName.valueOf(htableName))) {
+                        if (hbaseAdmin.isTableEnabled(TableName.valueOf(htableName))) {
+                            hbaseAdmin.disableTable(TableName.valueOf(htableName));
                         }
 
-                        hbaseAdmin.deleteTable(htableName);
+                        hbaseAdmin.deleteTable(TableName.valueOf(htableName));
                         logger.info("Deleted HBase table " + htableName);
                     } else {
                         logger.info("HBase table" + htableName + " does not exist");

http://git-wip-us.apache.org/repos/asf/kylin/blob/d5dded68/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/HBaseRegionSizeCalculator.java
----------------------------------------------------------------------
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/HBaseRegionSizeCalculator.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/HBaseRegionSizeCalculator.java
index 346c3a2..3ae411b 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/HBaseRegionSizeCalculator.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/HBaseRegionSizeCalculator.java
@@ -23,6 +23,7 @@ import java.io.IOException;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.TreeMap;
@@ -30,12 +31,15 @@ import java.util.TreeSet;
 
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.ClusterStatus;
-import org.apache.hadoop.hbase.HRegionInfo;
+import org.apache.hadoop.hbase.HRegionLocation;
 import org.apache.hadoop.hbase.RegionLoad;
 import org.apache.hadoop.hbase.ServerLoad;
 import org.apache.hadoop.hbase.ServerName;
-import org.apache.hadoop.hbase.client.HBaseAdmin;
-import org.apache.hadoop.hbase.client.HTable;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.Admin;
+import org.apache.hadoop.hbase.client.Connection;
+import org.apache.hadoop.hbase.client.RegionLocator;
+import org.apache.hadoop.hbase.client.Table;
 import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.kylin.common.util.Pair;
 import org.slf4j.Logger;
@@ -57,30 +61,31 @@ public class HBaseRegionSizeCalculator {
     /**
      * Computes size of each region for table and given column families.
      * */
-    public HBaseRegionSizeCalculator(HTable table) throws IOException {
-        this(table, new HBaseAdmin(table.getConfiguration()));
-    }
-
-    /** Constructor for unit testing */
-    HBaseRegionSizeCalculator(HTable table, HBaseAdmin hBaseAdmin) throws IOException {
+    public HBaseRegionSizeCalculator(String tableName, Connection hbaseConnection) throws IOException {
 
+        Table table = null;
+        Admin admin = null;
         try {
+            table = hbaseConnection.getTable(TableName.valueOf(tableName));
+            admin = hbaseConnection.getAdmin();
+
             if (!enabled(table.getConfiguration())) {
                 logger.info("Region size calculation disabled.");
                 return;
             }
 
-            logger.info("Calculating region sizes for table \"" + new String(table.getTableName()) + "\".");
+            logger.info("Calculating region sizes for table \"" + table.getName() + "\".");
 
             // Get regions for table.
-            Set<HRegionInfo> tableRegionInfos = table.getRegionLocations().keySet();
+            RegionLocator regionLocator = hbaseConnection.getRegionLocator(table.getName());
+            List<HRegionLocation> regionLocationList = regionLocator.getAllRegionLocations();
             Set<byte[]> tableRegions = new TreeSet<byte[]>(Bytes.BYTES_COMPARATOR);
 
-            for (HRegionInfo regionInfo : tableRegionInfos) {
-                tableRegions.add(regionInfo.getRegionName());
+            for (HRegionLocation hRegionLocation : regionLocationList) {
+                tableRegions.add(hRegionLocation.getRegionInfo().getRegionName());
             }
 
-            ClusterStatus clusterStatus = hBaseAdmin.getClusterStatus();
+            ClusterStatus clusterStatus = admin.getClusterStatus();
             Collection<ServerName> servers = clusterStatus.getServers();
             final long megaByte = 1024L * 1024L;
 
@@ -104,7 +109,7 @@ public class HBaseRegionSizeCalculator {
                 }
             }
         } finally {
-            hBaseAdmin.close();
+            admin.close();
         }
 
     }

http://git-wip-us.apache.org/repos/asf/kylin/blob/d5dded68/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/HBaseUsage.java
----------------------------------------------------------------------
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/HBaseUsage.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/HBaseUsage.java
index 266f7e7..a2f60d4 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/HBaseUsage.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/HBaseUsage.java
@@ -23,9 +23,10 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.commons.lang.StringUtils;
-import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.HTableDescriptor;
-import org.apache.hadoop.hbase.client.HBaseAdmin;
+import org.apache.hadoop.hbase.client.Admin;
+import org.apache.hadoop.hbase.client.Connection;
+import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.metadata.realization.IRealizationConstants;
 import org.apache.kylin.storage.hbase.HBaseConnection;
 
@@ -42,8 +43,8 @@ public class HBaseUsage {
         Map<String, List<String>> envs = Maps.newHashMap();
 
         // get all kylin hbase tables
-        Configuration conf = HBaseConnection.getCurrentHBaseConfiguration();
-        HBaseAdmin hbaseAdmin = new HBaseAdmin(conf);
+        Connection conn = HBaseConnection.get(KylinConfig.getInstanceFromEnv().getStorageUrl());
+        Admin hbaseAdmin = conn.getAdmin();
         String tableNamePrefix = IRealizationConstants.SharedHbaseStorageLocationPrefix;
         HTableDescriptor[] tableDescriptors = hbaseAdmin.listTables(tableNamePrefix + ".*");
         for (HTableDescriptor desc : tableDescriptors) {

http://git-wip-us.apache.org/repos/asf/kylin/blob/d5dded68/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/HbaseStreamingInput.java
----------------------------------------------------------------------
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/HbaseStreamingInput.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/HbaseStreamingInput.java
index f30f2c9..542df39 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/HbaseStreamingInput.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/HbaseStreamingInput.java
@@ -31,15 +31,15 @@ import org.apache.hadoop.hbase.Cell;
 import org.apache.hadoop.hbase.HColumnDescriptor;
 import org.apache.hadoop.hbase.HTableDescriptor;
 import org.apache.hadoop.hbase.TableName;
-import org.apache.hadoop.hbase.client.HBaseAdmin;
-import org.apache.hadoop.hbase.client.HConnection;
-import org.apache.hadoop.hbase.client.HConnectionManager;
-import org.apache.hadoop.hbase.client.HTableInterface;
+import org.apache.hadoop.hbase.client.Admin;
+import org.apache.hadoop.hbase.client.Connection;
 import org.apache.hadoop.hbase.client.Put;
 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.Table;
 import org.apache.hadoop.hbase.regionserver.DisabledRegionSplitPolicy;
+import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.Bytes;
 import org.apache.kylin.storage.hbase.HBaseConnection;
 import org.slf4j.Logger;
@@ -57,11 +57,11 @@ public class HbaseStreamingInput {
     private static final byte[] QN = "C".getBytes();
 
     public static void createTable(String tableName) throws IOException {
-        HConnection conn = getConnection();
-        HBaseAdmin hadmin = new HBaseAdmin(conn);
+        Connection conn = getConnection();
+        Admin hadmin = conn.getAdmin();
 
         try {
-            boolean tableExist = hadmin.tableExists(tableName);
+            boolean tableExist = hadmin.tableExists(TableName.valueOf(tableName));
             if (tableExist) {
                 logger.info("HTable '" + tableName + "' already exists");
                 return;
@@ -118,8 +118,8 @@ public class HbaseStreamingInput {
                 e.printStackTrace();
             }
 
-            HConnection conn = getConnection();
-            HTableInterface table = conn.getTable(tableName);
+            Connection conn = getConnection();
+            Table table = conn.getTable(TableName.valueOf(tableName));
 
             byte[] key = new byte[8 + 4];//time + id
 
@@ -134,7 +134,7 @@ public class HbaseStreamingInput {
                 Bytes.putInt(key, 8, i);
                 Put put = new Put(key);
                 byte[] cell = randomBytes(CELL_SIZE);
-                put.add(CF, QN, cell);
+                put.addColumn(CF, QN, cell);
                 buffer.add(put);
             }
             table.put(buffer);
@@ -169,8 +169,8 @@ public class HbaseStreamingInput {
             }
 
             Random r = new Random();
-            HConnection conn = getConnection();
-            HTableInterface table = conn.getTable(tableName);
+            Connection conn = getConnection();
+            Table table = conn.getTable(TableName.valueOf(tableName));
 
             long leftBound = getFirstKeyTime(table);
             long rightBound = System.currentTimeMillis();
@@ -205,7 +205,7 @@ public class HbaseStreamingInput {
         }
     }
 
-    private static long getFirstKeyTime(HTableInterface table) throws IOException {
+    private static long getFirstKeyTime(Table table) throws IOException {
         long startTime = 0;
 
         Scan scan = new Scan();
@@ -223,8 +223,8 @@ public class HbaseStreamingInput {
 
     }
 
-    private static HConnection getConnection() throws IOException {
-        return HConnectionManager.createConnection(HBaseConnection.getCurrentHBaseConfiguration());
+    private static Connection getConnection() throws IOException {
+        return HBaseConnection.get(KylinConfig.getInstanceFromEnv().getStorageUrl());
     }
 
     private static String formatTime(long time) {

http://git-wip-us.apache.org/repos/asf/kylin/blob/d5dded68/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/HtableAlterMetadataCLI.java
----------------------------------------------------------------------
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/HtableAlterMetadataCLI.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/HtableAlterMetadataCLI.java
index ca1a060..ea05ab2 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/HtableAlterMetadataCLI.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/HtableAlterMetadataCLI.java
@@ -23,10 +23,11 @@ import java.io.IOException;
 import org.apache.commons.cli.Option;
 import org.apache.commons.cli.OptionBuilder;
 import org.apache.commons.cli.Options;
-import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.HTableDescriptor;
 import org.apache.hadoop.hbase.TableName;
-import org.apache.hadoop.hbase.client.HBaseAdmin;
+import org.apache.hadoop.hbase.client.Admin;
+import org.apache.hadoop.hbase.client.Connection;
+import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.AbstractApplication;
 import org.apache.kylin.common.util.OptionsHelper;
 import org.apache.kylin.engine.mr.common.BatchConstants;
@@ -50,8 +51,8 @@ public class HtableAlterMetadataCLI extends AbstractApplication {
     String metadataValue;
 
     private void alter() throws IOException {
-        Configuration conf = HBaseConnection.getCurrentHBaseConfiguration();
-        HBaseAdmin hbaseAdmin = new HBaseAdmin(conf);
+        Connection conn = HBaseConnection.get(KylinConfig.getInstanceFromEnv().getStorageUrl());
+        Admin hbaseAdmin = conn.getAdmin();
         HTableDescriptor table = hbaseAdmin.getTableDescriptor(TableName.valueOf(tableName));
 
         hbaseAdmin.disableTable(table.getTableName());

http://git-wip-us.apache.org/repos/asf/kylin/blob/d5dded68/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/OrphanHBaseCleanJob.java
----------------------------------------------------------------------
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/OrphanHBaseCleanJob.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/OrphanHBaseCleanJob.java
index 8ff5b0f..df4e912 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/OrphanHBaseCleanJob.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/OrphanHBaseCleanJob.java
@@ -30,10 +30,14 @@ import org.apache.commons.cli.Options;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.HBaseConfiguration;
 import org.apache.hadoop.hbase.HTableDescriptor;
-import org.apache.hadoop.hbase.client.HBaseAdmin;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.Admin;
+import org.apache.hadoop.hbase.client.Connection;
+import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.AbstractApplication;
 import org.apache.kylin.common.util.OptionsHelper;
 import org.apache.kylin.metadata.realization.IRealizationConstants;
+import org.apache.kylin.storage.hbase.HBaseConnection;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -52,9 +56,9 @@ public class OrphanHBaseCleanJob extends AbstractApplication {
     Set<String> metastoreWhitelistSet = new TreeSet<>(String.CASE_INSENSITIVE_ORDER);
 
     private void cleanUnusedHBaseTables(Configuration conf) throws IOException {
-
+        Connection conn = HBaseConnection.get(KylinConfig.getInstanceFromEnv().getStorageUrl());
         // get all kylin hbase tables
-        HBaseAdmin hbaseAdmin = new HBaseAdmin(conf);
+        Admin hbaseAdmin = conn.getAdmin();
         String tableNamePrefix = IRealizationConstants.SharedHbaseStorageLocationPrefix;
         HTableDescriptor[] tableDescriptors = hbaseAdmin.listTables(tableNamePrefix + ".*");
         List<String> allTablesNeedToBeDropped = new ArrayList<String>();
@@ -73,12 +77,13 @@ public class OrphanHBaseCleanJob extends AbstractApplication {
             // drop tables
             for (String htableName : allTablesNeedToBeDropped) {
                 logger.info("Deleting HBase table " + htableName);
-                if (hbaseAdmin.tableExists(htableName)) {
-                    if (hbaseAdmin.isTableEnabled(htableName)) {
-                        hbaseAdmin.disableTable(htableName);
+                TableName tableName = TableName.valueOf(htableName);
+                if (hbaseAdmin.tableExists(tableName)) {
+                    if (hbaseAdmin.isTableEnabled(tableName)) {
+                        hbaseAdmin.disableTable(tableName);
                     }
 
-                    hbaseAdmin.deleteTable(htableName);
+                    hbaseAdmin.deleteTable(tableName);
                     logger.info("Deleted HBase table " + htableName);
                 } else {
                     logger.info("HBase table" + htableName + " does not exist");

http://git-wip-us.apache.org/repos/asf/kylin/blob/d5dded68/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/PingHBaseCLI.java
----------------------------------------------------------------------
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/PingHBaseCLI.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/PingHBaseCLI.java
index 58ef7cb..3403657 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/PingHBaseCLI.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/PingHBaseCLI.java
@@ -21,12 +21,13 @@ package org.apache.kylin.storage.hbase.util;
 import java.io.IOException;
 
 import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.hbase.client.HConnection;
-import org.apache.hadoop.hbase.client.HConnectionManager;
-import org.apache.hadoop.hbase.client.HTableInterface;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.Connection;
+import org.apache.hadoop.hbase.client.ConnectionFactory;
 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.Table;
 import org.apache.hadoop.hbase.security.User;
 import org.apache.hadoop.hbase.security.token.TokenUtil;
 import org.apache.hadoop.security.UserGroupInformation;
@@ -57,12 +58,12 @@ public class PingHBaseCLI {
         Scan scan = new Scan();
         int limit = 20;
 
-        HConnection conn = null;
-        HTableInterface table = null;
+        Connection conn = null;
+        Table table = null;
         ResultScanner scanner = null;
         try {
-            conn = HConnectionManager.createConnection(hconf);
-            table = conn.getTable(hbaseTable);
+            conn = ConnectionFactory.createConnection(hconf);
+            table = conn.getTable(TableName.valueOf(hbaseTable));
             scanner = table.getScanner(scan);
             int count = 0;
             for (Result r : scanner) {

http://git-wip-us.apache.org/repos/asf/kylin/blob/d5dded68/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/RowCounterCLI.java
----------------------------------------------------------------------
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/RowCounterCLI.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/RowCounterCLI.java
index 01edb1f..db516bb 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/RowCounterCLI.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/RowCounterCLI.java
@@ -22,11 +22,12 @@ import java.io.IOException;
 import java.util.Iterator;
 
 import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.hbase.client.HConnection;
-import org.apache.hadoop.hbase.client.HConnectionManager;
-import org.apache.hadoop.hbase.client.HTableInterface;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.Connection;
+import org.apache.hadoop.hbase.client.ConnectionFactory;
 import org.apache.hadoop.hbase.client.Result;
 import org.apache.hadoop.hbase.client.Scan;
+import org.apache.hadoop.hbase.client.Table;
 import org.apache.kylin.common.util.Bytes;
 import org.apache.kylin.common.util.BytesUtil;
 import org.apache.kylin.storage.hbase.HBaseConnection;
@@ -70,8 +71,8 @@ public class RowCounterCLI {
 
         logger.info("My Scan " + scan.toString());
 
-        HConnection conn = HConnectionManager.createConnection(conf);
-        HTableInterface tableInterface = conn.getTable(htableName);
+        Connection conn = ConnectionFactory.createConnection(conf);
+        Table tableInterface = conn.getTable(TableName.valueOf(htableName));
 
         Iterator<Result> iterator = tableInterface.getScanner(scan).iterator();
         int counter = 0;

http://git-wip-us.apache.org/repos/asf/kylin/blob/d5dded68/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/StorageCleanupJob.java
----------------------------------------------------------------------
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/StorageCleanupJob.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/StorageCleanupJob.java
index dffce36..b02514f 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/StorageCleanupJob.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/StorageCleanupJob.java
@@ -41,7 +41,9 @@ import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.hbase.HBaseConfiguration;
 import org.apache.hadoop.hbase.HTableDescriptor;
-import org.apache.hadoop.hbase.client.HBaseAdmin;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.Admin;
+import org.apache.hadoop.hbase.client.Connection;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.AbstractApplication;
 import org.apache.kylin.common.util.CliCommandExecutor;
@@ -56,6 +58,7 @@ import org.apache.kylin.job.execution.AbstractExecutable;
 import org.apache.kylin.job.execution.ExecutableState;
 import org.apache.kylin.job.manager.ExecutableManager;
 import org.apache.kylin.metadata.realization.IRealizationConstants;
+import org.apache.kylin.storage.hbase.HBaseConnection;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -76,7 +79,8 @@ public class StorageCleanupJob extends AbstractApplication {
         CubeManager cubeMgr = CubeManager.getInstance(KylinConfig.getInstanceFromEnv());
         long TIME_THREADSHOLD = KylinConfig.getInstanceFromEnv().getStorageCleanupTimeThreshold();
         // get all kylin hbase tables
-        HBaseAdmin hbaseAdmin = new HBaseAdmin(conf);
+        Connection conn = HBaseConnection.get(KylinConfig.getInstanceFromEnv().getStorageUrl());
+        Admin hbaseAdmin = conn.getAdmin();
         String tableNamePrefix = IRealizationConstants.SharedHbaseStorageLocationPrefix;
         HTableDescriptor[] tableDescriptors = hbaseAdmin.listTables(tableNamePrefix + ".*");
         List<String> allTablesNeedToBeDropped = new ArrayList<String>();
@@ -157,22 +161,22 @@ public class StorageCleanupJob extends AbstractApplication {
     }
 
     class DeleteHTableRunnable implements Callable {
-        HBaseAdmin hbaseAdmin;
+        Admin hbaseAdmin;
         String htableName;
 
-        DeleteHTableRunnable(HBaseAdmin hbaseAdmin, String htableName) {
+        DeleteHTableRunnable(Admin hbaseAdmin, String htableName) {
             this.hbaseAdmin = hbaseAdmin;
             this.htableName = htableName;
         }
 
         public Object call() throws Exception {
             logger.info("Deleting HBase table " + htableName);
-            if (hbaseAdmin.tableExists(htableName)) {
-                if (hbaseAdmin.isTableEnabled(htableName)) {
-                    hbaseAdmin.disableTable(htableName);
+            if (hbaseAdmin.tableExists(TableName.valueOf(htableName))) {
+                if (hbaseAdmin.isTableEnabled(TableName.valueOf(htableName))) {
+                    hbaseAdmin.disableTable(TableName.valueOf(htableName));
                 }
 
-                hbaseAdmin.deleteTable(htableName);
+                hbaseAdmin.deleteTable(TableName.valueOf(htableName));
                 logger.info("Deleted HBase table " + htableName);
             } else {
                 logger.info("HBase table" + htableName + " does not exist");

http://git-wip-us.apache.org/repos/asf/kylin/blob/d5dded68/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/UpdateHTableHostCLI.java
----------------------------------------------------------------------
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/UpdateHTableHostCLI.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/UpdateHTableHostCLI.java
index e36f662..42a54c8 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/UpdateHTableHostCLI.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/UpdateHTableHostCLI.java
@@ -24,16 +24,18 @@ import java.util.Arrays;
 import java.util.List;
 
 import org.apache.commons.lang.StringUtils;
+import org.apache.hadoop.hbase.HBaseConfiguration;
 import org.apache.hadoop.hbase.HTableDescriptor;
 import org.apache.hadoop.hbase.TableName;
-import org.apache.hadoop.hbase.client.HBaseAdmin;
+import org.apache.hadoop.hbase.client.Admin;
+import org.apache.hadoop.hbase.client.Connection;
+import org.apache.hadoop.hbase.client.ConnectionFactory;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.cube.CubeInstance;
 import org.apache.kylin.cube.CubeManager;
 import org.apache.kylin.cube.CubeSegment;
 import org.apache.kylin.metadata.model.SegmentStatusEnum;
 import org.apache.kylin.metadata.realization.IRealizationConstants;
-import org.apache.kylin.storage.hbase.HBaseConnection;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -49,14 +51,15 @@ public class UpdateHTableHostCLI {
     private List<String> errorMsgs = Lists.newArrayList();
 
     private List<String> htables;
-    private HBaseAdmin hbaseAdmin;
+    private Admin hbaseAdmin;
     private KylinConfig kylinConfig;
     private String oldHostValue;
 
     public UpdateHTableHostCLI(List<String> htables, String oldHostValue) throws IOException {
         this.htables = htables;
         this.oldHostValue = oldHostValue;
-        this.hbaseAdmin = new HBaseAdmin(HBaseConnection.getCurrentHBaseConfiguration());
+        Connection conn = ConnectionFactory.createConnection(HBaseConfiguration.create());
+        hbaseAdmin = conn.getAdmin();
         this.kylinConfig = KylinConfig.getInstanceFromEnv();
     }
 
@@ -166,9 +169,9 @@ public class UpdateHTableHostCLI {
         HTableDescriptor desc = hbaseAdmin.getTableDescriptor(TableName.valueOf(tableName));
         if (oldHostValue.equals(desc.getValue(IRealizationConstants.HTableTag))) {
             desc.setValue(IRealizationConstants.HTableTag, kylinConfig.getMetadataUrlPrefix());
-            hbaseAdmin.disableTable(tableName);
-            hbaseAdmin.modifyTable(tableName, desc);
-            hbaseAdmin.enableTable(tableName);
+            hbaseAdmin.disableTable(TableName.valueOf(tableName));
+            hbaseAdmin.modifyTable(TableName.valueOf(tableName), desc);
+            hbaseAdmin.enableTable(TableName.valueOf(tableName));
 
             updatedResources.add(tableName);
         }

http://git-wip-us.apache.org/repos/asf/kylin/blob/d5dded68/storage-hbase/src/test/java/org/apache/kylin/storage/hbase/cube/v1/coprocessor/observer/AggregateRegionObserverTest.java
----------------------------------------------------------------------
diff --git a/storage-hbase/src/test/java/org/apache/kylin/storage/hbase/cube/v1/coprocessor/observer/AggregateRegionObserverTest.java b/storage-hbase/src/test/java/org/apache/kylin/storage/hbase/cube/v1/coprocessor/observer/AggregateRegionObserverTest.java
index 390930a..1196ed6 100644
--- a/storage-hbase/src/test/java/org/apache/kylin/storage/hbase/cube/v1/coprocessor/observer/AggregateRegionObserverTest.java
+++ b/storage-hbase/src/test/java/org/apache/kylin/storage/hbase/cube/v1/coprocessor/observer/AggregateRegionObserverTest.java
@@ -35,6 +35,7 @@ import org.apache.hadoop.hbase.HRegionInfo;
 import org.apache.hadoop.hbase.KeyValue;
 import org.apache.hadoop.hbase.KeyValue.Type;
 import org.apache.hadoop.hbase.regionserver.RegionScanner;
+import org.apache.hadoop.hbase.regionserver.ScannerContext;
 import org.apache.kylin.common.util.Bytes;
 import org.apache.kylin.metadata.datatype.LongMutable;
 import org.apache.kylin.metadata.model.ColumnDesc;
@@ -230,15 +231,8 @@ public class AggregateRegionObserverTest {
             return nextRaw(results);
         }
 
-        /*
-         * (non-Javadoc)
-         * 
-         * @see
-         * org.apache.hadoop.hbase.regionserver.InternalScanner#next(java.util
-         * .List, int)
-         */
         @Override
-        public boolean next(List<Cell> result, int limit) throws IOException {
+        public boolean next(List<Cell> result, ScannerContext scannerContext) throws IOException {
             return next(result);
         }
 
@@ -307,6 +301,11 @@ public class AggregateRegionObserverTest {
             return 0;
         }
 
+        @Override
+        public int getBatch() {
+            return 0;
+        }
+
         /*
          * (non-Javadoc)
          * 
@@ -323,16 +322,9 @@ public class AggregateRegionObserverTest {
             return i < input.size();
         }
 
-        /*
-         * (non-Javadoc)
-         * 
-         * @see
-         * org.apache.hadoop.hbase.regionserver.RegionScanner#nextRaw(java.util
-         * .List, int)
-         */
         @Override
-        public boolean nextRaw(List<Cell> result, int limit) throws IOException {
-            return nextRaw(result);
+        public boolean nextRaw(List<Cell> list, ScannerContext scannerContext) throws IOException {
+            return false;
         }
 
     }

http://git-wip-us.apache.org/repos/asf/kylin/blob/d5dded68/storage-hbase/src/test/java/org/apache/kylin/storage/hbase/cube/v1/filter/TestFuzzyRowFilterV2EndToEnd.java
----------------------------------------------------------------------
diff --git a/storage-hbase/src/test/java/org/apache/kylin/storage/hbase/cube/v1/filter/TestFuzzyRowFilterV2EndToEnd.java b/storage-hbase/src/test/java/org/apache/kylin/storage/hbase/cube/v1/filter/TestFuzzyRowFilterV2EndToEnd.java
index 1d85922..04e2e8b 100644
--- a/storage-hbase/src/test/java/org/apache/kylin/storage/hbase/cube/v1/filter/TestFuzzyRowFilterV2EndToEnd.java
+++ b/storage-hbase/src/test/java/org/apache/kylin/storage/hbase/cube/v1/filter/TestFuzzyRowFilterV2EndToEnd.java
@@ -44,6 +44,7 @@ import org.apache.hadoop.hbase.filter.FilterList;
 import org.apache.hadoop.hbase.filter.FilterList.Operator;
 import org.apache.hadoop.hbase.regionserver.ConstantSizeRegionSplitPolicy;
 import org.apache.hadoop.hbase.regionserver.HRegion;
+import org.apache.hadoop.hbase.regionserver.Region;
 import org.apache.hadoop.hbase.regionserver.RegionScanner;
 import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.hadoop.hbase.util.Pair;
@@ -136,7 +137,7 @@ public class TestFuzzyRowFilterV2EndToEnd {
 
                         Put p = new Put(rk);
                         p.setDurability(Durability.SKIP_WAL);
-                        p.add(cf.getBytes(), cq, Bytes.toBytes(c));
+                        p.addColumn(cf.getBytes(), cq, Bytes.toBytes(c));
                         ht.put(p);
                     }
                 }
@@ -224,7 +225,7 @@ public class TestFuzzyRowFilterV2EndToEnd {
         scan.addFamily(cf.getBytes());
         scan.setFilter(filter);
         List<HRegion> regions = TEST_UTIL.getHBaseCluster().getRegions(table.getBytes());
-        HRegion first = regions.get(0);
+        Region first = regions.get(0);
         first.getScanner(scan);
         RegionScanner scanner = first.getScanner(scan);
         List<Cell> results = new ArrayList<Cell>();


[10/12] kylin git commit: KYLIN-2076 Improve sample cube and data

Posted by li...@apache.org.
KYLIN-2076 Improve sample cube and data

Signed-off-by: Li Yang <li...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/5a114585
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/5a114585
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/5a114585

Branch: refs/heads/yang21-hbase1.x
Commit: 5a1145853e676c99459c43bfd941fb3e7c6e3fcf
Parents: 20093f4
Author: Cheng Wang <ch...@kyligence.io>
Authored: Mon Oct 10 17:49:33 2016 +0800
Committer: Li Yang <li...@apache.org>
Committed: Mon Oct 10 18:00:16 2016 +0800

----------------------------------------------------------------------
 examples/sample_cube/create_sample_tables.sql   |     4 +-
 .../sample_cube/data/DEFAULT.KYLIN_SALES.csv    | 20000 ++++++++---------
 .../cube_desc/kylin_sales_cube_desc.json        |    18 +-
 .../template/model_desc/kylin_sales_model.json  |     4 +-
 .../template/table/DEFAULT.KYLIN_SALES.json     |    10 +-
 5 files changed, 10031 insertions(+), 10005 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/5a114585/examples/sample_cube/create_sample_tables.sql
----------------------------------------------------------------------
diff --git a/examples/sample_cube/create_sample_tables.sql b/examples/sample_cube/create_sample_tables.sql
index d83566c..8399ee8 100644
--- a/examples/sample_cube/create_sample_tables.sql
+++ b/examples/sample_cube/create_sample_tables.sql
@@ -181,10 +181,12 @@ TRANS_ID bigint
 ,PRICE decimal(19,4)
 ,ITEM_COUNT bigint
 ,SELLER_ID bigint
+,USER_ID string
+,REGION string
 )
 ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
 STORED AS TEXTFILE;
 
 LOAD DATA INPATH '/tmp/kylin/sample_cube/data/DEFAULT.KYLIN_SALES.csv' OVERWRITE INTO TABLE DEFAULT.KYLIN_SALES;
 LOAD DATA INPATH '/tmp/kylin/sample_cube/data/DEFAULT.KYLIN_CAL_DT.csv' OVERWRITE INTO TABLE DEFAULT.KYLIN_CAL_DT;
-LOAD DATA INPATH '/tmp/kylin/sample_cube/data/DEFAULT.KYLIN_CATEGORY_GROUPINGS.csv' OVERWRITE INTO TABLE DEFAULT.KYLIN_CATEGORY_GROUPINGS;
\ No newline at end of file
+LOAD DATA INPATH '/tmp/kylin/sample_cube/data/DEFAULT.KYLIN_CATEGORY_GROUPINGS.csv' OVERWRITE INTO TABLE DEFAULT.KYLIN_CATEGORY_GROUPINGS;


[03/12] kylin git commit: KYLIN-2051 Fix potentially ineffective call in ZipFileUtils class

Posted by li...@apache.org.
KYLIN-2051 Fix potentially ineffective call in ZipFileUtils class


Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/ebc08484
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/ebc08484
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/ebc08484

Branch: refs/heads/yang21-hbase1.x
Commit: ebc08484a0575aaa77ebe67cc2a33a6935ea62e5
Parents: 2abf2d3
Author: lidongsjtu <li...@apache.org>
Authored: Fri Oct 7 18:22:39 2016 +0800
Committer: lidongsjtu <li...@apache.org>
Committed: Fri Oct 7 18:23:19 2016 +0800

----------------------------------------------------------------------
 .../apache/kylin/common/util/ZipFileUtils.java  | 57 ++++++++++++--------
 1 file changed, 34 insertions(+), 23 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/ebc08484/core-common/src/main/java/org/apache/kylin/common/util/ZipFileUtils.java
----------------------------------------------------------------------
diff --git a/core-common/src/main/java/org/apache/kylin/common/util/ZipFileUtils.java b/core-common/src/main/java/org/apache/kylin/common/util/ZipFileUtils.java
index 525a34c..ef24d85 100644
--- a/core-common/src/main/java/org/apache/kylin/common/util/ZipFileUtils.java
+++ b/core-common/src/main/java/org/apache/kylin/common/util/ZipFileUtils.java
@@ -38,32 +38,41 @@ public class ZipFileUtils {
         if (!validateZipFilename(zipFilename)) {
             throw new RuntimeException("Zipfile must end with .zip");
         }
-        ZipOutputStream zipFile = new ZipOutputStream(new FileOutputStream(zipFilename));
-        compressDirectoryToZipfile(normDir(new File(sourceDir).getParent()), normDir(sourceDir), zipFile);
-        IOUtils.closeQuietly(zipFile);
+        ZipOutputStream zipFile = null;
+        try {
+            zipFile = new ZipOutputStream(new FileOutputStream(zipFilename));
+            compressDirectoryToZipfile(normDir(new File(sourceDir).getParent()), normDir(sourceDir), zipFile);
+        } finally {
+            IOUtils.closeQuietly(zipFile);
+        }
     }
 
     public static void decompressZipfileToDirectory(String zipFileName, File outputFolder) throws IOException {
+        ZipInputStream zipInputStream = null;
+        try {
+            zipInputStream = new ZipInputStream(new FileInputStream(zipFileName));
+            ZipEntry zipEntry = null;
+            while ((zipEntry = zipInputStream.getNextEntry()) != null) {
+                logger.info("decompressing " + zipEntry.getName() + " is directory:" + zipEntry.isDirectory() + " available: " + zipInputStream.available());
 
-        ZipInputStream zipInputStream = new ZipInputStream(new FileInputStream(zipFileName));
-        ZipEntry zipEntry = null;
-        while ((zipEntry = zipInputStream.getNextEntry()) != null) {
-            logger.info("decompressing " + zipEntry.getName() + " is directory:" + zipEntry.isDirectory() + " available: " + zipInputStream.available());
-
-            File temp = new File(outputFolder, zipEntry.getName());
-            if (zipEntry.isDirectory()) {
-                temp.mkdirs();
-            } else {
-                temp.getParentFile().mkdirs();
-                temp.createNewFile();
-                temp.setLastModified(zipEntry.getTime());
-                FileOutputStream outputStream = new FileOutputStream(temp);
-                IOUtils.copy(zipInputStream, outputStream);
-                IOUtils.closeQuietly(outputStream);
+                File temp = new File(outputFolder, zipEntry.getName());
+                if (zipEntry.isDirectory()) {
+                    temp.mkdirs();
+                } else {
+                    temp.getParentFile().mkdirs();
+                    temp.createNewFile();
+                    temp.setLastModified(zipEntry.getTime());
+                    FileOutputStream outputStream = new FileOutputStream(temp);
+                    try {
+                        IOUtils.copy(zipInputStream, outputStream);
+                    } finally {
+                        IOUtils.closeQuietly(outputStream);
+                    }
+                }
             }
+        } finally {
+            IOUtils.closeQuietly(zipInputStream);
         }
-        IOUtils.closeQuietly(zipInputStream);
-
     }
 
     private static void compressDirectoryToZipfile(String rootDir, String sourceDir, ZipOutputStream out) throws IOException {
@@ -74,10 +83,12 @@ public class ZipFileUtils {
                 ZipEntry entry = new ZipEntry(normDir(StringUtils.isEmpty(rootDir) ? sourceDir : sourceDir.replace(rootDir, "")) + sourceFile.getName());
                 entry.setTime(sourceFile.lastModified());
                 out.putNextEntry(entry);
-
                 FileInputStream in = new FileInputStream(sourceDir + sourceFile.getName());
-                IOUtils.copy(in, out);
-                IOUtils.closeQuietly(in);
+                try {
+                    IOUtils.copy(in, out);
+                } finally {
+                    IOUtils.closeQuietly(in);
+                }
             }
         }
     }


[12/12] kylin git commit: KYLIN-1528 Create a branch for v1.5 with HBase 1.x API

Posted by li...@apache.org.
KYLIN-1528 Create a branch for v1.5 with HBase 1.x API


Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/d5dded68
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/d5dded68
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/d5dded68

Branch: refs/heads/yang21-hbase1.x
Commit: d5dded682c1e7f828751a55af2d5ac796e313fa9
Parents: 5a11458
Author: shaofengshi <sh...@apache.org>
Authored: Wed Mar 23 17:07:05 2016 +0800
Committer: Yang Li <li...@apache.org>
Committed: Mon Oct 10 13:51:52 2016 +0000

----------------------------------------------------------------------
 examples/test_case_data/sandbox/hbase-site.xml  | 19 +---
 .../kylin/provision/BuildCubeWithEngine.java    | 13 ++-
 pom.xml                                         | 12 +--
 .../kylin/rest/security/AclHBaseStorage.java    |  4 +-
 .../rest/security/MockAclHBaseStorage.java      |  8 +-
 .../apache/kylin/rest/security/MockHTable.java  | 95 ++++----------------
 .../rest/security/RealAclHBaseStorage.java      |  9 +-
 .../apache/kylin/rest/service/AclService.java   | 25 +++---
 .../apache/kylin/rest/service/CubeService.java  | 36 +++-----
 .../apache/kylin/rest/service/QueryService.java | 24 +++--
 .../apache/kylin/rest/service/UserService.java  | 17 ++--
 .../kylin/storage/hbase/HBaseConnection.java    | 44 ++++-----
 .../kylin/storage/hbase/HBaseResourceStore.java | 31 +++----
 .../kylin/storage/hbase/HBaseStorage.java       |  3 +-
 .../storage/hbase/cube/SimpleHBaseStore.java    | 20 ++---
 .../hbase/cube/v1/CubeSegmentTupleIterator.java | 11 +--
 .../storage/hbase/cube/v1/CubeStorageQuery.java |  6 +-
 .../hbase/cube/v1/RegionScannerAdapter.java     | 10 ++-
 .../cube/v1/SerializedHBaseTupleIterator.java   |  4 +-
 .../observer/AggregateRegionObserver.java       |  4 +-
 .../observer/AggregationScanner.java            | 14 ++-
 .../observer/ObserverAggregationCache.java      | 10 ++-
 .../coprocessor/observer/ObserverEnabler.java   |  4 +-
 .../hbase/cube/v2/CubeHBaseEndpointRPC.java     | 13 +--
 .../storage/hbase/cube/v2/CubeHBaseScanRPC.java |  9 +-
 .../coprocessor/endpoint/CubeVisitService.java  |  4 +-
 .../storage/hbase/steps/CubeHTableUtil.java     | 16 ++--
 .../storage/hbase/steps/DeprecatedGCStep.java   | 23 ++---
 .../storage/hbase/steps/HBaseCuboidWriter.java  |  7 +-
 .../hbase/steps/HBaseStreamingOutput.java       |  9 +-
 .../kylin/storage/hbase/steps/MergeGCStep.java  | 23 ++---
 .../storage/hbase/util/CleanHtableCLI.java      | 12 +--
 .../storage/hbase/util/CubeMigrationCLI.java    | 36 ++++----
 .../hbase/util/CubeMigrationCheckCLI.java       | 17 ++--
 .../hbase/util/DeployCoprocessorCLI.java        | 22 ++---
 .../hbase/util/ExtendCubeToHybridCLI.java       |  8 +-
 .../hbase/util/GridTableHBaseBenchmark.java     | 34 +++----
 .../kylin/storage/hbase/util/HBaseClean.java    | 18 ++--
 .../hbase/util/HBaseRegionSizeCalculator.java   | 35 ++++----
 .../kylin/storage/hbase/util/HBaseUsage.java    |  9 +-
 .../storage/hbase/util/HbaseStreamingInput.java | 30 +++----
 .../hbase/util/HtableAlterMetadataCLI.java      |  9 +-
 .../storage/hbase/util/OrphanHBaseCleanJob.java | 19 ++--
 .../kylin/storage/hbase/util/PingHBaseCLI.java  | 15 ++--
 .../kylin/storage/hbase/util/RowCounterCLI.java | 11 +--
 .../storage/hbase/util/StorageCleanupJob.java   | 20 +++--
 .../storage/hbase/util/UpdateHTableHostCLI.java | 17 ++--
 .../observer/AggregateRegionObserverTest.java   | 26 ++----
 .../v1/filter/TestFuzzyRowFilterV2EndToEnd.java |  5 +-
 49 files changed, 408 insertions(+), 462 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/d5dded68/examples/test_case_data/sandbox/hbase-site.xml
----------------------------------------------------------------------
diff --git a/examples/test_case_data/sandbox/hbase-site.xml b/examples/test_case_data/sandbox/hbase-site.xml
index 46d5345..734908e 100644
--- a/examples/test_case_data/sandbox/hbase-site.xml
+++ b/examples/test_case_data/sandbox/hbase-site.xml
@@ -190,22 +190,5 @@
         <name>zookeeper.znode.parent</name>
         <value>/hbase-unsecure</value>
     </property>
-    <property>
-        <name>hbase.client.pause</name>
-        <value>100</value>
-        <description>General client pause value.  Used mostly as value to wait
-            before running a retry of a failed get, region lookup, etc.
-            See hbase.client.retries.number for description of how we backoff from
-            this initial pause amount and how this pause works w/ retries.</description>
-    </property>
-    <property>
-        <name>hbase.client.retries.number</name>
-        <value>5</value>
-        <description>Maximum retries.  Used as maximum for all retryable
-            operations such as the getting of a cell's value, starting a row update,
-            etc.  Retry interval is a rough function based on hbase.client.pause.  At
-            first we retry at this interval but then with backoff, we pretty quickly reach
-            retrying every ten seconds.  See HConstants#RETRY_BACKOFF for how the backup
-            ramps up.  Change this setting and hbase.client.pause to suit your workload.</description>
-    </property>
+
 </configuration>

http://git-wip-us.apache.org/repos/asf/kylin/blob/d5dded68/kylin-it/src/test/java/org/apache/kylin/provision/BuildCubeWithEngine.java
----------------------------------------------------------------------
diff --git a/kylin-it/src/test/java/org/apache/kylin/provision/BuildCubeWithEngine.java b/kylin-it/src/test/java/org/apache/kylin/provision/BuildCubeWithEngine.java
index 3d60a3c..0910df5 100644
--- a/kylin-it/src/test/java/org/apache/kylin/provision/BuildCubeWithEngine.java
+++ b/kylin-it/src/test/java/org/apache/kylin/provision/BuildCubeWithEngine.java
@@ -35,8 +35,7 @@ import org.apache.commons.lang3.StringUtils;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
-import org.apache.hadoop.hbase.HBaseConfiguration;
-import org.apache.hadoop.hbase.client.HTable;
+import org.apache.hadoop.hbase.client.Connection;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.ClassUtil;
 import org.apache.kylin.common.util.HBaseMetadataTestCase;
@@ -55,6 +54,7 @@ import org.apache.kylin.job.execution.DefaultChainedExecutable;
 import org.apache.kylin.job.execution.ExecutableState;
 import org.apache.kylin.job.impl.threadpool.DefaultScheduler;
 import org.apache.kylin.job.manager.ExecutableManager;
+import org.apache.kylin.storage.hbase.HBaseConnection;
 import org.apache.kylin.storage.hbase.util.HBaseRegionSizeCalculator;
 import org.apache.kylin.storage.hbase.util.StorageCleanupJob;
 import org.apache.kylin.storage.hbase.util.ZookeeperJobLock;
@@ -419,10 +419,10 @@ public class BuildCubeWithEngine {
     }
 
     private void checkHFilesInHBase(CubeSegment segment) throws IOException {
-        Configuration conf = HBaseConfiguration.create(HadoopUtil.getCurrentConfiguration());
-        String tableName = segment.getStorageLocationIdentifier();
-        try (HTable table = new HTable(conf, tableName)) {
-            HBaseRegionSizeCalculator cal = new HBaseRegionSizeCalculator(table);
+        try (Connection conn = HBaseConnection.get(KylinConfig.getInstanceFromEnv().getStorageUrl())) {
+            String tableName = segment.getStorageLocationIdentifier();
+
+            HBaseRegionSizeCalculator cal = new HBaseRegionSizeCalculator(tableName, conn);
             Map<byte[], Long> sizeMap = cal.getRegionSizeMap();
             long totalSize = 0;
             for (Long size : sizeMap.values()) {
@@ -448,5 +448,4 @@ public class BuildCubeWithEngine {
             }
         }
     }
-
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/kylin/blob/d5dded68/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index fbb27a4..1df14f4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -46,20 +46,20 @@
         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
 
         <!-- Hadoop versions -->
-        <hadoop2.version>2.6.0</hadoop2.version>
-        <yarn.version>2.6.0</yarn.version>
+        <hadoop2.version>2.7.1</hadoop2.version>
+        <yarn.version>2.7.1</yarn.version>
 
         <!-- Hive versions -->
-        <hive.version>0.14.0</hive.version>
-        <hive-hcatalog.version>0.14.0</hive-hcatalog.version>
+        <hive.version>1.2.1</hive.version>
+        <hive-hcatalog.version>1.2.1</hive-hcatalog.version>
 
         <!-- HBase versions -->
-        <hbase-hadoop2.version>0.98.8-hadoop2</hbase-hadoop2.version>
+        <hbase-hadoop2.version>1.1.1</hbase-hadoop2.version>
         <kafka.version>0.8.1</kafka.version>
 
         <!-- Hadoop deps, keep compatible with hadoop2.version -->
         <zookeeper.version>3.4.6</zookeeper.version>
-        <curator.version>2.6.0</curator.version>
+        <curator.version>2.7.1</curator.version>
         <jackson.version>2.2.4</jackson.version>
         <jsr305.version>3.0.1</jsr305.version>
         <guava.version>14.0</guava.version>

http://git-wip-us.apache.org/repos/asf/kylin/blob/d5dded68/server-base/src/main/java/org/apache/kylin/rest/security/AclHBaseStorage.java
----------------------------------------------------------------------
diff --git a/server-base/src/main/java/org/apache/kylin/rest/security/AclHBaseStorage.java b/server-base/src/main/java/org/apache/kylin/rest/security/AclHBaseStorage.java
index 38f299e..bfb5fe4 100644
--- a/server-base/src/main/java/org/apache/kylin/rest/security/AclHBaseStorage.java
+++ b/server-base/src/main/java/org/apache/kylin/rest/security/AclHBaseStorage.java
@@ -20,7 +20,7 @@ package org.apache.kylin.rest.security;
 
 import java.io.IOException;
 
-import org.apache.hadoop.hbase.client.HTableInterface;
+import org.apache.hadoop.hbase.client.Table;
 
 /**
  */
@@ -37,6 +37,6 @@ public interface AclHBaseStorage {
 
     String prepareHBaseTable(Class<?> clazz) throws IOException;
 
-    HTableInterface getTable(String tableName) throws IOException;
+    Table getTable(String tableName) throws IOException;
 
 }

http://git-wip-us.apache.org/repos/asf/kylin/blob/d5dded68/server-base/src/main/java/org/apache/kylin/rest/security/MockAclHBaseStorage.java
----------------------------------------------------------------------
diff --git a/server-base/src/main/java/org/apache/kylin/rest/security/MockAclHBaseStorage.java b/server-base/src/main/java/org/apache/kylin/rest/security/MockAclHBaseStorage.java
index d9326f5..cc76b87 100644
--- a/server-base/src/main/java/org/apache/kylin/rest/security/MockAclHBaseStorage.java
+++ b/server-base/src/main/java/org/apache/kylin/rest/security/MockAclHBaseStorage.java
@@ -21,7 +21,7 @@ package org.apache.kylin.rest.security;
 import java.io.IOException;
 
 import org.apache.commons.lang.StringUtils;
-import org.apache.hadoop.hbase.client.HTableInterface;
+import org.apache.hadoop.hbase.client.Table;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.rest.service.AclService;
 import org.apache.kylin.rest.service.QueryService;
@@ -34,8 +34,8 @@ public class MockAclHBaseStorage implements AclHBaseStorage {
     private static final String aclTableName = "MOCK-ACL-TABLE";
     private static final String userTableName = "MOCK-USER-TABLE";
 
-    private HTableInterface mockedAclTable;
-    private HTableInterface mockedUserTable;
+    private Table mockedAclTable;
+    private Table mockedUserTable;
     private RealAclHBaseStorage realAcl;
 
     public MockAclHBaseStorage() {
@@ -65,7 +65,7 @@ public class MockAclHBaseStorage implements AclHBaseStorage {
     }
 
     @Override
-    public HTableInterface getTable(String tableName) throws IOException {
+    public Table getTable(String tableName) throws IOException {
         if (realAcl != null) {
             return realAcl.getTable(tableName);
         }

http://git-wip-us.apache.org/repos/asf/kylin/blob/d5dded68/server-base/src/main/java/org/apache/kylin/rest/security/MockHTable.java
----------------------------------------------------------------------
diff --git a/server-base/src/main/java/org/apache/kylin/rest/security/MockHTable.java b/server-base/src/main/java/org/apache/kylin/rest/security/MockHTable.java
index d0aa0ed..972eea9 100644
--- a/server-base/src/main/java/org/apache/kylin/rest/security/MockHTable.java
+++ b/server-base/src/main/java/org/apache/kylin/rest/security/MockHTable.java
@@ -51,7 +51,7 @@ import org.apache.hadoop.hbase.client.Append;
 import org.apache.hadoop.hbase.client.Delete;
 import org.apache.hadoop.hbase.client.Durability;
 import org.apache.hadoop.hbase.client.Get;
-import org.apache.hadoop.hbase.client.HTableInterface;
+import org.apache.hadoop.hbase.client.Table;
 import org.apache.hadoop.hbase.client.Increment;
 import org.apache.hadoop.hbase.client.Mutation;
 import org.apache.hadoop.hbase.client.Put;
@@ -91,7 +91,7 @@ import com.google.protobuf.ServiceException;
  *     <li>remove some methods for loading data, checking values ...</li>
  * </ul>
  */
-public class MockHTable implements HTableInterface {
+public class MockHTable implements Table {
     private final String tableName;
     private final List<String> columnFamilies = new ArrayList<>();
 
@@ -114,14 +114,6 @@ public class MockHTable implements HTableInterface {
         this.columnFamilies.add(columnFamily);
     }
 
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public byte[] getTableName() {
-        return tableName.getBytes();
-    }
-
     @Override
     public TableName getName() {
         return null;
@@ -200,8 +192,8 @@ public class MockHTable implements HTableInterface {
     }
 
     @Override
-    public Boolean[] exists(List<Get> gets) throws IOException {
-        return new Boolean[0];
+    public boolean[] existsAll(List<Get> list) throws IOException {
+        return new boolean[0];
     }
 
     /**
@@ -306,15 +298,6 @@ public class MockHTable implements HTableInterface {
      * {@inheritDoc}
      */
     @Override
-    public Result getRowOrBefore(byte[] row, byte[] family) throws IOException {
-        // FIXME: implement
-        return null;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
     public ResultScanner getScanner(Scan scan) throws IOException {
         final List<Result> ret = new ArrayList<Result>();
         byte[] st = scan.getStartRow();
@@ -446,7 +429,7 @@ public class MockHTable implements HTableInterface {
              */
         }
         if (filter.hasFilterRow() && !filteredOnRowKey) {
-            filter.filterRow(nkvs);
+            filter.filterRow();
         }
         if (filter.filterRow() || filteredOnRowKey) {
             nkvs.clear();
@@ -535,6 +518,11 @@ public class MockHTable implements HTableInterface {
         return false;
     }
 
+    @Override
+    public boolean checkAndPut(byte[] bytes, byte[] bytes1, byte[] bytes2, CompareFilter.CompareOp compareOp, byte[] bytes3, Put put) throws IOException {
+        return false;
+    }
+
     /**
      * {@inheritDoc}
      */
@@ -555,7 +543,7 @@ public class MockHTable implements HTableInterface {
                 continue;
             }
             for (KeyValue kv : delete.getFamilyMap().get(family)) {
-                if (kv.isDeleteFamily()) {
+                if (kv.isDelete()) {
                     data.get(row).get(kv.getFamily()).clear();
                 } else {
                     data.get(row).get(kv.getFamily()).remove(kv.getQualifier());
@@ -592,6 +580,11 @@ public class MockHTable implements HTableInterface {
         return false;
     }
 
+    @Override
+    public boolean checkAndDelete(byte[] bytes, byte[] bytes1, byte[] bytes2, CompareFilter.CompareOp compareOp, byte[] bytes3, Delete delete) throws IOException {
+        return false;
+    }
+
     /**
      * {@inheritDoc}
      */
@@ -605,7 +598,7 @@ public class MockHTable implements HTableInterface {
      */
     @Override
     public long incrementColumnValue(byte[] row, byte[] family, byte[] qualifier, long amount) throws IOException {
-        return incrementColumnValue(row, family, qualifier, amount, true);
+        return incrementColumnValue(row, family, qualifier, amount, null);
     }
 
     @Override
@@ -617,37 +610,6 @@ public class MockHTable implements HTableInterface {
      * {@inheritDoc}
      */
     @Override
-    public long incrementColumnValue(byte[] row, byte[] family, byte[] qualifier, long amount, boolean writeToWAL) throws IOException {
-        if (check(row, family, qualifier, null)) {
-            Put put = new Put(row);
-            put.add(family, qualifier, Bytes.toBytes(amount));
-            put(put);
-            return amount;
-        }
-        long newValue = Bytes.toLong(data.get(row).get(family).get(qualifier).lastEntry().getValue()) + amount;
-        data.get(row).get(family).get(qualifier).put(System.currentTimeMillis(), Bytes.toBytes(newValue));
-        return newValue;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public boolean isAutoFlush() {
-        return true;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void flushCommits() throws IOException {
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
     public void close() throws IOException {
     }
 
@@ -673,29 +635,6 @@ public class MockHTable implements HTableInterface {
      * {@inheritDoc}
      */
     @Override
-    public void setAutoFlush(boolean autoFlush) {
-        throw new NotImplementedException();
-
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public void setAutoFlush(boolean autoFlush, boolean clearBufferOnFail) {
-        throw new NotImplementedException();
-
-    }
-
-    @Override
-    public void setAutoFlushTo(boolean autoFlush) {
-        throw new NotImplementedException();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
     public long getWriteBufferSize() {
         throw new NotImplementedException();
     }

http://git-wip-us.apache.org/repos/asf/kylin/blob/d5dded68/server-base/src/main/java/org/apache/kylin/rest/security/RealAclHBaseStorage.java
----------------------------------------------------------------------
diff --git a/server-base/src/main/java/org/apache/kylin/rest/security/RealAclHBaseStorage.java b/server-base/src/main/java/org/apache/kylin/rest/security/RealAclHBaseStorage.java
index ab18029..d55edc3 100644
--- a/server-base/src/main/java/org/apache/kylin/rest/security/RealAclHBaseStorage.java
+++ b/server-base/src/main/java/org/apache/kylin/rest/security/RealAclHBaseStorage.java
@@ -21,7 +21,8 @@ package org.apache.kylin.rest.security;
 import java.io.IOException;
 
 import org.apache.commons.lang.StringUtils;
-import org.apache.hadoop.hbase.client.HTableInterface;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.Table;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.rest.service.AclService;
 import org.apache.kylin.rest.service.QueryService;
@@ -57,11 +58,11 @@ public class RealAclHBaseStorage implements AclHBaseStorage {
     }
 
     @Override
-    public HTableInterface getTable(String tableName) throws IOException {
+    public Table getTable(String tableName) throws IOException {
         if (StringUtils.equals(tableName, aclTableName)) {
-            return HBaseConnection.get(hbaseUrl).getTable(aclTableName);
+            return HBaseConnection.get(hbaseUrl).getTable(TableName.valueOf(aclTableName));
         } else if (StringUtils.equals(tableName, userTableName)) {
-            return HBaseConnection.get(hbaseUrl).getTable(userTableName);
+            return HBaseConnection.get(hbaseUrl).getTable(TableName.valueOf(userTableName));
         } else {
             throw new IllegalStateException("getTable failed" + tableName);
         }

http://git-wip-us.apache.org/repos/asf/kylin/blob/d5dded68/server-base/src/main/java/org/apache/kylin/rest/service/AclService.java
----------------------------------------------------------------------
diff --git a/server-base/src/main/java/org/apache/kylin/rest/service/AclService.java b/server-base/src/main/java/org/apache/kylin/rest/service/AclService.java
index d693a67..3e3efec 100644
--- a/server-base/src/main/java/org/apache/kylin/rest/service/AclService.java
+++ b/server-base/src/main/java/org/apache/kylin/rest/service/AclService.java
@@ -33,7 +33,7 @@ import javax.annotation.PostConstruct;
 import org.apache.commons.io.IOUtils;
 import org.apache.hadoop.hbase.client.Delete;
 import org.apache.hadoop.hbase.client.Get;
-import org.apache.hadoop.hbase.client.HTableInterface;
+import org.apache.hadoop.hbase.client.Table;
 import org.apache.hadoop.hbase.client.Put;
 import org.apache.hadoop.hbase.client.Result;
 import org.apache.hadoop.hbase.client.ResultScanner;
@@ -124,7 +124,7 @@ public class AclService implements MutableAclService {
     @Override
     public List<ObjectIdentity> findChildren(ObjectIdentity parentIdentity) {
         List<ObjectIdentity> oids = new ArrayList<ObjectIdentity>();
-        HTableInterface htable = null;
+        Table htable = null;
         try {
             htable = aclHBaseStorage.getTable(aclTableName);
 
@@ -173,7 +173,7 @@ public class AclService implements MutableAclService {
     @Override
     public Map<ObjectIdentity, Acl> readAclsById(List<ObjectIdentity> oids, List<Sid> sids) throws NotFoundException {
         Map<ObjectIdentity, Acl> aclMaps = new HashMap<ObjectIdentity, Acl>();
-        HTableInterface htable = null;
+        Table htable = null;
         Result result = null;
         try {
             htable = aclHBaseStorage.getTable(aclTableName);
@@ -226,17 +226,16 @@ public class AclService implements MutableAclService {
         Authentication auth = SecurityContextHolder.getContext().getAuthentication();
         PrincipalSid sid = new PrincipalSid(auth);
 
-        HTableInterface htable = null;
+        Table htable = null;
         try {
             htable = aclHBaseStorage.getTable(aclTableName);
 
             Put put = new Put(Bytes.toBytes(String.valueOf(objectIdentity.getIdentifier())));
-            put.add(Bytes.toBytes(AclHBaseStorage.ACL_INFO_FAMILY), Bytes.toBytes(ACL_INFO_FAMILY_TYPE_COLUMN), Bytes.toBytes(objectIdentity.getType()));
-            put.add(Bytes.toBytes(AclHBaseStorage.ACL_INFO_FAMILY), Bytes.toBytes(ACL_INFO_FAMILY_OWNER_COLUMN), sidSerializer.serialize(new SidInfo(sid)));
-            put.add(Bytes.toBytes(AclHBaseStorage.ACL_INFO_FAMILY), Bytes.toBytes(ACL_INFO_FAMILY_ENTRY_INHERIT_COLUMN), Bytes.toBytes(true));
+            put.addColumn(Bytes.toBytes(AclHBaseStorage.ACL_INFO_FAMILY), Bytes.toBytes(ACL_INFO_FAMILY_TYPE_COLUMN), Bytes.toBytes(objectIdentity.getType()));
+            put.addColumn(Bytes.toBytes(AclHBaseStorage.ACL_INFO_FAMILY), Bytes.toBytes(ACL_INFO_FAMILY_OWNER_COLUMN), sidSerializer.serialize(new SidInfo(sid)));
+            put.addColumn(Bytes.toBytes(AclHBaseStorage.ACL_INFO_FAMILY), Bytes.toBytes(ACL_INFO_FAMILY_ENTRY_INHERIT_COLUMN), Bytes.toBytes(true));
 
             htable.put(put);
-            htable.flushCommits();
 
             logger.debug("ACL of " + objectIdentity + " created successfully.");
         } catch (IOException e) {
@@ -250,7 +249,7 @@ public class AclService implements MutableAclService {
 
     @Override
     public void deleteAcl(ObjectIdentity objectIdentity, boolean deleteChildren) throws ChildrenExistException {
-        HTableInterface htable = null;
+        Table htable = null;
         try {
             htable = aclHBaseStorage.getTable(aclTableName);
 
@@ -266,7 +265,6 @@ public class AclService implements MutableAclService {
             }
 
             htable.delete(delete);
-            htable.flushCommits();
 
             logger.debug("ACL of " + objectIdentity + " deleted successfully.");
         } catch (IOException e) {
@@ -284,7 +282,7 @@ public class AclService implements MutableAclService {
             throw e;
         }
 
-        HTableInterface htable = null;
+        Table htable = null;
         try {
             htable = aclHBaseStorage.getTable(aclTableName);
 
@@ -295,17 +293,16 @@ public class AclService implements MutableAclService {
             Put put = new Put(Bytes.toBytes(String.valueOf(acl.getObjectIdentity().getIdentifier())));
 
             if (null != acl.getParentAcl()) {
-                put.add(Bytes.toBytes(AclHBaseStorage.ACL_INFO_FAMILY), Bytes.toBytes(ACL_INFO_FAMILY_PARENT_COLUMN), domainObjSerializer.serialize(new DomainObjectInfo(acl.getParentAcl().getObjectIdentity())));
+                put.addColumn(Bytes.toBytes(AclHBaseStorage.ACL_INFO_FAMILY), Bytes.toBytes(ACL_INFO_FAMILY_PARENT_COLUMN), domainObjSerializer.serialize(new DomainObjectInfo(acl.getParentAcl().getObjectIdentity())));
             }
 
             for (AccessControlEntry ace : acl.getEntries()) {
                 AceInfo aceInfo = new AceInfo(ace);
-                put.add(Bytes.toBytes(AclHBaseStorage.ACL_ACES_FAMILY), Bytes.toBytes(aceInfo.getSidInfo().getSid()), aceSerializer.serialize(aceInfo));
+                put.addColumn(Bytes.toBytes(AclHBaseStorage.ACL_ACES_FAMILY), Bytes.toBytes(aceInfo.getSidInfo().getSid()), aceSerializer.serialize(aceInfo));
             }
 
             if (!put.isEmpty()) {
                 htable.put(put);
-                htable.flushCommits();
 
                 logger.debug("ACL of " + acl.getObjectIdentity() + " updated successfully.");
             }

http://git-wip-us.apache.org/repos/asf/kylin/blob/d5dded68/server-base/src/main/java/org/apache/kylin/rest/service/CubeService.java
----------------------------------------------------------------------
diff --git a/server-base/src/main/java/org/apache/kylin/rest/service/CubeService.java b/server-base/src/main/java/org/apache/kylin/rest/service/CubeService.java
index e446045..c5e4c47 100644
--- a/server-base/src/main/java/org/apache/kylin/rest/service/CubeService.java
+++ b/server-base/src/main/java/org/apache/kylin/rest/service/CubeService.java
@@ -28,8 +28,7 @@ import java.util.Map;
 import java.util.Set;
 import java.util.WeakHashMap;
 
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.hbase.client.HTable;
+import org.apache.hadoop.hbase.client.Connection;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.Pair;
 import org.apache.kylin.cube.CubeInstance;
@@ -409,35 +408,24 @@ public class CubeService extends BasicService {
         if (htableInfoCache.containsKey(tableName)) {
             return htableInfoCache.get(tableName);
         }
-
-        Configuration hconf = HBaseConnection.getCurrentHBaseConfiguration();
-        HTable table = null;
+        Connection conn = HBaseConnection.get(this.getConfig().getStorageUrl());
         HBaseResponse hr = null;
         long tableSize = 0;
         int regionCount = 0;
 
-        try {
-            table = new HTable(hconf, tableName);
-
-            HBaseRegionSizeCalculator cal = new HBaseRegionSizeCalculator(table);
-            Map<byte[], Long> sizeMap = cal.getRegionSizeMap();
-
-            for (long s : sizeMap.values()) {
-                tableSize += s;
-            }
-
-            regionCount = sizeMap.size();
+        HBaseRegionSizeCalculator cal = new HBaseRegionSizeCalculator(tableName, conn);
+        Map<byte[], Long> sizeMap = cal.getRegionSizeMap();
 
-            // Set response.
-            hr = new HBaseResponse();
-            hr.setTableSize(tableSize);
-            hr.setRegionCount(regionCount);
-        } finally {
-            if (null != table) {
-                table.close();
-            }
+        for (long s : sizeMap.values()) {
+            tableSize += s;
         }
 
+        regionCount = sizeMap.size();
+
+        // Set response.
+        hr = new HBaseResponse();
+        hr.setTableSize(tableSize);
+        hr.setRegionCount(regionCount);
         htableInfoCache.put(tableName, hr);
 
         return hr;

http://git-wip-us.apache.org/repos/asf/kylin/blob/d5dded68/server-base/src/main/java/org/apache/kylin/rest/service/QueryService.java
----------------------------------------------------------------------
diff --git a/server-base/src/main/java/org/apache/kylin/rest/service/QueryService.java b/server-base/src/main/java/org/apache/kylin/rest/service/QueryService.java
index 8303cee..9c900c0 100644
--- a/server-base/src/main/java/org/apache/kylin/rest/service/QueryService.java
+++ b/server-base/src/main/java/org/apache/kylin/rest/service/QueryService.java
@@ -45,11 +45,11 @@ import javax.sql.DataSource;
 import org.apache.calcite.avatica.ColumnMetaData.Rep;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang.StringUtils;
+import org.apache.hadoop.hbase.TableName;
 import org.apache.hadoop.hbase.client.Get;
-import org.apache.hadoop.hbase.client.HConnection;
-import org.apache.hadoop.hbase.client.HTableInterface;
 import org.apache.hadoop.hbase.client.Put;
 import org.apache.hadoop.hbase.client.Result;
+import org.apache.hadoop.hbase.client.Table;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.Bytes;
 import org.apache.kylin.cube.CubeInstance;
@@ -137,14 +137,13 @@ public class QueryService extends BasicService {
         Query[] queryArray = new Query[queries.size()];
 
         byte[] bytes = querySerializer.serialize(queries.toArray(queryArray));
-        HTableInterface htable = null;
+        Table htable = null;
         try {
-            htable = HBaseConnection.get(hbaseUrl).getTable(userTableName);
+            htable = HBaseConnection.get(hbaseUrl).getTable(TableName.valueOf(userTableName));
             Put put = new Put(Bytes.toBytes(creator));
-            put.add(Bytes.toBytes(USER_QUERY_FAMILY), Bytes.toBytes(USER_QUERY_COLUMN), bytes);
+            put.addColumn(Bytes.toBytes(USER_QUERY_FAMILY), Bytes.toBytes(USER_QUERY_COLUMN), bytes);
 
             htable.put(put);
-            htable.flushCommits();
         } finally {
             IOUtils.closeQuietly(htable);
         }
@@ -170,14 +169,13 @@ public class QueryService extends BasicService {
 
         Query[] queryArray = new Query[queries.size()];
         byte[] bytes = querySerializer.serialize(queries.toArray(queryArray));
-        HTableInterface htable = null;
+        Table htable = null;
         try {
-            htable = HBaseConnection.get(hbaseUrl).getTable(userTableName);
+            htable = HBaseConnection.get(hbaseUrl).getTable(TableName.valueOf(userTableName));
             Put put = new Put(Bytes.toBytes(creator));
-            put.add(Bytes.toBytes(USER_QUERY_FAMILY), Bytes.toBytes(USER_QUERY_COLUMN), bytes);
+            put.addColumn(Bytes.toBytes(USER_QUERY_FAMILY), Bytes.toBytes(USER_QUERY_COLUMN), bytes);
 
             htable.put(put);
-            htable.flushCommits();
         } finally {
             IOUtils.closeQuietly(htable);
         }
@@ -189,12 +187,12 @@ public class QueryService extends BasicService {
         }
 
         List<Query> queries = new ArrayList<Query>();
-        HTableInterface htable = null;
+        Table htable = null;
         try {
-            HConnection conn = HBaseConnection.get(hbaseUrl);
+            org.apache.hadoop.hbase.client.Connection conn = HBaseConnection.get(hbaseUrl);
             HBaseConnection.createHTableIfNeeded(conn, userTableName, USER_QUERY_FAMILY);
 
-            htable = conn.getTable(userTableName);
+            htable = HBaseConnection.get(hbaseUrl).getTable(TableName.valueOf(userTableName));
             Get get = new Get(Bytes.toBytes(creator));
             get.addFamily(Bytes.toBytes(USER_QUERY_FAMILY));
             Result result = htable.get(get);

http://git-wip-us.apache.org/repos/asf/kylin/blob/d5dded68/server-base/src/main/java/org/apache/kylin/rest/service/UserService.java
----------------------------------------------------------------------
diff --git a/server-base/src/main/java/org/apache/kylin/rest/service/UserService.java b/server-base/src/main/java/org/apache/kylin/rest/service/UserService.java
index 07c7c6f..ab54882 100644
--- a/server-base/src/main/java/org/apache/kylin/rest/service/UserService.java
+++ b/server-base/src/main/java/org/apache/kylin/rest/service/UserService.java
@@ -30,11 +30,11 @@ import javax.annotation.PostConstruct;
 import org.apache.commons.io.IOUtils;
 import org.apache.hadoop.hbase.client.Delete;
 import org.apache.hadoop.hbase.client.Get;
-import org.apache.hadoop.hbase.client.HTableInterface;
 import org.apache.hadoop.hbase.client.Put;
 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.Table;
 import org.apache.kylin.common.util.Bytes;
 import org.apache.kylin.common.util.Pair;
 import org.apache.kylin.rest.security.AclHBaseStorage;
@@ -72,7 +72,7 @@ public class UserService implements UserDetailsManager {
 
     @Override
     public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
-        HTableInterface htable = null;
+        Table htable = null;
         try {
             htable = aclHBaseStorage.getTable(userTableName);
 
@@ -144,16 +144,16 @@ public class UserService implements UserDetailsManager {
 
     @Override
     public void updateUser(UserDetails user) {
-        HTableInterface htable = null;
+        Table htable = null;
         try {
             htable = aclHBaseStorage.getTable(userTableName);
 
             Pair<byte[], byte[]> pair = userToHBaseRow(user);
             Put put = new Put(pair.getKey());
-            put.add(Bytes.toBytes(AclHBaseStorage.USER_AUTHORITY_FAMILY), Bytes.toBytes(AclHBaseStorage.USER_AUTHORITY_COLUMN), pair.getSecond());
+
+            put.addColumn(Bytes.toBytes(AclHBaseStorage.USER_AUTHORITY_FAMILY), Bytes.toBytes(AclHBaseStorage.USER_AUTHORITY_COLUMN), pair.getSecond());
 
             htable.put(put);
-            htable.flushCommits();
         } catch (IOException e) {
             throw new RuntimeException(e.getMessage(), e);
         } finally {
@@ -163,14 +163,13 @@ public class UserService implements UserDetailsManager {
 
     @Override
     public void deleteUser(String username) {
-        HTableInterface htable = null;
+        Table htable = null;
         try {
             htable = aclHBaseStorage.getTable(userTableName);
 
             Delete delete = new Delete(Bytes.toBytes(username));
 
             htable.delete(delete);
-            htable.flushCommits();
         } catch (IOException e) {
             throw new RuntimeException(e.getMessage(), e);
         } finally {
@@ -185,7 +184,7 @@ public class UserService implements UserDetailsManager {
 
     @Override
     public boolean userExists(String username) {
-        HTableInterface htable = null;
+        Table htable = null;
         try {
             htable = aclHBaseStorage.getTable(userTableName);
 
@@ -216,7 +215,7 @@ public class UserService implements UserDetailsManager {
         s.addColumn(Bytes.toBytes(AclHBaseStorage.USER_AUTHORITY_FAMILY), Bytes.toBytes(AclHBaseStorage.USER_AUTHORITY_COLUMN));
 
         List<UserDetails> all = new ArrayList<UserDetails>();
-        HTableInterface htable = null;
+        Table htable = null;
         ResultScanner scanner = null;
         try {
             htable = aclHBaseStorage.getTable(userTableName);

http://git-wip-us.apache.org/repos/asf/kylin/blob/d5dded68/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/HBaseConnection.java
----------------------------------------------------------------------
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/HBaseConnection.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/HBaseConnection.java
index cbf81b6..b769391 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/HBaseConnection.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/HBaseConnection.java
@@ -40,9 +40,9 @@ import org.apache.hadoop.hbase.HColumnDescriptor;
 import org.apache.hadoop.hbase.HConstants;
 import org.apache.hadoop.hbase.HTableDescriptor;
 import org.apache.hadoop.hbase.TableName;
-import org.apache.hadoop.hbase.client.HBaseAdmin;
-import org.apache.hadoop.hbase.client.HConnection;
-import org.apache.hadoop.hbase.client.HConnectionManager;
+import org.apache.hadoop.hbase.client.Admin;
+import org.apache.hadoop.hbase.client.Connection;
+import org.apache.hadoop.hbase.client.ConnectionFactory;
 import org.apache.hadoop.hbase.util.Threads;
 import org.apache.hadoop.hdfs.DFSConfigKeys;
 import org.apache.kylin.common.KylinConfig;
@@ -64,7 +64,7 @@ public class HBaseConnection {
     private static final Logger logger = LoggerFactory.getLogger(HBaseConnection.class);
 
     private static final Map<String, Configuration> configCache = new ConcurrentHashMap<String, Configuration>();
-    private static final Map<String, HConnection> connPool = new ConcurrentHashMap<String, HConnection>();
+    private static final Map<String, Connection> connPool = new ConcurrentHashMap<String, Connection>();
     private static final ThreadLocal<Configuration> configThreadLocal = new ThreadLocal<>();
 
     private static ExecutorService coprocessorPool = null;
@@ -75,7 +75,7 @@ public class HBaseConnection {
             public void run() {
                 closeCoprocessorPool();
 
-                for (HConnection conn : connPool.values()) {
+                for (Connection conn : connPool.values()) {
                     try {
                         conn.close();
                     } catch (IOException e) {
@@ -144,7 +144,7 @@ public class HBaseConnection {
         // using a hbase:xxx URL is deprecated, instead hbase config is always loaded from hbase-site.xml in classpath
         if (!(StringUtils.isEmpty(url) || "hbase".equals(url)))
             throw new IllegalArgumentException("to use hbase storage, pls set 'kylin.storage.url=hbase' in kylin.properties");
-        
+
         Configuration conf = HBaseConfiguration.create(HadoopUtil.getCurrentConfiguration());
         addHBaseClusterNNHAConfiguration(conf);
 
@@ -213,9 +213,9 @@ public class HBaseConnection {
 
     // ============================================================================
 
-    // returned HConnection can be shared by multiple threads and does not require close()
+    // returned Connection can be shared by multiple threads and does not require close()
     @SuppressWarnings("resource")
-    public static HConnection get(String url) {
+    public static Connection get(String url) {
         // find configuration
         Configuration conf = configCache.get(url);
         if (conf == null) {
@@ -223,13 +223,13 @@ public class HBaseConnection {
             configCache.put(url, conf);
         }
 
-        HConnection connection = connPool.get(url);
+        Connection connection = connPool.get(url);
         try {
             while (true) {
                 // I don't use DCL since recreate a connection is not a big issue.
                 if (connection == null || connection.isClosed()) {
                     logger.info("connection is null or closed, creating a new one");
-                    connection = HConnectionManager.createConnection(conf);
+                    connection = ConnectionFactory.createConnection(conf);
                     connPool.put(url, connection);
                 }
 
@@ -248,8 +248,8 @@ public class HBaseConnection {
         return connection;
     }
 
-    public static boolean tableExists(HConnection conn, String tableName) throws IOException {
-        HBaseAdmin hbase = new HBaseAdmin(conn);
+    public static boolean tableExists(Connection conn, String tableName) throws IOException {
+        Admin hbase = conn.getAdmin();
         try {
             return hbase.tableExists(TableName.valueOf(tableName));
         } finally {
@@ -269,18 +269,18 @@ public class HBaseConnection {
         deleteTable(HBaseConnection.get(hbaseUrl), tableName);
     }
 
-    public static void createHTableIfNeeded(HConnection conn, String table, String... families) throws IOException {
-        HBaseAdmin hbase = new HBaseAdmin(conn);
-
+    public static void createHTableIfNeeded(Connection conn, String table, String... families) throws IOException {
+        Admin hbase = conn.getAdmin();
+        TableName tableName = TableName.valueOf(table);
         try {
             if (tableExists(conn, table)) {
                 logger.debug("HTable '" + table + "' already exists");
-                Set<String> existingFamilies = getFamilyNames(hbase.getTableDescriptor(TableName.valueOf(table)));
+                Set<String> existingFamilies = getFamilyNames(hbase.getTableDescriptor(tableName));
                 boolean wait = false;
                 for (String family : families) {
                     if (existingFamilies.contains(family) == false) {
                         logger.debug("Adding family '" + family + "' to HTable '" + table + "'");
-                        hbase.addColumn(table, newFamilyDescriptor(family));
+                        hbase.addColumn(tableName, newFamilyDescriptor(family));
                         // addColumn() is async, is there a way to wait it finish?
                         wait = true;
                     }
@@ -333,8 +333,8 @@ public class HBaseConnection {
         return fd;
     }
 
-    public static void deleteTable(HConnection conn, String tableName) throws IOException {
-        HBaseAdmin hbase = new HBaseAdmin(conn);
+    public static void deleteTable(Connection conn, String tableName) throws IOException {
+        Admin hbase = conn.getAdmin();
 
         try {
             if (!tableExists(conn, tableName)) {
@@ -344,10 +344,10 @@ public class HBaseConnection {
 
             logger.debug("delete HTable '" + tableName + "'");
 
-            if (hbase.isTableEnabled(tableName)) {
-                hbase.disableTable(tableName);
+            if (hbase.isTableEnabled(TableName.valueOf(tableName))) {
+                hbase.disableTable(TableName.valueOf(tableName));
             }
-            hbase.deleteTable(tableName);
+            hbase.deleteTable(TableName.valueOf(tableName));
 
             logger.debug("HTable '" + tableName + "' deleted");
         } finally {

http://git-wip-us.apache.org/repos/asf/kylin/blob/d5dded68/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/HBaseResourceStore.java
----------------------------------------------------------------------
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/HBaseResourceStore.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/HBaseResourceStore.java
index e2f3661..0af9274 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/HBaseResourceStore.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/HBaseResourceStore.java
@@ -31,14 +31,15 @@ import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FSDataOutputStream;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.Connection;
 import org.apache.hadoop.hbase.client.Delete;
 import org.apache.hadoop.hbase.client.Get;
-import org.apache.hadoop.hbase.client.HConnection;
-import org.apache.hadoop.hbase.client.HTableInterface;
 import org.apache.hadoop.hbase.client.Put;
 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.Table;
 import org.apache.hadoop.hbase.filter.CompareFilter;
 import org.apache.hadoop.hbase.filter.Filter;
 import org.apache.hadoop.hbase.filter.FilterList;
@@ -69,7 +70,7 @@ public class HBaseResourceStore extends ResourceStore {
     final String tableNameBase;
     final String hbaseUrl;
 
-    private HConnection getConnection() throws IOException {
+    Connection getConnection() throws IOException {
         return HBaseConnection.get(hbaseUrl);
     }
 
@@ -120,7 +121,7 @@ public class HBaseResourceStore extends ResourceStore {
         byte[] endRow = Bytes.toBytes(lookForPrefix);
         endRow[endRow.length - 1]++;
 
-        HTableInterface table = getConnection().getTable(getAllInOneTableName());
+        Table table = getConnection().getTable(TableName.valueOf(getAllInOneTableName()));
         Scan scan = new Scan(startRow, endRow);
         if ((filter != null && filter instanceof KeyOnlyFilter) == false) {
             scan.addColumn(B_FAMILY, B_COLUMN_TS);
@@ -238,13 +239,12 @@ public class HBaseResourceStore extends ResourceStore {
         IOUtils.copy(content, bout);
         bout.close();
 
-        HTableInterface table = getConnection().getTable(getAllInOneTableName());
+        Table table = getConnection().getTable(TableName.valueOf(getAllInOneTableName()));
         try {
             byte[] row = Bytes.toBytes(resPath);
             Put put = buildPut(resPath, ts, row, bout.toByteArray(), table);
 
             table.put(put);
-            table.flushCommits();
         } finally {
             IOUtils.closeQuietly(table);
         }
@@ -252,7 +252,7 @@ public class HBaseResourceStore extends ResourceStore {
 
     @Override
     protected long checkAndPutResourceImpl(String resPath, byte[] content, long oldTS, long newTS) throws IOException, IllegalStateException {
-        HTableInterface table = getConnection().getTable(getAllInOneTableName());
+        Table table = getConnection().getTable(TableName.valueOf(getAllInOneTableName()));
         try {
             byte[] row = Bytes.toBytes(resPath);
             byte[] bOldTS = oldTS == 0 ? null : Bytes.toBytes(oldTS);
@@ -265,8 +265,6 @@ public class HBaseResourceStore extends ResourceStore {
                 throw new IllegalStateException("Overwriting conflict " + resPath + ", expect old TS " + oldTS + ", but it is " + real);
             }
 
-            table.flushCommits();
-
             return newTS;
         } finally {
             IOUtils.closeQuietly(table);
@@ -275,7 +273,7 @@ public class HBaseResourceStore extends ResourceStore {
 
     @Override
     protected void deleteResourceImpl(String resPath) throws IOException {
-        HTableInterface table = getConnection().getTable(getAllInOneTableName());
+        Table table = getConnection().getTable(TableName.valueOf(getAllInOneTableName()));
         try {
             boolean hdfsResourceExist = false;
             Result result = internalGetFromHTable(table, resPath, true, false);
@@ -288,7 +286,6 @@ public class HBaseResourceStore extends ResourceStore {
 
             Delete del = new Delete(Bytes.toBytes(resPath));
             table.delete(del);
-            table.flushCommits();
 
             if (hdfsResourceExist) { // remove hdfs cell value
                 Path redirectPath = bigCellHDFSPath(resPath);
@@ -310,7 +307,7 @@ public class HBaseResourceStore extends ResourceStore {
     }
 
     private Result getFromHTable(String path, boolean fetchContent, boolean fetchTimestamp) throws IOException {
-        HTableInterface table = getConnection().getTable(getAllInOneTableName());
+        Table table = getConnection().getTable(TableName.valueOf(getAllInOneTableName()));
         try {
             return internalGetFromHTable(table, path, fetchContent, fetchTimestamp);
         } finally {
@@ -318,7 +315,7 @@ public class HBaseResourceStore extends ResourceStore {
         }
     }
 
-    private Result internalGetFromHTable(HTableInterface table, String path, boolean fetchContent, boolean fetchTimestamp) throws IOException {
+    private Result internalGetFromHTable(Table table, String path, boolean fetchContent, boolean fetchTimestamp) throws IOException {
         byte[] rowkey = Bytes.toBytes(path);
 
         Get get = new Get(rowkey);
@@ -337,7 +334,7 @@ public class HBaseResourceStore extends ResourceStore {
         return exists ? result : null;
     }
 
-    private Path writeLargeCellToHdfs(String resPath, byte[] largeColumn, HTableInterface table) throws IOException {
+    private Path writeLargeCellToHdfs(String resPath, byte[] largeColumn, Table table) throws IOException {
         Path redirectPath = bigCellHDFSPath(resPath);
         Configuration hconf = HBaseConnection.getCurrentHBaseConfiguration();
         FileSystem fileSystem = FileSystem.get(hconf);
@@ -363,7 +360,7 @@ public class HBaseResourceStore extends ResourceStore {
         return redirectPath;
     }
 
-    private Put buildPut(String resPath, long ts, byte[] row, byte[] content, HTableInterface table) throws IOException {
+    private Put buildPut(String resPath, long ts, byte[] row, byte[] content, Table table) throws IOException {
         int kvSizeLimit = this.kylinConfig.getHBaseKeyValueSize();
         if (content.length > kvSizeLimit) {
             writeLargeCellToHdfs(resPath, content, table);
@@ -371,8 +368,8 @@ public class HBaseResourceStore extends ResourceStore {
         }
 
         Put put = new Put(row);
-        put.add(B_FAMILY, B_COLUMN, content);
-        put.add(B_FAMILY, B_COLUMN_TS, Bytes.toBytes(ts));
+        put.addColumn(B_FAMILY, B_COLUMN, content);
+        put.addColumn(B_FAMILY, B_COLUMN_TS, Bytes.toBytes(ts));
 
         return put;
     }

http://git-wip-us.apache.org/repos/asf/kylin/blob/d5dded68/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/HBaseStorage.java
----------------------------------------------------------------------
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/HBaseStorage.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/HBaseStorage.java
index f4dfd2b..3d82105 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/HBaseStorage.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/HBaseStorage.java
@@ -18,7 +18,6 @@
 
 package org.apache.kylin.storage.hbase;
 
-import com.google.common.base.Preconditions;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.debug.BackdoorToggles;
 import org.apache.kylin.cube.CubeInstance;
@@ -36,6 +35,8 @@ import org.apache.kylin.storage.IStorageQuery;
 import org.apache.kylin.storage.hbase.steps.HBaseMROutput;
 import org.apache.kylin.storage.hbase.steps.HBaseMROutput2Transition;
 
+import com.google.common.base.Preconditions;
+
 @SuppressWarnings("unused")
 //used by reflection
 public class HBaseStorage implements IStorage {

http://git-wip-us.apache.org/repos/asf/kylin/blob/d5dded68/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/SimpleHBaseStore.java
----------------------------------------------------------------------
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/SimpleHBaseStore.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/SimpleHBaseStore.java
index b141190..f63d9c2 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/SimpleHBaseStore.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/SimpleHBaseStore.java
@@ -26,12 +26,13 @@ import java.util.NoSuchElementException;
 import org.apache.hadoop.hbase.Cell;
 import org.apache.hadoop.hbase.HConstants;
 import org.apache.hadoop.hbase.TableName;
-import org.apache.hadoop.hbase.client.HConnection;
-import org.apache.hadoop.hbase.client.HTableInterface;
+import org.apache.hadoop.hbase.client.BufferedMutator;
+import org.apache.hadoop.hbase.client.Connection;
 import org.apache.hadoop.hbase.client.Put;
 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.Table;
 import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.cube.kv.RowConstants;
@@ -86,14 +87,13 @@ public class SimpleHBaseStore implements IGTStore {
     }
 
     private class Writer implements IGTWriter {
-        final HTableInterface table;
+        final BufferedMutator table;
         final ByteBuffer rowkey = ByteBuffer.allocate(50);
         final ByteBuffer value = ByteBuffer.allocate(50);
 
         Writer() throws IOException {
-            HConnection conn = HBaseConnection.get(KylinConfig.getInstanceFromEnv().getStorageUrl());
-            table = conn.getTable(htableName);
-            table.setAutoFlush(false, true);
+            Connection conn = HBaseConnection.get(KylinConfig.getInstanceFromEnv().getStorageUrl());
+            table = conn.getBufferedMutator(htableName);
         }
 
         @Override
@@ -113,24 +113,24 @@ public class SimpleHBaseStore implements IGTStore {
 
             Put put = new Put(rowkey);
             put.addImmutable(CF_B, ByteBuffer.wrap(COL_B), HConstants.LATEST_TIMESTAMP, value);
-            table.put(put);
+            table.mutate(put);
         }
 
         @Override
         public void close() throws IOException {
-            table.flushCommits();
+            table.flush();
             table.close();
         }
     }
 
     class Reader implements IGTScanner {
-        final HTableInterface table;
+        final Table table;
         final ResultScanner scanner;
 
         int count = 0;
 
         Reader() throws IOException {
-            HConnection conn = HBaseConnection.get(KylinConfig.getInstanceFromEnv().getStorageUrl());
+            Connection conn = HBaseConnection.get(KylinConfig.getInstanceFromEnv().getStorageUrl());
             table = conn.getTable(htableName);
 
             Scan scan = new Scan();

http://git-wip-us.apache.org/repos/asf/kylin/blob/d5dded68/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v1/CubeSegmentTupleIterator.java
----------------------------------------------------------------------
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v1/CubeSegmentTupleIterator.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v1/CubeSegmentTupleIterator.java
index 8ac3832..982a044 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v1/CubeSegmentTupleIterator.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v1/CubeSegmentTupleIterator.java
@@ -25,11 +25,12 @@ import java.util.List;
 import java.util.NoSuchElementException;
 import java.util.Set;
 
-import org.apache.hadoop.hbase.client.HConnection;
-import org.apache.hadoop.hbase.client.HTableInterface;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.Connection;
 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.Table;
 import org.apache.hadoop.hbase.client.metrics.ScanMetrics;
 import org.apache.hadoop.hbase.filter.Filter;
 import org.apache.hadoop.hbase.filter.FuzzyRowFilter;
@@ -70,7 +71,7 @@ public class CubeSegmentTupleIterator implements ITupleIterator {
     protected final List<RowValueDecoder> rowValueDecoders;
     private final StorageContext context;
     private final String tableName;
-    private final HTableInterface table;
+    private final Table table;
 
     protected CubeTupleConverter tupleConverter;
     protected final Iterator<HBaseKeyRange> rangeIterator;
@@ -88,7 +89,7 @@ public class CubeSegmentTupleIterator implements ITupleIterator {
     private int advMeasureRowsRemaining;
     private int advMeasureRowIndex;
 
-    public CubeSegmentTupleIterator(CubeSegment cubeSeg, List<HBaseKeyRange> keyRanges, HConnection conn, //
+    public CubeSegmentTupleIterator(CubeSegment cubeSeg, List<HBaseKeyRange> keyRanges, Connection conn, //
             Set<TblColRef> dimensions, TupleFilter filter, Set<TblColRef> groupBy, //
             List<RowValueDecoder> rowValueDecoders, StorageContext context, TupleInfo returnTupleInfo) {
         this.cubeSeg = cubeSeg;
@@ -108,7 +109,7 @@ public class CubeSegmentTupleIterator implements ITupleIterator {
         this.rangeIterator = keyRanges.iterator();
 
         try {
-            this.table = conn.getTable(tableName);
+            this.table = conn.getTable(TableName.valueOf(tableName));
         } catch (Throwable t) {
             throw new StorageException("Error when open connection to table " + tableName, t);
         }

http://git-wip-us.apache.org/repos/asf/kylin/blob/d5dded68/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v1/CubeStorageQuery.java
----------------------------------------------------------------------
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v1/CubeStorageQuery.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v1/CubeStorageQuery.java
index ff729f4..1944327 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v1/CubeStorageQuery.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v1/CubeStorageQuery.java
@@ -33,7 +33,7 @@ import java.util.Map;
 import java.util.Set;
 import java.util.TreeSet;
 
-import org.apache.hadoop.hbase.client.HConnection;
+import org.apache.hadoop.hbase.client.Connection;
 import org.apache.kylin.common.util.Bytes;
 import org.apache.kylin.common.util.BytesUtil;
 import org.apache.kylin.common.util.Dictionary;
@@ -46,10 +46,10 @@ import org.apache.kylin.cube.RawQueryLastHacker;
 import org.apache.kylin.cube.cuboid.Cuboid;
 import org.apache.kylin.cube.kv.RowConstants;
 import org.apache.kylin.cube.model.CubeDesc;
+import org.apache.kylin.cube.model.CubeDesc.DeriveInfo;
 import org.apache.kylin.cube.model.HBaseColumnDesc;
 import org.apache.kylin.cube.model.HBaseMappingDesc;
 import org.apache.kylin.cube.model.RowKeyDesc;
-import org.apache.kylin.cube.model.CubeDesc.DeriveInfo;
 import org.apache.kylin.dict.lookup.LookupStringTable;
 import org.apache.kylin.measure.MeasureType;
 import org.apache.kylin.metadata.filter.ColumnTupleFilter;
@@ -152,7 +152,7 @@ public class CubeStorageQuery implements IStorageQuery {
         setCoprocessor(groupsCopD, valueDecoders, context); // enable coprocessor if beneficial
         setLimit(filter, context);
 
-        HConnection conn = HBaseConnection.get(context.getConnUrl());
+        Connection conn = HBaseConnection.get(context.getConnUrl());
 
         // notice we're passing filterD down to storage instead of flatFilter
         return new SerializedHBaseTupleIterator(conn, scans, cubeInstance, dimensionsD, filterD, groupsCopD, valueDecoders, context, returnTupleInfo);

http://git-wip-us.apache.org/repos/asf/kylin/blob/d5dded68/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v1/RegionScannerAdapter.java
----------------------------------------------------------------------
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v1/RegionScannerAdapter.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v1/RegionScannerAdapter.java
index 6342c5c..0ade920 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v1/RegionScannerAdapter.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v1/RegionScannerAdapter.java
@@ -26,6 +26,7 @@ import org.apache.hadoop.hbase.HRegionInfo;
 import org.apache.hadoop.hbase.client.Result;
 import org.apache.hadoop.hbase.client.ResultScanner;
 import org.apache.hadoop.hbase.regionserver.RegionScanner;
+import org.apache.hadoop.hbase.regionserver.ScannerContext;
 
 /**
  * @author yangli9
@@ -50,7 +51,7 @@ public class RegionScannerAdapter implements RegionScanner {
     }
 
     @Override
-    public boolean next(List<Cell> result, int limit) throws IOException {
+    public boolean next(List<Cell> result, ScannerContext scannerContext) throws IOException {
         return next(result);
     }
 
@@ -60,7 +61,7 @@ public class RegionScannerAdapter implements RegionScanner {
     }
 
     @Override
-    public boolean nextRaw(List<Cell> result, int limit) throws IOException {
+    public boolean nextRaw(List<Cell> result, ScannerContext scannerContext) throws IOException {
         return next(result);
     }
 
@@ -94,4 +95,9 @@ public class RegionScannerAdapter implements RegionScanner {
         return Long.MAX_VALUE;
     }
 
+    @Override
+    public int getBatch() {
+        return -1;
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/kylin/blob/d5dded68/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v1/SerializedHBaseTupleIterator.java
----------------------------------------------------------------------
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v1/SerializedHBaseTupleIterator.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v1/SerializedHBaseTupleIterator.java
index e8dd5b9..d033c77 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v1/SerializedHBaseTupleIterator.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v1/SerializedHBaseTupleIterator.java
@@ -25,7 +25,7 @@ import java.util.Map;
 import java.util.NoSuchElementException;
 import java.util.Set;
 
-import org.apache.hadoop.hbase.client.HConnection;
+import org.apache.hadoop.hbase.client.Connection;
 import org.apache.kylin.cube.CubeInstance;
 import org.apache.kylin.cube.CubeSegment;
 import org.apache.kylin.metadata.filter.TupleFilter;
@@ -57,7 +57,7 @@ public class SerializedHBaseTupleIterator implements ITupleIterator {
     private int scanCount;
     private ITuple next;
 
-    public SerializedHBaseTupleIterator(HConnection conn, List<HBaseKeyRange> segmentKeyRanges, CubeInstance cube, //
+    public SerializedHBaseTupleIterator(Connection conn, List<HBaseKeyRange> segmentKeyRanges, CubeInstance cube, //
             Set<TblColRef> dimensions, TupleFilter filter, Set<TblColRef> groupBy, List<RowValueDecoder> rowValueDecoders, //
             StorageContext context, TupleInfo returnTupleInfo) {
 

http://git-wip-us.apache.org/repos/asf/kylin/blob/d5dded68/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v1/coprocessor/observer/AggregateRegionObserver.java
----------------------------------------------------------------------
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v1/coprocessor/observer/AggregateRegionObserver.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v1/coprocessor/observer/AggregateRegionObserver.java
index 7139ca7..7e25e4c 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v1/coprocessor/observer/AggregateRegionObserver.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v1/coprocessor/observer/AggregateRegionObserver.java
@@ -26,7 +26,7 @@ import org.apache.hadoop.hbase.client.Scan;
 import org.apache.hadoop.hbase.coprocessor.BaseRegionObserver;
 import org.apache.hadoop.hbase.coprocessor.ObserverContext;
 import org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment;
-import org.apache.hadoop.hbase.regionserver.HRegion;
+import org.apache.hadoop.hbase.regionserver.Region;
 import org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost;
 import org.apache.hadoop.hbase.regionserver.RegionScanner;
 import org.apache.kylin.gridtable.StorageSideBehavior;
@@ -99,7 +99,7 @@ public class AggregateRegionObserver extends BaseRegionObserver {
         // start/end region operation & sync on scanner is suggested by the
         // javadoc of RegionScanner.nextRaw()
         // FIXME: will the lock still work when a iterator is returned? is it safe? Is readonly attribute helping here? by mhb
-        HRegion region = ctxt.getEnvironment().getRegion();
+        Region region = ctxt.getEnvironment().getRegion();
         region.startRegionOperation();
         try {
             synchronized (innerScanner) {

http://git-wip-us.apache.org/repos/asf/kylin/blob/d5dded68/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v1/coprocessor/observer/AggregationScanner.java
----------------------------------------------------------------------
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v1/coprocessor/observer/AggregationScanner.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v1/coprocessor/observer/AggregationScanner.java
index a900ea1..d64f48f 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v1/coprocessor/observer/AggregationScanner.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v1/coprocessor/observer/AggregationScanner.java
@@ -25,6 +25,7 @@ import java.util.List;
 import org.apache.hadoop.hbase.Cell;
 import org.apache.hadoop.hbase.HRegionInfo;
 import org.apache.hadoop.hbase.regionserver.RegionScanner;
+import org.apache.hadoop.hbase.regionserver.ScannerContext;
 import org.apache.kylin.gridtable.StorageSideBehavior;
 import org.apache.kylin.measure.MeasureAggregator;
 import org.apache.kylin.storage.hbase.common.coprocessor.AggrKey;
@@ -116,8 +117,8 @@ public class AggregationScanner implements RegionScanner {
     }
 
     @Override
-    public boolean next(List<Cell> result, int limit) throws IOException {
-        return outerScanner.next(result, limit);
+    public boolean next(List<Cell> result, ScannerContext scannerContext) throws IOException {
+        return outerScanner.next(result, scannerContext);
     }
 
     @Override
@@ -126,8 +127,8 @@ public class AggregationScanner implements RegionScanner {
     }
 
     @Override
-    public boolean nextRaw(List<Cell> result, int limit) throws IOException {
-        return outerScanner.nextRaw(result, limit);
+    public boolean nextRaw(List<Cell> result, ScannerContext scannerContext) throws IOException {
+        return outerScanner.nextRaw(result, scannerContext);
     }
 
     @Override
@@ -160,6 +161,11 @@ public class AggregationScanner implements RegionScanner {
         return outerScanner.getMvccReadPoint();
     }
 
+    @Override
+    public int getBatch() {
+        return outerScanner.getBatch();
+    }
+
     private static class Stats {
         long inputRows = 0;
         long inputBytes = 0;

http://git-wip-us.apache.org/repos/asf/kylin/blob/d5dded68/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v1/coprocessor/observer/ObserverAggregationCache.java
----------------------------------------------------------------------
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v1/coprocessor/observer/ObserverAggregationCache.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v1/coprocessor/observer/ObserverAggregationCache.java
index 8404262..331e34d 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v1/coprocessor/observer/ObserverAggregationCache.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v1/coprocessor/observer/ObserverAggregationCache.java
@@ -30,6 +30,7 @@ import org.apache.hadoop.hbase.HRegionInfo;
 import org.apache.hadoop.hbase.KeyValue;
 import org.apache.hadoop.hbase.KeyValue.Type;
 import org.apache.hadoop.hbase.regionserver.RegionScanner;
+import org.apache.hadoop.hbase.regionserver.ScannerContext;
 import org.apache.kylin.measure.MeasureAggregator;
 import org.apache.kylin.storage.hbase.common.coprocessor.AggrKey;
 import org.apache.kylin.storage.hbase.common.coprocessor.AggregationCache;
@@ -112,7 +113,7 @@ public class ObserverAggregationCache extends AggregationCache {
         }
 
         @Override
-        public boolean next(List<Cell> result, int limit) throws IOException {
+        public boolean next(List<Cell> result, ScannerContext scannerContext) throws IOException {
             return next(result);
         }
 
@@ -122,7 +123,7 @@ public class ObserverAggregationCache extends AggregationCache {
         }
 
         @Override
-        public boolean nextRaw(List<Cell> result, int limit) throws IOException {
+        public boolean nextRaw(List<Cell> result, ScannerContext scannerContext) throws IOException {
             return next(result);
         }
 
@@ -161,6 +162,11 @@ public class ObserverAggregationCache extends AggregationCache {
             // AggregateRegionObserver.LOG.info("Kylin Scanner getMvccReadPoint()");
             return Long.MAX_VALUE;
         }
+
+        @Override
+        public int getBatch() {
+            return innerScanner.getBatch();
+        }
     }
 
 }

http://git-wip-us.apache.org/repos/asf/kylin/blob/d5dded68/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v1/coprocessor/observer/ObserverEnabler.java
----------------------------------------------------------------------
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v1/coprocessor/observer/ObserverEnabler.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v1/coprocessor/observer/ObserverEnabler.java
index 394b3e2..9fd33f5 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v1/coprocessor/observer/ObserverEnabler.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v1/coprocessor/observer/ObserverEnabler.java
@@ -23,9 +23,9 @@ import java.util.Collection;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.hadoop.hbase.client.HTableInterface;
 import org.apache.hadoop.hbase.client.ResultScanner;
 import org.apache.hadoop.hbase.client.Scan;
+import org.apache.hadoop.hbase.client.Table;
 import org.apache.hadoop.hbase.regionserver.RegionScanner;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.debug.BackdoorToggles;
@@ -60,7 +60,7 @@ public class ObserverEnabler {
     static final Map<String, Boolean> CUBE_OVERRIDES = Maps.newConcurrentMap();
 
     public static ResultScanner scanWithCoprocessorIfBeneficial(CubeSegment segment, Cuboid cuboid, TupleFilter tupleFiler, //
-            Collection<TblColRef> groupBy, Collection<RowValueDecoder> rowValueDecoders, StorageContext context, HTableInterface table, Scan scan) throws IOException {
+            Collection<TblColRef> groupBy, Collection<RowValueDecoder> rowValueDecoders, StorageContext context, Table table, Scan scan) throws IOException {
 
         if (context.isCoprocessorEnabled() == false) {
             return table.getScanner(scan);

http://git-wip-us.apache.org/repos/asf/kylin/blob/d5dded68/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v2/CubeHBaseEndpointRPC.java
----------------------------------------------------------------------
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v2/CubeHBaseEndpointRPC.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v2/CubeHBaseEndpointRPC.java
index c7de287..254541c 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v2/CubeHBaseEndpointRPC.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v2/CubeHBaseEndpointRPC.java
@@ -26,8 +26,9 @@ import java.util.concurrent.ExecutorService;
 import java.util.concurrent.atomic.AtomicLong;
 import java.util.zip.DataFormatException;
 
-import org.apache.hadoop.hbase.client.HConnection;
-import org.apache.hadoop.hbase.client.HTableInterface;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.Connection;
+import org.apache.hadoop.hbase.client.Table;
 import org.apache.hadoop.hbase.client.coprocessor.Batch;
 import org.apache.hadoop.hbase.ipc.BlockingRpcCallback;
 import org.apache.hadoop.hbase.ipc.ServerRpcController;
@@ -49,10 +50,10 @@ import org.apache.kylin.storage.gtrecord.StorageResponseGTScatter;
 import org.apache.kylin.storage.hbase.HBaseConnection;
 import org.apache.kylin.storage.hbase.cube.v2.coprocessor.endpoint.generated.CubeVisitProtos;
 import org.apache.kylin.storage.hbase.cube.v2.coprocessor.endpoint.generated.CubeVisitProtos.CubeVisitRequest;
-import org.apache.kylin.storage.hbase.cube.v2.coprocessor.endpoint.generated.CubeVisitProtos.CubeVisitResponse;
-import org.apache.kylin.storage.hbase.cube.v2.coprocessor.endpoint.generated.CubeVisitProtos.CubeVisitService;
 import org.apache.kylin.storage.hbase.cube.v2.coprocessor.endpoint.generated.CubeVisitProtos.CubeVisitRequest.IntList;
+import org.apache.kylin.storage.hbase.cube.v2.coprocessor.endpoint.generated.CubeVisitProtos.CubeVisitResponse;
 import org.apache.kylin.storage.hbase.cube.v2.coprocessor.endpoint.generated.CubeVisitProtos.CubeVisitResponse.Stats;
+import org.apache.kylin.storage.hbase.cube.v2.coprocessor.endpoint.generated.CubeVisitProtos.CubeVisitService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -115,7 +116,7 @@ public class CubeHBaseEndpointRPC extends CubeHBaseRPC {
         final ImmutableBitSet selectedColBlocks = scanRequest.getSelectedColBlocks().set(0);
 
         // globally shared connection, does not require close
-        final HConnection conn = HBaseConnection.get(cubeSeg.getCubeInstance().getConfig().getStorageUrl());
+        final Connection conn = HBaseConnection.get(cubeSeg.getCubeInstance().getConfig().getStorageUrl());
 
         final List<IntList> hbaseColumnsToGTIntList = Lists.newArrayList();
         List<List<Integer>> hbaseColumnsToGT = getHBaseColumnsGTMapping(selectedColBlocks);
@@ -164,7 +165,7 @@ public class CubeHBaseEndpointRPC extends CubeHBaseRPC {
                     final boolean[] abnormalFinish = new boolean[1];
 
                     try {
-                        HTableInterface table = conn.getTable(cubeSeg.getStorageLocationIdentifier(), HBaseConnection.getCoprocessorPool());
+                        Table table = conn.getTable(TableName.valueOf(cubeSeg.getStorageLocationIdentifier()), HBaseConnection.getCoprocessorPool());
 
                         final CubeVisitRequest request = builder.build();
                         final byte[] startKey = epRange.getFirst();

http://git-wip-us.apache.org/repos/asf/kylin/blob/d5dded68/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v2/CubeHBaseScanRPC.java
----------------------------------------------------------------------
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v2/CubeHBaseScanRPC.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v2/CubeHBaseScanRPC.java
index f1e5dab..68c9534 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v2/CubeHBaseScanRPC.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v2/CubeHBaseScanRPC.java
@@ -24,11 +24,12 @@ import java.util.Iterator;
 import java.util.List;
 
 import org.apache.hadoop.hbase.Cell;
-import org.apache.hadoop.hbase.client.HConnection;
-import org.apache.hadoop.hbase.client.HTableInterface;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.Connection;
 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.Table;
 import org.apache.kylin.common.util.BytesUtil;
 import org.apache.kylin.common.util.ImmutableBitSet;
 import org.apache.kylin.common.util.ShardingHash;
@@ -164,8 +165,8 @@ public class CubeHBaseScanRPC extends CubeHBaseRPC {
         // primary key (also the 0th column block) is always selected
         final ImmutableBitSet selectedColBlocks = scanRequest.getSelectedColBlocks().set(0);
         // globally shared connection, does not require close
-        HConnection hbaseConn = HBaseConnection.get(cubeSeg.getCubeInstance().getConfig().getStorageUrl());
-        final HTableInterface hbaseTable = hbaseConn.getTable(cubeSeg.getStorageLocationIdentifier());
+        Connection hbaseConn = HBaseConnection.get(cubeSeg.getCubeInstance().getConfig().getStorageUrl());
+        final Table hbaseTable = hbaseConn.getTable(TableName.valueOf(cubeSeg.getStorageLocationIdentifier()));
 
         List<RawScan> rawScans = preparedHBaseScans(scanRequest.getGTScanRanges(), selectedColBlocks);
         List<List<Integer>> hbaseColumnsToGT = getHBaseColumnsGTMapping(selectedColBlocks);

http://git-wip-us.apache.org/repos/asf/kylin/blob/d5dded68/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v2/coprocessor/endpoint/CubeVisitService.java
----------------------------------------------------------------------
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v2/coprocessor/endpoint/CubeVisitService.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v2/coprocessor/endpoint/CubeVisitService.java
index 4790d6e..82ebe2e 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v2/coprocessor/endpoint/CubeVisitService.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/cube/v2/coprocessor/endpoint/CubeVisitService.java
@@ -145,7 +145,7 @@ public class CubeVisitService extends CubeVisitProtos.CubeVisitService implement
         if (shardLength == 0) {
             return;
         }
-        byte[] regionStartKey = ArrayUtils.isEmpty(region.getStartKey()) ? new byte[shardLength] : region.getStartKey();
+        byte[] regionStartKey = ArrayUtils.isEmpty(region.getRegionInfo().getStartKey()) ? new byte[shardLength] : region.getRegionInfo().getStartKey();
         Bytes.putBytes(rawScan.startKey, 0, regionStartKey, 0, shardLength);
         Bytes.putBytes(rawScan.endKey, 0, regionStartKey, 0, shardLength);
     }
@@ -181,7 +181,7 @@ public class CubeVisitService extends CubeVisitProtos.CubeVisitService implement
         try {
             this.serviceStartTime = System.currentTimeMillis();
 
-            region = env.getRegion();
+            region = (HRegion)env.getRegion();
             region.startRegionOperation();
 
             // if user change kylin.properties on kylin server, need to manually redeploy coprocessor jar to update KylinConfig of Env.

http://git-wip-us.apache.org/repos/asf/kylin/blob/d5dded68/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/steps/CubeHTableUtil.java
----------------------------------------------------------------------
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/steps/CubeHTableUtil.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/steps/CubeHTableUtil.java
index 9b487a7..4a4f2a3 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/steps/CubeHTableUtil.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/steps/CubeHTableUtil.java
@@ -25,7 +25,8 @@ import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.HColumnDescriptor;
 import org.apache.hadoop.hbase.HTableDescriptor;
 import org.apache.hadoop.hbase.TableName;
-import org.apache.hadoop.hbase.client.HBaseAdmin;
+import org.apache.hadoop.hbase.client.Admin;
+import org.apache.hadoop.hbase.client.Connection;
 import org.apache.hadoop.hbase.io.compress.Compression.Algorithm;
 import org.apache.hadoop.hbase.io.encoding.DataBlockEncoding;
 import org.apache.hadoop.hbase.regionserver.BloomType;
@@ -78,7 +79,8 @@ public class CubeHTableUtil {
         tableDesc.setValue(IRealizationConstants.HTableSegmentTag, cubeSegment.toString());
 
         Configuration conf = HBaseConnection.getCurrentHBaseConfiguration();
-        HBaseAdmin admin = new HBaseAdmin(conf);
+        Connection conn = HBaseConnection.get(kylinConfig.getStorageUrl());
+        Admin admin = conn.getAdmin();
 
         try {
             if (User.isHBaseSecurityEnabled(conf)) {
@@ -91,7 +93,7 @@ public class CubeHTableUtil {
                 tableDesc.addFamily(cf);
             }
 
-            if (admin.tableExists(tableName)) {
+            if (admin.tableExists(TableName.valueOf(tableName))) {
                 // admin.disableTable(tableName);
                 // admin.deleteTable(tableName);
                 throw new RuntimeException("HBase table " + tableName + " exists!");
@@ -100,7 +102,7 @@ public class CubeHTableUtil {
             DeployCoprocessorCLI.deployCoprocessor(tableDesc);
 
             admin.createTable(tableDesc, splitKeys);
-            Preconditions.checkArgument(admin.isTableAvailable(tableName), "table " + tableName + " created, but is not available due to some reasons");
+            Preconditions.checkArgument(admin.isTableAvailable(TableName.valueOf(tableName)), "table " + tableName + " created, but is not available due to some reasons");
             logger.info("create hbase table " + tableName + " done.");
         } finally {
             admin.close();
@@ -109,8 +111,7 @@ public class CubeHTableUtil {
     }
 
     public static void deleteHTable(TableName tableName) throws IOException {
-        Configuration conf = HBaseConnection.getCurrentHBaseConfiguration();
-        HBaseAdmin admin = new HBaseAdmin(conf);
+        Admin admin = HBaseConnection.get(KylinConfig.getInstanceFromEnv().getStorageUrl()).getAdmin();
         try {
             if (admin.tableExists(tableName)) {
                 logger.info("disabling hbase table " + tableName);
@@ -125,8 +126,7 @@ public class CubeHTableUtil {
 
     /** create a HTable that has the same performance settings as normal cube table, for benchmark purpose */
     public static void createBenchmarkHTable(TableName tableName, String cfName) throws IOException {
-        Configuration conf = HBaseConnection.getCurrentHBaseConfiguration();
-        HBaseAdmin admin = new HBaseAdmin(conf);
+        Admin admin = HBaseConnection.get(KylinConfig.getInstanceFromEnv().getStorageUrl()).getAdmin();
         try {
             if (admin.tableExists(tableName)) {
                 logger.info("disabling hbase table " + tableName);

http://git-wip-us.apache.org/repos/asf/kylin/blob/d5dded68/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/steps/DeprecatedGCStep.java
----------------------------------------------------------------------
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/steps/DeprecatedGCStep.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/steps/DeprecatedGCStep.java
index 7aecd7e..9dc9715 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/steps/DeprecatedGCStep.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/steps/DeprecatedGCStep.java
@@ -28,9 +28,10 @@ import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.hbase.HTableDescriptor;
-import org.apache.hadoop.hbase.client.HBaseAdmin;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.Admin;
+import org.apache.hadoop.hbase.client.Connection;
 import org.apache.kylin.common.KylinConfig;
-import org.apache.kylin.common.util.Bytes;
 import org.apache.kylin.engine.mr.HadoopUtil;
 import org.apache.kylin.job.exception.ExecuteException;
 import org.apache.kylin.job.execution.AbstractExecutable;
@@ -99,19 +100,21 @@ public class DeprecatedGCStep extends AbstractExecutable {
         List<String> oldTables = getOldHTables();
         if (oldTables != null && oldTables.size() > 0) {
             String metadataUrlPrefix = KylinConfig.getInstanceFromEnv().getMetadataUrlPrefix();
-            Configuration conf = HBaseConnection.getCurrentHBaseConfiguration();
-            HBaseAdmin admin = null;
+            Admin admin = null;
             try {
-                admin = new HBaseAdmin(conf);
+
+                Connection conn = HBaseConnection.get(KylinConfig.getInstanceFromEnv().getStorageUrl());
+                admin = conn.getAdmin();
+
                 for (String table : oldTables) {
-                    if (admin.tableExists(table)) {
-                        HTableDescriptor tableDescriptor = admin.getTableDescriptor(Bytes.toBytes(table));
+                    if (admin.tableExists(TableName.valueOf(table))) {
+                        HTableDescriptor tableDescriptor = admin.getTableDescriptor(TableName.valueOf(table));
                         String host = tableDescriptor.getValue(IRealizationConstants.HTableTag);
                         if (metadataUrlPrefix.equalsIgnoreCase(host)) {
-                            if (admin.isTableEnabled(table)) {
-                                admin.disableTable(table);
+                            if (admin.isTableEnabled(TableName.valueOf(table))) {
+                                admin.disableTable(TableName.valueOf(table));
                             }
-                            admin.deleteTable(table);
+                            admin.deleteTable(TableName.valueOf(table));
                             logger.debug("Dropped HBase table " + table);
                             output.append("Dropped HBase table " + table + " \n");
                         } else {

http://git-wip-us.apache.org/repos/asf/kylin/blob/d5dded68/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/steps/HBaseCuboidWriter.java
----------------------------------------------------------------------
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/steps/HBaseCuboidWriter.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/steps/HBaseCuboidWriter.java
index 4fe7748..65cf205 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/steps/HBaseCuboidWriter.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/steps/HBaseCuboidWriter.java
@@ -38,8 +38,8 @@ import java.util.List;
 
 import org.apache.commons.io.IOUtils;
 import org.apache.hadoop.hbase.KeyValue;
-import org.apache.hadoop.hbase.client.HTableInterface;
 import org.apache.hadoop.hbase.client.Put;
+import org.apache.hadoop.hbase.client.Table;
 import org.apache.kylin.common.util.ImmutableBitSet;
 import org.apache.kylin.cube.CubeSegment;
 import org.apache.kylin.cube.cuboid.Cuboid;
@@ -64,7 +64,7 @@ public class HBaseCuboidWriter implements ICuboidWriter {
 
     private final List<KeyValueCreator> keyValueCreators;
     private final int nColumns;
-    private final HTableInterface hTable;
+    private final Table hTable;
     private final CubeDesc cubeDesc;
     private final CubeSegment cubeSegment;
     private final Object[] measureValues;
@@ -73,7 +73,7 @@ public class HBaseCuboidWriter implements ICuboidWriter {
     private AbstractRowKeyEncoder rowKeyEncoder;
     private byte[] keybuf;
 
-    public HBaseCuboidWriter(CubeSegment segment, HTableInterface hTable) {
+    public HBaseCuboidWriter(CubeSegment segment, Table hTable) {
         this.keyValueCreators = Lists.newArrayList();
         this.cubeSegment = segment;
         this.cubeDesc = cubeSegment.getCubeDesc();
@@ -132,7 +132,6 @@ public class HBaseCuboidWriter implements ICuboidWriter {
             long t = System.currentTimeMillis();
             if (hTable != null) {
                 hTable.put(puts);
-                hTable.flushCommits();
             }
             logger.info("commit total " + puts.size() + " puts, totally cost:" + (System.currentTimeMillis() - t) + "ms");
             puts.clear();

http://git-wip-us.apache.org/repos/asf/kylin/blob/d5dded68/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/steps/HBaseStreamingOutput.java
----------------------------------------------------------------------
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/steps/HBaseStreamingOutput.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/steps/HBaseStreamingOutput.java
index 9adaf24..e1e2cba 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/steps/HBaseStreamingOutput.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/steps/HBaseStreamingOutput.java
@@ -27,7 +27,8 @@ import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FSDataInputStream;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
-import org.apache.hadoop.hbase.client.HTableInterface;
+import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.client.Table;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.persistence.ResourceStore;
 import org.apache.kylin.cube.CubeSegment;
@@ -56,7 +57,7 @@ public class HBaseStreamingOutput implements IStreamingOutput {
         try {
             CubeSegment cubeSegment = (CubeSegment) buildable;
 
-            final HTableInterface hTable;
+            final Table hTable;
             hTable = createHTable(cubeSegment);
             List<ICuboidWriter> cuboidWriters = Lists.newArrayList();
             cuboidWriters.add(new HBaseCuboidWriter(cubeSegment, hTable));
@@ -88,10 +89,10 @@ public class HBaseStreamingOutput implements IStreamingOutput {
         }
     }
 
-    private HTableInterface createHTable(final CubeSegment cubeSegment) throws IOException {
+    private Table createHTable(final CubeSegment cubeSegment) throws IOException {
         final String hTableName = cubeSegment.getStorageLocationIdentifier();
         CubeHTableUtil.createHTable(cubeSegment, null);
-        final HTableInterface hTable = HBaseConnection.get(KylinConfig.getInstanceFromEnv().getStorageUrl()).getTable(hTableName);
+        final Table hTable = HBaseConnection.get(KylinConfig.getInstanceFromEnv().getStorageUrl()).getTable(TableName.valueOf(hTableName));
         logger.info("hTable:" + hTableName + " for segment:" + cubeSegment.getName() + " created!");
         return hTable;
     }


[08/12] kylin git commit: KYLIN-2076 Improve sample cube and data

Posted by li...@apache.org.
http://git-wip-us.apache.org/repos/asf/kylin/blob/5a114585/examples/sample_cube/template/cube_desc/kylin_sales_cube_desc.json
----------------------------------------------------------------------
diff --git a/examples/sample_cube/template/cube_desc/kylin_sales_cube_desc.json b/examples/sample_cube/template/cube_desc/kylin_sales_cube_desc.json
index 99f8f46..cc1cd76 100644
--- a/examples/sample_cube/template/cube_desc/kylin_sales_cube_desc.json
+++ b/examples/sample_cube/template/cube_desc/kylin_sales_cube_desc.json
@@ -35,6 +35,16 @@
     "table" : "DEFAULT.KYLIN_SALES",
     "column" : "LSTG_FORMAT_NAME",
     "derived" : null
+  }, {
+    "name" : "USER_ID",
+    "table" : "DEFAULT.KYLIN_SALES",
+    "column" : "USER_ID",
+    "derived" : null
+  }, {
+    "name" : "REGION",
+    "table" : "DEFAULT.KYLIN_SALES",
+    "column" : "REGION",
+    "derived" : null
   } ],
   "measures" : [ {
     "name" : "GMV_SUM",
@@ -145,6 +155,12 @@
       "column" : "LSTG_FORMAT_NAME",
       "encoding" : "fixed_length:12"
     }, {
+      "column" : "USER_ID",
+      "encoding" : "dict"
+    }, {
+      "column" : "REGION",
+      "encoding" : "dict"
+    }, {
       "column" : "LSTG_SITE_ID",
       "encoding" : "dict"
     } ]
@@ -180,4 +196,4 @@
   "engine_type" : %default_engine_type%,
   "storage_type" : %default_storage_type%,
   "override_kylin_properties" : { }
-}
\ No newline at end of file
+}

http://git-wip-us.apache.org/repos/asf/kylin/blob/5a114585/examples/sample_cube/template/model_desc/kylin_sales_model.json
----------------------------------------------------------------------
diff --git a/examples/sample_cube/template/model_desc/kylin_sales_model.json b/examples/sample_cube/template/model_desc/kylin_sales_model.json
index 7ae47c1..13fc356 100644
--- a/examples/sample_cube/template/model_desc/kylin_sales_model.json
+++ b/examples/sample_cube/template/model_desc/kylin_sales_model.json
@@ -24,7 +24,7 @@
     "columns" : [ "USER_DEFINED_FIELD1", "USER_DEFINED_FIELD3", "UPD_DATE", "UPD_USER", "META_CATEG_NAME", "CATEG_LVL2_NAME", "CATEG_LVL3_NAME" ]
   }, {
     "table" : "DEFAULT.KYLIN_SALES",
-    "columns" : [ "LSTG_FORMAT_NAME", "SELLER_ID", "PART_DT" ]
+    "columns" : [ "LSTG_FORMAT_NAME", "SELLER_ID", "PART_DT", "USER_ID", "REGION" ]
   } ],
   "metrics": [
     "PRICE",
@@ -40,4 +40,4 @@
     "partition_date_start" : 1325376000000,
     "partition_type" : "APPEND"
   }
-}
\ No newline at end of file
+}

http://git-wip-us.apache.org/repos/asf/kylin/blob/5a114585/examples/sample_cube/template/table/DEFAULT.KYLIN_SALES.json
----------------------------------------------------------------------
diff --git a/examples/sample_cube/template/table/DEFAULT.KYLIN_SALES.json b/examples/sample_cube/template/table/DEFAULT.KYLIN_SALES.json
index 4927343..2bccbeb 100644
--- a/examples/sample_cube/template/table/DEFAULT.KYLIN_SALES.json
+++ b/examples/sample_cube/template/table/DEFAULT.KYLIN_SALES.json
@@ -38,7 +38,15 @@
     "id" : "9",
     "name" : "SELLER_ID",
     "datatype" : "bigint"
+  }, {
+    "id" : "10",
+    "name" : "USER_ID",
+    "datatype" : "string"
+  }, {
+    "id" : "11",
+    "name" : "REGION",
+    "datatype" : "string"
   } ],
   "database" : "DEFAULT",
   "last_modified" : 0
-}
\ No newline at end of file
+}


[04/12] kylin git commit: KYLIN-2069, fix NPE in LookupStringTable

Posted by li...@apache.org.
KYLIN-2069, fix NPE in LookupStringTable


Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/7ec0aacc
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/7ec0aacc
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/7ec0aacc

Branch: refs/heads/yang21-hbase1.x
Commit: 7ec0aacc2a00a8b7e21c8d5e13b17baff10d7584
Parents: ebc0848
Author: Li Yang <li...@apache.org>
Authored: Sat Oct 8 14:43:42 2016 +0800
Committer: Li Yang <li...@apache.org>
Committed: Sat Oct 8 14:43:52 2016 +0800

----------------------------------------------------------------------
 .../main/java/org/apache/kylin/dict/lookup/LookupStringTable.java | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/7ec0aacc/core-dictionary/src/main/java/org/apache/kylin/dict/lookup/LookupStringTable.java
----------------------------------------------------------------------
diff --git a/core-dictionary/src/main/java/org/apache/kylin/dict/lookup/LookupStringTable.java b/core-dictionary/src/main/java/org/apache/kylin/dict/lookup/LookupStringTable.java
index f13275c..963a21e 100644
--- a/core-dictionary/src/main/java/org/apache/kylin/dict/lookup/LookupStringTable.java
+++ b/core-dictionary/src/main/java/org/apache/kylin/dict/lookup/LookupStringTable.java
@@ -83,7 +83,8 @@ public class LookupStringTable extends LookupTable<String> {
     protected String[] convertRow(String[] cols) {
         for (int i = 0; i < cols.length; i++) {
             if (colIsDateTime[i]) {
-                cols[i] = String.valueOf(DateFormat.stringToMillis(cols[i]));
+                if (cols[i] != null)
+                    cols[i] = String.valueOf(DateFormat.stringToMillis(cols[i]));
             }
         }
         return cols;