You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by GitBox <gi...@apache.org> on 2018/04/14 01:18:42 UTC

[GitHub] wu-sheng closed pull request #1073: Feature/1032

wu-sheng closed pull request #1073: Feature/1032
URL: https://github.com/apache/incubator-skywalking/pull/1073
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/apm-collector/apm-collector-agent/agent-grpc/agent-grpc-provider/src/test/java/org/apache/skywalking/apm/collector/agent/grpc/provider/handler/mock/AgentDataMock.java b/apm-collector/apm-collector-agent/agent-grpc/agent-grpc-provider/src/test/java/org/apache/skywalking/apm/collector/agent/grpc/provider/handler/mock/AgentDataMock.java
index 40e40bea9..0788f8fd4 100644
--- a/apm-collector/apm-collector-agent/agent-grpc/agent-grpc-provider/src/test/java/org/apache/skywalking/apm/collector/agent/grpc/provider/handler/mock/AgentDataMock.java
+++ b/apm-collector/apm-collector-agent/agent-grpc/agent-grpc-provider/src/test/java/org/apache/skywalking/apm/collector/agent/grpc/provider/handler/mock/AgentDataMock.java
@@ -20,6 +20,12 @@
 
 import io.grpc.ManagedChannel;
 import io.grpc.ManagedChannelBuilder;
+import io.grpc.stub.StreamObserver;
+import java.util.LinkedList;
+import java.util.List;
+import org.apache.skywalking.apm.network.proto.Downstream;
+import org.apache.skywalking.apm.network.proto.TraceSegmentServiceGrpc;
+import org.apache.skywalking.apm.network.proto.UpstreamSegment;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -33,22 +39,45 @@
     public static void main(String[] args) throws InterruptedException {
         ManagedChannel channel = ManagedChannelBuilder.forAddress("localhost", 11800).usePlaintext(true).build();
 
+        List<StreamObserver<UpstreamSegment>> upstreamSegments = new LinkedList<>();
+        upstreamSegments.add(createStreamObserver());
+        upstreamSegments.add(createStreamObserver());
+        upstreamSegments.add(createStreamObserver());
+        upstreamSegments.add(createStreamObserver());
+
         RegisterMock registerMock = new RegisterMock();
         registerMock.mock(channel);
 
         TraceSegmentMock segmentMock = new TraceSegmentMock();
-        segmentMock.mock(channel, new Long[] {System.currentTimeMillis()}, true);
+        segmentMock.mock(upstreamSegments, new Long[] {System.currentTimeMillis()}, true);
 
         Thread.sleep(30000);
 
         Long[] times = TimeBuilder.INSTANCE.generateTimes();
         logger.info("times size: {}", times.length);
 
-        segmentMock.mock(channel, times, false);
+        segmentMock.mock(upstreamSegments, times, false);
 
         JVMMetricMock jvmMetricMock = new JVMMetricMock();
 //        jvmMetricMock.mock(channel, times);
 
         Thread.sleep(60);
     }
+
+    private static StreamObserver<UpstreamSegment> createStreamObserver() {
+        ManagedChannel channel = ManagedChannelBuilder.forAddress("localhost", 11800).usePlaintext(true).build();
+        TraceSegmentServiceGrpc.TraceSegmentServiceStub stub = TraceSegmentServiceGrpc.newStub(channel);
+        StreamObserver<UpstreamSegment> segmentStreamObserver = stub.collect(new StreamObserver<Downstream>() {
+            @Override public void onNext(Downstream downstream) {
+            }
+
+            @Override public void onError(Throwable throwable) {
+            }
+
+            @Override public void onCompleted() {
+            }
+        });
+
+        return segmentStreamObserver;
+    }
 }
diff --git a/apm-collector/apm-collector-agent/agent-grpc/agent-grpc-provider/src/test/java/org/apache/skywalking/apm/collector/agent/grpc/provider/handler/mock/TraceSegmentMock.java b/apm-collector/apm-collector-agent/agent-grpc/agent-grpc-provider/src/test/java/org/apache/skywalking/apm/collector/agent/grpc/provider/handler/mock/TraceSegmentMock.java
index dfb3fcebe..1e14e2119 100644
--- a/apm-collector/apm-collector-agent/agent-grpc/agent-grpc-provider/src/test/java/org/apache/skywalking/apm/collector/agent/grpc/provider/handler/mock/TraceSegmentMock.java
+++ b/apm-collector/apm-collector-agent/agent-grpc/agent-grpc-provider/src/test/java/org/apache/skywalking/apm/collector/agent/grpc/provider/handler/mock/TraceSegmentMock.java
@@ -18,10 +18,8 @@
 
 package org.apache.skywalking.apm.collector.agent.grpc.provider.handler.mock;
 
-import io.grpc.ManagedChannel;
 import io.grpc.stub.StreamObserver;
-import org.apache.skywalking.apm.network.proto.Downstream;
-import org.apache.skywalking.apm.network.proto.TraceSegmentServiceGrpc;
+import java.util.List;
 import org.apache.skywalking.apm.network.proto.UniqueId;
 import org.apache.skywalking.apm.network.proto.UpstreamSegment;
 import org.slf4j.Logger;
@@ -34,19 +32,9 @@
 
     private static final Logger logger = LoggerFactory.getLogger(TraceSegmentMock.class);
 
-    void mock(ManagedChannel channel, Long[] times, boolean isPrepare) {
-        TraceSegmentServiceGrpc.TraceSegmentServiceStub stub = TraceSegmentServiceGrpc.newStub(channel);
-        StreamObserver<UpstreamSegment> segmentStreamObserver = stub.collect(new StreamObserver<Downstream>() {
-            @Override public void onNext(Downstream downstream) {
-            }
-
-            @Override public void onError(Throwable throwable) {
-            }
-
-            @Override public void onCompleted() {
-            }
-        });
-
+    void mock(List<StreamObserver<UpstreamSegment>> upstreamSegments, Long[] times, boolean isPrepare) {
+        long startTime = System.currentTimeMillis();
+        long lastTime = System.currentTimeMillis();
         for (int i = 0; i < times.length; i++) {
             long startTimestamp = times[i];
 
@@ -54,26 +42,46 @@ void mock(ManagedChannel channel, Long[] times, boolean isPrepare) {
 
             ConsumerMock consumerMock = new ConsumerMock();
             UniqueId.Builder consumerSegmentId = UniqueIdBuilder.INSTANCE.create();
-            consumerMock.mock(segmentStreamObserver, globalTraceId, consumerSegmentId, startTimestamp, isPrepare);
+            consumerMock.mock(upstreamSegments.get(i % 4), globalTraceId, consumerSegmentId, startTimestamp, isPrepare);
 
             ProviderMock providerMock = new ProviderMock();
             UniqueId.Builder providerSegmentId = UniqueIdBuilder.INSTANCE.create();
-            providerMock.mock(segmentStreamObserver, globalTraceId, providerSegmentId, consumerSegmentId, startTimestamp, isPrepare);
+            providerMock.mock(upstreamSegments.get(i % 4), globalTraceId, providerSegmentId, consumerSegmentId, startTimestamp, isPrepare);
 
-            if (i % 1000 == 0) {
+            if (i % 10000 == 0) {
                 logger.info("sending segment number: {}", i);
             }
 
-            if (i % 8000 == 0) {
-                try {
-                    Thread.sleep(500);
-                } catch (InterruptedException e) {
-                    logger.error(e.getMessage(), e);
+            if (i % 10000 == 0) {
+                long endTime = System.currentTimeMillis();
+                if (endTime - startTime > 0) {
+                    logger.info("tps: {}", ((long)i * 2 * 1000) / (endTime - startTime));
                 }
             }
+
+            if (i % 5000 == 0) {
+                long endTime = System.currentTimeMillis();
+                long duration = endTime - lastTime;
+                if (duration > 0 && duration < 1000) {
+                    try {
+                        logger.info("begin sleeping...");
+                        Thread.sleep(1000 - duration + 100);
+                        logger.info("sleep: {}", 1000 - duration + 100);
+                    } catch (InterruptedException e) {
+                        logger.error(e.getMessage(), e);
+                    }
+                } else {
+                    try {
+                        logger.info("begin sleeping...");
+                        Thread.sleep(duration);
+                        logger.info("sleep: {}", duration);
+                    } catch (InterruptedException e) {
+                        logger.error(e.getMessage(), e);
+                    }
+                }
+                lastTime = System.currentTimeMillis();
+            }
         }
         logger.info("sending segment number: {}", times.length);
-
-        segmentStreamObserver.onCompleted();
     }
 }
diff --git a/apm-collector/apm-collector-analysis/analysis-alarm/alarm-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/alarm/provider/AnalysisAlarmModuleProvider.java b/apm-collector/apm-collector-analysis/analysis-alarm/alarm-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/alarm/provider/AnalysisAlarmModuleProvider.java
index aaaa6a4bd..33aaf9df3 100644
--- a/apm-collector/apm-collector-analysis/analysis-alarm/alarm-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/alarm/provider/AnalysisAlarmModuleProvider.java
+++ b/apm-collector/apm-collector-analysis/analysis-alarm/alarm-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/alarm/provider/AnalysisAlarmModuleProvider.java
@@ -92,8 +92,7 @@ public AnalysisAlarmModuleProvider() {
 
         registerRemoteData();
 
-        PersistenceTimer persistenceTimer = new PersistenceTimer(AnalysisAlarmModule.NAME);
-        persistenceTimer.start(getManager(), workerCreateListener.getPersistenceWorkers());
+        PersistenceTimer.INSTANCE.start(getManager(), workerCreateListener.getPersistenceWorkers());
     }
 
     @Override public void notifyAfterCompleted() {
diff --git a/apm-collector/apm-collector-analysis/analysis-jvm/jvm-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/jvm/provider/AnalysisJVMModuleProvider.java b/apm-collector/apm-collector-analysis/analysis-jvm/jvm-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/jvm/provider/AnalysisJVMModuleProvider.java
index c7672fde5..d95c43e27 100644
--- a/apm-collector/apm-collector-analysis/analysis-jvm/jvm-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/jvm/provider/AnalysisJVMModuleProvider.java
+++ b/apm-collector/apm-collector-analysis/analysis-jvm/jvm-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/jvm/provider/AnalysisJVMModuleProvider.java
@@ -77,8 +77,7 @@ public AnalysisJVMModuleProvider() {
 
         graphCreate(workerCreateListener);
 
-        PersistenceTimer persistenceTimer = new PersistenceTimer(AnalysisJVMModule.NAME);
-        persistenceTimer.start(getManager(), workerCreateListener.getPersistenceWorkers());
+        PersistenceTimer.INSTANCE.start(getManager(), workerCreateListener.getPersistenceWorkers());
     }
 
     @Override public void notifyAfterCompleted() {
diff --git a/apm-collector/apm-collector-analysis/analysis-metric/metric-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/metric/provider/AnalysisMetricModuleProvider.java b/apm-collector/apm-collector-analysis/analysis-metric/metric-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/metric/provider/AnalysisMetricModuleProvider.java
index 64045b69d..ce5fa2e50 100644
--- a/apm-collector/apm-collector-analysis/analysis-metric/metric-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/metric/provider/AnalysisMetricModuleProvider.java
+++ b/apm-collector/apm-collector-analysis/analysis-metric/metric-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/metric/provider/AnalysisMetricModuleProvider.java
@@ -100,8 +100,7 @@ public AnalysisMetricModuleProvider() {
 
         registerRemoteData();
 
-        PersistenceTimer persistenceTimer = new PersistenceTimer(AnalysisMetricModule.NAME);
-        persistenceTimer.start(getManager(), workerCreateListener.getPersistenceWorkers());
+        PersistenceTimer.INSTANCE.start(getManager(), workerCreateListener.getPersistenceWorkers());
     }
 
     @Override public void notifyAfterCompleted() {
diff --git a/apm-collector/apm-collector-analysis/analysis-metric/metric-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/metric/provider/worker/service/refmetric/ServiceReferenceDayMetricPersistenceWorker.java b/apm-collector/apm-collector-analysis/analysis-metric/metric-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/metric/provider/worker/service/refmetric/ServiceReferenceDayMetricPersistenceWorker.java
index 715f6274c..7cd42c21b 100644
--- a/apm-collector/apm-collector-analysis/analysis-metric/metric-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/metric/provider/worker/service/refmetric/ServiceReferenceDayMetricPersistenceWorker.java
+++ b/apm-collector/apm-collector-analysis/analysis-metric/metric-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/metric/provider/worker/service/refmetric/ServiceReferenceDayMetricPersistenceWorker.java
@@ -73,7 +73,7 @@ public int queueSize() {
     }
 
     @GraphComputingMetric(name = "/persistence/flushAndSwitch/" + ServiceReferenceMetricTable.TABLE)
-    @Override public void flushAndSwitch() {
-        super.flushAndSwitch();
+    @Override public boolean flushAndSwitch() {
+        return super.flushAndSwitch();
     }
 }
diff --git a/apm-collector/apm-collector-analysis/analysis-metric/metric-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/metric/provider/worker/service/refmetric/ServiceReferenceHourMetricPersistenceWorker.java b/apm-collector/apm-collector-analysis/analysis-metric/metric-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/metric/provider/worker/service/refmetric/ServiceReferenceHourMetricPersistenceWorker.java
index 35491ded7..17380c438 100644
--- a/apm-collector/apm-collector-analysis/analysis-metric/metric-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/metric/provider/worker/service/refmetric/ServiceReferenceHourMetricPersistenceWorker.java
+++ b/apm-collector/apm-collector-analysis/analysis-metric/metric-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/metric/provider/worker/service/refmetric/ServiceReferenceHourMetricPersistenceWorker.java
@@ -73,7 +73,7 @@ public int queueSize() {
     }
 
     @GraphComputingMetric(name = "/persistence/flushAndSwitch/" + ServiceReferenceMetricTable.TABLE + "/hour")
-    @Override public void flushAndSwitch() {
-        super.flushAndSwitch();
+    @Override public boolean flushAndSwitch() {
+        return super.flushAndSwitch();
     }
 }
diff --git a/apm-collector/apm-collector-analysis/analysis-metric/metric-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/metric/provider/worker/service/refmetric/ServiceReferenceMinuteMetricPersistenceWorker.java b/apm-collector/apm-collector-analysis/analysis-metric/metric-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/metric/provider/worker/service/refmetric/ServiceReferenceMinuteMetricPersistenceWorker.java
index a9a026c87..1739ee15c 100644
--- a/apm-collector/apm-collector-analysis/analysis-metric/metric-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/metric/provider/worker/service/refmetric/ServiceReferenceMinuteMetricPersistenceWorker.java
+++ b/apm-collector/apm-collector-analysis/analysis-metric/metric-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/metric/provider/worker/service/refmetric/ServiceReferenceMinuteMetricPersistenceWorker.java
@@ -73,7 +73,7 @@ public int queueSize() {
     }
 
     @GraphComputingMetric(name = "/persistence/flushAndSwitch/" + ServiceReferenceMetricTable.TABLE + "/minute")
-    @Override public void flushAndSwitch() {
-        super.flushAndSwitch();
+    @Override public boolean flushAndSwitch() {
+        return super.flushAndSwitch();
     }
 }
diff --git a/apm-collector/apm-collector-analysis/analysis-metric/metric-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/metric/provider/worker/service/refmetric/ServiceReferenceMonthMetricPersistenceWorker.java b/apm-collector/apm-collector-analysis/analysis-metric/metric-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/metric/provider/worker/service/refmetric/ServiceReferenceMonthMetricPersistenceWorker.java
index 137f436e6..acfa034fc 100644
--- a/apm-collector/apm-collector-analysis/analysis-metric/metric-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/metric/provider/worker/service/refmetric/ServiceReferenceMonthMetricPersistenceWorker.java
+++ b/apm-collector/apm-collector-analysis/analysis-metric/metric-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/metric/provider/worker/service/refmetric/ServiceReferenceMonthMetricPersistenceWorker.java
@@ -73,7 +73,7 @@ public int queueSize() {
     }
 
     @GraphComputingMetric(name = "/persistence/flushAndSwitch/" + ServiceReferenceMetricTable.TABLE + "/month")
-    @Override public void flushAndSwitch() {
-        super.flushAndSwitch();
+    @Override public boolean flushAndSwitch() {
+        return super.flushAndSwitch();
     }
 }
diff --git a/apm-collector/apm-collector-analysis/analysis-register/register-define/src/main/java/org/apache/skywalking/apm/collector/analysis/register/define/service/INetworkAddressIDService.java b/apm-collector/apm-collector-analysis/analysis-register/register-define/src/main/java/org/apache/skywalking/apm/collector/analysis/register/define/service/INetworkAddressIDService.java
index 2f062f567..fef1d8aa0 100644
--- a/apm-collector/apm-collector-analysis/analysis-register/register-define/src/main/java/org/apache/skywalking/apm/collector/analysis/register/define/service/INetworkAddressIDService.java
+++ b/apm-collector/apm-collector-analysis/analysis-register/register-define/src/main/java/org/apache/skywalking/apm/collector/analysis/register/define/service/INetworkAddressIDService.java
@@ -28,5 +28,5 @@
 
     int get(String networkAddress);
 
-    void update(int addressId, int spanLayer, int serverType);
+    void update(int addressId, int srcSpanLayer, int serverType);
 }
diff --git a/apm-collector/apm-collector-analysis/analysis-register/register-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/register/provider/AnalysisRegisterModuleProvider.java b/apm-collector/apm-collector-analysis/analysis-register/register-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/register/provider/AnalysisRegisterModuleProvider.java
index 31fa92f1f..c56919787 100644
--- a/apm-collector/apm-collector-analysis/analysis-register/register-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/register/provider/AnalysisRegisterModuleProvider.java
+++ b/apm-collector/apm-collector-analysis/analysis-register/register-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/register/provider/AnalysisRegisterModuleProvider.java
@@ -85,8 +85,7 @@ public AnalysisRegisterModuleProvider() {
 
         registerRemoteData();
 
-        PersistenceTimer persistenceTimer = new PersistenceTimer(AnalysisRegisterModule.NAME);
-        persistenceTimer.start(getManager(), workerCreateListener.getPersistenceWorkers());
+        PersistenceTimer.INSTANCE.start(getManager(), workerCreateListener.getPersistenceWorkers());
     }
 
     @Override public void notifyAfterCompleted() {
diff --git a/apm-collector/apm-collector-analysis/analysis-register/register-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/register/provider/register/NetworkAddressRegisterSerialWorker.java b/apm-collector/apm-collector-analysis/analysis-register/register-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/register/provider/register/NetworkAddressRegisterSerialWorker.java
index 73f449017..728a58136 100644
--- a/apm-collector/apm-collector-analysis/analysis-register/register-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/register/provider/register/NetworkAddressRegisterSerialWorker.java
+++ b/apm-collector/apm-collector-analysis/analysis-register/register-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/register/provider/register/NetworkAddressRegisterSerialWorker.java
@@ -63,7 +63,7 @@ private NetworkAddressRegisterSerialWorker(ModuleManager moduleManager) {
                     newNetworkAddress = new NetworkAddress();
                     newNetworkAddress.setId("-1");
                     newNetworkAddress.setAddressId(-1);
-                    newNetworkAddress.setSpanLayer(networkAddress.getSpanLayer());
+                    newNetworkAddress.setSrcSpanLayer(networkAddress.getSrcSpanLayer());
                     newNetworkAddress.setNetworkAddress(networkAddress.getNetworkAddress());
                 } else {
                     int max = networkAddressRegisterDAO.getMaxNetworkAddressId();
@@ -72,13 +72,13 @@ private NetworkAddressRegisterSerialWorker(ModuleManager moduleManager) {
                     newNetworkAddress = new NetworkAddress();
                     newNetworkAddress.setId(String.valueOf(addressId));
                     newNetworkAddress.setAddressId(addressId);
-                    newNetworkAddress.setSpanLayer(networkAddress.getSpanLayer());
+                    newNetworkAddress.setSrcSpanLayer(networkAddress.getSrcSpanLayer());
                     newNetworkAddress.setNetworkAddress(networkAddress.getNetworkAddress());
                 }
                 networkAddressRegisterDAO.save(newNetworkAddress);
             }
         } else {
-            networkAddressRegisterDAO.update(networkAddress.getId(), networkAddress.getSpanLayer(), networkAddress.getServerType());
+            networkAddressRegisterDAO.update(networkAddress.getId(), networkAddress.getSrcSpanLayer(), networkAddress.getServerType());
         }
     }
 
diff --git a/apm-collector/apm-collector-analysis/analysis-register/register-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/register/provider/service/NetworkAddressIDService.java b/apm-collector/apm-collector-analysis/analysis-register/register-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/register/provider/service/NetworkAddressIDService.java
index f429a4887..b593c3c08 100644
--- a/apm-collector/apm-collector-analysis/analysis-register/register-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/register/provider/service/NetworkAddressIDService.java
+++ b/apm-collector/apm-collector-analysis/analysis-register/register-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/register/provider/service/NetworkAddressIDService.java
@@ -92,7 +92,7 @@ private IInstanceIDService getInstanceIDService() {
             NetworkAddress newNetworkAddress = new NetworkAddress();
             newNetworkAddress.setId(String.valueOf(Const.NONE));
             newNetworkAddress.setNetworkAddress(networkAddress);
-            newNetworkAddress.setSpanLayer(Const.NONE);
+            newNetworkAddress.setSrcSpanLayer(Const.NONE);
             newNetworkAddress.setServerType(Const.NONE);
             newNetworkAddress.setAddressId(Const.NONE);
 
@@ -110,7 +110,7 @@ private IInstanceIDService getInstanceIDService() {
         if (!this.compare(addressId, spanLayer, serverType)) {
             NetworkAddress newNetworkAddress = new NetworkAddress();
             newNetworkAddress.setId(String.valueOf(addressId));
-            newNetworkAddress.setSpanLayer(spanLayer);
+            newNetworkAddress.setSrcSpanLayer(spanLayer);
             newNetworkAddress.setServerType(serverType);
             newNetworkAddress.setAddressId(addressId);
 
@@ -122,7 +122,7 @@ private boolean compare(int addressId, int spanLayer, int serverType) {
         NetworkAddress networkAddress = networkAddressCacheService.getAddress(addressId);
 
         if (ObjectUtils.isNotEmpty(networkAddress)) {
-            return spanLayer == networkAddress.getSpanLayer() && serverType == networkAddress.getServerType();
+            return spanLayer == networkAddress.getSrcSpanLayer() && serverType == networkAddress.getServerType();
         }
 
         return true;
diff --git a/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/provider/AnalysisSegmentParserModuleProvider.java b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/provider/AnalysisSegmentParserModuleProvider.java
index d5cdbb851..d1ff36667 100644
--- a/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/provider/AnalysisSegmentParserModuleProvider.java
+++ b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/provider/AnalysisSegmentParserModuleProvider.java
@@ -78,8 +78,7 @@ public AnalysisSegmentParserModuleProvider() {
 
         graphCreate(workerCreateListener);
 
-        PersistenceTimer persistenceTimer = new PersistenceTimer(AnalysisSegmentParserModule.NAME);
-        persistenceTimer.start(getManager(), workerCreateListener.getPersistenceWorkers());
+        PersistenceTimer.INSTANCE.start(getManager(), workerCreateListener.getPersistenceWorkers());
 
         SegmentBufferReader.INSTANCE.setSegmentParserListenerManager(listenerManager);
     }
diff --git a/apm-collector/apm-collector-analysis/analysis-worker-model/src/main/java/org/apache/skywalking/apm/collector/analysis/worker/model/base/WorkerCreateListener.java b/apm-collector/apm-collector-analysis/analysis-worker-model/src/main/java/org/apache/skywalking/apm/collector/analysis/worker/model/base/WorkerCreateListener.java
index fe1a48f72..17bea8261 100644
--- a/apm-collector/apm-collector-analysis/analysis-worker-model/src/main/java/org/apache/skywalking/apm/collector/analysis/worker/model/base/WorkerCreateListener.java
+++ b/apm-collector/apm-collector-analysis/analysis-worker-model/src/main/java/org/apache/skywalking/apm/collector/analysis/worker/model/base/WorkerCreateListener.java
@@ -18,7 +18,7 @@
 
 package org.apache.skywalking.apm.collector.analysis.worker.model.base;
 
-import java.util.ArrayList;
+import java.util.LinkedList;
 import java.util.List;
 import org.apache.skywalking.apm.collector.analysis.worker.model.impl.PersistenceWorker;
 
@@ -30,7 +30,7 @@
     private final List<PersistenceWorker> persistenceWorkers;
 
     public WorkerCreateListener() {
-        this.persistenceWorkers = new ArrayList<>();
+        this.persistenceWorkers = new LinkedList<>();
     }
 
     void addWorker(AbstractWorker worker) {
diff --git a/apm-collector/apm-collector-analysis/analysis-worker-model/src/main/java/org/apache/skywalking/apm/collector/analysis/worker/model/impl/PersistenceWorker.java b/apm-collector/apm-collector-analysis/analysis-worker-model/src/main/java/org/apache/skywalking/apm/collector/analysis/worker/model/impl/PersistenceWorker.java
index ecb757a0c..15139fb81 100644
--- a/apm-collector/apm-collector-analysis/analysis-worker-model/src/main/java/org/apache/skywalking/apm/collector/analysis/worker/model/impl/PersistenceWorker.java
+++ b/apm-collector/apm-collector-analysis/analysis-worker-model/src/main/java/org/apache/skywalking/apm/collector/analysis/worker/model/impl/PersistenceWorker.java
@@ -49,18 +49,20 @@ public PersistenceWorker(ModuleManager moduleManager) {
         this.batchDAO = moduleManager.find(StorageModule.NAME).getService(IBatchDAO.class);
     }
 
-    public void flushAndSwitch() {
+    public boolean flushAndSwitch() {
+        boolean isSwitch;
         try {
-            if (dataCache.trySwitchPointer()) {
+            if (isSwitch = dataCache.trySwitchPointer()) {
                 dataCache.switchPointer();
             }
         } finally {
             dataCache.trySwitchPointerFinally();
         }
+        return isSwitch;
     }
 
     @Override protected void onWork(INPUT_AND_OUTPUT input) {
-        if (dataCache.currentCollectionSize() >= 5000) {
+        if (dataCache.currentCollectionSize() >= 520000) {
             try {
                 if (dataCache.trySwitchPointer()) {
                     dataCache.switchPointer();
diff --git a/apm-collector/apm-collector-analysis/analysis-worker-model/src/main/java/org/apache/skywalking/apm/collector/analysis/worker/model/impl/data/DataCollection.java b/apm-collector/apm-collector-analysis/analysis-worker-model/src/main/java/org/apache/skywalking/apm/collector/analysis/worker/model/impl/data/DataCollection.java
index 3734ef0e3..c38091ada 100644
--- a/apm-collector/apm-collector-analysis/analysis-worker-model/src/main/java/org/apache/skywalking/apm/collector/analysis/worker/model/impl/data/DataCollection.java
+++ b/apm-collector/apm-collector-analysis/analysis-worker-model/src/main/java/org/apache/skywalking/apm/collector/analysis/worker/model/impl/data/DataCollection.java
@@ -18,8 +18,8 @@
 
 package org.apache.skywalking.apm.collector.analysis.worker.model.impl.data;
 
+import java.util.LinkedHashMap;
 import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
 import org.apache.skywalking.apm.collector.core.cache.Collection;
 import org.apache.skywalking.apm.collector.core.data.StreamData;
 
@@ -32,7 +32,7 @@
     private volatile boolean reading;
 
     DataCollection() {
-        this.data = new ConcurrentHashMap<>();
+        this.data = new LinkedHashMap<>();
         this.writing = false;
         this.reading = false;
     }
diff --git a/apm-collector/apm-collector-analysis/analysis-worker-model/src/main/java/org/apache/skywalking/apm/collector/analysis/worker/timer/PersistenceTimer.java b/apm-collector/apm-collector-analysis/analysis-worker-model/src/main/java/org/apache/skywalking/apm/collector/analysis/worker/timer/PersistenceTimer.java
index 94dc461da..61516c26f 100644
--- a/apm-collector/apm-collector-analysis/analysis-worker-model/src/main/java/org/apache/skywalking/apm/collector/analysis/worker/timer/PersistenceTimer.java
+++ b/apm-collector/apm-collector-analysis/analysis-worker-model/src/main/java/org/apache/skywalking/apm/collector/analysis/worker/timer/PersistenceTimer.java
@@ -18,7 +18,7 @@
 
 package org.apache.skywalking.apm.collector.analysis.worker.timer;
 
-import java.util.ArrayList;
+import java.util.LinkedList;
 import java.util.List;
 import java.util.concurrent.Executors;
 import java.util.concurrent.TimeUnit;
@@ -33,42 +33,48 @@
 /**
  * @author peng-yongsheng
  */
-public class PersistenceTimer {
+public enum PersistenceTimer {
+    INSTANCE;
 
-    private final String belongsToModuleName;
+    private static final Logger logger = LoggerFactory.getLogger(PersistenceTimer.class);
 
-    public PersistenceTimer(String belongsToModuleName) {
-        this.belongsToModuleName = belongsToModuleName;
-    }
-
-    private final Logger logger = LoggerFactory.getLogger(PersistenceTimer.class);
+    private Boolean isStarted = false;
+    private List<PersistenceWorker> persistenceWorkers = new LinkedList<>();
 
     public void start(ModuleManager moduleManager, List<PersistenceWorker> persistenceWorkers) {
         logger.info("persistence timer start");
+        this.persistenceWorkers.addAll(persistenceWorkers);
         //TODO timer value config
 //        final long timeInterval = EsConfig.Es.Persistence.Timer.VALUE * 1000;
         final long timeInterval = 3;
         IBatchDAO batchDAO = moduleManager.find(StorageModule.NAME).getService(IBatchDAO.class);
-        Executors.newSingleThreadScheduledExecutor().scheduleAtFixedRate(
-            new RunnableWithExceptionProtection(() -> extractDataAndSave(batchDAO, persistenceWorkers),
-                t -> logger.error("Extract data and save failure.", t)), 1, timeInterval, TimeUnit.SECONDS);
+
+        if (!isStarted) {
+            Executors.newSingleThreadScheduledExecutor().scheduleAtFixedRate(
+                new RunnableWithExceptionProtection(() -> extractDataAndSave(batchDAO, this.persistenceWorkers),
+                    t -> logger.error("Extract data and save failure.", t)), 1, timeInterval, TimeUnit.SECONDS);
+
+            this.isStarted = true;
+        }
     }
 
     @SuppressWarnings("unchecked")
     private void extractDataAndSave(IBatchDAO batchDAO, List<PersistenceWorker> persistenceWorkers) {
+        logger.debug("Extract data and save");
         try {
-            List batchAllCollection = new ArrayList<>();
+            List batchAllCollection = new LinkedList();
             persistenceWorkers.forEach((PersistenceWorker worker) -> {
                 logger.debug("extract {} worker data and save", worker.getClass().getName());
-                worker.flushAndSwitch();
-                List<?> batchCollection = worker.buildBatchCollection();
-                logger.debug("extract {} worker data size: {}", worker.getClass().getName(), batchCollection.size());
-                batchAllCollection.addAll(batchCollection);
+                if (worker.flushAndSwitch()) {
+                    List<?> batchCollection = worker.buildBatchCollection();
+                    logger.debug("extract {} worker data size: {}", worker.getClass().getName(), batchCollection.size());
+                    batchAllCollection.addAll(batchCollection);
+                }
             });
 
             batchDAO.batchPersistence(batchAllCollection);
         } catch (Throwable e) {
-            logger.error("The persistence timer belongs to module name: " + belongsToModuleName + ", error message: " + e.getMessage(), e);
+            logger.error(e.getMessage(), e);
         } finally {
             logger.debug("persistence data save finish");
         }
diff --git a/apm-collector/apm-collector-boot/src/main/resources/application.yml b/apm-collector/apm-collector-boot/src/main/resources/application.yml
index 44ef02551..437e6f48f 100644
--- a/apm-collector/apm-collector-boot/src/main/resources/application.yml
+++ b/apm-collector/apm-collector-boot/src/main/resources/application.yml
@@ -66,6 +66,7 @@ storage:
     clusterNodes: localhost:9300
     indexShardsNumber: 2
     indexReplicasNumber: 0
+    highPerformanceMode: true
     ttl: 7
 #storage:
 #  h2:
diff --git a/apm-collector/apm-collector-core/src/main/java/org/apache/skywalking/apm/collector/core/data/Column.java b/apm-collector/apm-collector-core/src/main/java/org/apache/skywalking/apm/collector/core/data/Column.java
index 0e95702a7..3a651d299 100644
--- a/apm-collector/apm-collector-core/src/main/java/org/apache/skywalking/apm/collector/core/data/Column.java
+++ b/apm-collector/apm-collector-core/src/main/java/org/apache/skywalking/apm/collector/core/data/Column.java
@@ -22,24 +22,24 @@
  * @author peng-yongsheng
  */
 public class Column {
-    private final String name;
+    private final ColumnName columnName;
     private final MergeOperation mergeOperation;
     private final FormulaOperation formulaOperation;
 
-    public Column(String name, MergeOperation mergeOperation) {
-        this.name = name;
+    public Column(ColumnName columnName, MergeOperation mergeOperation) {
+        this.columnName = columnName;
         this.mergeOperation = mergeOperation;
         this.formulaOperation = null;
     }
 
-    public Column(String name, MergeOperation mergeOperation, FormulaOperation formulaOperation) {
-        this.name = name;
+    public Column(ColumnName columnName, MergeOperation mergeOperation, FormulaOperation formulaOperation) {
+        this.columnName = columnName;
         this.mergeOperation = mergeOperation;
         this.formulaOperation = formulaOperation;
     }
 
-    public String getName() {
-        return name;
+    public ColumnName getColumnName() {
+        return columnName;
     }
 
     MergeOperation getMergeOperation() {
diff --git a/apm-collector/apm-collector-core/src/main/java/org/apache/skywalking/apm/collector/core/data/ColumnDefine.java b/apm-collector/apm-collector-core/src/main/java/org/apache/skywalking/apm/collector/core/data/ColumnDefine.java
index 4bf10ed6a..14ec10798 100644
--- a/apm-collector/apm-collector-core/src/main/java/org/apache/skywalking/apm/collector/core/data/ColumnDefine.java
+++ b/apm-collector/apm-collector-core/src/main/java/org/apache/skywalking/apm/collector/core/data/ColumnDefine.java
@@ -16,26 +16,25 @@
  *
  */
 
-
 package org.apache.skywalking.apm.collector.core.data;
 
 /**
  * @author peng-yongsheng
  */
 public abstract class ColumnDefine {
-    private final String name;
+    private final ColumnName columnName;
     private final String type;
 
-    public ColumnDefine(String name, String type) {
-        this.name = name;
+    public ColumnDefine(ColumnName columnName, String type) {
+        this.columnName = columnName;
         this.type = type;
     }
 
-    public final String getName() {
-        return name;
+    public final ColumnName getColumnName() {
+        return columnName;
     }
 
-    public String getType() {
+    public final String getType() {
         return type;
     }
 }
diff --git a/apm-collector/apm-collector-core/src/main/java/org/apache/skywalking/apm/collector/core/data/ColumnName.java b/apm-collector/apm-collector-core/src/main/java/org/apache/skywalking/apm/collector/core/data/ColumnName.java
new file mode 100644
index 000000000..92bb45c35
--- /dev/null
+++ b/apm-collector/apm-collector-core/src/main/java/org/apache/skywalking/apm/collector/core/data/ColumnName.java
@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.skywalking.apm.collector.core.data;
+
+/**
+ * @author peng-yongsheng
+ */
+public class ColumnName {
+    private final String fullName;
+    private final String shortName;
+    private boolean useShortName = false;
+
+    public ColumnName(String fullName, String shortName) {
+        this.fullName = fullName;
+        this.shortName = shortName;
+    }
+
+    public String getName() {
+        return useShortName ? shortName : fullName;
+    }
+
+    public void useShortName() {
+        this.useShortName = true;
+    }
+}
diff --git a/apm-collector/apm-collector-core/src/main/java/org/apache/skywalking/apm/collector/core/data/CommonTable.java b/apm-collector/apm-collector-core/src/main/java/org/apache/skywalking/apm/collector/core/data/CommonTable.java
index 8d8e7e420..bdc33d426 100644
--- a/apm-collector/apm-collector-core/src/main/java/org/apache/skywalking/apm/collector/core/data/CommonTable.java
+++ b/apm-collector/apm-collector-core/src/main/java/org/apache/skywalking/apm/collector/core/data/CommonTable.java
@@ -21,9 +21,16 @@
 /**
  * @author peng-yongsheng
  */
-public abstract class CommonTable {
-    public static final String TABLE_TYPE = "type";
-    public static final String COLUMN_ID = "id";
-    public static final String COLUMN_METRIC_ID = "metric_id";
-    public static final String COLUMN_TIME_BUCKET = "time_bucket";
+public interface CommonTable {
+    String TABLE_TYPE = "type";
+
+    ColumnName ID = new ColumnName("id", "id");
+
+    ColumnName METRIC_ID = new ColumnName("metric_id", "mi");
+
+    ColumnName TIME_BUCKET = new ColumnName("time_bucket", "tb");
+
+    ColumnName SOURCE_VALUE = new ColumnName("source_value", "sv");
+
+    ColumnName TIMES = new ColumnName("times", "t");
 }
diff --git a/apm-collector/apm-collector-remote/collector-remote-grpc-provider/src/main/java/org/apache/skywalking/apm/collector/remote/grpc/service/GRPCRemoteSenderService.java b/apm-collector/apm-collector-remote/collector-remote-grpc-provider/src/main/java/org/apache/skywalking/apm/collector/remote/grpc/service/GRPCRemoteSenderService.java
index 00bb61e1c..19fd37533 100644
--- a/apm-collector/apm-collector-remote/collector-remote-grpc-provider/src/main/java/org/apache/skywalking/apm/collector/remote/grpc/service/GRPCRemoteSenderService.java
+++ b/apm-collector/apm-collector-remote/collector-remote-grpc-provider/src/main/java/org/apache/skywalking/apm/collector/remote/grpc/service/GRPCRemoteSenderService.java
@@ -20,6 +20,7 @@
 
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.LinkedList;
 import java.util.List;
 import org.apache.skywalking.apm.collector.cluster.ClusterModuleListener;
 import org.apache.skywalking.apm.collector.core.UnexpectedException;
@@ -91,7 +92,7 @@ public GRPCRemoteSenderService(String host, int port, int channelSize, int buffe
     }
 
     @Override public synchronized void serverJoinNotify(String serverAddress) {
-        List<RemoteClient> newRemoteClients = new ArrayList<>();
+        List<RemoteClient> newRemoteClients = new LinkedList<>();
         newRemoteClients.addAll(remoteClients);
 
         String host = serverAddress.split(":")[0];
@@ -105,7 +106,7 @@ public GRPCRemoteSenderService(String host, int port, int channelSize, int buffe
     }
 
     @Override public synchronized void serverQuitNotify(String serverAddress) {
-        List<RemoteClient> newRemoteClients = new ArrayList<>();
+        List<RemoteClient> newRemoteClients = new LinkedList<>();
         newRemoteClients.addAll(remoteClients);
 
         for (int i = newRemoteClients.size() - 1; i >= 0; i--) {
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/StorageModule.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/StorageModule.java
index 27e62467b..0b7b3efb4 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/StorageModule.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/StorageModule.java
@@ -118,7 +118,6 @@
 import org.apache.skywalking.apm.collector.storage.dao.ui.IInstanceMetricUIDAO;
 import org.apache.skywalking.apm.collector.storage.dao.ui.IInstanceUIDAO;
 import org.apache.skywalking.apm.collector.storage.dao.ui.IMemoryMetricUIDAO;
-import org.apache.skywalking.apm.collector.storage.dao.ui.IMemoryPoolMetricUIDAO;
 import org.apache.skywalking.apm.collector.storage.dao.ui.INetworkAddressUIDAO;
 import org.apache.skywalking.apm.collector.storage.dao.ui.ISegmentDurationUIDAO;
 import org.apache.skywalking.apm.collector.storage.dao.ui.ISegmentUIDAO;
@@ -250,7 +249,6 @@ private void addUiDAO(List<Class> classes) {
         classes.add(ICpuMetricUIDAO.class);
         classes.add(IGCMetricUIDAO.class);
         classes.add(IMemoryMetricUIDAO.class);
-        classes.add(IMemoryPoolMetricUIDAO.class);
 
         classes.add(IGlobalTraceUIDAO.class);
         classes.add(IInstanceMetricUIDAO.class);
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/CommonMetricTable.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/CommonMetricTable.java
deleted file mode 100644
index e8e9ee0d3..000000000
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/CommonMetricTable.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.skywalking.apm.collector.storage.table;
-
-import org.apache.skywalking.apm.collector.core.data.CommonTable;
-
-/**
- * @author peng-yongsheng
- */
-public abstract class CommonMetricTable extends CommonTable {
-    public static final String COLUMN_APPLICATION_ID = "application_id";
-    public static final String COLUMN_INSTANCE_ID = "instance_id";
-    public static final String COLUMN_SERVICE_ID = "service_id";
-    public static final String COLUMN_TRANSACTION_CALLS = "transaction_calls";
-    public static final String COLUMN_TRANSACTION_ERROR_CALLS = "transaction_error_calls";
-    public static final String COLUMN_TRANSACTION_DURATION_SUM = "transaction_duration_sum";
-    public static final String COLUMN_TRANSACTION_ERROR_DURATION_SUM = "transaction_error_duration_sum";
-    public static final String COLUMN_TRANSACTION_AVERAGE_DURATION = "transaction_average_duration";
-    public static final String COLUMN_BUSINESS_TRANSACTION_CALLS = "business_transaction_calls";
-    public static final String COLUMN_BUSINESS_TRANSACTION_ERROR_CALLS = "business_transaction_error_calls";
-    public static final String COLUMN_BUSINESS_TRANSACTION_DURATION_SUM = "business_transaction_duration_sum";
-    public static final String COLUMN_BUSINESS_TRANSACTION_ERROR_DURATION_SUM = "business_transaction_error_duration_sum";
-    public static final String COLUMN_BUSINESS_TRANSACTION_AVERAGE_DURATION = "business_transaction_average_duration";
-    public static final String COLUMN_MQ_TRANSACTION_CALLS = "mq_transaction_calls";
-    public static final String COLUMN_MQ_TRANSACTION_ERROR_CALLS = "mq_transaction_error_calls";
-    public static final String COLUMN_MQ_TRANSACTION_DURATION_SUM = "mq_transaction_duration_sum";
-    public static final String COLUMN_MQ_TRANSACTION_ERROR_DURATION_SUM = "mq_transaction_error_duration_sum";
-    public static final String COLUMN_MQ_TRANSACTION_AVERAGE_DURATION = "mq_transaction_average_duration";
-    public static final String COLUMN_SOURCE_VALUE = "source_value";
-}
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/MetricColumns.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/MetricColumns.java
new file mode 100644
index 000000000..e11d8720f
--- /dev/null
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/MetricColumns.java
@@ -0,0 +1,64 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.skywalking.apm.collector.storage.table;
+
+import org.apache.skywalking.apm.collector.core.data.ColumnName;
+import org.apache.skywalking.apm.collector.core.data.CommonTable;
+
+/**
+ * @author peng-yongsheng
+ */
+public interface MetricColumns extends CommonTable {
+
+    ColumnName TRANSACTION_CALLS = new ColumnName("transaction_calls", "t1");
+
+    ColumnName TRANSACTION_ERROR_CALLS = new ColumnName("transaction_error_calls", "t2");
+
+    ColumnName TRANSACTION_DURATION_SUM = new ColumnName("transaction_duration_sum", "t3");
+
+    ColumnName TRANSACTION_ERROR_DURATION_SUM = new ColumnName("transaction_error_duration_sum", "t4");
+
+    ColumnName TRANSACTION_AVERAGE_DURATION = new ColumnName("transaction_average_duration", "t5");
+
+    ColumnName BUSINESS_TRANSACTION_CALLS = new ColumnName("business_transaction_calls", "b1");
+
+    ColumnName BUSINESS_TRANSACTION_ERROR_CALLS = new ColumnName("business_transaction_error_calls", "b2");
+
+    ColumnName BUSINESS_TRANSACTION_DURATION_SUM = new ColumnName("business_transaction_duration_sum", "b3");
+
+    ColumnName BUSINESS_TRANSACTION_ERROR_DURATION_SUM = new ColumnName("business_transaction_error_duration_sum", "b4");
+
+    ColumnName BUSINESS_TRANSACTION_AVERAGE_DURATION = new ColumnName("business_transaction_average_duration", "b5");
+
+    ColumnName MQ_TRANSACTION_CALLS = new ColumnName("mq_transaction_calls", "m1");
+
+    ColumnName MQ_TRANSACTION_ERROR_CALLS = new ColumnName("mq_transaction_error_calls", "m2");
+
+    ColumnName MQ_TRANSACTION_DURATION_SUM = new ColumnName("mq_transaction_duration_sum", "m3");
+
+    ColumnName MQ_TRANSACTION_ERROR_DURATION_SUM = new ColumnName("mq_transaction_error_duration_sum", "m4");
+
+    ColumnName MQ_TRANSACTION_AVERAGE_DURATION = new ColumnName("mq_transaction_average_duration", "m5");
+
+    ColumnName SATISFIED_COUNT = new ColumnName("satisfied_count", "a1");
+
+    ColumnName TOLERATING_COUNT = new ColumnName("tolerating_count", "a2");
+
+    ColumnName FRUSTRATED_COUNT = new ColumnName("frustrated_count", "a3");
+}
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/ReferenceColumns.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/ReferenceColumns.java
new file mode 100644
index 000000000..18a6babe8
--- /dev/null
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/ReferenceColumns.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.skywalking.apm.collector.storage.table;
+
+import org.apache.skywalking.apm.collector.core.data.ColumnName;
+
+/**
+ * @author peng-yongsheng
+ */
+public interface ReferenceColumns {
+    ColumnName FRONT_APPLICATION_ID = new ColumnName("front_application_id", "fai");
+
+    ColumnName BEHIND_APPLICATION_ID = new ColumnName("behind_application_id", "bai");
+
+    ColumnName FRONT_INSTANCE_ID = new ColumnName("front_instance_id", "fii");
+
+    ColumnName BEHIND_INSTANCE_ID = new ColumnName("behind_instance_id", "bii");
+
+    ColumnName FRONT_SERVICE_ID = new ColumnName("front_service_id", "fsi");
+
+    ColumnName BEHIND_SERVICE_ID = new ColumnName("behind_service_id", "bsi");
+}
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/AlarmColumns.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/AlarmColumns.java
new file mode 100644
index 000000000..4b3ae312b
--- /dev/null
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/AlarmColumns.java
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.skywalking.apm.collector.storage.table.alarm;
+
+import org.apache.skywalking.apm.collector.core.data.ColumnName;
+import org.apache.skywalking.apm.collector.core.data.CommonTable;
+
+/**
+ * @author peng-yongsheng
+ */
+public interface AlarmColumns extends CommonTable {
+
+    ColumnName ALARM_TYPE = new ColumnName("alarm_type", "aat");
+
+    ColumnName ALARM_CONTENT = new ColumnName("alarm_content", "aac");
+
+    ColumnName LAST_TIME_BUCKET = new ColumnName("last_time_bucket", "ltb");
+}
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/AlarmType.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/AlarmType.java
index 2f201a7c6..b9332bddb 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/AlarmType.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/AlarmType.java
@@ -26,7 +26,7 @@
 
     private final int value;
 
-    private AlarmType(int value) {
+    AlarmType(int value) {
         this.value = value;
     }
 
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ApplicationAlarm.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ApplicationAlarm.java
index 73bc906c7..44bd3c5da 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ApplicationAlarm.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ApplicationAlarm.java
@@ -31,20 +31,20 @@
 public class ApplicationAlarm extends StreamData implements Alarm {
 
     private static final Column[] STRING_COLUMNS = {
-        new Column(ApplicationAlarmTable.COLUMN_ID, new NonMergeOperation()),
-        new Column(ApplicationAlarmTable.COLUMN_ALARM_CONTENT, new CoverMergeOperation()),
+        new Column(ApplicationAlarmTable.ID, new NonMergeOperation()),
+        new Column(ApplicationAlarmTable.ALARM_CONTENT, new CoverMergeOperation()),
     };
 
     private static final Column[] LONG_COLUMNS = {
-        new Column(ApplicationAlarmTable.COLUMN_LAST_TIME_BUCKET, new CoverMergeOperation()),
+        new Column(ApplicationAlarmTable.LAST_TIME_BUCKET, new CoverMergeOperation()),
     };
 
     private static final Column[] DOUBLE_COLUMNS = {};
 
     private static final Column[] INTEGER_COLUMNS = {
-        new Column(ApplicationAlarmTable.COLUMN_ALARM_TYPE, new NonMergeOperation()),
-        new Column(ApplicationAlarmTable.COLUMN_SOURCE_VALUE, new NonMergeOperation()),
-        new Column(ApplicationAlarmTable.COLUMN_APPLICATION_ID, new NonMergeOperation()),
+        new Column(ApplicationAlarmTable.ALARM_TYPE, new NonMergeOperation()),
+        new Column(ApplicationAlarmTable.SOURCE_VALUE, new NonMergeOperation()),
+        new Column(ApplicationAlarmTable.APPLICATION_ID, new NonMergeOperation()),
     };
 
     private static final Column[] BYTE_COLUMNS = {};
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ApplicationAlarmList.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ApplicationAlarmList.java
index aad83fede..3561e57c8 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ApplicationAlarmList.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ApplicationAlarmList.java
@@ -31,21 +31,21 @@
 public class ApplicationAlarmList extends StreamData {
 
     private static final Column[] STRING_COLUMNS = {
-        new Column(ApplicationAlarmListTable.COLUMN_ID, new NonMergeOperation()),
-        new Column(ApplicationAlarmListTable.COLUMN_METRIC_ID, new NonMergeOperation()),
-        new Column(ApplicationAlarmListTable.COLUMN_ALARM_CONTENT, new CoverMergeOperation()),
+        new Column(ApplicationAlarmListTable.ID, new NonMergeOperation()),
+        new Column(ApplicationAlarmListTable.METRIC_ID, new NonMergeOperation()),
+        new Column(ApplicationAlarmListTable.ALARM_CONTENT, new CoverMergeOperation()),
     };
 
     private static final Column[] LONG_COLUMNS = {
-        new Column(ApplicationAlarmListTable.COLUMN_TIME_BUCKET, new NonMergeOperation()),
+        new Column(ApplicationAlarmListTable.TIME_BUCKET, new NonMergeOperation()),
     };
 
     private static final Column[] DOUBLE_COLUMNS = {};
 
     private static final Column[] INTEGER_COLUMNS = {
-        new Column(ApplicationAlarmListTable.COLUMN_ALARM_TYPE, new NonMergeOperation()),
-        new Column(ApplicationAlarmListTable.COLUMN_SOURCE_VALUE, new NonMergeOperation()),
-        new Column(ApplicationAlarmListTable.COLUMN_APPLICATION_ID, new NonMergeOperation()),
+        new Column(ApplicationAlarmListTable.ALARM_TYPE, new NonMergeOperation()),
+        new Column(ApplicationAlarmListTable.SOURCE_VALUE, new NonMergeOperation()),
+        new Column(ApplicationAlarmListTable.APPLICATION_ID, new NonMergeOperation()),
     };
 
     private static final Column[] BYTE_COLUMNS = {};
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ApplicationAlarmListTable.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ApplicationAlarmListTable.java
index 4c6e8ec31..f2e0d3137 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ApplicationAlarmListTable.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ApplicationAlarmListTable.java
@@ -18,13 +18,11 @@
 
 package org.apache.skywalking.apm.collector.storage.table.alarm;
 
-import org.apache.skywalking.apm.collector.storage.table.CommonMetricTable;
+import org.apache.skywalking.apm.collector.storage.table.register.RegisterColumns;
 
 /**
  * @author peng-yongsheng
  */
-public class ApplicationAlarmListTable extends CommonMetricTable {
-    public static final String TABLE = "application_alarm_list";
-    public static final String COLUMN_ALARM_TYPE = "alarm_type";
-    public static final String COLUMN_ALARM_CONTENT = "alarm_content";
+public interface ApplicationAlarmListTable extends AlarmColumns, RegisterColumns {
+    String TABLE = "application_alarm_list";
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ApplicationAlarmTable.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ApplicationAlarmTable.java
index b5986ed58..15cabc7d3 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ApplicationAlarmTable.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ApplicationAlarmTable.java
@@ -18,14 +18,11 @@
 
 package org.apache.skywalking.apm.collector.storage.table.alarm;
 
-import org.apache.skywalking.apm.collector.storage.table.CommonMetricTable;
+import org.apache.skywalking.apm.collector.storage.table.register.RegisterColumns;
 
 /**
  * @author peng-yongsheng
  */
-public class ApplicationAlarmTable extends CommonMetricTable {
-    public static final String TABLE = "application_alarm";
-    public static final String COLUMN_ALARM_TYPE = "alarm_type";
-    public static final String COLUMN_LAST_TIME_BUCKET = "last_time_bucket";
-    public static final String COLUMN_ALARM_CONTENT = "alarm_content";
+public interface ApplicationAlarmTable extends AlarmColumns, RegisterColumns {
+    String TABLE = "application_alarm";
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ApplicationReferenceAlarm.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ApplicationReferenceAlarm.java
index e9be5e86f..00705b761 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ApplicationReferenceAlarm.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ApplicationReferenceAlarm.java
@@ -29,21 +29,21 @@
 public class ApplicationReferenceAlarm extends StreamData implements Alarm {
 
     private static final Column[] STRING_COLUMNS = {
-        new Column(ApplicationReferenceAlarmTable.COLUMN_ID, new NonMergeOperation()),
-        new Column(ApplicationReferenceAlarmTable.COLUMN_ALARM_CONTENT, new CoverMergeOperation()),
+        new Column(ApplicationReferenceAlarmTable.ID, new NonMergeOperation()),
+        new Column(ApplicationReferenceAlarmTable.ALARM_CONTENT, new CoverMergeOperation()),
     };
 
     private static final Column[] LONG_COLUMNS = {
-        new Column(ApplicationReferenceAlarmTable.COLUMN_LAST_TIME_BUCKET, new CoverMergeOperation()),
+        new Column(ApplicationReferenceAlarmTable.LAST_TIME_BUCKET, new CoverMergeOperation()),
     };
 
     private static final Column[] DOUBLE_COLUMNS = {};
 
     private static final Column[] INTEGER_COLUMNS = {
-        new Column(ApplicationReferenceAlarmTable.COLUMN_ALARM_TYPE, new NonMergeOperation()),
-        new Column(ApplicationReferenceAlarmTable.COLUMN_SOURCE_VALUE, new NonMergeOperation()),
-        new Column(ApplicationReferenceAlarmTable.COLUMN_FRONT_APPLICATION_ID, new NonMergeOperation()),
-        new Column(ApplicationReferenceAlarmTable.COLUMN_BEHIND_APPLICATION_ID, new NonMergeOperation()),
+        new Column(ApplicationReferenceAlarmTable.ALARM_TYPE, new NonMergeOperation()),
+        new Column(ApplicationReferenceAlarmTable.SOURCE_VALUE, new NonMergeOperation()),
+        new Column(ApplicationReferenceAlarmTable.FRONT_APPLICATION_ID, new NonMergeOperation()),
+        new Column(ApplicationReferenceAlarmTable.BEHIND_APPLICATION_ID, new NonMergeOperation()),
     };
 
     private static final Column[] BYTE_COLUMNS = {};
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ApplicationReferenceAlarmList.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ApplicationReferenceAlarmList.java
index 4d497c758..12f981d74 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ApplicationReferenceAlarmList.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ApplicationReferenceAlarmList.java
@@ -29,21 +29,21 @@
 public class ApplicationReferenceAlarmList extends StreamData {
 
     private static final Column[] STRING_COLUMNS = {
-        new Column(ApplicationReferenceAlarmListTable.COLUMN_ID, new NonMergeOperation()),
-        new Column(ApplicationReferenceAlarmListTable.COLUMN_ALARM_CONTENT, new CoverMergeOperation()),
+        new Column(ApplicationReferenceAlarmListTable.ID, new NonMergeOperation()),
+        new Column(ApplicationReferenceAlarmListTable.ALARM_CONTENT, new CoverMergeOperation()),
     };
 
     private static final Column[] LONG_COLUMNS = {
-        new Column(ApplicationReferenceAlarmListTable.COLUMN_TIME_BUCKET, new NonMergeOperation()),
+        new Column(ApplicationReferenceAlarmListTable.TIME_BUCKET, new NonMergeOperation()),
     };
 
     private static final Column[] DOUBLE_COLUMNS = {};
 
     private static final Column[] INTEGER_COLUMNS = {
-        new Column(ApplicationReferenceAlarmListTable.COLUMN_ALARM_TYPE, new NonMergeOperation()),
-        new Column(ApplicationReferenceAlarmListTable.COLUMN_SOURCE_VALUE, new NonMergeOperation()),
-        new Column(ApplicationReferenceAlarmListTable.COLUMN_FRONT_APPLICATION_ID, new NonMergeOperation()),
-        new Column(ApplicationReferenceAlarmListTable.COLUMN_BEHIND_APPLICATION_ID, new NonMergeOperation()),
+        new Column(ApplicationReferenceAlarmListTable.ALARM_TYPE, new NonMergeOperation()),
+        new Column(ApplicationReferenceAlarmListTable.SOURCE_VALUE, new NonMergeOperation()),
+        new Column(ApplicationReferenceAlarmListTable.FRONT_APPLICATION_ID, new NonMergeOperation()),
+        new Column(ApplicationReferenceAlarmListTable.BEHIND_APPLICATION_ID, new NonMergeOperation()),
     };
 
     private static final Column[] BYTE_COLUMNS = {};
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ApplicationReferenceAlarmListTable.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ApplicationReferenceAlarmListTable.java
index 209c61d88..85fe2b68b 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ApplicationReferenceAlarmListTable.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ApplicationReferenceAlarmListTable.java
@@ -18,15 +18,12 @@
 
 package org.apache.skywalking.apm.collector.storage.table.alarm;
 
-import org.apache.skywalking.apm.collector.storage.table.CommonMetricTable;
+import org.apache.skywalking.apm.collector.storage.table.MetricColumns;
+import org.apache.skywalking.apm.collector.storage.table.ReferenceColumns;
 
 /**
  * @author peng-yongsheng
  */
-public class ApplicationReferenceAlarmListTable extends CommonMetricTable {
-    public static final String TABLE = "application_reference_alarm_list";
-    public static final String COLUMN_FRONT_APPLICATION_ID = "front_application_id";
-    public static final String COLUMN_BEHIND_APPLICATION_ID = "behind_application_id";
-    public static final String COLUMN_ALARM_TYPE = "alarm_type";
-    public static final String COLUMN_ALARM_CONTENT = "alarm_content";
+public interface ApplicationReferenceAlarmListTable extends MetricColumns, ReferenceColumns, AlarmColumns {
+    String TABLE = "application_reference_alarm_list";
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ApplicationReferenceAlarmTable.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ApplicationReferenceAlarmTable.java
index 8e1e98aec..4cb656e3e 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ApplicationReferenceAlarmTable.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ApplicationReferenceAlarmTable.java
@@ -18,16 +18,12 @@
 
 package org.apache.skywalking.apm.collector.storage.table.alarm;
 
-import org.apache.skywalking.apm.collector.storage.table.CommonMetricTable;
+import org.apache.skywalking.apm.collector.storage.table.ReferenceColumns;
+import org.apache.skywalking.apm.collector.storage.table.register.RegisterColumns;
 
 /**
  * @author peng-yongsheng
  */
-public class ApplicationReferenceAlarmTable extends CommonMetricTable {
-    public static final String TABLE = "application_reference_alarm";
-    public static final String COLUMN_FRONT_APPLICATION_ID = "front_application_id";
-    public static final String COLUMN_BEHIND_APPLICATION_ID = "behind_application_id";
-    public static final String COLUMN_ALARM_TYPE = "alarm_type";
-    public static final String COLUMN_LAST_TIME_BUCKET = "last_time_bucket";
-    public static final String COLUMN_ALARM_CONTENT = "alarm_content";
+public interface ApplicationReferenceAlarmTable extends ReferenceColumns, RegisterColumns, AlarmColumns {
+    String TABLE = "application_reference_alarm";
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/InstanceAlarm.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/InstanceAlarm.java
index c740ad274..e4e67aabb 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/InstanceAlarm.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/InstanceAlarm.java
@@ -31,21 +31,21 @@
 public class InstanceAlarm extends StreamData implements Alarm {
 
     private static final Column[] STRING_COLUMNS = {
-        new Column(InstanceAlarmTable.COLUMN_ID, new NonMergeOperation()),
-        new Column(InstanceAlarmTable.COLUMN_ALARM_CONTENT, new CoverMergeOperation()),
+        new Column(InstanceAlarmTable.ID, new NonMergeOperation()),
+        new Column(InstanceAlarmTable.ALARM_CONTENT, new CoverMergeOperation()),
     };
 
     private static final Column[] LONG_COLUMNS = {
-        new Column(InstanceAlarmTable.COLUMN_LAST_TIME_BUCKET, new CoverMergeOperation()),
+        new Column(InstanceAlarmTable.LAST_TIME_BUCKET, new CoverMergeOperation()),
     };
 
     private static final Column[] DOUBLE_COLUMNS = {};
 
     private static final Column[] INTEGER_COLUMNS = {
-        new Column(InstanceAlarmTable.COLUMN_ALARM_TYPE, new NonMergeOperation()),
-        new Column(InstanceAlarmTable.COLUMN_SOURCE_VALUE, new NonMergeOperation()),
-        new Column(InstanceAlarmTable.COLUMN_APPLICATION_ID, new NonMergeOperation()),
-        new Column(InstanceAlarmTable.COLUMN_INSTANCE_ID, new NonMergeOperation()),
+        new Column(InstanceAlarmTable.ALARM_TYPE, new NonMergeOperation()),
+        new Column(InstanceAlarmTable.SOURCE_VALUE, new NonMergeOperation()),
+        new Column(InstanceAlarmTable.APPLICATION_ID, new NonMergeOperation()),
+        new Column(InstanceAlarmTable.INSTANCE_ID, new NonMergeOperation()),
     };
 
     private static final Column[] BYTE_COLUMNS = {};
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/InstanceAlarmList.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/InstanceAlarmList.java
index 3694664ed..37fdda5bf 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/InstanceAlarmList.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/InstanceAlarmList.java
@@ -31,21 +31,21 @@
 public class InstanceAlarmList extends StreamData {
 
     private static final Column[] STRING_COLUMNS = {
-        new Column(InstanceAlarmListTable.COLUMN_ID, new NonMergeOperation()),
-        new Column(InstanceAlarmListTable.COLUMN_ALARM_CONTENT, new CoverMergeOperation()),
+        new Column(InstanceAlarmListTable.ID, new NonMergeOperation()),
+        new Column(InstanceAlarmListTable.ALARM_CONTENT, new CoverMergeOperation()),
     };
 
     private static final Column[] LONG_COLUMNS = {
-        new Column(InstanceAlarmListTable.COLUMN_TIME_BUCKET, new NonMergeOperation()),
+        new Column(InstanceAlarmListTable.TIME_BUCKET, new NonMergeOperation()),
     };
 
     private static final Column[] DOUBLE_COLUMNS = {};
 
     private static final Column[] INTEGER_COLUMNS = {
-        new Column(InstanceAlarmListTable.COLUMN_ALARM_TYPE, new NonMergeOperation()),
-        new Column(InstanceAlarmListTable.COLUMN_SOURCE_VALUE, new NonMergeOperation()),
-        new Column(InstanceAlarmListTable.COLUMN_APPLICATION_ID, new NonMergeOperation()),
-        new Column(InstanceAlarmListTable.COLUMN_INSTANCE_ID, new NonMergeOperation()),
+        new Column(InstanceAlarmListTable.ALARM_TYPE, new NonMergeOperation()),
+        new Column(InstanceAlarmListTable.SOURCE_VALUE, new NonMergeOperation()),
+        new Column(InstanceAlarmListTable.APPLICATION_ID, new NonMergeOperation()),
+        new Column(InstanceAlarmListTable.INSTANCE_ID, new NonMergeOperation()),
     };
 
     private static final Column[] BYTE_COLUMNS = {};
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/InstanceAlarmListTable.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/InstanceAlarmListTable.java
index a7cd8817e..b586e861f 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/InstanceAlarmListTable.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/InstanceAlarmListTable.java
@@ -18,13 +18,11 @@
 
 package org.apache.skywalking.apm.collector.storage.table.alarm;
 
-import org.apache.skywalking.apm.collector.storage.table.CommonMetricTable;
+import org.apache.skywalking.apm.collector.storage.table.register.RegisterColumns;
 
 /**
  * @author peng-yongsheng
  */
-public class InstanceAlarmListTable extends CommonMetricTable {
-    public static final String TABLE = "instance_alarm_list";
-    public static final String COLUMN_ALARM_TYPE = "alarm_type";
-    public static final String COLUMN_ALARM_CONTENT = "alarm_content";
+public interface InstanceAlarmListTable extends RegisterColumns, AlarmColumns {
+    String TABLE = "instance_alarm_list";
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/InstanceAlarmTable.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/InstanceAlarmTable.java
index 54c22cd0b..34848e9c9 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/InstanceAlarmTable.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/InstanceAlarmTable.java
@@ -18,14 +18,11 @@
 
 package org.apache.skywalking.apm.collector.storage.table.alarm;
 
-import org.apache.skywalking.apm.collector.storage.table.CommonMetricTable;
+import org.apache.skywalking.apm.collector.storage.table.register.RegisterColumns;
 
 /**
  * @author peng-yongsheng
  */
-public class InstanceAlarmTable extends CommonMetricTable {
-    public static final String TABLE = "instance_alarm";
-    public static final String COLUMN_ALARM_TYPE = "alarm_type";
-    public static final String COLUMN_LAST_TIME_BUCKET = "last_time_bucket";
-    public static final String COLUMN_ALARM_CONTENT = "alarm_content";
+public interface InstanceAlarmTable extends AlarmColumns, RegisterColumns {
+    String TABLE = "instance_alarm";
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/InstanceReferenceAlarm.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/InstanceReferenceAlarm.java
index 803860e87..ef7f750c0 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/InstanceReferenceAlarm.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/InstanceReferenceAlarm.java
@@ -29,23 +29,23 @@
 public class InstanceReferenceAlarm extends StreamData implements Alarm {
 
     private static final Column[] STRING_COLUMNS = {
-        new Column(InstanceReferenceAlarmTable.COLUMN_ID, new NonMergeOperation()),
-        new Column(InstanceReferenceAlarmTable.COLUMN_ALARM_CONTENT, new CoverMergeOperation()),
+        new Column(InstanceReferenceAlarmTable.ID, new NonMergeOperation()),
+        new Column(InstanceReferenceAlarmTable.ALARM_CONTENT, new CoverMergeOperation()),
     };
 
     private static final Column[] LONG_COLUMNS = {
-        new Column(InstanceReferenceAlarmTable.COLUMN_LAST_TIME_BUCKET, new CoverMergeOperation()),
+        new Column(InstanceReferenceAlarmTable.LAST_TIME_BUCKET, new CoverMergeOperation()),
     };
 
     private static final Column[] DOUBLE_COLUMNS = {};
 
     private static final Column[] INTEGER_COLUMNS = {
-        new Column(InstanceReferenceAlarmTable.COLUMN_ALARM_TYPE, new NonMergeOperation()),
-        new Column(InstanceReferenceAlarmTable.COLUMN_SOURCE_VALUE, new NonMergeOperation()),
-        new Column(InstanceReferenceAlarmTable.COLUMN_FRONT_APPLICATION_ID, new NonMergeOperation()),
-        new Column(InstanceReferenceAlarmTable.COLUMN_BEHIND_APPLICATION_ID, new NonMergeOperation()),
-        new Column(InstanceReferenceAlarmTable.COLUMN_FRONT_INSTANCE_ID, new NonMergeOperation()),
-        new Column(InstanceReferenceAlarmTable.COLUMN_BEHIND_INSTANCE_ID, new NonMergeOperation()),
+        new Column(InstanceReferenceAlarmTable.ALARM_TYPE, new NonMergeOperation()),
+        new Column(InstanceReferenceAlarmTable.SOURCE_VALUE, new NonMergeOperation()),
+        new Column(InstanceReferenceAlarmTable.FRONT_APPLICATION_ID, new NonMergeOperation()),
+        new Column(InstanceReferenceAlarmTable.BEHIND_APPLICATION_ID, new NonMergeOperation()),
+        new Column(InstanceReferenceAlarmTable.FRONT_INSTANCE_ID, new NonMergeOperation()),
+        new Column(InstanceReferenceAlarmTable.BEHIND_INSTANCE_ID, new NonMergeOperation()),
     };
 
     private static final Column[] BYTE_COLUMNS = {};
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/InstanceReferenceAlarmList.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/InstanceReferenceAlarmList.java
index 0e5c17671..ddce99c5e 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/InstanceReferenceAlarmList.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/InstanceReferenceAlarmList.java
@@ -29,23 +29,23 @@
 public class InstanceReferenceAlarmList extends StreamData {
 
     private static final Column[] STRING_COLUMNS = {
-        new Column(InstanceReferenceAlarmListTable.COLUMN_ID, new NonMergeOperation()),
-        new Column(InstanceReferenceAlarmListTable.COLUMN_ALARM_CONTENT, new CoverMergeOperation()),
+        new Column(InstanceReferenceAlarmListTable.ID, new NonMergeOperation()),
+        new Column(InstanceReferenceAlarmListTable.ALARM_CONTENT, new CoverMergeOperation()),
     };
 
     private static final Column[] LONG_COLUMNS = {
-        new Column(InstanceReferenceAlarmListTable.COLUMN_TIME_BUCKET, new NonMergeOperation()),
+        new Column(InstanceReferenceAlarmListTable.TIME_BUCKET, new NonMergeOperation()),
     };
 
     private static final Column[] DOUBLE_COLUMNS = {};
 
     private static final Column[] INTEGER_COLUMNS = {
-        new Column(InstanceReferenceAlarmListTable.COLUMN_ALARM_TYPE, new NonMergeOperation()),
-        new Column(InstanceReferenceAlarmListTable.COLUMN_SOURCE_VALUE, new NonMergeOperation()),
-        new Column(InstanceReferenceAlarmListTable.COLUMN_FRONT_APPLICATION_ID, new NonMergeOperation()),
-        new Column(InstanceReferenceAlarmListTable.COLUMN_BEHIND_APPLICATION_ID, new NonMergeOperation()),
-        new Column(InstanceReferenceAlarmListTable.COLUMN_FRONT_INSTANCE_ID, new NonMergeOperation()),
-        new Column(InstanceReferenceAlarmListTable.COLUMN_BEHIND_INSTANCE_ID, new NonMergeOperation()),
+        new Column(InstanceReferenceAlarmListTable.ALARM_TYPE, new NonMergeOperation()),
+        new Column(InstanceReferenceAlarmListTable.SOURCE_VALUE, new NonMergeOperation()),
+        new Column(InstanceReferenceAlarmListTable.FRONT_APPLICATION_ID, new NonMergeOperation()),
+        new Column(InstanceReferenceAlarmListTable.BEHIND_APPLICATION_ID, new NonMergeOperation()),
+        new Column(InstanceReferenceAlarmListTable.FRONT_INSTANCE_ID, new NonMergeOperation()),
+        new Column(InstanceReferenceAlarmListTable.BEHIND_INSTANCE_ID, new NonMergeOperation()),
     };
 
     private static final Column[] BYTE_COLUMNS = {};
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/InstanceReferenceAlarmListTable.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/InstanceReferenceAlarmListTable.java
index 11c18a9ef..23dbb2a41 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/InstanceReferenceAlarmListTable.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/InstanceReferenceAlarmListTable.java
@@ -18,17 +18,11 @@
 
 package org.apache.skywalking.apm.collector.storage.table.alarm;
 
-import org.apache.skywalking.apm.collector.storage.table.CommonMetricTable;
+import org.apache.skywalking.apm.collector.storage.table.ReferenceColumns;
 
 /**
  * @author peng-yongsheng
  */
-public class InstanceReferenceAlarmListTable extends CommonMetricTable {
-    public static final String TABLE = "instance_reference_alarm_list";
-    public static final String COLUMN_FRONT_INSTANCE_ID = "front_instance_id";
-    public static final String COLUMN_BEHIND_INSTANCE_ID = "behind_instance_id";
-    public static final String COLUMN_FRONT_APPLICATION_ID = "front_application_id";
-    public static final String COLUMN_BEHIND_APPLICATION_ID = "behind_application_id";
-    public static final String COLUMN_ALARM_TYPE = "alarm_type";
-    public static final String COLUMN_ALARM_CONTENT = "alarm_content";
+public interface InstanceReferenceAlarmListTable extends ReferenceColumns, AlarmColumns {
+    String TABLE = "instance_reference_alarm_list";
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/InstanceReferenceAlarmTable.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/InstanceReferenceAlarmTable.java
index a68db82a2..b548e7eca 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/InstanceReferenceAlarmTable.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/InstanceReferenceAlarmTable.java
@@ -18,18 +18,11 @@
 
 package org.apache.skywalking.apm.collector.storage.table.alarm;
 
-import org.apache.skywalking.apm.collector.storage.table.CommonMetricTable;
+import org.apache.skywalking.apm.collector.storage.table.ReferenceColumns;
 
 /**
  * @author peng-yongsheng
  */
-public class InstanceReferenceAlarmTable extends CommonMetricTable {
-    public static final String TABLE = "instance_reference_alarm";
-    public static final String COLUMN_FRONT_INSTANCE_ID = "front_instance_id";
-    public static final String COLUMN_BEHIND_INSTANCE_ID = "behind_instance_id";
-    public static final String COLUMN_FRONT_APPLICATION_ID = "front_application_id";
-    public static final String COLUMN_BEHIND_APPLICATION_ID = "behind_application_id";
-    public static final String COLUMN_ALARM_TYPE = "alarm_type";
-    public static final String COLUMN_LAST_TIME_BUCKET = "last_time_bucket";
-    public static final String COLUMN_ALARM_CONTENT = "alarm_content";
+public interface InstanceReferenceAlarmTable extends ReferenceColumns, AlarmColumns {
+    String TABLE = "instance_reference_alarm";
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ServiceAlarm.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ServiceAlarm.java
index 02cca1a0a..6db644e93 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ServiceAlarm.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ServiceAlarm.java
@@ -31,22 +31,22 @@
 public class ServiceAlarm extends StreamData implements Alarm {
 
     private static final Column[] STRING_COLUMNS = {
-        new Column(ServiceAlarmTable.COLUMN_ID, new NonMergeOperation()),
-        new Column(ServiceAlarmTable.COLUMN_ALARM_CONTENT, new CoverMergeOperation()),
+        new Column(ServiceAlarmTable.ID, new NonMergeOperation()),
+        new Column(ServiceAlarmTable.ALARM_CONTENT, new CoverMergeOperation()),
     };
 
     private static final Column[] LONG_COLUMNS = {
-        new Column(ServiceAlarmTable.COLUMN_LAST_TIME_BUCKET, new CoverMergeOperation()),
+        new Column(ServiceAlarmTable.LAST_TIME_BUCKET, new CoverMergeOperation()),
     };
 
     private static final Column[] DOUBLE_COLUMNS = {};
 
     private static final Column[] INTEGER_COLUMNS = {
-        new Column(ServiceAlarmTable.COLUMN_ALARM_TYPE, new NonMergeOperation()),
-        new Column(ServiceAlarmTable.COLUMN_SOURCE_VALUE, new NonMergeOperation()),
-        new Column(ServiceAlarmTable.COLUMN_APPLICATION_ID, new NonMergeOperation()),
-        new Column(ServiceAlarmTable.COLUMN_INSTANCE_ID, new NonMergeOperation()),
-        new Column(ServiceAlarmTable.COLUMN_SERVICE_ID, new NonMergeOperation()),
+        new Column(ServiceAlarmTable.ALARM_TYPE, new NonMergeOperation()),
+        new Column(ServiceAlarmTable.SOURCE_VALUE, new NonMergeOperation()),
+        new Column(ServiceAlarmTable.APPLICATION_ID, new NonMergeOperation()),
+        new Column(ServiceAlarmTable.INSTANCE_ID, new NonMergeOperation()),
+        new Column(ServiceAlarmTable.SERVICE_ID, new NonMergeOperation()),
     };
 
     private static final Column[] BYTE_COLUMNS = {};
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ServiceAlarmList.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ServiceAlarmList.java
index 1b2029338..252bfa639 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ServiceAlarmList.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ServiceAlarmList.java
@@ -31,22 +31,22 @@
 public class ServiceAlarmList extends StreamData {
 
     private static final Column[] STRING_COLUMNS = {
-        new Column(ServiceAlarmListTable.COLUMN_ID, new NonMergeOperation()),
-        new Column(ServiceAlarmListTable.COLUMN_ALARM_CONTENT, new CoverMergeOperation()),
+        new Column(ServiceAlarmListTable.ID, new NonMergeOperation()),
+        new Column(ServiceAlarmListTable.ALARM_CONTENT, new CoverMergeOperation()),
     };
 
     private static final Column[] LONG_COLUMNS = {
-        new Column(ServiceAlarmListTable.COLUMN_TIME_BUCKET, new NonMergeOperation()),
+        new Column(ServiceAlarmListTable.TIME_BUCKET, new NonMergeOperation()),
     };
 
     private static final Column[] DOUBLE_COLUMNS = {};
 
     private static final Column[] INTEGER_COLUMNS = {
-        new Column(ServiceAlarmListTable.COLUMN_ALARM_TYPE, new NonMergeOperation()),
-        new Column(ServiceAlarmListTable.COLUMN_SOURCE_VALUE, new NonMergeOperation()),
-        new Column(ServiceAlarmListTable.COLUMN_APPLICATION_ID, new NonMergeOperation()),
-        new Column(ServiceAlarmListTable.COLUMN_INSTANCE_ID, new NonMergeOperation()),
-        new Column(ServiceAlarmListTable.COLUMN_SERVICE_ID, new NonMergeOperation()),
+        new Column(ServiceAlarmListTable.ALARM_TYPE, new NonMergeOperation()),
+        new Column(ServiceAlarmListTable.SOURCE_VALUE, new NonMergeOperation()),
+        new Column(ServiceAlarmListTable.APPLICATION_ID, new NonMergeOperation()),
+        new Column(ServiceAlarmListTable.INSTANCE_ID, new NonMergeOperation()),
+        new Column(ServiceAlarmListTable.SERVICE_ID, new NonMergeOperation()),
     };
 
     private static final Column[] BYTE_COLUMNS = {};
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ServiceAlarmListTable.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ServiceAlarmListTable.java
index d1802b9db..2ee0e0f0a 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ServiceAlarmListTable.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ServiceAlarmListTable.java
@@ -18,13 +18,11 @@
 
 package org.apache.skywalking.apm.collector.storage.table.alarm;
 
-import org.apache.skywalking.apm.collector.storage.table.CommonMetricTable;
+import org.apache.skywalking.apm.collector.storage.table.register.RegisterColumns;
 
 /**
  * @author peng-yongsheng
  */
-public class ServiceAlarmListTable extends CommonMetricTable {
-    public static final String TABLE = "service_alarm_list";
-    public static final String COLUMN_ALARM_TYPE = "alarm_type";
-    public static final String COLUMN_ALARM_CONTENT = "alarm_content";
+public interface ServiceAlarmListTable extends RegisterColumns, AlarmColumns {
+    String TABLE = "service_alarm_list";
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ServiceAlarmTable.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ServiceAlarmTable.java
index 451c18f07..8f9b677bd 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ServiceAlarmTable.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ServiceAlarmTable.java
@@ -18,14 +18,11 @@
 
 package org.apache.skywalking.apm.collector.storage.table.alarm;
 
-import org.apache.skywalking.apm.collector.storage.table.CommonMetricTable;
+import org.apache.skywalking.apm.collector.storage.table.register.RegisterColumns;
 
 /**
  * @author peng-yongsheng
  */
-public class ServiceAlarmTable extends CommonMetricTable {
-    public static final String TABLE = "service_alarm";
-    public static final String COLUMN_ALARM_TYPE = "alarm_type";
-    public static final String COLUMN_LAST_TIME_BUCKET = "last_time_bucket";
-    public static final String COLUMN_ALARM_CONTENT = "alarm_content";
+public interface ServiceAlarmTable extends RegisterColumns, AlarmColumns {
+    String TABLE = "service_alarm";
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ServiceReferenceAlarm.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ServiceReferenceAlarm.java
index a17706e2b..0c3f15dbd 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ServiceReferenceAlarm.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ServiceReferenceAlarm.java
@@ -29,25 +29,25 @@
 public class ServiceReferenceAlarm extends StreamData implements Alarm {
 
     private static final Column[] STRING_COLUMNS = {
-        new Column(ServiceReferenceAlarmTable.COLUMN_ID, new NonMergeOperation()),
-        new Column(ServiceReferenceAlarmTable.COLUMN_ALARM_CONTENT, new CoverMergeOperation()),
+        new Column(ServiceReferenceAlarmTable.ID, new NonMergeOperation()),
+        new Column(ServiceReferenceAlarmTable.ALARM_CONTENT, new CoverMergeOperation()),
     };
 
     private static final Column[] LONG_COLUMNS = {
-        new Column(ServiceReferenceAlarmTable.COLUMN_LAST_TIME_BUCKET, new CoverMergeOperation()),
+        new Column(ServiceReferenceAlarmTable.LAST_TIME_BUCKET, new CoverMergeOperation()),
     };
 
     private static final Column[] DOUBLE_COLUMNS = {};
 
     private static final Column[] INTEGER_COLUMNS = {
-        new Column(ServiceReferenceAlarmTable.COLUMN_ALARM_TYPE, new NonMergeOperation()),
-        new Column(ServiceReferenceAlarmTable.COLUMN_SOURCE_VALUE, new NonMergeOperation()),
-        new Column(ServiceReferenceAlarmTable.COLUMN_FRONT_APPLICATION_ID, new NonMergeOperation()),
-        new Column(ServiceReferenceAlarmTable.COLUMN_BEHIND_APPLICATION_ID, new NonMergeOperation()),
-        new Column(ServiceReferenceAlarmTable.COLUMN_FRONT_INSTANCE_ID, new NonMergeOperation()),
-        new Column(ServiceReferenceAlarmTable.COLUMN_BEHIND_INSTANCE_ID, new NonMergeOperation()),
-        new Column(ServiceReferenceAlarmTable.COLUMN_FRONT_SERVICE_ID, new NonMergeOperation()),
-        new Column(ServiceReferenceAlarmTable.COLUMN_BEHIND_SERVICE_ID, new NonMergeOperation()),
+        new Column(ServiceReferenceAlarmTable.ALARM_TYPE, new NonMergeOperation()),
+        new Column(ServiceReferenceAlarmTable.SOURCE_VALUE, new NonMergeOperation()),
+        new Column(ServiceReferenceAlarmTable.FRONT_APPLICATION_ID, new NonMergeOperation()),
+        new Column(ServiceReferenceAlarmTable.BEHIND_APPLICATION_ID, new NonMergeOperation()),
+        new Column(ServiceReferenceAlarmTable.FRONT_INSTANCE_ID, new NonMergeOperation()),
+        new Column(ServiceReferenceAlarmTable.BEHIND_INSTANCE_ID, new NonMergeOperation()),
+        new Column(ServiceReferenceAlarmTable.FRONT_SERVICE_ID, new NonMergeOperation()),
+        new Column(ServiceReferenceAlarmTable.BEHIND_SERVICE_ID, new NonMergeOperation()),
     };
 
     private static final Column[] BYTE_COLUMNS = {};
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ServiceReferenceAlarmList.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ServiceReferenceAlarmList.java
index 544d38be5..586a9eec4 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ServiceReferenceAlarmList.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ServiceReferenceAlarmList.java
@@ -29,25 +29,25 @@
 public class ServiceReferenceAlarmList extends StreamData {
 
     private static final Column[] STRING_COLUMNS = {
-        new Column(ServiceReferenceAlarmListTable.COLUMN_ID, new NonMergeOperation()),
-        new Column(ServiceReferenceAlarmListTable.COLUMN_ALARM_CONTENT, new CoverMergeOperation()),
+        new Column(ServiceReferenceAlarmListTable.ID, new NonMergeOperation()),
+        new Column(ServiceReferenceAlarmListTable.ALARM_CONTENT, new CoverMergeOperation()),
     };
 
     private static final Column[] LONG_COLUMNS = {
-        new Column(ServiceReferenceAlarmListTable.COLUMN_TIME_BUCKET, new NonMergeOperation()),
+        new Column(ServiceReferenceAlarmListTable.TIME_BUCKET, new NonMergeOperation()),
     };
 
     private static final Column[] DOUBLE_COLUMNS = {};
 
     private static final Column[] INTEGER_COLUMNS = {
-        new Column(ServiceReferenceAlarmListTable.COLUMN_ALARM_TYPE, new NonMergeOperation()),
-        new Column(ServiceReferenceAlarmListTable.COLUMN_SOURCE_VALUE, new NonMergeOperation()),
-        new Column(ServiceReferenceAlarmListTable.COLUMN_FRONT_APPLICATION_ID, new NonMergeOperation()),
-        new Column(ServiceReferenceAlarmListTable.COLUMN_BEHIND_APPLICATION_ID, new NonMergeOperation()),
-        new Column(ServiceReferenceAlarmListTable.COLUMN_FRONT_INSTANCE_ID, new NonMergeOperation()),
-        new Column(ServiceReferenceAlarmListTable.COLUMN_BEHIND_INSTANCE_ID, new NonMergeOperation()),
-        new Column(ServiceReferenceAlarmListTable.COLUMN_FRONT_SERVICE_ID, new NonMergeOperation()),
-        new Column(ServiceReferenceAlarmListTable.COLUMN_BEHIND_SERVICE_ID, new NonMergeOperation()),
+        new Column(ServiceReferenceAlarmListTable.ALARM_TYPE, new NonMergeOperation()),
+        new Column(ServiceReferenceAlarmListTable.SOURCE_VALUE, new NonMergeOperation()),
+        new Column(ServiceReferenceAlarmListTable.FRONT_APPLICATION_ID, new NonMergeOperation()),
+        new Column(ServiceReferenceAlarmListTable.BEHIND_APPLICATION_ID, new NonMergeOperation()),
+        new Column(ServiceReferenceAlarmListTable.FRONT_INSTANCE_ID, new NonMergeOperation()),
+        new Column(ServiceReferenceAlarmListTable.BEHIND_INSTANCE_ID, new NonMergeOperation()),
+        new Column(ServiceReferenceAlarmListTable.FRONT_SERVICE_ID, new NonMergeOperation()),
+        new Column(ServiceReferenceAlarmListTable.BEHIND_SERVICE_ID, new NonMergeOperation()),
     };
 
     private static final Column[] BYTE_COLUMNS = {};
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ServiceReferenceAlarmListTable.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ServiceReferenceAlarmListTable.java
index 24674f34a..1fc15d070 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ServiceReferenceAlarmListTable.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ServiceReferenceAlarmListTable.java
@@ -18,19 +18,11 @@
 
 package org.apache.skywalking.apm.collector.storage.table.alarm;
 
-import org.apache.skywalking.apm.collector.storage.table.CommonMetricTable;
+import org.apache.skywalking.apm.collector.storage.table.ReferenceColumns;
 
 /**
  * @author peng-yongsheng
  */
-public class ServiceReferenceAlarmListTable extends CommonMetricTable {
-    public static final String TABLE = "service_reference_alarm_list";
-    public static final String COLUMN_FRONT_SERVICE_ID = "front_service_id";
-    public static final String COLUMN_BEHIND_SERVICE_ID = "behind_service_id";
-    public static final String COLUMN_FRONT_INSTANCE_ID = "front_instance_id";
-    public static final String COLUMN_BEHIND_INSTANCE_ID = "behind_instance_id";
-    public static final String COLUMN_FRONT_APPLICATION_ID = "front_application_id";
-    public static final String COLUMN_BEHIND_APPLICATION_ID = "behind_application_id";
-    public static final String COLUMN_ALARM_TYPE = "alarm_type";
-    public static final String COLUMN_ALARM_CONTENT = "alarm_content";
+public interface ServiceReferenceAlarmListTable extends ReferenceColumns, AlarmColumns {
+    String TABLE = "service_reference_alarm_list";
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ServiceReferenceAlarmTable.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ServiceReferenceAlarmTable.java
index b04227dce..87bec3bfc 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ServiceReferenceAlarmTable.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/alarm/ServiceReferenceAlarmTable.java
@@ -18,20 +18,11 @@
 
 package org.apache.skywalking.apm.collector.storage.table.alarm;
 
-import org.apache.skywalking.apm.collector.storage.table.CommonMetricTable;
+import org.apache.skywalking.apm.collector.storage.table.ReferenceColumns;
 
 /**
  * @author peng-yongsheng
  */
-public class ServiceReferenceAlarmTable extends CommonMetricTable {
-    public static final String TABLE = "service_reference_alarm";
-    public static final String COLUMN_FRONT_SERVICE_ID = "front_service_id";
-    public static final String COLUMN_BEHIND_SERVICE_ID = "behind_service_id";
-    public static final String COLUMN_FRONT_INSTANCE_ID = "front_instance_id";
-    public static final String COLUMN_BEHIND_INSTANCE_ID = "behind_instance_id";
-    public static final String COLUMN_FRONT_APPLICATION_ID = "front_application_id";
-    public static final String COLUMN_BEHIND_APPLICATION_ID = "behind_application_id";
-    public static final String COLUMN_ALARM_TYPE = "alarm_type";
-    public static final String COLUMN_LAST_TIME_BUCKET = "last_time_bucket";
-    public static final String COLUMN_ALARM_CONTENT = "alarm_content";
+public interface ServiceReferenceAlarmTable extends ReferenceColumns, AlarmColumns {
+    String TABLE = "service_reference_alarm";
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/application/ApplicationComponent.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/application/ApplicationComponent.java
index e5ce6b4c4..f053c5dcb 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/application/ApplicationComponent.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/application/ApplicationComponent.java
@@ -31,19 +31,19 @@
 public class ApplicationComponent extends StreamData {
 
     private static final Column[] STRING_COLUMNS = {
-        new Column(ApplicationComponentTable.COLUMN_ID, new NonMergeOperation()),
-        new Column(ApplicationComponentTable.COLUMN_METRIC_ID, new NonMergeOperation()),
+        new Column(ApplicationComponentTable.ID, new NonMergeOperation()),
+        new Column(ApplicationComponentTable.METRIC_ID, new NonMergeOperation()),
     };
 
     private static final Column[] LONG_COLUMNS = {
-        new Column(ApplicationComponentTable.COLUMN_TIME_BUCKET, new CoverMergeOperation()),
+        new Column(ApplicationComponentTable.TIME_BUCKET, new CoverMergeOperation()),
     };
 
     private static final Column[] DOUBLE_COLUMNS = {};
 
     private static final Column[] INTEGER_COLUMNS = {
-        new Column(ApplicationComponentTable.COLUMN_COMPONENT_ID, new CoverMergeOperation()),
-        new Column(ApplicationComponentTable.COLUMN_APPLICATION_ID, new CoverMergeOperation()),
+        new Column(ApplicationComponentTable.COMPONENT_ID, new CoverMergeOperation()),
+        new Column(ApplicationComponentTable.APPLICATION_ID, new CoverMergeOperation()),
     };
 
     private static final Column[] BYTE_COLUMNS = {};
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/application/ApplicationComponentTable.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/application/ApplicationComponentTable.java
index 921398cdf..249dab6a5 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/application/ApplicationComponentTable.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/application/ApplicationComponentTable.java
@@ -18,13 +18,15 @@
 
 package org.apache.skywalking.apm.collector.storage.table.application;
 
+import org.apache.skywalking.apm.collector.core.data.ColumnName;
 import org.apache.skywalking.apm.collector.core.data.CommonTable;
+import org.apache.skywalking.apm.collector.storage.table.register.RegisterColumns;
 
 /**
  * @author peng-yongsheng
  */
-public class ApplicationComponentTable extends CommonTable {
-    public static final String TABLE = "application_component";
-    public static final String COLUMN_COMPONENT_ID = "component_id";
-    public static final String COLUMN_APPLICATION_ID = "application_id";
+public interface ApplicationComponentTable extends RegisterColumns, CommonTable {
+    String TABLE = "application_component";
+
+    ColumnName COMPONENT_ID = new ColumnName("component_id", "ci");
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/application/ApplicationMapping.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/application/ApplicationMapping.java
index 859ba58ed..249c1921e 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/application/ApplicationMapping.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/application/ApplicationMapping.java
@@ -31,19 +31,19 @@
 public class ApplicationMapping extends StreamData {
 
     private static final Column[] STRING_COLUMNS = {
-        new Column(ApplicationMappingTable.COLUMN_ID, new NonMergeOperation()),
-        new Column(ApplicationMappingTable.COLUMN_METRIC_ID, new NonMergeOperation()),
+        new Column(ApplicationMappingTable.ID, new NonMergeOperation()),
+        new Column(ApplicationMappingTable.METRIC_ID, new NonMergeOperation()),
     };
 
     private static final Column[] LONG_COLUMNS = {
-        new Column(ApplicationMappingTable.COLUMN_TIME_BUCKET, new CoverMergeOperation()),
+        new Column(ApplicationMappingTable.TIME_BUCKET, new CoverMergeOperation()),
     };
 
     private static final Column[] DOUBLE_COLUMNS = {};
 
     private static final Column[] INTEGER_COLUMNS = {
-        new Column(ApplicationMappingTable.COLUMN_APPLICATION_ID, new CoverMergeOperation()),
-        new Column(ApplicationMappingTable.COLUMN_MAPPING_APPLICATION_ID, new CoverMergeOperation()),
+        new Column(ApplicationMappingTable.APPLICATION_ID, new CoverMergeOperation()),
+        new Column(ApplicationMappingTable.MAPPING_APPLICATION_ID, new CoverMergeOperation()),
     };
 
     private static final Column[] BYTE_COLUMNS = {};
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/application/ApplicationMappingTable.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/application/ApplicationMappingTable.java
index fbaa49e24..c70c98377 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/application/ApplicationMappingTable.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/application/ApplicationMappingTable.java
@@ -18,13 +18,15 @@
 
 package org.apache.skywalking.apm.collector.storage.table.application;
 
+import org.apache.skywalking.apm.collector.core.data.ColumnName;
 import org.apache.skywalking.apm.collector.core.data.CommonTable;
+import org.apache.skywalking.apm.collector.storage.table.register.RegisterColumns;
 
 /**
  * @author peng-yongsheng
  */
-public class ApplicationMappingTable extends CommonTable {
-    public static final String TABLE = "application_mapping";
-    public static final String COLUMN_APPLICATION_ID = "application_id";
-    public static final String COLUMN_MAPPING_APPLICATION_ID = "mapping_application_id";
+public interface ApplicationMappingTable extends RegisterColumns, CommonTable {
+    String TABLE = "application_mapping";
+
+    ColumnName MAPPING_APPLICATION_ID = new ColumnName("mapping_application_id", "mai");
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/application/ApplicationMetric.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/application/ApplicationMetric.java
index cadf691bd..d62e5d5f8 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/application/ApplicationMetric.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/application/ApplicationMetric.java
@@ -33,37 +33,37 @@
 public class ApplicationMetric extends StreamData implements Metric {
 
     private static final Column[] STRING_COLUMNS = {
-        new Column(ApplicationMetricTable.COLUMN_ID, new NonMergeOperation()),
-        new Column(ApplicationMetricTable.COLUMN_METRIC_ID, new NonMergeOperation()),
+        new Column(ApplicationMetricTable.ID, new NonMergeOperation()),
+        new Column(ApplicationMetricTable.METRIC_ID, new NonMergeOperation()),
     };
 
     private static final Column[] LONG_COLUMNS = {
-        new Column(ApplicationMetricTable.COLUMN_TIME_BUCKET, new NonMergeOperation()),
-
-        new Column(ApplicationMetricTable.COLUMN_TRANSACTION_CALLS, new AddMergeOperation()),
-        new Column(ApplicationMetricTable.COLUMN_TRANSACTION_ERROR_CALLS, new AddMergeOperation()),
-        new Column(ApplicationMetricTable.COLUMN_TRANSACTION_DURATION_SUM, new AddMergeOperation()),
-        new Column(ApplicationMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM, new AddMergeOperation()),
-        new Column(ApplicationMetricTable.COLUMN_TRANSACTION_AVERAGE_DURATION, new NonMergeOperation(), new TransactionAverageDurationFormulaOperation()),
-        new Column(ApplicationMetricTable.COLUMN_BUSINESS_TRANSACTION_CALLS, new AddMergeOperation()),
-        new Column(ApplicationMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_CALLS, new AddMergeOperation()),
-        new Column(ApplicationMetricTable.COLUMN_BUSINESS_TRANSACTION_DURATION_SUM, new AddMergeOperation()),
-        new Column(ApplicationMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_DURATION_SUM, new AddMergeOperation()),
-        new Column(ApplicationMetricTable.COLUMN_BUSINESS_TRANSACTION_AVERAGE_DURATION, new NonMergeOperation(), new BusinessTransactionAverageDurationFormulaOperation()),
-        new Column(ApplicationMetricTable.COLUMN_MQ_TRANSACTION_CALLS, new AddMergeOperation()),
-        new Column(ApplicationMetricTable.COLUMN_MQ_TRANSACTION_ERROR_CALLS, new AddMergeOperation()),
-        new Column(ApplicationMetricTable.COLUMN_MQ_TRANSACTION_DURATION_SUM, new AddMergeOperation()),
-        new Column(ApplicationMetricTable.COLUMN_MQ_TRANSACTION_ERROR_DURATION_SUM, new AddMergeOperation()),
-        new Column(ApplicationMetricTable.COLUMN_MQ_TRANSACTION_AVERAGE_DURATION, new NonMergeOperation(), new MqTransactionAverageDurationFormulaOperation()),
-        new Column(ApplicationMetricTable.COLUMN_SATISFIED_COUNT, new AddMergeOperation()),
-        new Column(ApplicationMetricTable.COLUMN_TOLERATING_COUNT, new AddMergeOperation()),
-        new Column(ApplicationMetricTable.COLUMN_FRUSTRATED_COUNT, new AddMergeOperation()),
+        new Column(ApplicationMetricTable.TIME_BUCKET, new NonMergeOperation()),
+
+        new Column(ApplicationMetricTable.TRANSACTION_CALLS, new AddMergeOperation()),
+        new Column(ApplicationMetricTable.TRANSACTION_ERROR_CALLS, new AddMergeOperation()),
+        new Column(ApplicationMetricTable.TRANSACTION_DURATION_SUM, new AddMergeOperation()),
+        new Column(ApplicationMetricTable.TRANSACTION_ERROR_DURATION_SUM, new AddMergeOperation()),
+        new Column(ApplicationMetricTable.TRANSACTION_AVERAGE_DURATION, new NonMergeOperation(), new TransactionAverageDurationFormulaOperation()),
+        new Column(ApplicationMetricTable.BUSINESS_TRANSACTION_CALLS, new AddMergeOperation()),
+        new Column(ApplicationMetricTable.BUSINESS_TRANSACTION_ERROR_CALLS, new AddMergeOperation()),
+        new Column(ApplicationMetricTable.BUSINESS_TRANSACTION_DURATION_SUM, new AddMergeOperation()),
+        new Column(ApplicationMetricTable.BUSINESS_TRANSACTION_ERROR_DURATION_SUM, new AddMergeOperation()),
+        new Column(ApplicationMetricTable.BUSINESS_TRANSACTION_AVERAGE_DURATION, new NonMergeOperation(), new BusinessTransactionAverageDurationFormulaOperation()),
+        new Column(ApplicationMetricTable.MQ_TRANSACTION_CALLS, new AddMergeOperation()),
+        new Column(ApplicationMetricTable.MQ_TRANSACTION_ERROR_CALLS, new AddMergeOperation()),
+        new Column(ApplicationMetricTable.MQ_TRANSACTION_DURATION_SUM, new AddMergeOperation()),
+        new Column(ApplicationMetricTable.MQ_TRANSACTION_ERROR_DURATION_SUM, new AddMergeOperation()),
+        new Column(ApplicationMetricTable.MQ_TRANSACTION_AVERAGE_DURATION, new NonMergeOperation(), new MqTransactionAverageDurationFormulaOperation()),
+        new Column(ApplicationMetricTable.SATISFIED_COUNT, new AddMergeOperation()),
+        new Column(ApplicationMetricTable.TOLERATING_COUNT, new AddMergeOperation()),
+        new Column(ApplicationMetricTable.FRUSTRATED_COUNT, new AddMergeOperation()),
     };
     private static final Column[] DOUBLE_COLUMNS = {};
 
     private static final Column[] INTEGER_COLUMNS = {
-        new Column(ApplicationMetricTable.COLUMN_SOURCE_VALUE, new NonMergeOperation()),
-        new Column(ApplicationMetricTable.COLUMN_APPLICATION_ID, new NonMergeOperation()),
+        new Column(ApplicationMetricTable.SOURCE_VALUE, new NonMergeOperation()),
+        new Column(ApplicationMetricTable.APPLICATION_ID, new NonMergeOperation()),
     };
 
     private static final Column[] BYTE_COLUMNS = {};
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/application/ApplicationMetricTable.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/application/ApplicationMetricTable.java
index 7685493bc..4cb07d43d 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/application/ApplicationMetricTable.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/application/ApplicationMetricTable.java
@@ -16,18 +16,14 @@
  *
  */
 
-
 package org.apache.skywalking.apm.collector.storage.table.application;
 
-import org.apache.skywalking.apm.collector.storage.table.CommonMetricTable;
+import org.apache.skywalking.apm.collector.storage.table.MetricColumns;
+import org.apache.skywalking.apm.collector.storage.table.register.RegisterColumns;
 
 /**
  * @author peng-yongsheng
  */
-public class ApplicationMetricTable extends CommonMetricTable {
-    public static final String TABLE = "application_metric";
-    public static final String COLUMN_APPLICATION_ID = "application_id";
-    public static final String COLUMN_SATISFIED_COUNT = "satisfied_count";
-    public static final String COLUMN_TOLERATING_COUNT = "tolerating_count";
-    public static final String COLUMN_FRUSTRATED_COUNT = "frustrated_count";
+public interface ApplicationMetricTable extends MetricColumns, RegisterColumns {
+    String TABLE = "application_metric";
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/application/ApplicationReferenceMetric.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/application/ApplicationReferenceMetric.java
index a0726e3d1..8124ef749 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/application/ApplicationReferenceMetric.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/application/ApplicationReferenceMetric.java
@@ -33,39 +33,40 @@
 public class ApplicationReferenceMetric extends StreamData implements Metric {
 
     private static final Column[] STRING_COLUMNS = {
-        new Column(ApplicationReferenceMetricTable.COLUMN_ID, new NonMergeOperation()),
-        new Column(ApplicationReferenceMetricTable.COLUMN_METRIC_ID, new NonMergeOperation()),
+        new Column(ApplicationReferenceMetricTable.ID, new NonMergeOperation()),
+        new Column(ApplicationReferenceMetricTable.METRIC_ID, new NonMergeOperation()),
     };
 
     private static final Column[] LONG_COLUMNS = {
-        new Column(ApplicationReferenceMetricTable.COLUMN_TIME_BUCKET, new NonMergeOperation()),
-
-        new Column(ApplicationReferenceMetricTable.COLUMN_TRANSACTION_CALLS, new AddMergeOperation()),
-        new Column(ApplicationReferenceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS, new AddMergeOperation()),
-        new Column(ApplicationReferenceMetricTable.COLUMN_TRANSACTION_DURATION_SUM, new AddMergeOperation()),
-        new Column(ApplicationReferenceMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM, new AddMergeOperation()),
-        new Column(ApplicationReferenceMetricTable.COLUMN_TRANSACTION_AVERAGE_DURATION, new NonMergeOperation(), new TransactionAverageDurationFormulaOperation()),
-        new Column(ApplicationReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_CALLS, new AddMergeOperation()),
-        new Column(ApplicationReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_CALLS, new AddMergeOperation()),
-        new Column(ApplicationReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_DURATION_SUM, new AddMergeOperation()),
-        new Column(ApplicationReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_DURATION_SUM, new AddMergeOperation()),
-        new Column(ApplicationReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_AVERAGE_DURATION, new NonMergeOperation(), new BusinessTransactionAverageDurationFormulaOperation()),
-        new Column(ApplicationReferenceMetricTable.COLUMN_MQ_TRANSACTION_CALLS, new AddMergeOperation()),
-        new Column(ApplicationReferenceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_CALLS, new AddMergeOperation()),
-        new Column(ApplicationReferenceMetricTable.COLUMN_MQ_TRANSACTION_DURATION_SUM, new AddMergeOperation()),
-        new Column(ApplicationReferenceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_DURATION_SUM, new AddMergeOperation()),
-        new Column(ApplicationReferenceMetricTable.COLUMN_MQ_TRANSACTION_AVERAGE_DURATION, new NonMergeOperation(), new MqTransactionAverageDurationFormulaOperation()),
-
-        new Column(ApplicationReferenceMetricTable.COLUMN_SATISFIED_COUNT, new AddMergeOperation()),
-        new Column(ApplicationReferenceMetricTable.COLUMN_TOLERATING_COUNT, new AddMergeOperation()),
-        new Column(ApplicationReferenceMetricTable.COLUMN_FRUSTRATED_COUNT, new AddMergeOperation()),
+        new Column(ApplicationReferenceMetricTable.TIME_BUCKET, new NonMergeOperation()),
+
+        new Column(ApplicationReferenceMetricTable.TRANSACTION_CALLS, new AddMergeOperation()),
+        new Column(ApplicationReferenceMetricTable.TRANSACTION_ERROR_CALLS, new AddMergeOperation()),
+        new Column(ApplicationReferenceMetricTable.TRANSACTION_DURATION_SUM, new AddMergeOperation()),
+        new Column(ApplicationReferenceMetricTable.TRANSACTION_ERROR_DURATION_SUM, new AddMergeOperation()),
+        new Column(ApplicationReferenceMetricTable.TRANSACTION_AVERAGE_DURATION, new NonMergeOperation(), new TransactionAverageDurationFormulaOperation()),
+        new Column(ApplicationReferenceMetricTable.BUSINESS_TRANSACTION_CALLS, new AddMergeOperation()),
+        new Column(ApplicationReferenceMetricTable.BUSINESS_TRANSACTION_ERROR_CALLS, new AddMergeOperation()),
+        new Column(ApplicationReferenceMetricTable.BUSINESS_TRANSACTION_DURATION_SUM, new AddMergeOperation()),
+        new Column(ApplicationReferenceMetricTable.BUSINESS_TRANSACTION_ERROR_DURATION_SUM, new AddMergeOperation()),
+        new Column(ApplicationReferenceMetricTable.BUSINESS_TRANSACTION_AVERAGE_DURATION, new NonMergeOperation(), new BusinessTransactionAverageDurationFormulaOperation()),
+        new Column(ApplicationReferenceMetricTable.MQ_TRANSACTION_CALLS, new AddMergeOperation()),
+        new Column(ApplicationReferenceMetricTable.MQ_TRANSACTION_ERROR_CALLS, new AddMergeOperation()),
+        new Column(ApplicationReferenceMetricTable.MQ_TRANSACTION_DURATION_SUM, new AddMergeOperation()),
+        new Column(ApplicationReferenceMetricTable.MQ_TRANSACTION_ERROR_DURATION_SUM, new AddMergeOperation()),
+        new Column(ApplicationReferenceMetricTable.MQ_TRANSACTION_AVERAGE_DURATION, new NonMergeOperation(), new MqTransactionAverageDurationFormulaOperation()),
+
+        new Column(ApplicationReferenceMetricTable.SATISFIED_COUNT, new AddMergeOperation()),
+        new Column(ApplicationReferenceMetricTable.TOLERATING_COUNT, new AddMergeOperation()),
+        new Column(ApplicationReferenceMetricTable.FRUSTRATED_COUNT, new AddMergeOperation()),
     };
+
     private static final Column[] DOUBLE_COLUMNS = {};
 
     private static final Column[] INTEGER_COLUMNS = {
-        new Column(ApplicationReferenceMetricTable.COLUMN_SOURCE_VALUE, new NonMergeOperation()),
-        new Column(ApplicationReferenceMetricTable.COLUMN_FRONT_APPLICATION_ID, new NonMergeOperation()),
-        new Column(ApplicationReferenceMetricTable.COLUMN_BEHIND_APPLICATION_ID, new NonMergeOperation()),
+        new Column(ApplicationReferenceMetricTable.SOURCE_VALUE, new NonMergeOperation()),
+        new Column(ApplicationReferenceMetricTable.FRONT_APPLICATION_ID, new NonMergeOperation()),
+        new Column(ApplicationReferenceMetricTable.BEHIND_APPLICATION_ID, new NonMergeOperation()),
     };
 
     private static final Column[] BYTE_COLUMNS = {};
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/application/ApplicationReferenceMetricTable.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/application/ApplicationReferenceMetricTable.java
index 4034ad564..e3ea1fcf4 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/application/ApplicationReferenceMetricTable.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/application/ApplicationReferenceMetricTable.java
@@ -18,16 +18,12 @@
 
 package org.apache.skywalking.apm.collector.storage.table.application;
 
-import org.apache.skywalking.apm.collector.storage.table.CommonMetricTable;
+import org.apache.skywalking.apm.collector.storage.table.MetricColumns;
+import org.apache.skywalking.apm.collector.storage.table.ReferenceColumns;
 
 /**
  * @author peng-yongsheng
  */
-public class ApplicationReferenceMetricTable extends CommonMetricTable {
-    public static final String TABLE = "application_reference_metric";
-    public static final String COLUMN_FRONT_APPLICATION_ID = "front_application_id";
-    public static final String COLUMN_BEHIND_APPLICATION_ID = "behind_application_id";
-    public static final String COLUMN_SATISFIED_COUNT = "satisfied_count";
-    public static final String COLUMN_TOLERATING_COUNT = "tolerating_count";
-    public static final String COLUMN_FRUSTRATED_COUNT = "frustrated_count";
+public interface ApplicationReferenceMetricTable extends MetricColumns, ReferenceColumns {
+    String TABLE = "application_reference_metric";
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/global/GlobalTrace.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/global/GlobalTrace.java
index 2cf093726..bf6cb5429 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/global/GlobalTrace.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/global/GlobalTrace.java
@@ -29,13 +29,13 @@
 public class GlobalTrace extends StreamData {
 
     private static final Column[] STRING_COLUMNS = {
-        new Column(GlobalTraceTable.COLUMN_ID, new NonMergeOperation()),
-        new Column(GlobalTraceTable.COLUMN_SEGMENT_ID, new CoverMergeOperation()),
-        new Column(GlobalTraceTable.COLUMN_GLOBAL_TRACE_ID, new CoverMergeOperation()),
+        new Column(GlobalTraceTable.ID, new NonMergeOperation()),
+        new Column(GlobalTraceTable.SEGMENT_ID, new CoverMergeOperation()),
+        new Column(GlobalTraceTable.TRACE_ID, new CoverMergeOperation()),
     };
 
     private static final Column[] LONG_COLUMNS = {
-        new Column(GlobalTraceTable.COLUMN_TIME_BUCKET, new CoverMergeOperation()),
+        new Column(GlobalTraceTable.TIME_BUCKET, new CoverMergeOperation()),
     };
 
     private static final Column[] DOUBLE_COLUMNS = {};
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/global/GlobalTraceTable.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/global/GlobalTraceTable.java
index 6d2659518..41e79b8fb 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/global/GlobalTraceTable.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/global/GlobalTraceTable.java
@@ -16,16 +16,17 @@
  *
  */
 
-
 package org.apache.skywalking.apm.collector.storage.table.global;
 
+import org.apache.skywalking.apm.collector.core.data.ColumnName;
 import org.apache.skywalking.apm.collector.core.data.CommonTable;
+import org.apache.skywalking.apm.collector.storage.table.segment.SegmentTable;
 
 /**
  * @author peng-yongsheng
  */
-public class GlobalTraceTable extends CommonTable {
-    public static final String TABLE = "global_trace";
-    public static final String COLUMN_SEGMENT_ID = "segment_id";
-    public static final String COLUMN_GLOBAL_TRACE_ID = "global_trace_id";
+public interface GlobalTraceTable extends CommonTable, SegmentTable {
+    String TABLE = "global_trace";
+
+    ColumnName TRACE_ID = new ColumnName("trace_id", "ti");
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/instance/InstanceMapping.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/instance/InstanceMapping.java
index 6473b56d8..0b4677d18 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/instance/InstanceMapping.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/instance/InstanceMapping.java
@@ -31,20 +31,20 @@
 public class InstanceMapping extends StreamData {
 
     private static final Column[] STRING_COLUMNS = {
-        new Column(InstanceMappingTable.COLUMN_ID, new NonMergeOperation()),
-        new Column(InstanceMappingTable.COLUMN_METRIC_ID, new NonMergeOperation()),
+        new Column(InstanceMappingTable.ID, new NonMergeOperation()),
+        new Column(InstanceMappingTable.METRIC_ID, new NonMergeOperation()),
     };
 
     private static final Column[] LONG_COLUMNS = {
-        new Column(InstanceMappingTable.COLUMN_TIME_BUCKET, new CoverMergeOperation()),
+        new Column(InstanceMappingTable.TIME_BUCKET, new CoverMergeOperation()),
     };
 
     private static final Column[] DOUBLE_COLUMNS = {};
 
     private static final Column[] INTEGER_COLUMNS = {
-        new Column(InstanceMappingTable.COLUMN_APPLICATION_ID, new CoverMergeOperation()),
-        new Column(InstanceMappingTable.COLUMN_INSTANCE_ID, new CoverMergeOperation()),
-        new Column(InstanceMappingTable.COLUMN_ADDRESS_ID, new CoverMergeOperation()),
+        new Column(InstanceMappingTable.APPLICATION_ID, new CoverMergeOperation()),
+        new Column(InstanceMappingTable.INSTANCE_ID, new CoverMergeOperation()),
+        new Column(InstanceMappingTable.ADDRESS_ID, new CoverMergeOperation()),
     };
 
     private static final Column[] BYTE_COLUMNS = {};
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/instance/InstanceMappingTable.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/instance/InstanceMappingTable.java
index 609e389fa..2ff72466f 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/instance/InstanceMappingTable.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/instance/InstanceMappingTable.java
@@ -19,13 +19,11 @@
 package org.apache.skywalking.apm.collector.storage.table.instance;
 
 import org.apache.skywalking.apm.collector.core.data.CommonTable;
+import org.apache.skywalking.apm.collector.storage.table.register.RegisterColumns;
 
 /**
  * @author peng-yongsheng
  */
-public class InstanceMappingTable extends CommonTable {
-    public static final String TABLE = "instance_mapping";
-    public static final String COLUMN_APPLICATION_ID = "application_id";
-    public static final String COLUMN_INSTANCE_ID = "instance_id";
-    public static final String COLUMN_ADDRESS_ID = "address_id";
+public interface InstanceMappingTable extends RegisterColumns, CommonTable {
+    String TABLE = "instance_mapping";
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/instance/InstanceMetric.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/instance/InstanceMetric.java
index 90241351d..384b9436c 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/instance/InstanceMetric.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/instance/InstanceMetric.java
@@ -34,36 +34,36 @@
 public class InstanceMetric extends StreamData implements Metric {
 
     private static final Column[] STRING_COLUMNS = {
-        new Column(InstanceMetricTable.COLUMN_ID, new NonMergeOperation()),
-        new Column(InstanceMetricTable.COLUMN_METRIC_ID, new NonMergeOperation()),
+        new Column(InstanceMetricTable.ID, new NonMergeOperation()),
+        new Column(InstanceMetricTable.METRIC_ID, new NonMergeOperation()),
     };
 
     private static final Column[] LONG_COLUMNS = {
-        new Column(InstanceMetricTable.COLUMN_TIME_BUCKET, new NonMergeOperation()),
-
-        new Column(InstanceMetricTable.COLUMN_TRANSACTION_CALLS, new AddMergeOperation()),
-        new Column(InstanceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS, new AddMergeOperation()),
-        new Column(InstanceMetricTable.COLUMN_TRANSACTION_DURATION_SUM, new AddMergeOperation()),
-        new Column(InstanceMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM, new AddMergeOperation()),
-        new Column(InstanceMetricTable.COLUMN_TRANSACTION_AVERAGE_DURATION, new NonMergeOperation(), new TransactionAverageDurationFormulaOperation()),
-        new Column(InstanceMetricTable.COLUMN_BUSINESS_TRANSACTION_CALLS, new AddMergeOperation()),
-        new Column(InstanceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_CALLS, new AddMergeOperation()),
-        new Column(InstanceMetricTable.COLUMN_BUSINESS_TRANSACTION_DURATION_SUM, new AddMergeOperation()),
-        new Column(InstanceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_DURATION_SUM, new AddMergeOperation()),
-        new Column(InstanceMetricTable.COLUMN_BUSINESS_TRANSACTION_AVERAGE_DURATION, new NonMergeOperation(), new BusinessTransactionAverageDurationFormulaOperation()),
-        new Column(InstanceMetricTable.COLUMN_MQ_TRANSACTION_CALLS, new AddMergeOperation()),
-        new Column(InstanceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_CALLS, new AddMergeOperation()),
-        new Column(InstanceMetricTable.COLUMN_MQ_TRANSACTION_DURATION_SUM, new AddMergeOperation()),
-        new Column(InstanceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_DURATION_SUM, new AddMergeOperation()),
-        new Column(InstanceMetricTable.COLUMN_MQ_TRANSACTION_AVERAGE_DURATION, new NonMergeOperation(), new MqTransactionAverageDurationFormulaOperation()),
+        new Column(InstanceMetricTable.TIME_BUCKET, new NonMergeOperation()),
+
+        new Column(InstanceMetricTable.TRANSACTION_CALLS, new AddMergeOperation()),
+        new Column(InstanceMetricTable.TRANSACTION_ERROR_CALLS, new AddMergeOperation()),
+        new Column(InstanceMetricTable.TRANSACTION_DURATION_SUM, new AddMergeOperation()),
+        new Column(InstanceMetricTable.TRANSACTION_ERROR_DURATION_SUM, new AddMergeOperation()),
+        new Column(InstanceMetricTable.TRANSACTION_AVERAGE_DURATION, new NonMergeOperation(), new TransactionAverageDurationFormulaOperation()),
+        new Column(InstanceMetricTable.BUSINESS_TRANSACTION_CALLS, new AddMergeOperation()),
+        new Column(InstanceMetricTable.BUSINESS_TRANSACTION_ERROR_CALLS, new AddMergeOperation()),
+        new Column(InstanceMetricTable.BUSINESS_TRANSACTION_DURATION_SUM, new AddMergeOperation()),
+        new Column(InstanceMetricTable.BUSINESS_TRANSACTION_ERROR_DURATION_SUM, new AddMergeOperation()),
+        new Column(InstanceMetricTable.BUSINESS_TRANSACTION_AVERAGE_DURATION, new NonMergeOperation(), new BusinessTransactionAverageDurationFormulaOperation()),
+        new Column(InstanceMetricTable.MQ_TRANSACTION_CALLS, new AddMergeOperation()),
+        new Column(InstanceMetricTable.MQ_TRANSACTION_ERROR_CALLS, new AddMergeOperation()),
+        new Column(InstanceMetricTable.MQ_TRANSACTION_DURATION_SUM, new AddMergeOperation()),
+        new Column(InstanceMetricTable.MQ_TRANSACTION_ERROR_DURATION_SUM, new AddMergeOperation()),
+        new Column(InstanceMetricTable.MQ_TRANSACTION_AVERAGE_DURATION, new NonMergeOperation(), new MqTransactionAverageDurationFormulaOperation()),
     };
 
     private static final Column[] DOUBLE_COLUMNS = {};
 
     private static final Column[] INTEGER_COLUMNS = {
-        new Column(InstanceMetricTable.COLUMN_SOURCE_VALUE, new CoverMergeOperation()),
-        new Column(InstanceMetricTable.COLUMN_APPLICATION_ID, new CoverMergeOperation()),
-        new Column(InstanceMetricTable.COLUMN_INSTANCE_ID, new CoverMergeOperation()),
+        new Column(InstanceMetricTable.SOURCE_VALUE, new CoverMergeOperation()),
+        new Column(InstanceMetricTable.APPLICATION_ID, new CoverMergeOperation()),
+        new Column(InstanceMetricTable.INSTANCE_ID, new CoverMergeOperation()),
     };
 
     private static final Column[] BYTE_COLUMNS = {};
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/instance/InstanceMetricTable.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/instance/InstanceMetricTable.java
index 691a860e0..63eac38bc 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/instance/InstanceMetricTable.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/instance/InstanceMetricTable.java
@@ -16,16 +16,14 @@
  *
  */
 
-
 package org.apache.skywalking.apm.collector.storage.table.instance;
 
-import org.apache.skywalking.apm.collector.storage.table.CommonMetricTable;
+import org.apache.skywalking.apm.collector.storage.table.MetricColumns;
+import org.apache.skywalking.apm.collector.storage.table.register.RegisterColumns;
 
 /**
  * @author peng-yongsheng
  */
-public class InstanceMetricTable extends CommonMetricTable {
-    public static final String TABLE = "instance_metric";
-    public static final String COLUMN_APPLICATION_ID = "application_id";
-    public static final String COLUMN_INSTANCE_ID = "instance_id";
+public interface InstanceMetricTable extends MetricColumns, RegisterColumns {
+    String TABLE = "instance_metric";
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/instance/InstanceReferenceMetric.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/instance/InstanceReferenceMetric.java
index 012d3d130..75c26f8f6 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/instance/InstanceReferenceMetric.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/instance/InstanceReferenceMetric.java
@@ -33,38 +33,38 @@
 public class InstanceReferenceMetric extends StreamData implements Metric {
 
     private static final Column[] STRING_COLUMNS = {
-        new Column(InstanceReferenceMetricTable.COLUMN_ID, new NonMergeOperation()),
-        new Column(InstanceReferenceMetricTable.COLUMN_METRIC_ID, new NonMergeOperation()),
+        new Column(InstanceReferenceMetricTable.ID, new NonMergeOperation()),
+        new Column(InstanceReferenceMetricTable.METRIC_ID, new NonMergeOperation()),
     };
 
     private static final Column[] LONG_COLUMNS = {
-        new Column(InstanceReferenceMetricTable.COLUMN_TIME_BUCKET, new NonMergeOperation()),
-
-        new Column(InstanceReferenceMetricTable.COLUMN_TRANSACTION_CALLS, new AddMergeOperation()),
-        new Column(InstanceReferenceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS, new AddMergeOperation()),
-        new Column(InstanceReferenceMetricTable.COLUMN_TRANSACTION_DURATION_SUM, new AddMergeOperation()),
-        new Column(InstanceReferenceMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM, new AddMergeOperation()),
-        new Column(InstanceReferenceMetricTable.COLUMN_TRANSACTION_AVERAGE_DURATION, new NonMergeOperation(), new TransactionAverageDurationFormulaOperation()),
-        new Column(InstanceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_CALLS, new AddMergeOperation()),
-        new Column(InstanceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_CALLS, new AddMergeOperation()),
-        new Column(InstanceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_DURATION_SUM, new AddMergeOperation()),
-        new Column(InstanceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_DURATION_SUM, new AddMergeOperation()),
-        new Column(InstanceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_AVERAGE_DURATION, new NonMergeOperation(), new BusinessTransactionAverageDurationFormulaOperation()),
-        new Column(InstanceReferenceMetricTable.COLUMN_MQ_TRANSACTION_CALLS, new AddMergeOperation()),
-        new Column(InstanceReferenceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_CALLS, new AddMergeOperation()),
-        new Column(InstanceReferenceMetricTable.COLUMN_MQ_TRANSACTION_DURATION_SUM, new AddMergeOperation()),
-        new Column(InstanceReferenceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_DURATION_SUM, new AddMergeOperation()),
-        new Column(InstanceReferenceMetricTable.COLUMN_MQ_TRANSACTION_AVERAGE_DURATION, new NonMergeOperation(), new MqTransactionAverageDurationFormulaOperation()),
+        new Column(InstanceReferenceMetricTable.TIME_BUCKET, new NonMergeOperation()),
+
+        new Column(InstanceReferenceMetricTable.TRANSACTION_CALLS, new AddMergeOperation()),
+        new Column(InstanceReferenceMetricTable.TRANSACTION_ERROR_CALLS, new AddMergeOperation()),
+        new Column(InstanceReferenceMetricTable.TRANSACTION_DURATION_SUM, new AddMergeOperation()),
+        new Column(InstanceReferenceMetricTable.TRANSACTION_ERROR_DURATION_SUM, new AddMergeOperation()),
+        new Column(InstanceReferenceMetricTable.TRANSACTION_AVERAGE_DURATION, new NonMergeOperation(), new TransactionAverageDurationFormulaOperation()),
+        new Column(InstanceReferenceMetricTable.BUSINESS_TRANSACTION_CALLS, new AddMergeOperation()),
+        new Column(InstanceReferenceMetricTable.BUSINESS_TRANSACTION_ERROR_CALLS, new AddMergeOperation()),
+        new Column(InstanceReferenceMetricTable.BUSINESS_TRANSACTION_DURATION_SUM, new AddMergeOperation()),
+        new Column(InstanceReferenceMetricTable.BUSINESS_TRANSACTION_ERROR_DURATION_SUM, new AddMergeOperation()),
+        new Column(InstanceReferenceMetricTable.BUSINESS_TRANSACTION_AVERAGE_DURATION, new NonMergeOperation(), new BusinessTransactionAverageDurationFormulaOperation()),
+        new Column(InstanceReferenceMetricTable.MQ_TRANSACTION_CALLS, new AddMergeOperation()),
+        new Column(InstanceReferenceMetricTable.MQ_TRANSACTION_ERROR_CALLS, new AddMergeOperation()),
+        new Column(InstanceReferenceMetricTable.MQ_TRANSACTION_DURATION_SUM, new AddMergeOperation()),
+        new Column(InstanceReferenceMetricTable.MQ_TRANSACTION_ERROR_DURATION_SUM, new AddMergeOperation()),
+        new Column(InstanceReferenceMetricTable.MQ_TRANSACTION_AVERAGE_DURATION, new NonMergeOperation(), new MqTransactionAverageDurationFormulaOperation()),
     };
 
     private static final Column[] DOUBLE_COLUMNS = {};
 
     private static final Column[] INTEGER_COLUMNS = {
-        new Column(InstanceReferenceMetricTable.COLUMN_SOURCE_VALUE, new NonMergeOperation()),
-        new Column(InstanceReferenceMetricTable.COLUMN_FRONT_APPLICATION_ID, new NonMergeOperation()),
-        new Column(InstanceReferenceMetricTable.COLUMN_BEHIND_APPLICATION_ID, new NonMergeOperation()),
-        new Column(InstanceReferenceMetricTable.COLUMN_FRONT_INSTANCE_ID, new NonMergeOperation()),
-        new Column(InstanceReferenceMetricTable.COLUMN_BEHIND_INSTANCE_ID, new NonMergeOperation()),
+        new Column(InstanceReferenceMetricTable.SOURCE_VALUE, new NonMergeOperation()),
+        new Column(InstanceReferenceMetricTable.FRONT_APPLICATION_ID, new NonMergeOperation()),
+        new Column(InstanceReferenceMetricTable.BEHIND_APPLICATION_ID, new NonMergeOperation()),
+        new Column(InstanceReferenceMetricTable.FRONT_INSTANCE_ID, new NonMergeOperation()),
+        new Column(InstanceReferenceMetricTable.BEHIND_INSTANCE_ID, new NonMergeOperation()),
     };
 
     private static final Column[] BYTE_COLUMNS = {};
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/instance/InstanceReferenceMetricTable.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/instance/InstanceReferenceMetricTable.java
index b2dbe1781..9681dd036 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/instance/InstanceReferenceMetricTable.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/instance/InstanceReferenceMetricTable.java
@@ -18,15 +18,12 @@
 
 package org.apache.skywalking.apm.collector.storage.table.instance;
 
-import org.apache.skywalking.apm.collector.storage.table.CommonMetricTable;
+import org.apache.skywalking.apm.collector.storage.table.MetricColumns;
+import org.apache.skywalking.apm.collector.storage.table.ReferenceColumns;
 
 /**
  * @author peng-yongsheng
  */
-public class InstanceReferenceMetricTable extends CommonMetricTable {
-    public static final String TABLE = "instance_reference_metric";
-    public static final String COLUMN_FRONT_INSTANCE_ID = "front_instance_id";
-    public static final String COLUMN_BEHIND_INSTANCE_ID = "behind_instance_id";
-    public static final String COLUMN_FRONT_APPLICATION_ID = "front_application_id";
-    public static final String COLUMN_BEHIND_APPLICATION_ID = "behind_application_id";
+public interface InstanceReferenceMetricTable extends MetricColumns, ReferenceColumns {
+    String TABLE = "instance_reference_metric";
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/jvm/CpuMetric.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/jvm/CpuMetric.java
index c6a2bda7b..269352a35 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/jvm/CpuMetric.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/jvm/CpuMetric.java
@@ -30,21 +30,21 @@
 public class CpuMetric extends StreamData {
 
     private static final Column[] STRING_COLUMNS = {
-        new Column(CpuMetricTable.COLUMN_ID, new NonMergeOperation()),
-        new Column(CpuMetricTable.COLUMN_METRIC_ID, new NonMergeOperation()),
+        new Column(CpuMetricTable.ID, new NonMergeOperation()),
+        new Column(CpuMetricTable.METRIC_ID, new NonMergeOperation()),
     };
 
     private static final Column[] LONG_COLUMNS = {
-        new Column(CpuMetricTable.COLUMN_TIMES, new AddMergeOperation()),
-        new Column(CpuMetricTable.COLUMN_TIME_BUCKET, new CoverMergeOperation()),
+        new Column(CpuMetricTable.TIMES, new AddMergeOperation()),
+        new Column(CpuMetricTable.TIME_BUCKET, new CoverMergeOperation()),
     };
 
     private static final Column[] DOUBLE_COLUMNS = {
-        new Column(CpuMetricTable.COLUMN_USAGE_PERCENT, new AddMergeOperation()),
+        new Column(CpuMetricTable.USAGE_PERCENT, new AddMergeOperation()),
     };
 
     private static final Column[] INTEGER_COLUMNS = {
-        new Column(CpuMetricTable.COLUMN_INSTANCE_ID, new CoverMergeOperation()),
+        new Column(CpuMetricTable.INSTANCE_ID, new CoverMergeOperation()),
     };
 
     private static final Column[] BYTE_COLUMNS = {};
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/jvm/CpuMetricTable.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/jvm/CpuMetricTable.java
index 1f4ef5798..12f2bff15 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/jvm/CpuMetricTable.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/jvm/CpuMetricTable.java
@@ -18,14 +18,14 @@
 
 package org.apache.skywalking.apm.collector.storage.table.jvm;
 
-import org.apache.skywalking.apm.collector.core.data.CommonTable;
+import org.apache.skywalking.apm.collector.core.data.ColumnName;
+import org.apache.skywalking.apm.collector.storage.table.register.InstanceTable;
 
 /**
  * @author peng-yongsheng
  */
-public class CpuMetricTable extends CommonTable {
-    public static final String TABLE = "cpu_metric";
-    public static final String COLUMN_INSTANCE_ID = "instance_id";
-    public static final String COLUMN_USAGE_PERCENT = "usage_percent";
-    public static final String COLUMN_TIMES = "times";
+public interface CpuMetricTable extends InstanceTable {
+    String TABLE = "cpu_metric";
+
+    ColumnName USAGE_PERCENT = new ColumnName("usage_percent", "up");
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/jvm/GCMetric.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/jvm/GCMetric.java
index 776b8df31..7f5b3b9fb 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/jvm/GCMetric.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/jvm/GCMetric.java
@@ -30,22 +30,22 @@
 public class GCMetric extends StreamData {
 
     private static final Column[] STRING_COLUMNS = {
-        new Column(GCMetricTable.COLUMN_ID, new NonMergeOperation()),
-        new Column(GCMetricTable.COLUMN_METRIC_ID, new NonMergeOperation()),
+        new Column(GCMetricTable.ID, new NonMergeOperation()),
+        new Column(GCMetricTable.METRIC_ID, new NonMergeOperation()),
     };
 
     private static final Column[] LONG_COLUMNS = {
-        new Column(GCMetricTable.COLUMN_COUNT, new AddMergeOperation()),
-        new Column(GCMetricTable.COLUMN_TIMES, new AddMergeOperation()),
-        new Column(GCMetricTable.COLUMN_TIME_BUCKET, new CoverMergeOperation()),
+        new Column(GCMetricTable.COUNT, new AddMergeOperation()),
+        new Column(GCMetricTable.TIMES, new AddMergeOperation()),
+        new Column(GCMetricTable.TIME_BUCKET, new CoverMergeOperation()),
     };
 
     private static final Column[] DOUBLE_COLUMNS = {
     };
 
     private static final Column[] INTEGER_COLUMNS = {
-        new Column(GCMetricTable.COLUMN_INSTANCE_ID, new CoverMergeOperation()),
-        new Column(GCMetricTable.COLUMN_PHRASE, new CoverMergeOperation()),
+        new Column(GCMetricTable.INSTANCE_ID, new CoverMergeOperation()),
+        new Column(GCMetricTable.PHRASE, new CoverMergeOperation()),
     };
 
     private static final Column[] BYTE_COLUMNS = {};
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/jvm/GCMetricTable.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/jvm/GCMetricTable.java
index 7644364ed..e02f80618 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/jvm/GCMetricTable.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/jvm/GCMetricTable.java
@@ -18,15 +18,16 @@
 
 package org.apache.skywalking.apm.collector.storage.table.jvm;
 
-import org.apache.skywalking.apm.collector.core.data.CommonTable;
+import org.apache.skywalking.apm.collector.core.data.ColumnName;
+import org.apache.skywalking.apm.collector.storage.table.register.InstanceTable;
 
 /**
  * @author peng-yongsheng
  */
-public class GCMetricTable extends CommonTable {
-    public static final String TABLE = "gc_metric";
-    public static final String COLUMN_INSTANCE_ID = "instance_id";
-    public static final String COLUMN_PHRASE = "phrase";
-    public static final String COLUMN_COUNT = "count";
-    public static final String COLUMN_TIMES = "times";
+public interface GCMetricTable extends InstanceTable {
+    String TABLE = "gc_metric";
+
+    ColumnName PHRASE = new ColumnName("phrase", "p");
+
+    ColumnName COUNT = new ColumnName("count", "c");
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/jvm/MemoryMetric.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/jvm/MemoryMetric.java
index 42b43f29e..444924a68 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/jvm/MemoryMetric.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/jvm/MemoryMetric.java
@@ -32,25 +32,25 @@
 public class MemoryMetric extends StreamData {
 
     private static final Column[] STRING_COLUMNS = {
-        new Column(MemoryMetricTable.COLUMN_ID, new NonMergeOperation()),
-        new Column(MemoryMetricTable.COLUMN_METRIC_ID, new NonMergeOperation()),
+        new Column(MemoryMetricTable.ID, new NonMergeOperation()),
+        new Column(MemoryMetricTable.METRIC_ID, new NonMergeOperation()),
     };
 
     private static final Column[] LONG_COLUMNS = {
-        new Column(MemoryMetricTable.COLUMN_INIT, new MinMergeOperation()),
-        new Column(MemoryMetricTable.COLUMN_MAX, new MaxMergeOperation()),
-        new Column(MemoryMetricTable.COLUMN_USED, new AddMergeOperation()),
-        new Column(MemoryMetricTable.COLUMN_COMMITTED, new AddMergeOperation()),
-        new Column(MemoryMetricTable.COLUMN_TIMES, new AddMergeOperation()),
-        new Column(MemoryMetricTable.COLUMN_TIME_BUCKET, new NonMergeOperation()),
+        new Column(MemoryMetricTable.INIT, new MinMergeOperation()),
+        new Column(MemoryMetricTable.MAX, new MaxMergeOperation()),
+        new Column(MemoryMetricTable.USED, new AddMergeOperation()),
+        new Column(MemoryMetricTable.COMMITTED, new AddMergeOperation()),
+        new Column(MemoryMetricTable.TIMES, new AddMergeOperation()),
+        new Column(MemoryMetricTable.TIME_BUCKET, new NonMergeOperation()),
     };
 
     private static final Column[] DOUBLE_COLUMNS = {
     };
 
     private static final Column[] INTEGER_COLUMNS = {
-        new Column(MemoryMetricTable.COLUMN_INSTANCE_ID, new CoverMergeOperation()),
-        new Column(MemoryMetricTable.COLUMN_IS_HEAP, new CoverMergeOperation()),
+        new Column(MemoryMetricTable.INSTANCE_ID, new CoverMergeOperation()),
+        new Column(MemoryMetricTable.IS_HEAP, new CoverMergeOperation()),
     };
 
     private static final Column[] BYTE_COLUMNS = {};
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/jvm/MemoryMetricTable.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/jvm/MemoryMetricTable.java
index 84ba732e8..626c37be6 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/jvm/MemoryMetricTable.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/jvm/MemoryMetricTable.java
@@ -18,18 +18,22 @@
 
 package org.apache.skywalking.apm.collector.storage.table.jvm;
 
-import org.apache.skywalking.apm.collector.core.data.CommonTable;
+import org.apache.skywalking.apm.collector.core.data.ColumnName;
+import org.apache.skywalking.apm.collector.storage.table.register.InstanceTable;
 
 /**
  * @author peng-yongsheng
  */
-public class MemoryMetricTable extends CommonTable {
-    public static final String TABLE = "memory_metric";
-    public static final String COLUMN_INSTANCE_ID = "instance_id";
-    public static final String COLUMN_IS_HEAP = "is_heap";
-    public static final String COLUMN_INIT = "init";
-    public static final String COLUMN_MAX = "max";
-    public static final String COLUMN_USED = "used";
-    public static final String COLUMN_COMMITTED = "committed";
-    public static final String COLUMN_TIMES = "times";
+public interface MemoryMetricTable extends InstanceTable {
+    String TABLE = "memory_metric";
+
+    ColumnName IS_HEAP = new ColumnName("is_heap", "ih");
+
+    ColumnName INIT = new ColumnName("init", "init");
+
+    ColumnName MAX = new ColumnName("max", "max");
+
+    ColumnName USED = new ColumnName("used", "used");
+
+    ColumnName COMMITTED = new ColumnName("committed", "cd");
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/jvm/MemoryPoolMetric.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/jvm/MemoryPoolMetric.java
index dd4225b7e..e47876be1 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/jvm/MemoryPoolMetric.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/jvm/MemoryPoolMetric.java
@@ -32,25 +32,25 @@
 public class MemoryPoolMetric extends StreamData {
 
     private static final Column[] STRING_COLUMNS = {
-        new Column(MemoryPoolMetricTable.COLUMN_ID, new NonMergeOperation()),
-        new Column(MemoryPoolMetricTable.COLUMN_METRIC_ID, new NonMergeOperation()),
+        new Column(MemoryPoolMetricTable.ID, new NonMergeOperation()),
+        new Column(MemoryPoolMetricTable.METRIC_ID, new NonMergeOperation()),
     };
 
     private static final Column[] LONG_COLUMNS = {
-        new Column(MemoryPoolMetricTable.COLUMN_INIT, new MinMergeOperation()),
-        new Column(MemoryPoolMetricTable.COLUMN_MAX, new MaxMergeOperation()),
-        new Column(MemoryPoolMetricTable.COLUMN_USED, new AddMergeOperation()),
-        new Column(MemoryPoolMetricTable.COLUMN_COMMITTED, new AddMergeOperation()),
-        new Column(MemoryPoolMetricTable.COLUMN_TIMES, new AddMergeOperation()),
-        new Column(MemoryPoolMetricTable.COLUMN_TIME_BUCKET, new NonMergeOperation()),
+        new Column(MemoryPoolMetricTable.INIT, new MinMergeOperation()),
+        new Column(MemoryPoolMetricTable.MAX, new MaxMergeOperation()),
+        new Column(MemoryPoolMetricTable.USED, new AddMergeOperation()),
+        new Column(MemoryPoolMetricTable.COMMITTED, new AddMergeOperation()),
+        new Column(MemoryPoolMetricTable.TIMES, new AddMergeOperation()),
+        new Column(MemoryPoolMetricTable.TIME_BUCKET, new NonMergeOperation()),
     };
 
     private static final Column[] DOUBLE_COLUMNS = {
     };
 
     private static final Column[] INTEGER_COLUMNS = {
-        new Column(MemoryPoolMetricTable.COLUMN_INSTANCE_ID, new NonMergeOperation()),
-        new Column(MemoryPoolMetricTable.COLUMN_POOL_TYPE, new CoverMergeOperation()),
+        new Column(MemoryPoolMetricTable.INSTANCE_ID, new NonMergeOperation()),
+        new Column(MemoryPoolMetricTable.POOL_TYPE, new CoverMergeOperation()),
     };
 
     private static final Column[] BYTE_COLUMNS = {};
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/jvm/MemoryPoolMetricTable.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/jvm/MemoryPoolMetricTable.java
index 700e006c7..9ab479ef6 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/jvm/MemoryPoolMetricTable.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/jvm/MemoryPoolMetricTable.java
@@ -18,18 +18,22 @@
 
 package org.apache.skywalking.apm.collector.storage.table.jvm;
 
-import org.apache.skywalking.apm.collector.core.data.CommonTable;
+import org.apache.skywalking.apm.collector.core.data.ColumnName;
+import org.apache.skywalking.apm.collector.storage.table.register.InstanceTable;
 
 /**
  * @author peng-yongsheng
  */
-public class MemoryPoolMetricTable extends CommonTable {
-    public static final String TABLE = "memory_pool_metric";
-    public static final String COLUMN_INSTANCE_ID = "instance_id";
-    public static final String COLUMN_POOL_TYPE = "pool_type";
-    public static final String COLUMN_INIT = "init";
-    public static final String COLUMN_MAX = "max";
-    public static final String COLUMN_USED = "used";
-    public static final String COLUMN_COMMITTED = "committed";
-    public static final String COLUMN_TIMES = "times";
+public interface MemoryPoolMetricTable extends InstanceTable {
+    String TABLE = "memory_pool_metric";
+
+    ColumnName POOL_TYPE = new ColumnName("pool_type", "pt");
+
+    ColumnName INIT = new ColumnName("init", "init");
+
+    ColumnName MAX = new ColumnName("max", "max");
+
+    ColumnName USED = new ColumnName("used", "used");
+
+    ColumnName COMMITTED = new ColumnName("committed", "cd");
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/register/Application.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/register/Application.java
index 9e29a97c0..930462c7c 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/register/Application.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/register/Application.java
@@ -31,8 +31,8 @@
 public class Application extends StreamData {
 
     private static final Column[] STRING_COLUMNS = {
-        new Column(ApplicationTable.COLUMN_ID, new NonMergeOperation()),
-        new Column(ApplicationTable.COLUMN_APPLICATION_CODE, new CoverMergeOperation()),
+        new Column(ApplicationTable.ID, new NonMergeOperation()),
+        new Column(ApplicationTable.APPLICATION_CODE, new CoverMergeOperation()),
     };
 
     private static final Column[] LONG_COLUMNS = {};
@@ -40,10 +40,9 @@
     private static final Column[] DOUBLE_COLUMNS = {};
 
     private static final Column[] INTEGER_COLUMNS = {
-        new Column(ApplicationTable.COLUMN_APPLICATION_ID, new CoverMergeOperation()),
-        new Column(ApplicationTable.COLUMN_LAYER, new CoverMergeOperation()),
-        new Column(ApplicationTable.COLUMN_ADDRESS_ID, new CoverMergeOperation()),
-        new Column(ApplicationTable.COLUMN_IS_ADDRESS, new CoverMergeOperation()),
+        new Column(ApplicationTable.APPLICATION_ID, new CoverMergeOperation()),
+        new Column(ApplicationTable.ADDRESS_ID, new CoverMergeOperation()),
+        new Column(ApplicationTable.IS_ADDRESS, new CoverMergeOperation()),
     };
 
     private static final Column[] BYTE_COLUMNS = {};
@@ -84,28 +83,20 @@ public void setApplicationId(int applicationId) {
         setDataInteger(0, applicationId);
     }
 
-    public int getLayer() {
-        return getDataInteger(1);
-    }
-
-    public void setLayer(int layer) {
-        setDataInteger(1, layer);
-    }
-
     public int getAddressId() {
-        return getDataInteger(2);
+        return getDataInteger(1);
     }
 
     public void setAddressId(int addressId) {
-        setDataInteger(2, addressId);
+        setDataInteger(1, addressId);
     }
 
     public int getIsAddress() {
-        return getDataInteger(3);
+        return getDataInteger(2);
     }
 
     public void setIsAddress(int isAddress) {
-        setDataInteger(3, isAddress);
+        setDataInteger(2, isAddress);
     }
 
     public static class InstanceCreator implements RemoteDataRegisterService.RemoteDataInstanceCreator {
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/register/ApplicationTable.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/register/ApplicationTable.java
index faa33741b..70d89beab 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/register/ApplicationTable.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/register/ApplicationTable.java
@@ -18,16 +18,16 @@
 
 package org.apache.skywalking.apm.collector.storage.table.register;
 
+import org.apache.skywalking.apm.collector.core.data.ColumnName;
 import org.apache.skywalking.apm.collector.core.data.CommonTable;
 
 /**
  * @author peng-yongsheng
  */
-public class ApplicationTable extends CommonTable {
-    public static final String TABLE = "application";
-    public static final String COLUMN_APPLICATION_CODE = "application_code";
-    public static final String COLUMN_APPLICATION_ID = "application_id";
-    public static final String COLUMN_LAYER = "layer";
-    public static final String COLUMN_IS_ADDRESS = "is_address";
-    public static final String COLUMN_ADDRESS_ID = "address_id";
+public interface ApplicationTable extends CommonTable, RegisterColumns {
+    String TABLE = "application";
+
+    ColumnName APPLICATION_CODE = new ColumnName("application_code", "ac");
+
+    ColumnName IS_ADDRESS = new ColumnName("is_address", "ia");
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/register/Instance.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/register/Instance.java
index 1d36a594d..d25a48d3b 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/register/Instance.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/register/Instance.java
@@ -31,24 +31,24 @@
 public class Instance extends StreamData {
 
     private static final Column[] STRING_COLUMNS = {
-        new Column(InstanceTable.COLUMN_ID, new NonMergeOperation()),
-        new Column(InstanceTable.COLUMN_AGENT_UUID, new CoverMergeOperation()),
-        new Column(InstanceTable.COLUMN_OS_INFO, new CoverMergeOperation()),
-        new Column(InstanceTable.COLUMN_APPLICATION_CODE, new CoverMergeOperation()),
+        new Column(InstanceTable.ID, new NonMergeOperation()),
+        new Column(InstanceTable.AGENT_UUID, new CoverMergeOperation()),
+        new Column(InstanceTable.OS_INFO, new CoverMergeOperation()),
+        new Column(InstanceTable.APPLICATION_CODE, new CoverMergeOperation()),
     };
 
     private static final Column[] LONG_COLUMNS = {
-        new Column(InstanceTable.COLUMN_REGISTER_TIME, new CoverMergeOperation()),
-        new Column(InstanceTable.COLUMN_HEARTBEAT_TIME, new CoverMergeOperation()),
+        new Column(InstanceTable.REGISTER_TIME, new CoverMergeOperation()),
+        new Column(InstanceTable.HEARTBEAT_TIME, new CoverMergeOperation()),
     };
 
     private static final Column[] DOUBLE_COLUMNS = {};
 
     private static final Column[] INTEGER_COLUMNS = {
-        new Column(InstanceTable.COLUMN_APPLICATION_ID, new CoverMergeOperation()),
-        new Column(InstanceTable.COLUMN_INSTANCE_ID, new CoverMergeOperation()),
-        new Column(InstanceTable.COLUMN_ADDRESS_ID, new CoverMergeOperation()),
-        new Column(InstanceTable.COLUMN_IS_ADDRESS, new CoverMergeOperation()),
+        new Column(InstanceTable.APPLICATION_ID, new CoverMergeOperation()),
+        new Column(InstanceTable.INSTANCE_ID, new CoverMergeOperation()),
+        new Column(InstanceTable.ADDRESS_ID, new CoverMergeOperation()),
+        new Column(InstanceTable.IS_ADDRESS, new CoverMergeOperation()),
     };
 
     private static final Column[] BYTE_COLUMNS = {};
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/register/InstanceTable.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/register/InstanceTable.java
index fcf4d8cb3..5f688945f 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/register/InstanceTable.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/register/InstanceTable.java
@@ -18,20 +18,24 @@
 
 package org.apache.skywalking.apm.collector.storage.table.register;
 
+import org.apache.skywalking.apm.collector.core.data.ColumnName;
 import org.apache.skywalking.apm.collector.core.data.CommonTable;
 
 /**
  * @author peng-yongsheng
  */
-public class InstanceTable extends CommonTable {
-    public static final String TABLE = "instance";
-    public static final String COLUMN_APPLICATION_ID = "application_id";
-    public static final String COLUMN_APPLICATION_CODE = "application_code";
-    public static final String COLUMN_AGENT_UUID = "agent_uuid";
-    public static final String COLUMN_REGISTER_TIME = "register_time";
-    public static final String COLUMN_INSTANCE_ID = "instance_id";
-    public static final String COLUMN_HEARTBEAT_TIME = "heartbeat_time";
-    public static final String COLUMN_OS_INFO = "os_info";
-    public static final String COLUMN_IS_ADDRESS = "is_address";
-    public static final String COLUMN_ADDRESS_ID = "address_id";
+public interface InstanceTable extends CommonTable, RegisterColumns {
+    String TABLE = "instance";
+
+    ColumnName APPLICATION_CODE = new ColumnName("application_code", "ac");
+
+    ColumnName AGENT_UUID = new ColumnName("agent_uuid", "iau");
+
+    ColumnName REGISTER_TIME = new ColumnName("register_time", "irt");
+
+    ColumnName HEARTBEAT_TIME = new ColumnName("heartbeat_time", "iht");
+
+    ColumnName OS_INFO = new ColumnName("os_info", "ioi");
+
+    ColumnName IS_ADDRESS = new ColumnName("is_address", "iia");
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/register/NetworkAddress.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/register/NetworkAddress.java
index 1cbe6f20a..8e54a16c1 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/register/NetworkAddress.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/register/NetworkAddress.java
@@ -31,8 +31,8 @@
 public class NetworkAddress extends StreamData {
 
     private static final Column[] STRING_COLUMNS = {
-        new Column(NetworkAddressTable.COLUMN_ID, new NonMergeOperation()),
-        new Column(NetworkAddressTable.COLUMN_NETWORK_ADDRESS, new NonMergeOperation()),
+        new Column(NetworkAddressTable.ID, new NonMergeOperation()),
+        new Column(NetworkAddressTable.NETWORK_ADDRESS, new NonMergeOperation()),
     };
 
     private static final Column[] LONG_COLUMNS = {
@@ -41,9 +41,9 @@
     private static final Column[] DOUBLE_COLUMNS = {};
 
     private static final Column[] INTEGER_COLUMNS = {
-        new Column(NetworkAddressTable.COLUMN_ADDRESS_ID, new NonMergeOperation()),
-        new Column(NetworkAddressTable.COLUMN_SPAN_LAYER, new CoverMergeOperation()),
-        new Column(NetworkAddressTable.COLUMN_SERVER_TYPE, new CoverMergeOperation()),
+        new Column(NetworkAddressTable.ADDRESS_ID, new NonMergeOperation()),
+        new Column(NetworkAddressTable.SRC_SPAN_LAYER, new CoverMergeOperation()),
+        new Column(NetworkAddressTable.SERVER_TYPE, new CoverMergeOperation()),
     };
 
     private static final Column[] BYTE_COLUMNS = {};
@@ -84,12 +84,12 @@ public void setAddressId(Integer addressId) {
         setDataInteger(0, addressId);
     }
 
-    public Integer getSpanLayer() {
+    public Integer getSrcSpanLayer() {
         return getDataInteger(1);
     }
 
-    public void setSpanLayer(Integer spanLayer) {
-        setDataInteger(1, spanLayer);
+    public void setSrcSpanLayer(Integer srcSpanLayer) {
+        setDataInteger(1, srcSpanLayer);
     }
 
     public Integer getServerType() {
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/register/NetworkAddressTable.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/register/NetworkAddressTable.java
index d0e5d4735..4154b706e 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/register/NetworkAddressTable.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/register/NetworkAddressTable.java
@@ -18,15 +18,18 @@
 
 package org.apache.skywalking.apm.collector.storage.table.register;
 
+import org.apache.skywalking.apm.collector.core.data.ColumnName;
 import org.apache.skywalking.apm.collector.core.data.CommonTable;
 
 /**
  * @author peng-yongsheng
  */
-public class NetworkAddressTable extends CommonTable {
-    public static final String TABLE = "network_address";
-    public static final String COLUMN_NETWORK_ADDRESS = "network_address";
-    public static final String COLUMN_SPAN_LAYER = "span_layer";
-    public static final String COLUMN_SERVER_TYPE = "server_type";
-    public static final String COLUMN_ADDRESS_ID = "address_id";
+public interface NetworkAddressTable extends CommonTable, RegisterColumns {
+    String TABLE = "network_address";
+
+    ColumnName NETWORK_ADDRESS = new ColumnName("network_address", "na");
+
+    ColumnName SRC_SPAN_LAYER = new ColumnName("src_span_layer", "ssl");
+
+    ColumnName SERVER_TYPE = new ColumnName("server_type", "st");
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/dao/ui/IMemoryPoolMetricUIDAO.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/register/RegisterColumns.java
similarity index 66%
rename from apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/dao/ui/IMemoryPoolMetricUIDAO.java
rename to apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/register/RegisterColumns.java
index f643299b8..403fb5ee7 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/dao/ui/IMemoryPoolMetricUIDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/register/RegisterColumns.java
@@ -16,16 +16,19 @@
  *
  */
 
-package org.apache.skywalking.apm.collector.storage.dao.ui;
+package org.apache.skywalking.apm.collector.storage.table.register;
 
-import com.google.gson.JsonObject;
-import org.apache.skywalking.apm.collector.storage.base.dao.DAO;
+import org.apache.skywalking.apm.collector.core.data.ColumnName;
 
 /**
  * @author peng-yongsheng
  */
-public interface IMemoryPoolMetricUIDAO extends DAO {
-    JsonObject getMetric(int instanceId, long timeBucket, int poolType);
+public interface RegisterColumns {
+    ColumnName APPLICATION_ID = new ColumnName("application_id", "ai");
 
-    JsonObject getMetric(int instanceId, long startTimeBucket, long endTimeBucket, int poolType);
+    ColumnName INSTANCE_ID = new ColumnName("instance_id", "ii");
+
+    ColumnName SERVICE_ID = new ColumnName("service_id", "si");
+
+    ColumnName ADDRESS_ID = new ColumnName("address_id", "ni");
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/register/ServiceName.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/register/ServiceName.java
index 18050dc9e..5022b82d0 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/register/ServiceName.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/register/ServiceName.java
@@ -31,8 +31,8 @@
 public class ServiceName extends StreamData {
 
     private static final Column[] STRING_COLUMNS = {
-        new Column(ServiceNameTable.COLUMN_ID, new NonMergeOperation()),
-        new Column(ServiceNameTable.COLUMN_SERVICE_NAME, new CoverMergeOperation()),
+        new Column(ServiceNameTable.ID, new NonMergeOperation()),
+        new Column(ServiceNameTable.SERVICE_NAME, new CoverMergeOperation()),
     };
 
     private static final Column[] LONG_COLUMNS = {};
@@ -40,9 +40,9 @@
     private static final Column[] DOUBLE_COLUMNS = {};
 
     private static final Column[] INTEGER_COLUMNS = {
-        new Column(ServiceNameTable.COLUMN_APPLICATION_ID, new CoverMergeOperation()),
-        new Column(ServiceNameTable.COLUMN_SERVICE_ID, new CoverMergeOperation()),
-        new Column(ServiceNameTable.COLUMN_SRC_SPAN_TYPE, new CoverMergeOperation()),
+        new Column(ServiceNameTable.APPLICATION_ID, new CoverMergeOperation()),
+        new Column(ServiceNameTable.SERVICE_ID, new CoverMergeOperation()),
+        new Column(ServiceNameTable.SRC_SPAN_TYPE, new CoverMergeOperation()),
     };
 
     private static final Column[] BYTE_COLUMNS = {};
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/register/ServiceNameTable.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/register/ServiceNameTable.java
index ae90e52c8..2b0b8219c 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/register/ServiceNameTable.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/register/ServiceNameTable.java
@@ -18,16 +18,18 @@
 
 package org.apache.skywalking.apm.collector.storage.table.register;
 
+import org.apache.skywalking.apm.collector.core.data.ColumnName;
 import org.apache.skywalking.apm.collector.core.data.CommonTable;
 
 /**
  * @author peng-yongsheng
  */
-public class ServiceNameTable extends CommonTable {
-    public static final String TABLE = "service_name";
-    public static final String COLUMN_SERVICE_NAME = "service_name";
-    public static final String COLUMN_SERVICE_NAME_KEYWORD = "service_name_keyword";
-    public static final String COLUMN_SRC_SPAN_TYPE = "src_span_type";
-    public static final String COLUMN_APPLICATION_ID = "application_id";
-    public static final String COLUMN_SERVICE_ID = "service_id";
+public interface ServiceNameTable extends CommonTable, RegisterColumns {
+    String TABLE = "service_name";
+
+    ColumnName SERVICE_NAME = new ColumnName("service_name", "sn");
+
+    ColumnName SERVICE_NAME_KEYWORD = new ColumnName("service_name_keyword", "snk");
+
+    ColumnName SRC_SPAN_TYPE = new ColumnName("src_span_type", "sst");
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/segment/Segment.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/segment/Segment.java
index c7389716f..f9ee9f737 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/segment/Segment.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/segment/Segment.java
@@ -29,11 +29,11 @@
 public class Segment extends StreamData {
 
     private static final Column[] STRING_COLUMNS = {
-        new Column(SegmentTable.COLUMN_ID, new NonMergeOperation()),
+        new Column(SegmentTable.ID, new NonMergeOperation()),
     };
 
     private static final Column[] LONG_COLUMNS = {
-        new Column(SegmentTable.COLUMN_TIME_BUCKET, new NonMergeOperation()),
+        new Column(SegmentTable.TIME_BUCKET, new NonMergeOperation()),
     };
 
     private static final Column[] DOUBLE_COLUMNS = {};
@@ -42,7 +42,7 @@
     };
 
     private static final Column[] BYTE_COLUMNS = {
-        new Column(SegmentTable.COLUMN_DATA_BINARY, new CoverMergeOperation()),
+        new Column(SegmentTable.DATA_BINARY, new CoverMergeOperation()),
     };
 
     public Segment() {
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/segment/SegmentDuration.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/segment/SegmentDuration.java
index 43b8c21bf..a309c2d7d 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/segment/SegmentDuration.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/segment/SegmentDuration.java
@@ -29,24 +29,24 @@
 public class SegmentDuration extends StreamData {
 
     private static final Column[] STRING_COLUMNS = {
-        new Column(SegmentDurationTable.COLUMN_ID, new NonMergeOperation()),
-        new Column(SegmentDurationTable.COLUMN_SEGMENT_ID, new CoverMergeOperation()),
-        new Column(SegmentDurationTable.COLUMN_SERVICE_NAME, new CoverMergeOperation()),
-        new Column(SegmentDurationTable.COLUMN_TRACE_ID, new CoverMergeOperation()),
+        new Column(SegmentDurationTable.ID, new NonMergeOperation()),
+        new Column(SegmentDurationTable.SEGMENT_ID, new CoverMergeOperation()),
+        new Column(SegmentDurationTable.SERVICE_NAME, new CoverMergeOperation()),
+        new Column(SegmentDurationTable.TRACE_ID, new CoverMergeOperation()),
     };
 
     private static final Column[] LONG_COLUMNS = {
-        new Column(SegmentDurationTable.COLUMN_DURATION, new CoverMergeOperation()),
-        new Column(SegmentDurationTable.COLUMN_START_TIME, new CoverMergeOperation()),
-        new Column(SegmentDurationTable.COLUMN_END_TIME, new CoverMergeOperation()),
-        new Column(SegmentDurationTable.COLUMN_TIME_BUCKET, new CoverMergeOperation()),
+        new Column(SegmentDurationTable.DURATION, new CoverMergeOperation()),
+        new Column(SegmentDurationTable.START_TIME, new CoverMergeOperation()),
+        new Column(SegmentDurationTable.END_TIME, new CoverMergeOperation()),
+        new Column(SegmentDurationTable.TIME_BUCKET, new CoverMergeOperation()),
     };
 
     private static final Column[] DOUBLE_COLUMNS = {};
 
     private static final Column[] INTEGER_COLUMNS = {
-        new Column(SegmentDurationTable.COLUMN_APPLICATION_ID, new CoverMergeOperation()),
-        new Column(SegmentDurationTable.COLUMN_IS_ERROR, new CoverMergeOperation()),
+        new Column(SegmentDurationTable.APPLICATION_ID, new CoverMergeOperation()),
+        new Column(SegmentDurationTable.IS_ERROR, new CoverMergeOperation()),
     };
 
     private static final Column[] BYTE_COLUMNS = {};
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/segment/SegmentDurationTable.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/segment/SegmentDurationTable.java
index 2784628ec..5d65f7348 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/segment/SegmentDurationTable.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/segment/SegmentDurationTable.java
@@ -18,19 +18,22 @@
 
 package org.apache.skywalking.apm.collector.storage.table.segment;
 
+import org.apache.skywalking.apm.collector.core.data.ColumnName;
 import org.apache.skywalking.apm.collector.core.data.CommonTable;
+import org.apache.skywalking.apm.collector.storage.table.global.GlobalTraceTable;
+import org.apache.skywalking.apm.collector.storage.table.register.ServiceNameTable;
 
 /**
  * @author peng-yongsheng
  */
-public class SegmentDurationTable extends CommonTable {
-    public static final String TABLE = "segment_duration";
-    public static final String COLUMN_SEGMENT_ID = "segment_id";
-    public static final String COLUMN_TRACE_ID = "trace_id";
-    public static final String COLUMN_APPLICATION_ID = "application_id";
-    public static final String COLUMN_START_TIME = "start_time";
-    public static final String COLUMN_END_TIME = "end_time";
-    public static final String COLUMN_SERVICE_NAME = "service_name";
-    public static final String COLUMN_DURATION = "duration";
-    public static final String COLUMN_IS_ERROR = "is_error";
+public interface SegmentDurationTable extends CommonTable, SegmentTable, ServiceNameTable, GlobalTraceTable {
+    String TABLE = "segment_duration";
+
+    ColumnName START_TIME = new ColumnName("start_time", "dst");
+
+    ColumnName END_TIME = new ColumnName("end_time", "det");
+
+    ColumnName DURATION = new ColumnName("duration", "ddt");
+
+    ColumnName IS_ERROR = new ColumnName("is_error", "die");
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/segment/SegmentTable.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/segment/SegmentTable.java
index 8719a95c4..8d7d86d9a 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/segment/SegmentTable.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/segment/SegmentTable.java
@@ -16,15 +16,18 @@
  *
  */
 
-
 package org.apache.skywalking.apm.collector.storage.table.segment;
 
+import org.apache.skywalking.apm.collector.core.data.ColumnName;
 import org.apache.skywalking.apm.collector.core.data.CommonTable;
 
 /**
  * @author peng-yongsheng
  */
-public class SegmentTable extends CommonTable {
-    public static final String TABLE = "segment";
-    public static final String COLUMN_DATA_BINARY = "data_binary";
+public interface SegmentTable extends CommonTable {
+    String TABLE = "segment";
+
+    ColumnName DATA_BINARY = new ColumnName("data_binary", "sdb");
+
+    ColumnName SEGMENT_ID = new ColumnName("segment_id", "sgi");
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/service/ServiceMetric.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/service/ServiceMetric.java
index a6e67d72c..fc3f6b7e0 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/service/ServiceMetric.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/service/ServiceMetric.java
@@ -33,37 +33,37 @@
 public class ServiceMetric extends StreamData implements Metric {
 
     private static final Column[] STRING_COLUMNS = {
-        new Column(ServiceMetricTable.COLUMN_ID, new NonMergeOperation()),
-        new Column(ServiceMetricTable.COLUMN_METRIC_ID, new NonMergeOperation()),
+        new Column(ServiceMetricTable.ID, new NonMergeOperation()),
+        new Column(ServiceMetricTable.METRIC_ID, new NonMergeOperation()),
     };
 
     private static final Column[] LONG_COLUMNS = {
-        new Column(ServiceMetricTable.COLUMN_TIME_BUCKET, new NonMergeOperation()),
-
-        new Column(ServiceMetricTable.COLUMN_TRANSACTION_CALLS, new AddMergeOperation()),
-        new Column(ServiceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS, new AddMergeOperation()),
-        new Column(ServiceMetricTable.COLUMN_TRANSACTION_DURATION_SUM, new AddMergeOperation()),
-        new Column(ServiceMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM, new AddMergeOperation()),
-        new Column(ServiceMetricTable.COLUMN_TRANSACTION_AVERAGE_DURATION, new NonMergeOperation(), new TransactionAverageDurationFormulaOperation()),
-        new Column(ServiceMetricTable.COLUMN_BUSINESS_TRANSACTION_CALLS, new AddMergeOperation()),
-        new Column(ServiceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_CALLS, new AddMergeOperation()),
-        new Column(ServiceMetricTable.COLUMN_BUSINESS_TRANSACTION_DURATION_SUM, new AddMergeOperation()),
-        new Column(ServiceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_DURATION_SUM, new AddMergeOperation()),
-        new Column(ServiceMetricTable.COLUMN_BUSINESS_TRANSACTION_AVERAGE_DURATION, new NonMergeOperation(), new BusinessTransactionAverageDurationFormulaOperation()),
-        new Column(ServiceMetricTable.COLUMN_MQ_TRANSACTION_CALLS, new AddMergeOperation()),
-        new Column(ServiceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_CALLS, new AddMergeOperation()),
-        new Column(ServiceMetricTable.COLUMN_MQ_TRANSACTION_DURATION_SUM, new AddMergeOperation()),
-        new Column(ServiceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_DURATION_SUM, new AddMergeOperation()),
-        new Column(ServiceMetricTable.COLUMN_MQ_TRANSACTION_AVERAGE_DURATION, new NonMergeOperation(), new MqTransactionAverageDurationFormulaOperation()),
+        new Column(ServiceMetricTable.TIME_BUCKET, new NonMergeOperation()),
+
+        new Column(ServiceMetricTable.TRANSACTION_CALLS, new AddMergeOperation()),
+        new Column(ServiceMetricTable.TRANSACTION_ERROR_CALLS, new AddMergeOperation()),
+        new Column(ServiceMetricTable.TRANSACTION_DURATION_SUM, new AddMergeOperation()),
+        new Column(ServiceMetricTable.TRANSACTION_ERROR_DURATION_SUM, new AddMergeOperation()),
+        new Column(ServiceMetricTable.TRANSACTION_AVERAGE_DURATION, new NonMergeOperation(), new TransactionAverageDurationFormulaOperation()),
+        new Column(ServiceMetricTable.BUSINESS_TRANSACTION_CALLS, new AddMergeOperation()),
+        new Column(ServiceMetricTable.BUSINESS_TRANSACTION_ERROR_CALLS, new AddMergeOperation()),
+        new Column(ServiceMetricTable.BUSINESS_TRANSACTION_DURATION_SUM, new AddMergeOperation()),
+        new Column(ServiceMetricTable.BUSINESS_TRANSACTION_ERROR_DURATION_SUM, new AddMergeOperation()),
+        new Column(ServiceMetricTable.BUSINESS_TRANSACTION_AVERAGE_DURATION, new NonMergeOperation(), new BusinessTransactionAverageDurationFormulaOperation()),
+        new Column(ServiceMetricTable.MQ_TRANSACTION_CALLS, new AddMergeOperation()),
+        new Column(ServiceMetricTable.MQ_TRANSACTION_ERROR_CALLS, new AddMergeOperation()),
+        new Column(ServiceMetricTable.MQ_TRANSACTION_DURATION_SUM, new AddMergeOperation()),
+        new Column(ServiceMetricTable.MQ_TRANSACTION_ERROR_DURATION_SUM, new AddMergeOperation()),
+        new Column(ServiceMetricTable.MQ_TRANSACTION_AVERAGE_DURATION, new NonMergeOperation(), new MqTransactionAverageDurationFormulaOperation()),
     };
 
     private static final Column[] DOUBLE_COLUMNS = {};
 
     private static final Column[] INTEGER_COLUMNS = {
-        new Column(ServiceMetricTable.COLUMN_SOURCE_VALUE, new NonMergeOperation()),
-        new Column(ServiceMetricTable.COLUMN_APPLICATION_ID, new NonMergeOperation()),
-        new Column(ServiceMetricTable.COLUMN_INSTANCE_ID, new NonMergeOperation()),
-        new Column(ServiceMetricTable.COLUMN_SERVICE_ID, new NonMergeOperation()),
+        new Column(ServiceMetricTable.SOURCE_VALUE, new NonMergeOperation()),
+        new Column(ServiceMetricTable.APPLICATION_ID, new NonMergeOperation()),
+        new Column(ServiceMetricTable.INSTANCE_ID, new NonMergeOperation()),
+        new Column(ServiceMetricTable.SERVICE_ID, new NonMergeOperation()),
     };
 
     private static final Column[] BYTE_COLUMNS = {};
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/service/ServiceMetricTable.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/service/ServiceMetricTable.java
index c17b1e727..be22de886 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/service/ServiceMetricTable.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/service/ServiceMetricTable.java
@@ -18,11 +18,13 @@
 
 package org.apache.skywalking.apm.collector.storage.table.service;
 
-import org.apache.skywalking.apm.collector.storage.table.CommonMetricTable;
+import org.apache.skywalking.apm.collector.storage.table.MetricColumns;
+import org.apache.skywalking.apm.collector.storage.table.register.InstanceTable;
+import org.apache.skywalking.apm.collector.storage.table.register.ServiceNameTable;
 
 /**
  * @author peng-yongsheng
  */
-public class ServiceMetricTable extends CommonMetricTable {
-    public static final String TABLE = "service_metric";
+public interface ServiceMetricTable extends MetricColumns, ServiceNameTable, InstanceTable {
+    String TABLE = "service_metric";
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/service/ServiceReferenceMetric.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/service/ServiceReferenceMetric.java
index 1106bc7c4..638a37520 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/service/ServiceReferenceMetric.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/service/ServiceReferenceMetric.java
@@ -33,43 +33,43 @@
 public class ServiceReferenceMetric extends StreamData implements Metric {
 
     private static final Column[] STRING_COLUMNS = {
-        new Column(ServiceReferenceMetricTable.COLUMN_ID, new NonMergeOperation()),
-        new Column(ServiceReferenceMetricTable.COLUMN_METRIC_ID, new NonMergeOperation()),
+        new Column(ServiceReferenceMetricTable.ID, new NonMergeOperation()),
+        new Column(ServiceReferenceMetricTable.METRIC_ID, new NonMergeOperation()),
     };
 
     private static final Column[] LONG_COLUMNS = {
-        new Column(ServiceReferenceMetricTable.COLUMN_TIME_BUCKET, new NonMergeOperation()),
-
-        new Column(ServiceReferenceMetricTable.COLUMN_TRANSACTION_CALLS, new AddMergeOperation()),
-        new Column(ServiceReferenceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS, new AddMergeOperation()),
-        new Column(ServiceReferenceMetricTable.COLUMN_TRANSACTION_DURATION_SUM, new AddMergeOperation()),
-        new Column(ServiceReferenceMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM, new AddMergeOperation()),
-        new Column(ServiceReferenceMetricTable.COLUMN_TRANSACTION_AVERAGE_DURATION, new NonMergeOperation(), new TransactionAverageDurationFormulaOperation()),
-        new Column(ServiceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_CALLS, new AddMergeOperation()),
-        new Column(ServiceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_CALLS, new AddMergeOperation()),
-        new Column(ServiceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_DURATION_SUM, new AddMergeOperation()),
-        new Column(ServiceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_DURATION_SUM, new AddMergeOperation()),
-        new Column(ServiceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_AVERAGE_DURATION, new NonMergeOperation(), new BusinessTransactionAverageDurationFormulaOperation()),
-        new Column(ServiceReferenceMetricTable.COLUMN_MQ_TRANSACTION_CALLS, new AddMergeOperation()),
-        new Column(ServiceReferenceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_CALLS, new AddMergeOperation()),
-        new Column(ServiceReferenceMetricTable.COLUMN_MQ_TRANSACTION_DURATION_SUM, new AddMergeOperation()),
-        new Column(ServiceReferenceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_DURATION_SUM, new AddMergeOperation()),
-        new Column(ServiceReferenceMetricTable.COLUMN_MQ_TRANSACTION_AVERAGE_DURATION, new NonMergeOperation(), new MqTransactionAverageDurationFormulaOperation()),
+        new Column(ServiceReferenceMetricTable.TIME_BUCKET, new NonMergeOperation()),
+
+        new Column(ServiceReferenceMetricTable.TRANSACTION_CALLS, new AddMergeOperation()),
+        new Column(ServiceReferenceMetricTable.TRANSACTION_ERROR_CALLS, new AddMergeOperation()),
+        new Column(ServiceReferenceMetricTable.TRANSACTION_DURATION_SUM, new AddMergeOperation()),
+        new Column(ServiceReferenceMetricTable.TRANSACTION_ERROR_DURATION_SUM, new AddMergeOperation()),
+        new Column(ServiceReferenceMetricTable.TRANSACTION_AVERAGE_DURATION, new NonMergeOperation(), new TransactionAverageDurationFormulaOperation()),
+        new Column(ServiceReferenceMetricTable.BUSINESS_TRANSACTION_CALLS, new AddMergeOperation()),
+        new Column(ServiceReferenceMetricTable.BUSINESS_TRANSACTION_ERROR_CALLS, new AddMergeOperation()),
+        new Column(ServiceReferenceMetricTable.BUSINESS_TRANSACTION_DURATION_SUM, new AddMergeOperation()),
+        new Column(ServiceReferenceMetricTable.BUSINESS_TRANSACTION_ERROR_DURATION_SUM, new AddMergeOperation()),
+        new Column(ServiceReferenceMetricTable.BUSINESS_TRANSACTION_AVERAGE_DURATION, new NonMergeOperation(), new BusinessTransactionAverageDurationFormulaOperation()),
+        new Column(ServiceReferenceMetricTable.MQ_TRANSACTION_CALLS, new AddMergeOperation()),
+        new Column(ServiceReferenceMetricTable.MQ_TRANSACTION_ERROR_CALLS, new AddMergeOperation()),
+        new Column(ServiceReferenceMetricTable.MQ_TRANSACTION_DURATION_SUM, new AddMergeOperation()),
+        new Column(ServiceReferenceMetricTable.MQ_TRANSACTION_ERROR_DURATION_SUM, new AddMergeOperation()),
+        new Column(ServiceReferenceMetricTable.MQ_TRANSACTION_AVERAGE_DURATION, new NonMergeOperation(), new MqTransactionAverageDurationFormulaOperation()),
     };
 
     private static final Column[] DOUBLE_COLUMNS = {};
 
     private static final Column[] INTEGER_COLUMNS = {
-        new Column(ServiceReferenceMetricTable.COLUMN_SOURCE_VALUE, new NonMergeOperation()),
+        new Column(ServiceReferenceMetricTable.SOURCE_VALUE, new NonMergeOperation()),
 
-        new Column(ServiceReferenceMetricTable.COLUMN_FRONT_SERVICE_ID, new NonMergeOperation()),
-        new Column(ServiceReferenceMetricTable.COLUMN_BEHIND_SERVICE_ID, new NonMergeOperation()),
+        new Column(ServiceReferenceMetricTable.FRONT_SERVICE_ID, new NonMergeOperation()),
+        new Column(ServiceReferenceMetricTable.BEHIND_SERVICE_ID, new NonMergeOperation()),
 
-        new Column(ServiceReferenceMetricTable.COLUMN_FRONT_INSTANCE_ID, new NonMergeOperation()),
-        new Column(ServiceReferenceMetricTable.COLUMN_BEHIND_INSTANCE_ID, new NonMergeOperation()),
+        new Column(ServiceReferenceMetricTable.FRONT_INSTANCE_ID, new NonMergeOperation()),
+        new Column(ServiceReferenceMetricTable.BEHIND_INSTANCE_ID, new NonMergeOperation()),
 
-        new Column(ServiceReferenceMetricTable.COLUMN_FRONT_APPLICATION_ID, new NonMergeOperation()),
-        new Column(ServiceReferenceMetricTable.COLUMN_BEHIND_APPLICATION_ID, new NonMergeOperation()),
+        new Column(ServiceReferenceMetricTable.FRONT_APPLICATION_ID, new NonMergeOperation()),
+        new Column(ServiceReferenceMetricTable.BEHIND_APPLICATION_ID, new NonMergeOperation()),
     };
 
     private static final Column[] BYTE_COLUMNS = {};
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/service/ServiceReferenceMetricTable.java b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/service/ServiceReferenceMetricTable.java
index 6599290e3..c1df53b97 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/service/ServiceReferenceMetricTable.java
+++ b/apm-collector/apm-collector-storage/collector-storage-define/src/main/java/org/apache/skywalking/apm/collector/storage/table/service/ServiceReferenceMetricTable.java
@@ -18,17 +18,12 @@
 
 package org.apache.skywalking.apm.collector.storage.table.service;
 
-import org.apache.skywalking.apm.collector.storage.table.CommonMetricTable;
+import org.apache.skywalking.apm.collector.storage.table.MetricColumns;
+import org.apache.skywalking.apm.collector.storage.table.ReferenceColumns;
 
 /**
  * @author peng-yongsheng
  */
-public class ServiceReferenceMetricTable extends CommonMetricTable {
-    public static final String TABLE = "service_reference_metric";
-    public static final String COLUMN_FRONT_SERVICE_ID = "front_service_id";
-    public static final String COLUMN_FRONT_INSTANCE_ID = "front_instance_id";
-    public static final String COLUMN_FRONT_APPLICATION_ID = "front_application_id";
-    public static final String COLUMN_BEHIND_SERVICE_ID = "behind_service_id";
-    public static final String COLUMN_BEHIND_INSTANCE_ID = "behind_instance_id";
-    public static final String COLUMN_BEHIND_APPLICATION_ID = "behind_application_id";
+public interface ServiceReferenceMetricTable extends MetricColumns, ReferenceColumns {
+    String TABLE = "service_reference_metric";
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/MetricTransformUtil.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/MetricTransformUtil.java
new file mode 100644
index 000000000..708ce120f
--- /dev/null
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/MetricTransformUtil.java
@@ -0,0 +1,76 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.skywalking.apm.collector.storage.es;
+
+import java.util.Map;
+import org.apache.skywalking.apm.collector.storage.table.Metric;
+import org.apache.skywalking.apm.collector.storage.table.MetricColumns;
+
+/**
+ * @author peng-yongsheng
+ */
+public enum MetricTransformUtil {
+    INSTANCE;
+
+    public void esDataToStreamData(Map<String, Object> source, Metric target) {
+        target.setSourceValue(((Number)source.get(MetricColumns.SOURCE_VALUE.getName())).intValue());
+        target.setTimeBucket(((Number)source.get(MetricColumns.TIME_BUCKET.getName())).longValue());
+
+        target.setTransactionCalls(((Number)source.get(MetricColumns.TRANSACTION_CALLS.getName())).longValue());
+        target.setTransactionErrorCalls(((Number)source.get(MetricColumns.TRANSACTION_ERROR_CALLS.getName())).longValue());
+        target.setTransactionDurationSum(((Number)source.get(MetricColumns.TRANSACTION_DURATION_SUM.getName())).longValue());
+        target.setTransactionErrorDurationSum(((Number)source.get(MetricColumns.TRANSACTION_ERROR_DURATION_SUM.getName())).longValue());
+        target.setTransactionAverageDuration(((Number)source.get(MetricColumns.TRANSACTION_AVERAGE_DURATION.getName())).longValue());
+
+        target.setBusinessTransactionCalls(((Number)source.get(MetricColumns.BUSINESS_TRANSACTION_CALLS.getName())).longValue());
+        target.setBusinessTransactionErrorCalls(((Number)source.get(MetricColumns.BUSINESS_TRANSACTION_ERROR_CALLS.getName())).longValue());
+        target.setBusinessTransactionDurationSum(((Number)source.get(MetricColumns.BUSINESS_TRANSACTION_DURATION_SUM.getName())).longValue());
+        target.setBusinessTransactionErrorDurationSum(((Number)source.get(MetricColumns.BUSINESS_TRANSACTION_ERROR_DURATION_SUM.getName())).longValue());
+        target.setBusinessTransactionAverageDuration(((Number)source.get(MetricColumns.BUSINESS_TRANSACTION_AVERAGE_DURATION.getName())).longValue());
+
+        target.setMqTransactionCalls(((Number)source.get(MetricColumns.MQ_TRANSACTION_CALLS.getName())).longValue());
+        target.setMqTransactionErrorCalls(((Number)source.get(MetricColumns.MQ_TRANSACTION_ERROR_CALLS.getName())).longValue());
+        target.setMqTransactionDurationSum(((Number)source.get(MetricColumns.MQ_TRANSACTION_DURATION_SUM.getName())).longValue());
+        target.setMqTransactionErrorDurationSum(((Number)source.get(MetricColumns.MQ_TRANSACTION_ERROR_DURATION_SUM.getName())).longValue());
+        target.setMqTransactionAverageDuration(((Number)source.get(MetricColumns.MQ_TRANSACTION_AVERAGE_DURATION.getName())).longValue());
+    }
+
+    public void esStreamDataToEsData(Metric source, Map<String, Object> target) {
+        target.put(MetricColumns.TIME_BUCKET.getName(), source.getTimeBucket());
+        target.put(MetricColumns.SOURCE_VALUE.getName(), source.getSourceValue());
+
+        target.put(MetricColumns.TRANSACTION_CALLS.getName(), source.getTransactionCalls());
+        target.put(MetricColumns.TRANSACTION_ERROR_CALLS.getName(), source.getTransactionErrorCalls());
+        target.put(MetricColumns.TRANSACTION_DURATION_SUM.getName(), source.getTransactionDurationSum());
+        target.put(MetricColumns.TRANSACTION_ERROR_DURATION_SUM.getName(), source.getTransactionErrorDurationSum());
+        target.put(MetricColumns.TRANSACTION_AVERAGE_DURATION.getName(), source.getTransactionAverageDuration());
+
+        target.put(MetricColumns.BUSINESS_TRANSACTION_CALLS.getName(), source.getBusinessTransactionCalls());
+        target.put(MetricColumns.BUSINESS_TRANSACTION_ERROR_CALLS.getName(), source.getBusinessTransactionErrorCalls());
+        target.put(MetricColumns.BUSINESS_TRANSACTION_DURATION_SUM.getName(), source.getBusinessTransactionDurationSum());
+        target.put(MetricColumns.BUSINESS_TRANSACTION_ERROR_DURATION_SUM.getName(), source.getBusinessTransactionErrorDurationSum());
+        target.put(MetricColumns.BUSINESS_TRANSACTION_AVERAGE_DURATION.getName(), source.getBusinessTransactionAverageDuration());
+
+        target.put(MetricColumns.MQ_TRANSACTION_CALLS.getName(), source.getMqTransactionCalls());
+        target.put(MetricColumns.MQ_TRANSACTION_ERROR_CALLS.getName(), source.getMqTransactionErrorCalls());
+        target.put(MetricColumns.MQ_TRANSACTION_DURATION_SUM.getName(), source.getMqTransactionDurationSum());
+        target.put(MetricColumns.MQ_TRANSACTION_ERROR_DURATION_SUM.getName(), source.getMqTransactionErrorDurationSum());
+        target.put(MetricColumns.MQ_TRANSACTION_AVERAGE_DURATION.getName(), source.getMqTransactionAverageDuration());
+    }
+}
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/StorageModuleEsConfig.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/StorageModuleEsConfig.java
index 5dd5e8889..31d9a3d39 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/StorageModuleEsConfig.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/StorageModuleEsConfig.java
@@ -25,31 +25,40 @@
  */
 class StorageModuleEsConfig extends ElasticSearchClientConfig {
 
-    private Integer indexShardsNumber;
-    private Integer indexReplicasNumber;
-    private Integer ttl;
+    private int indexShardsNumber;
+    private int indexReplicasNumber;
+    private int ttl;
+    private boolean highPerformanceMode;
 
-    Integer getIndexShardsNumber() {
+    int getIndexShardsNumber() {
         return indexShardsNumber;
     }
 
-    void setIndexShardsNumber(Integer indexShardsNumber) {
+    void setIndexShardsNumber(int indexShardsNumber) {
         this.indexShardsNumber = indexShardsNumber;
     }
 
-    Integer getIndexReplicasNumber() {
+    int getIndexReplicasNumber() {
         return indexReplicasNumber;
     }
 
-    void setIndexReplicasNumber(Integer indexReplicasNumber) {
+    void setIndexReplicasNumber(int indexReplicasNumber) {
         this.indexReplicasNumber = indexReplicasNumber;
     }
 
-    Integer getTtl() {
+    int getTtl() {
         return ttl;
     }
 
-    void setTtl(Integer ttl) {
+    void setTtl(int ttl) {
         this.ttl = ttl;
     }
+
+    boolean isHighPerformanceMode() {
+        return highPerformanceMode;
+    }
+
+    void setHighPerformanceMode(boolean highPerformanceMode) {
+        this.highPerformanceMode = highPerformanceMode;
+    }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/StorageModuleEsProvider.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/StorageModuleEsProvider.java
index 7ea83e7e4..12d610af6 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/StorageModuleEsProvider.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/StorageModuleEsProvider.java
@@ -130,7 +130,6 @@
 import org.apache.skywalking.apm.collector.storage.dao.ui.IInstanceMetricUIDAO;
 import org.apache.skywalking.apm.collector.storage.dao.ui.IInstanceUIDAO;
 import org.apache.skywalking.apm.collector.storage.dao.ui.IMemoryMetricUIDAO;
-import org.apache.skywalking.apm.collector.storage.dao.ui.IMemoryPoolMetricUIDAO;
 import org.apache.skywalking.apm.collector.storage.dao.ui.INetworkAddressUIDAO;
 import org.apache.skywalking.apm.collector.storage.dao.ui.ISegmentDurationUIDAO;
 import org.apache.skywalking.apm.collector.storage.dao.ui.ISegmentUIDAO;
@@ -236,7 +235,6 @@
 import org.apache.skywalking.apm.collector.storage.es.dao.ui.InstanceEsUIDAO;
 import org.apache.skywalking.apm.collector.storage.es.dao.ui.InstanceMetricEsUIDAO;
 import org.apache.skywalking.apm.collector.storage.es.dao.ui.MemoryMetricEsUIDAO;
-import org.apache.skywalking.apm.collector.storage.es.dao.ui.MemoryPoolMetricEsUIDAO;
 import org.apache.skywalking.apm.collector.storage.es.dao.ui.NetworkAddressEsUIDAO;
 import org.apache.skywalking.apm.collector.storage.es.dao.ui.SegmentDurationEsUIDAO;
 import org.apache.skywalking.apm.collector.storage.es.dao.ui.SegmentEsUIDAO;
@@ -295,7 +293,7 @@ public void start() {
 
             elasticSearchClient.initialize();
 
-            ElasticSearchStorageInstaller installer = new ElasticSearchStorageInstaller(config.getIndexShardsNumber(), config.getIndexReplicasNumber());
+            ElasticSearchStorageInstaller installer = new ElasticSearchStorageInstaller(config.getIndexShardsNumber(), config.getIndexReplicasNumber(), config.isHighPerformanceMode());
             installer.install(elasticSearchClient);
         } catch (ClientException | StorageException e) {
             logger.error(e.getMessage(), e);
@@ -424,7 +422,6 @@ private void registerUiDAO() throws ServiceNotProvidedException {
         this.registerServiceImplementation(ICpuMetricUIDAO.class, new CpuMetricEsUIDAO(elasticSearchClient));
         this.registerServiceImplementation(IGCMetricUIDAO.class, new GCMetricEsUIDAO(elasticSearchClient));
         this.registerServiceImplementation(IMemoryMetricUIDAO.class, new MemoryMetricEsUIDAO(elasticSearchClient));
-        this.registerServiceImplementation(IMemoryPoolMetricUIDAO.class, new MemoryPoolMetricEsUIDAO(elasticSearchClient));
 
         this.registerServiceImplementation(IGlobalTraceUIDAO.class, new GlobalTraceEsUIDAO(elasticSearchClient));
         this.registerServiceImplementation(IInstanceMetricUIDAO.class, new InstanceMetricEsUIDAO(elasticSearchClient));
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/base/dao/BatchEsDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/base/dao/BatchEsDAO.java
index ffcc77d4e..2cd5036f0 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/base/dao/BatchEsDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/base/dao/BatchEsDAO.java
@@ -45,10 +45,12 @@ public BatchEsDAO(ElasticSearchClient client) {
 
     @GraphComputingMetric(name = "/persistence/batchPersistence/")
     @Override public void batchPersistence(@BatchParameter List<?> batchCollection) {
-        BulkRequestBuilder bulkRequest = getClient().prepareBulk();
-
-        logger.debug("bulk data size: {}", batchCollection.size());
+        if (logger.isDebugEnabled()) {
+            logger.debug("bulk data size: {}", batchCollection.size());
+        }
         if (CollectionUtils.isNotEmpty(batchCollection)) {
+            BulkRequestBuilder bulkRequest = getClient().prepareBulk();
+
             batchCollection.forEach(builder -> {
                 if (builder instanceof IndexRequestBuilder) {
                     bulkRequest.add((IndexRequestBuilder)builder);
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/base/define/ElasticSearchColumnDefine.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/base/define/ElasticSearchColumnDefine.java
index 5f5ce2770..a0e796df7 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/base/define/ElasticSearchColumnDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/base/define/ElasticSearchColumnDefine.java
@@ -19,13 +19,15 @@
 package org.apache.skywalking.apm.collector.storage.es.base.define;
 
 import org.apache.skywalking.apm.collector.core.data.ColumnDefine;
+import org.apache.skywalking.apm.collector.core.data.ColumnName;
 
 /**
  * @author peng-yongsheng
  */
 public class ElasticSearchColumnDefine extends ColumnDefine {
-    public ElasticSearchColumnDefine(String name, String type) {
-        super(name, type);
+
+    public ElasticSearchColumnDefine(ColumnName columnName, String type) {
+        super(columnName, type);
     }
 
     public enum Type {
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/base/define/ElasticSearchStorageInstaller.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/base/define/ElasticSearchStorageInstaller.java
index 7f99754b3..66510bf99 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/base/define/ElasticSearchStorageInstaller.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/base/define/ElasticSearchStorageInstaller.java
@@ -41,10 +41,13 @@
 
     private final int indexShardsNumber;
     private final int indexReplicasNumber;
+    private final boolean isHighPerformanceMode;
 
-    public ElasticSearchStorageInstaller(int indexShardsNumber, int indexReplicasNumber) {
+    public ElasticSearchStorageInstaller(int indexShardsNumber, int indexReplicasNumber,
+        boolean isHighPerformanceMode) {
         this.indexShardsNumber = indexShardsNumber;
         this.indexReplicasNumber = indexReplicasNumber;
+        this.isHighPerformanceMode = isHighPerformanceMode;
     }
 
     @Override protected void defineFilter(List<TableDefine> tableDefines) {
@@ -59,6 +62,7 @@ public ElasticSearchStorageInstaller(int indexShardsNumber, int indexReplicasNum
     @Override protected boolean createTable(Client client, TableDefine tableDefine) {
         ElasticSearchClient esClient = (ElasticSearchClient)client;
         ElasticSearchTableDefine esTableDefine = (ElasticSearchTableDefine)tableDefine;
+
         // mapping
         XContentBuilder mappingBuilder = null;
 
@@ -92,16 +96,19 @@ private XContentBuilder createMappingBuilder(ElasticSearchTableDefine tableDefin
 
         for (ColumnDefine columnDefine : tableDefine.getColumnDefines()) {
             ElasticSearchColumnDefine elasticSearchColumnDefine = (ElasticSearchColumnDefine)columnDefine;
+            if (isHighPerformanceMode) {
+                elasticSearchColumnDefine.getColumnName().useShortName();
+            }
 
             if (ElasticSearchColumnDefine.Type.Text.name().toLowerCase().equals(elasticSearchColumnDefine.getType().toLowerCase())) {
                 mappingBuilder
-                    .startObject(elasticSearchColumnDefine.getName())
+                    .startObject(elasticSearchColumnDefine.getColumnName().getName())
                     .field("type", elasticSearchColumnDefine.getType().toLowerCase())
                     .field("analyzer", "collector_analyzer")
                     .endObject();
             } else {
                 mappingBuilder
-                    .startObject(elasticSearchColumnDefine.getName())
+                    .startObject(elasticSearchColumnDefine.getColumnName().getName())
                     .field("type", elasticSearchColumnDefine.getType().toLowerCase())
                     .endObject();
             }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/GlobalTraceEsPersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/GlobalTraceEsPersistenceDAO.java
index b1346366f..27f1ea8bd 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/GlobalTraceEsPersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/GlobalTraceEsPersistenceDAO.java
@@ -58,12 +58,12 @@ public UpdateRequestBuilder prepareBatchUpdate(GlobalTrace data) {
 
     @Override
     public IndexRequestBuilder prepareBatchInsert(GlobalTrace data) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(GlobalTraceTable.COLUMN_SEGMENT_ID, data.getSegmentId());
-        source.put(GlobalTraceTable.COLUMN_GLOBAL_TRACE_ID, data.getGlobalTraceId());
-        source.put(GlobalTraceTable.COLUMN_TIME_BUCKET, data.getTimeBucket());
-        logger.debug("global trace source: {}", source.toString());
-        return getClient().prepareIndex(GlobalTraceTable.TABLE, data.getId()).setSource(source);
+        Map<String, Object> target = new HashMap<>();
+        target.put(GlobalTraceTable.SEGMENT_ID.getName(), data.getSegmentId());
+        target.put(GlobalTraceTable.TRACE_ID.getName(), data.getGlobalTraceId());
+        target.put(GlobalTraceTable.TIME_BUCKET.getName(), data.getTimeBucket());
+        logger.debug("global trace source: {}", target.toString());
+        return getClient().prepareIndex(GlobalTraceTable.TABLE, data.getId()).setSource(target);
     }
 
     @Override
@@ -71,7 +71,7 @@ public void deleteHistory(Long startTimestamp, Long endTimestamp) {
         long startTimeBucket = TimeBucketUtils.INSTANCE.getMinuteTimeBucket(startTimestamp);
         long endTimeBucket = TimeBucketUtils.INSTANCE.getMinuteTimeBucket(endTimestamp);
         BulkByScrollResponse response = getClient().prepareDelete(
-                QueryBuilders.rangeQuery(GlobalTraceTable.COLUMN_TIME_BUCKET).gte(startTimeBucket).lte(endTimeBucket),
+                QueryBuilders.rangeQuery(GlobalTraceTable.TIME_BUCKET.getName()).gte(startTimeBucket).lte(endTimeBucket),
                 GlobalTraceTable.TABLE)
                 .get();
 
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/InstanceHeartBeatEsPersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/InstanceHeartBeatEsPersistenceDAO.java
index 02bac7acf..eb7e86887 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/InstanceHeartBeatEsPersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/InstanceHeartBeatEsPersistenceDAO.java
@@ -52,8 +52,8 @@ public InstanceHeartBeatEsPersistenceDAO(ElasticSearchClient client) {
 
             Instance instance = new Instance();
             instance.setId(id);
-            instance.setInstanceId(((Number)source.get(InstanceTable.COLUMN_INSTANCE_ID)).intValue());
-            instance.setHeartBeatTime(((Number)source.get(InstanceTable.COLUMN_HEARTBEAT_TIME)).longValue());
+            instance.setInstanceId(((Number)source.get(InstanceTable.INSTANCE_ID.getName())).intValue());
+            instance.setHeartBeatTime(((Number)source.get(InstanceTable.HEARTBEAT_TIME.getName())).longValue());
             logger.debug("getApplicationId: {} is exists", id);
             return instance;
         } else {
@@ -68,7 +68,7 @@ public InstanceHeartBeatEsPersistenceDAO(ElasticSearchClient client) {
 
     @Override public UpdateRequestBuilder prepareBatchUpdate(Instance data) {
         Map<String, Object> source = new HashMap<>();
-        source.put(InstanceTable.COLUMN_HEARTBEAT_TIME, data.getHeartBeatTime());
+        source.put(InstanceTable.HEARTBEAT_TIME.getName(), data.getHeartBeatTime());
         return getClient().prepareUpdate(InstanceTable.TABLE, data.getId()).setDoc(source);
     }
 
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/SegmentDurationEsPersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/SegmentDurationEsPersistenceDAO.java
index 363bbc0ea..03d4ae8a7 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/SegmentDurationEsPersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/SegmentDurationEsPersistenceDAO.java
@@ -58,17 +58,17 @@ public UpdateRequestBuilder prepareBatchUpdate(SegmentDuration data) {
     @Override
     public IndexRequestBuilder prepareBatchInsert(SegmentDuration data) {
         logger.debug("segment cost prepareBatchInsert, getApplicationId: {}", data.getId());
-        Map<String, Object> source = new HashMap<>();
-        source.put(SegmentDurationTable.COLUMN_SEGMENT_ID, data.getSegmentId());
-        source.put(SegmentDurationTable.COLUMN_APPLICATION_ID, data.getApplicationId());
-        source.put(SegmentDurationTable.COLUMN_SERVICE_NAME, data.getServiceName());
-        source.put(SegmentDurationTable.COLUMN_DURATION, data.getDuration());
-        source.put(SegmentDurationTable.COLUMN_START_TIME, data.getStartTime());
-        source.put(SegmentDurationTable.COLUMN_END_TIME, data.getEndTime());
-        source.put(SegmentDurationTable.COLUMN_IS_ERROR, data.getIsError());
-        source.put(SegmentDurationTable.COLUMN_TIME_BUCKET, data.getTimeBucket());
-        logger.debug("segment cost source: {}", source.toString());
-        return getClient().prepareIndex(SegmentDurationTable.TABLE, data.getId()).setSource(source);
+        Map<String, Object> target = new HashMap<>();
+        target.put(SegmentDurationTable.SEGMENT_ID.getName(), data.getSegmentId());
+        target.put(SegmentDurationTable.APPLICATION_ID.getName(), data.getApplicationId());
+        target.put(SegmentDurationTable.SERVICE_NAME.getName(), data.getServiceName());
+        target.put(SegmentDurationTable.DURATION.getName(), data.getDuration());
+        target.put(SegmentDurationTable.START_TIME.getName(), data.getStartTime());
+        target.put(SegmentDurationTable.END_TIME.getName(), data.getEndTime());
+        target.put(SegmentDurationTable.IS_ERROR.getName(), data.getIsError());
+        target.put(SegmentDurationTable.TIME_BUCKET.getName(), data.getTimeBucket());
+        logger.debug("segment cost source: {}", target.toString());
+        return getClient().prepareIndex(SegmentDurationTable.TABLE, data.getId()).setSource(target);
     }
 
     @Override
@@ -76,7 +76,7 @@ public void deleteHistory(Long startTimestamp, Long endTimestamp) {
         long startTimeBucket = TimeBucketUtils.INSTANCE.getMinuteTimeBucket(startTimestamp);
         long endTimeBucket = TimeBucketUtils.INSTANCE.getMinuteTimeBucket(endTimestamp);
         BulkByScrollResponse response = getClient().prepareDelete(
-                QueryBuilders.rangeQuery(SegmentDurationTable.COLUMN_TIME_BUCKET).gte(startTimeBucket).lte(endTimeBucket),
+                QueryBuilders.rangeQuery(SegmentDurationTable.TIME_BUCKET.getName()).gte(startTimeBucket).lte(endTimeBucket),
                 SegmentDurationTable.TABLE)
                 .get();
 
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/SegmentEsPersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/SegmentEsPersistenceDAO.java
index e17efacda..801fb676c 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/SegmentEsPersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/SegmentEsPersistenceDAO.java
@@ -57,11 +57,11 @@ public UpdateRequestBuilder prepareBatchUpdate(Segment data) {
 
     @Override
     public IndexRequestBuilder prepareBatchInsert(Segment data) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(SegmentTable.COLUMN_DATA_BINARY, new String(Base64.getEncoder().encode(data.getDataBinary())));
-        source.put(SegmentTable.COLUMN_TIME_BUCKET, data.getTimeBucket());
-        logger.debug("segment source: {}", source.toString());
-        return getClient().prepareIndex(SegmentTable.TABLE, data.getId()).setSource(source);
+        Map<String, Object> target = new HashMap<>();
+        target.put(SegmentTable.DATA_BINARY.getName(), new String(Base64.getEncoder().encode(data.getDataBinary())));
+        target.put(SegmentTable.TIME_BUCKET.getName(), data.getTimeBucket());
+        logger.debug("segment source: {}", target.toString());
+        return getClient().prepareIndex(SegmentTable.TABLE, data.getId()).setSource(target);
     }
 
     @Override
@@ -69,7 +69,7 @@ public void deleteHistory(Long startTimestamp, Long endTimestamp) {
         long startTimeBucket = TimeBucketUtils.INSTANCE.getMinuteTimeBucket(startTimestamp);
         long endTimeBucket = TimeBucketUtils.INSTANCE.getMinuteTimeBucket(endTimestamp);
         BulkByScrollResponse response = getClient().prepareDelete(
-            QueryBuilders.rangeQuery(SegmentTable.COLUMN_TIME_BUCKET).gte(startTimeBucket).lte(endTimeBucket),
+            QueryBuilders.rangeQuery(SegmentTable.TIME_BUCKET.getName()).gte(startTimeBucket).lte(endTimeBucket),
             SegmentTable.TABLE)
             .get();
 
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/acp/AbstractApplicationComponentEsPersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/acp/AbstractApplicationComponentEsPersistenceDAO.java
index e15e0fc0a..42377e832 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/acp/AbstractApplicationComponentEsPersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/acp/AbstractApplicationComponentEsPersistenceDAO.java
@@ -36,28 +36,28 @@
     }
 
     @Override protected final String timeBucketColumnNameForDelete() {
-        return ApplicationComponentTable.COLUMN_TIME_BUCKET;
+        return ApplicationComponentTable.TIME_BUCKET.getName();
     }
 
     @Override protected final ApplicationComponent esDataToStreamData(Map<String, Object> source) {
         ApplicationComponent applicationComponent = new ApplicationComponent();
-        applicationComponent.setMetricId((String)source.get(ApplicationComponentTable.COLUMN_METRIC_ID));
+        applicationComponent.setMetricId((String)source.get(ApplicationComponentTable.METRIC_ID.getName()));
 
-        applicationComponent.setComponentId(((Number)source.get(ApplicationComponentTable.COLUMN_COMPONENT_ID)).intValue());
-        applicationComponent.setApplicationId(((Number)source.get(ApplicationComponentTable.COLUMN_APPLICATION_ID)).intValue());
-        applicationComponent.setTimeBucket(((Number)source.get(ApplicationComponentTable.COLUMN_TIME_BUCKET)).longValue());
+        applicationComponent.setComponentId(((Number)source.get(ApplicationComponentTable.COMPONENT_ID.getName())).intValue());
+        applicationComponent.setApplicationId(((Number)source.get(ApplicationComponentTable.APPLICATION_ID.getName())).intValue());
+        applicationComponent.setTimeBucket(((Number)source.get(ApplicationComponentTable.TIME_BUCKET.getName())).longValue());
         return applicationComponent;
     }
 
     @Override protected final Map<String, Object> esStreamDataToEsData(ApplicationComponent streamData) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(ApplicationComponentTable.COLUMN_METRIC_ID, streamData.getMetricId());
+        Map<String, Object> target = new HashMap<>();
+        target.put(ApplicationComponentTable.METRIC_ID.getName(), streamData.getMetricId());
 
-        source.put(ApplicationComponentTable.COLUMN_COMPONENT_ID, streamData.getComponentId());
-        source.put(ApplicationComponentTable.COLUMN_APPLICATION_ID, streamData.getApplicationId());
-        source.put(ApplicationComponentTable.COLUMN_TIME_BUCKET, streamData.getTimeBucket());
+        target.put(ApplicationComponentTable.COMPONENT_ID.getName(), streamData.getComponentId());
+        target.put(ApplicationComponentTable.APPLICATION_ID.getName(), streamData.getApplicationId());
+        target.put(ApplicationComponentTable.TIME_BUCKET.getName(), streamData.getTimeBucket());
 
-        return source;
+        return target;
     }
 
     @GraphComputingMetric(name = "/persistence/get/" + ApplicationComponentTable.TABLE)
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/alarm/AbstractApplicationAlarmListEsPersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/alarm/AbstractApplicationAlarmListEsPersistenceDAO.java
index 1e8760b1b..047a786c1 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/alarm/AbstractApplicationAlarmListEsPersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/alarm/AbstractApplicationAlarmListEsPersistenceDAO.java
@@ -21,6 +21,7 @@
 import java.util.HashMap;
 import java.util.Map;
 import org.apache.skywalking.apm.collector.client.elasticsearch.ElasticSearchClient;
+import org.apache.skywalking.apm.collector.core.annotations.trace.GraphComputingMetric;
 import org.apache.skywalking.apm.collector.storage.es.base.dao.AbstractPersistenceEsDAO;
 import org.apache.skywalking.apm.collector.storage.table.alarm.ApplicationAlarmList;
 import org.apache.skywalking.apm.collector.storage.table.alarm.ApplicationAlarmListTable;
@@ -35,32 +36,37 @@
     }
 
     @Override protected final String timeBucketColumnNameForDelete() {
-        return ApplicationAlarmListTable.COLUMN_TIME_BUCKET;
+        return ApplicationAlarmListTable.TIME_BUCKET.getName();
     }
 
     @Override protected final ApplicationAlarmList esDataToStreamData(Map<String, Object> source) {
         ApplicationAlarmList applicationAlarmList = new ApplicationAlarmList();
-        applicationAlarmList.setMetricId((String)source.get(ApplicationAlarmListTable.COLUMN_METRIC_ID));
-        applicationAlarmList.setApplicationId(((Number)source.get(ApplicationAlarmListTable.COLUMN_APPLICATION_ID)).intValue());
-        applicationAlarmList.setSourceValue(((Number)source.get(ApplicationAlarmListTable.COLUMN_SOURCE_VALUE)).intValue());
+        applicationAlarmList.setMetricId((String)source.get(ApplicationAlarmListTable.METRIC_ID.getName()));
+        applicationAlarmList.setApplicationId(((Number)source.get(ApplicationAlarmListTable.APPLICATION_ID.getName())).intValue());
+        applicationAlarmList.setSourceValue(((Number)source.get(ApplicationAlarmListTable.SOURCE_VALUE.getName())).intValue());
 
-        applicationAlarmList.setAlarmType(((Number)source.get(ApplicationAlarmListTable.COLUMN_ALARM_TYPE)).intValue());
-        applicationAlarmList.setAlarmContent((String)source.get(ApplicationAlarmListTable.COLUMN_ALARM_CONTENT));
+        applicationAlarmList.setAlarmType(((Number)source.get(ApplicationAlarmListTable.ALARM_TYPE.getName())).intValue());
+        applicationAlarmList.setAlarmContent((String)source.get(ApplicationAlarmListTable.ALARM_CONTENT.getName()));
 
-        applicationAlarmList.setTimeBucket(((Number)source.get(ApplicationAlarmListTable.COLUMN_TIME_BUCKET)).longValue());
+        applicationAlarmList.setTimeBucket(((Number)source.get(ApplicationAlarmListTable.TIME_BUCKET.getName())).longValue());
         return applicationAlarmList;
     }
 
     @Override protected final Map<String, Object> esStreamDataToEsData(ApplicationAlarmList streamData) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(ApplicationAlarmListTable.COLUMN_METRIC_ID, streamData.getMetricId());
-        source.put(ApplicationAlarmListTable.COLUMN_APPLICATION_ID, streamData.getApplicationId());
-        source.put(ApplicationAlarmListTable.COLUMN_SOURCE_VALUE, streamData.getSourceValue());
+        Map<String, Object> target = new HashMap<>();
+        target.put(ApplicationAlarmListTable.METRIC_ID.getName(), streamData.getMetricId());
+        target.put(ApplicationAlarmListTable.APPLICATION_ID.getName(), streamData.getApplicationId());
+        target.put(ApplicationAlarmListTable.SOURCE_VALUE.getName(), streamData.getSourceValue());
 
-        source.put(ApplicationAlarmListTable.COLUMN_ALARM_TYPE, streamData.getAlarmType());
-        source.put(ApplicationAlarmListTable.COLUMN_ALARM_CONTENT, streamData.getAlarmContent());
+        target.put(ApplicationAlarmListTable.ALARM_TYPE.getName(), streamData.getAlarmType());
+        target.put(ApplicationAlarmListTable.ALARM_CONTENT.getName(), streamData.getAlarmContent());
 
-        source.put(ApplicationAlarmListTable.COLUMN_TIME_BUCKET, streamData.getTimeBucket());
-        return source;
+        target.put(ApplicationAlarmListTable.TIME_BUCKET.getName(), streamData.getTimeBucket());
+        return target;
+    }
+
+    @GraphComputingMetric(name = "/persistence/get/" + ApplicationAlarmListTable.TABLE)
+    @Override public final ApplicationAlarmList get(String id) {
+        return super.get(id);
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/alarm/ApplicationAlarmEsPersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/alarm/ApplicationAlarmEsPersistenceDAO.java
index d3d560314..6b7e3d1fb 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/alarm/ApplicationAlarmEsPersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/alarm/ApplicationAlarmEsPersistenceDAO.java
@@ -18,93 +18,60 @@
 
 package org.apache.skywalking.apm.collector.storage.es.dao.alarm;
 
+import java.util.HashMap;
+import java.util.Map;
 import org.apache.skywalking.apm.collector.client.elasticsearch.ElasticSearchClient;
-import org.apache.skywalking.apm.collector.core.util.TimeBucketUtils;
+import org.apache.skywalking.apm.collector.core.annotations.trace.GraphComputingMetric;
 import org.apache.skywalking.apm.collector.storage.dao.alarm.IApplicationAlarmPersistenceDAO;
-import org.apache.skywalking.apm.collector.storage.es.base.dao.EsDAO;
+import org.apache.skywalking.apm.collector.storage.es.base.dao.AbstractPersistenceEsDAO;
 import org.apache.skywalking.apm.collector.storage.table.alarm.ApplicationAlarm;
 import org.apache.skywalking.apm.collector.storage.table.alarm.ApplicationAlarmTable;
-import org.elasticsearch.action.get.GetResponse;
 import org.elasticsearch.action.index.IndexRequestBuilder;
 import org.elasticsearch.action.update.UpdateRequestBuilder;
-import org.elasticsearch.index.query.QueryBuilders;
-import org.elasticsearch.index.reindex.BulkByScrollResponse;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.HashMap;
-import java.util.Map;
 
 /**
  * @author peng-yongsheng
  */
-public class ApplicationAlarmEsPersistenceDAO extends EsDAO implements IApplicationAlarmPersistenceDAO<IndexRequestBuilder, UpdateRequestBuilder, ApplicationAlarm> {
-
-    private final Logger logger = LoggerFactory.getLogger(ApplicationAlarmEsPersistenceDAO.class);
+public class ApplicationAlarmEsPersistenceDAO extends AbstractPersistenceEsDAO<ApplicationAlarm> implements IApplicationAlarmPersistenceDAO<IndexRequestBuilder, UpdateRequestBuilder, ApplicationAlarm> {
 
     public ApplicationAlarmEsPersistenceDAO(ElasticSearchClient client) {
         super(client);
     }
 
-    @Override
-    public ApplicationAlarm get(String id) {
-        GetResponse getResponse = getClient().prepareGet(ApplicationAlarmTable.TABLE, id).get();
-        if (getResponse.isExists()) {
-            ApplicationAlarm instanceAlarm = new ApplicationAlarm();
-            instanceAlarm.setId(id);
-
-            Map<String, Object> source = getResponse.getSource();
-            instanceAlarm.setApplicationId(((Number) source.get(ApplicationAlarmTable.COLUMN_APPLICATION_ID)).intValue());
-            instanceAlarm.setSourceValue(((Number) source.get(ApplicationAlarmTable.COLUMN_SOURCE_VALUE)).intValue());
-
-            instanceAlarm.setAlarmType(((Number) source.get(ApplicationAlarmTable.COLUMN_ALARM_TYPE)).intValue());
-            instanceAlarm.setAlarmContent((String) source.get(ApplicationAlarmTable.COLUMN_ALARM_CONTENT));
-
-            instanceAlarm.setLastTimeBucket(((Number) source.get(ApplicationAlarmTable.COLUMN_LAST_TIME_BUCKET)).longValue());
-            return instanceAlarm;
-        } else {
-            return null;
-        }
+    @Override protected String tableName() {
+        return ApplicationAlarmTable.TABLE;
     }
 
-    @Override
-    public IndexRequestBuilder prepareBatchInsert(ApplicationAlarm data) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(ApplicationAlarmTable.COLUMN_APPLICATION_ID, data.getApplicationId());
-        source.put(ApplicationAlarmTable.COLUMN_SOURCE_VALUE, data.getSourceValue());
+    @Override protected ApplicationAlarm esDataToStreamData(Map<String, Object> source) {
+        ApplicationAlarm instanceAlarm = new ApplicationAlarm();
+        instanceAlarm.setApplicationId(((Number)source.get(ApplicationAlarmTable.APPLICATION_ID.getName())).intValue());
+        instanceAlarm.setSourceValue(((Number)source.get(ApplicationAlarmTable.SOURCE_VALUE.getName())).intValue());
 
-        source.put(ApplicationAlarmTable.COLUMN_ALARM_TYPE, data.getAlarmType());
-        source.put(ApplicationAlarmTable.COLUMN_ALARM_CONTENT, data.getAlarmContent());
+        instanceAlarm.setAlarmType(((Number)source.get(ApplicationAlarmTable.ALARM_TYPE.getName())).intValue());
+        instanceAlarm.setAlarmContent((String)source.get(ApplicationAlarmTable.ALARM_CONTENT.getName()));
 
-        source.put(ApplicationAlarmTable.COLUMN_LAST_TIME_BUCKET, data.getLastTimeBucket());
-
-        return getClient().prepareIndex(ApplicationAlarmTable.TABLE, data.getId()).setSource(source);
+        instanceAlarm.setLastTimeBucket(((Number)source.get(ApplicationAlarmTable.LAST_TIME_BUCKET.getName())).longValue());
+        return instanceAlarm;
     }
 
-    @Override
-    public UpdateRequestBuilder prepareBatchUpdate(ApplicationAlarm data) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(ApplicationAlarmTable.COLUMN_APPLICATION_ID, data.getApplicationId());
-        source.put(ApplicationAlarmTable.COLUMN_SOURCE_VALUE, data.getSourceValue());
-
-        source.put(ApplicationAlarmTable.COLUMN_ALARM_TYPE, data.getAlarmType());
-        source.put(ApplicationAlarmTable.COLUMN_ALARM_CONTENT, data.getAlarmContent());
+    @Override protected Map<String, Object> esStreamDataToEsData(ApplicationAlarm streamData) {
+        Map<String, Object> target = new HashMap<>();
+        target.put(ApplicationAlarmTable.APPLICATION_ID.getName(), streamData.getApplicationId());
+        target.put(ApplicationAlarmTable.SOURCE_VALUE.getName(), streamData.getSourceValue());
 
-        source.put(ApplicationAlarmTable.COLUMN_LAST_TIME_BUCKET, data.getLastTimeBucket());
+        target.put(ApplicationAlarmTable.ALARM_TYPE.getName(), streamData.getAlarmType());
+        target.put(ApplicationAlarmTable.ALARM_CONTENT.getName(), streamData.getAlarmContent());
 
-        return getClient().prepareUpdate(ApplicationAlarmTable.TABLE, data.getId()).setDoc(source);
+        target.put(ApplicationAlarmTable.LAST_TIME_BUCKET.getName(), streamData.getLastTimeBucket());
+        return target;
     }
 
-    @Override
-    public void deleteHistory(Long startTimestamp, Long endTimestamp) {
-        long startTimeBucket = TimeBucketUtils.INSTANCE.getMinuteTimeBucket(startTimestamp);
-        long endTimeBucket = TimeBucketUtils.INSTANCE.getMinuteTimeBucket(endTimestamp);
-        BulkByScrollResponse response = getClient().prepareDelete(
-                QueryBuilders.rangeQuery(ApplicationAlarmTable.COLUMN_LAST_TIME_BUCKET).gte(startTimeBucket).lte(endTimeBucket),
-                ApplicationAlarmTable.TABLE)
-                .get();
+    @Override protected String timeBucketColumnNameForDelete() {
+        return ApplicationAlarmTable.LAST_TIME_BUCKET.getName();
+    }
 
-        long deleted = response.getDeleted();
-        logger.info("Delete {} rows history from {} index.", deleted, ApplicationAlarmTable.TABLE);
+    @GraphComputingMetric(name = "/persistence/get/" + ApplicationAlarmTable.TABLE)
+    @Override public ApplicationAlarm get(String id) {
+        return super.get(id);
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/alarm/ApplicationReferenceAlarmEsPersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/alarm/ApplicationReferenceAlarmEsPersistenceDAO.java
index 33c11119b..fd5069ead 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/alarm/ApplicationReferenceAlarmEsPersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/alarm/ApplicationReferenceAlarmEsPersistenceDAO.java
@@ -20,93 +20,60 @@
 
 import java.util.HashMap;
 import java.util.Map;
-
 import org.apache.skywalking.apm.collector.client.elasticsearch.ElasticSearchClient;
-import org.apache.skywalking.apm.collector.core.util.TimeBucketUtils;
+import org.apache.skywalking.apm.collector.core.annotations.trace.GraphComputingMetric;
 import org.apache.skywalking.apm.collector.storage.dao.alarm.IApplicationReferenceAlarmPersistenceDAO;
-import org.apache.skywalking.apm.collector.storage.es.base.dao.EsDAO;
+import org.apache.skywalking.apm.collector.storage.es.base.dao.AbstractPersistenceEsDAO;
 import org.apache.skywalking.apm.collector.storage.table.alarm.ApplicationReferenceAlarm;
 import org.apache.skywalking.apm.collector.storage.table.alarm.ApplicationReferenceAlarmTable;
-import org.elasticsearch.action.get.GetResponse;
 import org.elasticsearch.action.index.IndexRequestBuilder;
 import org.elasticsearch.action.update.UpdateRequestBuilder;
-import org.elasticsearch.index.query.QueryBuilders;
-import org.elasticsearch.index.reindex.BulkByScrollResponse;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /**
  * @author peng-yongsheng
  */
-public class ApplicationReferenceAlarmEsPersistenceDAO extends EsDAO implements IApplicationReferenceAlarmPersistenceDAO<IndexRequestBuilder, UpdateRequestBuilder, ApplicationReferenceAlarm> {
-
-    private final Logger logger = LoggerFactory.getLogger(ApplicationReferenceAlarmEsPersistenceDAO.class);
+public class ApplicationReferenceAlarmEsPersistenceDAO extends AbstractPersistenceEsDAO<ApplicationReferenceAlarm> implements IApplicationReferenceAlarmPersistenceDAO<IndexRequestBuilder, UpdateRequestBuilder, ApplicationReferenceAlarm> {
 
     public ApplicationReferenceAlarmEsPersistenceDAO(ElasticSearchClient client) {
         super(client);
     }
 
-    @Override
-    public ApplicationReferenceAlarm get(String id) {
-        GetResponse getResponse = getClient().prepareGet(ApplicationReferenceAlarmTable.TABLE, id).get();
-        if (getResponse.isExists()) {
-            ApplicationReferenceAlarm applicationReferenceAlarm = new ApplicationReferenceAlarm();
-            applicationReferenceAlarm.setId(id);
-            Map<String, Object> source = getResponse.getSource();
-            applicationReferenceAlarm.setFrontApplicationId(((Number) source.get(ApplicationReferenceAlarmTable.COLUMN_FRONT_APPLICATION_ID)).intValue());
-            applicationReferenceAlarm.setBehindApplicationId(((Number) source.get(ApplicationReferenceAlarmTable.COLUMN_BEHIND_APPLICATION_ID)).intValue());
-            applicationReferenceAlarm.setSourceValue(((Number) source.get(ApplicationReferenceAlarmTable.COLUMN_SOURCE_VALUE)).intValue());
-
-            applicationReferenceAlarm.setAlarmType(((Number) source.get(ApplicationReferenceAlarmTable.COLUMN_ALARM_TYPE)).intValue());
-            applicationReferenceAlarm.setAlarmContent((String) source.get(ApplicationReferenceAlarmTable.COLUMN_ALARM_CONTENT));
-
-            applicationReferenceAlarm.setLastTimeBucket(((Number) source.get(ApplicationReferenceAlarmTable.COLUMN_LAST_TIME_BUCKET)).longValue());
-            return applicationReferenceAlarm;
-        } else {
-            return null;
-        }
+    @Override protected String tableName() {
+        return ApplicationReferenceAlarmTable.TABLE;
     }
 
-    @Override
-    public IndexRequestBuilder prepareBatchInsert(ApplicationReferenceAlarm data) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(ApplicationReferenceAlarmTable.COLUMN_FRONT_APPLICATION_ID, data.getFrontApplicationId());
-        source.put(ApplicationReferenceAlarmTable.COLUMN_BEHIND_APPLICATION_ID, data.getBehindApplicationId());
-        source.put(ApplicationReferenceAlarmTable.COLUMN_SOURCE_VALUE, data.getSourceValue());
+    @Override protected ApplicationReferenceAlarm esDataToStreamData(Map<String, Object> source) {
+        ApplicationReferenceAlarm applicationReferenceAlarm = new ApplicationReferenceAlarm();
+        applicationReferenceAlarm.setFrontApplicationId(((Number)source.get(ApplicationReferenceAlarmTable.FRONT_APPLICATION_ID.getName())).intValue());
+        applicationReferenceAlarm.setBehindApplicationId(((Number)source.get(ApplicationReferenceAlarmTable.BEHIND_APPLICATION_ID.getName())).intValue());
+        applicationReferenceAlarm.setSourceValue(((Number)source.get(ApplicationReferenceAlarmTable.SOURCE_VALUE.getName())).intValue());
 
-        source.put(ApplicationReferenceAlarmTable.COLUMN_ALARM_TYPE, data.getAlarmType());
-        source.put(ApplicationReferenceAlarmTable.COLUMN_ALARM_CONTENT, data.getAlarmContent());
+        applicationReferenceAlarm.setAlarmType(((Number)source.get(ApplicationReferenceAlarmTable.ALARM_TYPE.getName())).intValue());
+        applicationReferenceAlarm.setAlarmContent((String)source.get(ApplicationReferenceAlarmTable.ALARM_CONTENT.getName()));
 
-        source.put(ApplicationReferenceAlarmTable.COLUMN_LAST_TIME_BUCKET, data.getLastTimeBucket());
-
-        return getClient().prepareIndex(ApplicationReferenceAlarmTable.TABLE, data.getId()).setSource(source);
+        applicationReferenceAlarm.setLastTimeBucket(((Number)source.get(ApplicationReferenceAlarmTable.LAST_TIME_BUCKET.getName())).longValue());
+        return applicationReferenceAlarm;
     }
 
-    @Override
-    public UpdateRequestBuilder prepareBatchUpdate(ApplicationReferenceAlarm data) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(ApplicationReferenceAlarmTable.COLUMN_FRONT_APPLICATION_ID, data.getFrontApplicationId());
-        source.put(ApplicationReferenceAlarmTable.COLUMN_BEHIND_APPLICATION_ID, data.getBehindApplicationId());
-        source.put(ApplicationReferenceAlarmTable.COLUMN_SOURCE_VALUE, data.getSourceValue());
-
-        source.put(ApplicationReferenceAlarmTable.COLUMN_ALARM_TYPE, data.getAlarmType());
-        source.put(ApplicationReferenceAlarmTable.COLUMN_ALARM_CONTENT, data.getAlarmContent());
+    @Override protected Map<String, Object> esStreamDataToEsData(ApplicationReferenceAlarm streamData) {
+        Map<String, Object> target = new HashMap<>();
+        target.put(ApplicationReferenceAlarmTable.FRONT_APPLICATION_ID.getName(), streamData.getFrontApplicationId());
+        target.put(ApplicationReferenceAlarmTable.BEHIND_APPLICATION_ID.getName(), streamData.getBehindApplicationId());
+        target.put(ApplicationReferenceAlarmTable.SOURCE_VALUE.getName(), streamData.getSourceValue());
 
-        source.put(ApplicationReferenceAlarmTable.COLUMN_LAST_TIME_BUCKET, data.getLastTimeBucket());
+        target.put(ApplicationReferenceAlarmTable.ALARM_TYPE.getName(), streamData.getAlarmType());
+        target.put(ApplicationReferenceAlarmTable.ALARM_CONTENT.getName(), streamData.getAlarmContent());
 
-        return getClient().prepareUpdate(ApplicationReferenceAlarmTable.TABLE, data.getId()).setDoc(source);
+        target.put(ApplicationReferenceAlarmTable.LAST_TIME_BUCKET.getName(), streamData.getLastTimeBucket());
+        return target;
     }
 
-    @Override
-    public void deleteHistory(Long startTimestamp, Long endTimestamp) {
-        long startTimeBucket = TimeBucketUtils.INSTANCE.getMinuteTimeBucket(startTimestamp);
-        long endTimeBucket = TimeBucketUtils.INSTANCE.getMinuteTimeBucket(endTimestamp);
-        BulkByScrollResponse response = getClient().prepareDelete(
-                QueryBuilders.rangeQuery(ApplicationReferenceAlarmTable.COLUMN_LAST_TIME_BUCKET).gte(startTimeBucket).lte(endTimeBucket),
-                ApplicationReferenceAlarmTable.TABLE)
-                .get();
+    @Override protected String timeBucketColumnNameForDelete() {
+        return ApplicationReferenceAlarmTable.LAST_TIME_BUCKET.getName();
+    }
 
-        long deleted = response.getDeleted();
-        logger.info("Delete {} rows history from {} index.", deleted, ApplicationReferenceAlarmTable.TABLE);
+    @GraphComputingMetric(name = "/persistence/get/" + ApplicationReferenceAlarmTable.TABLE)
+    @Override public final ApplicationReferenceAlarm get(String id) {
+        return super.get(id);
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/alarm/ApplicationReferenceAlarmListEsPersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/alarm/ApplicationReferenceAlarmListEsPersistenceDAO.java
index ca28dfa0c..e988a1ba9 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/alarm/ApplicationReferenceAlarmListEsPersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/alarm/ApplicationReferenceAlarmListEsPersistenceDAO.java
@@ -21,91 +21,59 @@
 import java.util.HashMap;
 import java.util.Map;
 import org.apache.skywalking.apm.collector.client.elasticsearch.ElasticSearchClient;
-import org.apache.skywalking.apm.collector.core.util.TimeBucketUtils;
+import org.apache.skywalking.apm.collector.core.annotations.trace.GraphComputingMetric;
 import org.apache.skywalking.apm.collector.storage.dao.alarm.IApplicationReferenceAlarmListPersistenceDAO;
-import org.apache.skywalking.apm.collector.storage.es.base.dao.EsDAO;
+import org.apache.skywalking.apm.collector.storage.es.base.dao.AbstractPersistenceEsDAO;
 import org.apache.skywalking.apm.collector.storage.table.alarm.ApplicationReferenceAlarmList;
 import org.apache.skywalking.apm.collector.storage.table.alarm.ApplicationReferenceAlarmListTable;
-import org.elasticsearch.action.get.GetResponse;
 import org.elasticsearch.action.index.IndexRequestBuilder;
 import org.elasticsearch.action.update.UpdateRequestBuilder;
-import org.elasticsearch.index.query.QueryBuilders;
-import org.elasticsearch.index.reindex.BulkByScrollResponse;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /**
  * @author peng-yongsheng
  */
-public class ApplicationReferenceAlarmListEsPersistenceDAO extends EsDAO implements IApplicationReferenceAlarmListPersistenceDAO<IndexRequestBuilder, UpdateRequestBuilder, ApplicationReferenceAlarmList> {
-
-    private static final Logger logger = LoggerFactory.getLogger(ApplicationReferenceAlarmListEsPersistenceDAO.class);
+public class ApplicationReferenceAlarmListEsPersistenceDAO extends AbstractPersistenceEsDAO<ApplicationReferenceAlarmList> implements IApplicationReferenceAlarmListPersistenceDAO<IndexRequestBuilder, UpdateRequestBuilder, ApplicationReferenceAlarmList> {
 
     public ApplicationReferenceAlarmListEsPersistenceDAO(ElasticSearchClient client) {
         super(client);
     }
 
-    @Override
-    public ApplicationReferenceAlarmList get(String id) {
-        GetResponse getResponse = getClient().prepareGet(ApplicationReferenceAlarmListTable.TABLE, id).get();
-        if (getResponse.isExists()) {
-            ApplicationReferenceAlarmList applicationReferenceAlarmList = new ApplicationReferenceAlarmList();
-            applicationReferenceAlarmList.setId(id);
-            Map<String, Object> source = getResponse.getSource();
-            applicationReferenceAlarmList.setFrontApplicationId(((Number)source.get(ApplicationReferenceAlarmListTable.COLUMN_FRONT_APPLICATION_ID)).intValue());
-            applicationReferenceAlarmList.setBehindApplicationId(((Number)source.get(ApplicationReferenceAlarmListTable.COLUMN_BEHIND_APPLICATION_ID)).intValue());
-            applicationReferenceAlarmList.setSourceValue(((Number)source.get(ApplicationReferenceAlarmListTable.COLUMN_SOURCE_VALUE)).intValue());
-
-            applicationReferenceAlarmList.setAlarmType(((Number)source.get(ApplicationReferenceAlarmListTable.COLUMN_ALARM_TYPE)).intValue());
-            applicationReferenceAlarmList.setAlarmContent((String)source.get(ApplicationReferenceAlarmListTable.COLUMN_ALARM_CONTENT));
-
-            applicationReferenceAlarmList.setTimeBucket(((Number)source.get(ApplicationReferenceAlarmListTable.COLUMN_TIME_BUCKET)).longValue());
-            return applicationReferenceAlarmList;
-        } else {
-            return null;
-        }
+    @Override protected String tableName() {
+        return ApplicationReferenceAlarmListTable.TABLE;
     }
 
-    @Override
-    public IndexRequestBuilder prepareBatchInsert(ApplicationReferenceAlarmList data) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(ApplicationReferenceAlarmListTable.COLUMN_FRONT_APPLICATION_ID, data.getFrontApplicationId());
-        source.put(ApplicationReferenceAlarmListTable.COLUMN_BEHIND_APPLICATION_ID, data.getBehindApplicationId());
-        source.put(ApplicationReferenceAlarmListTable.COLUMN_SOURCE_VALUE, data.getSourceValue());
+    @Override protected ApplicationReferenceAlarmList esDataToStreamData(Map<String, Object> source) {
+        ApplicationReferenceAlarmList applicationReferenceAlarmList = new ApplicationReferenceAlarmList();
+        applicationReferenceAlarmList.setFrontApplicationId(((Number)source.get(ApplicationReferenceAlarmListTable.FRONT_APPLICATION_ID.getName())).intValue());
+        applicationReferenceAlarmList.setBehindApplicationId(((Number)source.get(ApplicationReferenceAlarmListTable.BEHIND_APPLICATION_ID.getName())).intValue());
+        applicationReferenceAlarmList.setSourceValue(((Number)source.get(ApplicationReferenceAlarmListTable.SOURCE_VALUE.getName())).intValue());
 
-        source.put(ApplicationReferenceAlarmListTable.COLUMN_ALARM_TYPE, data.getAlarmType());
-        source.put(ApplicationReferenceAlarmListTable.COLUMN_ALARM_CONTENT, data.getAlarmContent());
+        applicationReferenceAlarmList.setAlarmType(((Number)source.get(ApplicationReferenceAlarmListTable.ALARM_TYPE.getName())).intValue());
+        applicationReferenceAlarmList.setAlarmContent((String)source.get(ApplicationReferenceAlarmListTable.ALARM_CONTENT.getName()));
 
-        source.put(ApplicationReferenceAlarmListTable.COLUMN_TIME_BUCKET, data.getTimeBucket());
-
-        return getClient().prepareIndex(ApplicationReferenceAlarmListTable.TABLE, data.getId()).setSource(source);
+        applicationReferenceAlarmList.setTimeBucket(((Number)source.get(ApplicationReferenceAlarmListTable.TIME_BUCKET.getName())).longValue());
+        return applicationReferenceAlarmList;
     }
 
-    @Override
-    public UpdateRequestBuilder prepareBatchUpdate(ApplicationReferenceAlarmList data) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(ApplicationReferenceAlarmListTable.COLUMN_FRONT_APPLICATION_ID, data.getFrontApplicationId());
-        source.put(ApplicationReferenceAlarmListTable.COLUMN_BEHIND_APPLICATION_ID, data.getBehindApplicationId());
-        source.put(ApplicationReferenceAlarmListTable.COLUMN_SOURCE_VALUE, data.getSourceValue());
-
-        source.put(ApplicationReferenceAlarmListTable.COLUMN_ALARM_TYPE, data.getAlarmType());
-        source.put(ApplicationReferenceAlarmListTable.COLUMN_ALARM_CONTENT, data.getAlarmContent());
+    @Override protected Map<String, Object> esStreamDataToEsData(ApplicationReferenceAlarmList streamData) {
+        Map<String, Object> target = new HashMap<>();
+        target.put(ApplicationReferenceAlarmListTable.FRONT_APPLICATION_ID.getName(), streamData.getFrontApplicationId());
+        target.put(ApplicationReferenceAlarmListTable.BEHIND_APPLICATION_ID.getName(), streamData.getBehindApplicationId());
+        target.put(ApplicationReferenceAlarmListTable.SOURCE_VALUE.getName(), streamData.getSourceValue());
 
-        source.put(ApplicationReferenceAlarmListTable.COLUMN_TIME_BUCKET, data.getTimeBucket());
+        target.put(ApplicationReferenceAlarmListTable.ALARM_TYPE.getName(), streamData.getAlarmType());
+        target.put(ApplicationReferenceAlarmListTable.ALARM_CONTENT.getName(), streamData.getAlarmContent());
 
-        return getClient().prepareUpdate(ApplicationReferenceAlarmListTable.TABLE, data.getId()).setDoc(source);
+        target.put(ApplicationReferenceAlarmListTable.TIME_BUCKET.getName(), streamData.getTimeBucket());
+        return target;
     }
 
-    @Override
-    public void deleteHistory(Long startTimestamp, Long endTimestamp) {
-        long startTimeBucket = TimeBucketUtils.INSTANCE.getMinuteTimeBucket(startTimestamp);
-        long endTimeBucket = TimeBucketUtils.INSTANCE.getMinuteTimeBucket(endTimestamp);
-        BulkByScrollResponse response = getClient().prepareDelete(
-            QueryBuilders.rangeQuery(ApplicationReferenceAlarmListTable.COLUMN_TIME_BUCKET).gte(startTimeBucket).lte(endTimeBucket),
-            ApplicationReferenceAlarmListTable.TABLE)
-            .get();
+    @Override protected String timeBucketColumnNameForDelete() {
+        return ApplicationReferenceAlarmListTable.TIME_BUCKET.getName();
+    }
 
-        long deleted = response.getDeleted();
-        logger.info("Delete {} rows history from {} index.", deleted, ApplicationReferenceAlarmListTable.TABLE);
+    @GraphComputingMetric(name = "/persistence/get/" + ApplicationReferenceAlarmListTable.TABLE)
+    @Override public ApplicationReferenceAlarmList get(String id) {
+        return super.get(id);
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/alarm/InstanceAlarmEsPersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/alarm/InstanceAlarmEsPersistenceDAO.java
index af5c05621..3d53fc5e9 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/alarm/InstanceAlarmEsPersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/alarm/InstanceAlarmEsPersistenceDAO.java
@@ -21,91 +21,59 @@
 import java.util.HashMap;
 import java.util.Map;
 import org.apache.skywalking.apm.collector.client.elasticsearch.ElasticSearchClient;
-import org.apache.skywalking.apm.collector.core.util.TimeBucketUtils;
+import org.apache.skywalking.apm.collector.core.annotations.trace.GraphComputingMetric;
 import org.apache.skywalking.apm.collector.storage.dao.alarm.IInstanceAlarmPersistenceDAO;
-import org.apache.skywalking.apm.collector.storage.es.base.dao.EsDAO;
+import org.apache.skywalking.apm.collector.storage.es.base.dao.AbstractPersistenceEsDAO;
 import org.apache.skywalking.apm.collector.storage.table.alarm.InstanceAlarm;
 import org.apache.skywalking.apm.collector.storage.table.alarm.InstanceAlarmTable;
-import org.elasticsearch.action.get.GetResponse;
 import org.elasticsearch.action.index.IndexRequestBuilder;
 import org.elasticsearch.action.update.UpdateRequestBuilder;
-import org.elasticsearch.index.query.QueryBuilders;
-import org.elasticsearch.index.reindex.BulkByScrollResponse;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /**
  * @author peng-yongsheng
  */
-public class InstanceAlarmEsPersistenceDAO extends EsDAO implements IInstanceAlarmPersistenceDAO<IndexRequestBuilder, UpdateRequestBuilder, InstanceAlarm> {
-
-    private static final Logger logger = LoggerFactory.getLogger(InstanceAlarmEsPersistenceDAO.class);
+public class InstanceAlarmEsPersistenceDAO extends AbstractPersistenceEsDAO<InstanceAlarm> implements IInstanceAlarmPersistenceDAO<IndexRequestBuilder, UpdateRequestBuilder, InstanceAlarm> {
 
     public InstanceAlarmEsPersistenceDAO(ElasticSearchClient client) {
         super(client);
     }
 
-    @Override
-    public InstanceAlarm get(String id) {
-        GetResponse getResponse = getClient().prepareGet(InstanceAlarmTable.TABLE, id).get();
-        if (getResponse.isExists()) {
-            InstanceAlarm instanceAlarm = new InstanceAlarm();
-            instanceAlarm.setId(id);
-            Map<String, Object> source = getResponse.getSource();
-            instanceAlarm.setApplicationId(((Number)source.get(InstanceAlarmTable.COLUMN_APPLICATION_ID)).intValue());
-            instanceAlarm.setInstanceId(((Number)source.get(InstanceAlarmTable.COLUMN_INSTANCE_ID)).intValue());
-            instanceAlarm.setSourceValue(((Number)source.get(InstanceAlarmTable.COLUMN_SOURCE_VALUE)).intValue());
-
-            instanceAlarm.setAlarmType(((Number)source.get(InstanceAlarmTable.COLUMN_ALARM_TYPE)).intValue());
-            instanceAlarm.setAlarmContent((String)source.get(InstanceAlarmTable.COLUMN_ALARM_CONTENT));
-
-            instanceAlarm.setLastTimeBucket(((Number)source.get(InstanceAlarmTable.COLUMN_LAST_TIME_BUCKET)).longValue());
-            return instanceAlarm;
-        } else {
-            return null;
-        }
+    @Override protected String tableName() {
+        return InstanceAlarmTable.TABLE;
     }
 
-    @Override
-    public IndexRequestBuilder prepareBatchInsert(InstanceAlarm data) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(InstanceAlarmTable.COLUMN_APPLICATION_ID, data.getApplicationId());
-        source.put(InstanceAlarmTable.COLUMN_INSTANCE_ID, data.getInstanceId());
-        source.put(InstanceAlarmTable.COLUMN_SOURCE_VALUE, data.getSourceValue());
+    @Override protected InstanceAlarm esDataToStreamData(Map<String, Object> source) {
+        InstanceAlarm instanceAlarm = new InstanceAlarm();
+        instanceAlarm.setApplicationId(((Number)source.get(InstanceAlarmTable.APPLICATION_ID.getName())).intValue());
+        instanceAlarm.setInstanceId(((Number)source.get(InstanceAlarmTable.INSTANCE_ID.getName())).intValue());
+        instanceAlarm.setSourceValue(((Number)source.get(InstanceAlarmTable.SOURCE_VALUE.getName())).intValue());
 
-        source.put(InstanceAlarmTable.COLUMN_ALARM_TYPE, data.getAlarmType());
-        source.put(InstanceAlarmTable.COLUMN_ALARM_CONTENT, data.getAlarmContent());
+        instanceAlarm.setAlarmType(((Number)source.get(InstanceAlarmTable.ALARM_TYPE.getName())).intValue());
+        instanceAlarm.setAlarmContent((String)source.get(InstanceAlarmTable.ALARM_CONTENT.getName()));
 
-        source.put(InstanceAlarmTable.COLUMN_LAST_TIME_BUCKET, data.getLastTimeBucket());
-
-        return getClient().prepareIndex(InstanceAlarmTable.TABLE, data.getId()).setSource(source);
+        instanceAlarm.setLastTimeBucket(((Number)source.get(InstanceAlarmTable.LAST_TIME_BUCKET.getName())).longValue());
+        return instanceAlarm;
     }
 
-    @Override
-    public UpdateRequestBuilder prepareBatchUpdate(InstanceAlarm data) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(InstanceAlarmTable.COLUMN_APPLICATION_ID, data.getApplicationId());
-        source.put(InstanceAlarmTable.COLUMN_INSTANCE_ID, data.getInstanceId());
-        source.put(InstanceAlarmTable.COLUMN_SOURCE_VALUE, data.getSourceValue());
-
-        source.put(InstanceAlarmTable.COLUMN_ALARM_TYPE, data.getAlarmType());
-        source.put(InstanceAlarmTable.COLUMN_ALARM_CONTENT, data.getAlarmContent());
+    @Override protected Map<String, Object> esStreamDataToEsData(InstanceAlarm streamData) {
+        Map<String, Object> target = new HashMap<>();
+        target.put(InstanceAlarmTable.APPLICATION_ID.getName(), streamData.getApplicationId());
+        target.put(InstanceAlarmTable.INSTANCE_ID.getName(), streamData.getInstanceId());
+        target.put(InstanceAlarmTable.SOURCE_VALUE.getName(), streamData.getSourceValue());
 
-        source.put(InstanceAlarmTable.COLUMN_LAST_TIME_BUCKET, data.getLastTimeBucket());
+        target.put(InstanceAlarmTable.ALARM_TYPE.getName(), streamData.getAlarmType());
+        target.put(InstanceAlarmTable.ALARM_CONTENT.getName(), streamData.getAlarmContent());
 
-        return getClient().prepareUpdate(InstanceAlarmTable.TABLE, data.getId()).setDoc(source);
+        target.put(InstanceAlarmTable.LAST_TIME_BUCKET.getName(), streamData.getLastTimeBucket());
+        return target;
     }
 
-    @Override
-    public void deleteHistory(Long startTimestamp, Long endTimestamp) {
-        long startTimeBucket = TimeBucketUtils.INSTANCE.getMinuteTimeBucket(startTimestamp);
-        long endTimeBucket = TimeBucketUtils.INSTANCE.getMinuteTimeBucket(endTimestamp);
-        BulkByScrollResponse response = getClient().prepareDelete(
-            QueryBuilders.rangeQuery(InstanceAlarmTable.COLUMN_LAST_TIME_BUCKET).gte(startTimeBucket).lte(endTimeBucket),
-            InstanceAlarmTable.TABLE)
-            .get();
+    @Override protected String timeBucketColumnNameForDelete() {
+        return InstanceAlarmTable.LAST_TIME_BUCKET.getName();
+    }
 
-        long deleted = response.getDeleted();
-        logger.info("Delete {} rows history from {} index.", deleted, InstanceAlarmTable.TABLE);
+    @GraphComputingMetric(name = "/persistence/get/" + InstanceAlarmTable.TABLE)
+    @Override public InstanceAlarm get(String id) {
+        return super.get(id);
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/alarm/InstanceAlarmListEsPersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/alarm/InstanceAlarmListEsPersistenceDAO.java
index e446290c5..96fef5386 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/alarm/InstanceAlarmListEsPersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/alarm/InstanceAlarmListEsPersistenceDAO.java
@@ -21,91 +21,59 @@
 import java.util.HashMap;
 import java.util.Map;
 import org.apache.skywalking.apm.collector.client.elasticsearch.ElasticSearchClient;
-import org.apache.skywalking.apm.collector.core.util.TimeBucketUtils;
+import org.apache.skywalking.apm.collector.core.annotations.trace.GraphComputingMetric;
 import org.apache.skywalking.apm.collector.storage.dao.alarm.IInstanceAlarmListPersistenceDAO;
-import org.apache.skywalking.apm.collector.storage.es.base.dao.EsDAO;
+import org.apache.skywalking.apm.collector.storage.es.base.dao.AbstractPersistenceEsDAO;
 import org.apache.skywalking.apm.collector.storage.table.alarm.InstanceAlarmList;
 import org.apache.skywalking.apm.collector.storage.table.alarm.InstanceAlarmListTable;
-import org.elasticsearch.action.get.GetResponse;
 import org.elasticsearch.action.index.IndexRequestBuilder;
 import org.elasticsearch.action.update.UpdateRequestBuilder;
-import org.elasticsearch.index.query.QueryBuilders;
-import org.elasticsearch.index.reindex.BulkByScrollResponse;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /**
  * @author peng-yongsheng
  */
-public class InstanceAlarmListEsPersistenceDAO extends EsDAO implements IInstanceAlarmListPersistenceDAO<IndexRequestBuilder, UpdateRequestBuilder, InstanceAlarmList> {
-
-    private static final Logger logger = LoggerFactory.getLogger(InstanceAlarmListEsPersistenceDAO.class);
+public class InstanceAlarmListEsPersistenceDAO extends AbstractPersistenceEsDAO<InstanceAlarmList> implements IInstanceAlarmListPersistenceDAO<IndexRequestBuilder, UpdateRequestBuilder, InstanceAlarmList> {
 
     public InstanceAlarmListEsPersistenceDAO(ElasticSearchClient client) {
         super(client);
     }
 
-    @Override
-    public InstanceAlarmList get(String id) {
-        GetResponse getResponse = getClient().prepareGet(InstanceAlarmListTable.TABLE, id).get();
-        if (getResponse.isExists()) {
-            InstanceAlarmList instanceAlarmList = new InstanceAlarmList();
-            instanceAlarmList.setId(id);
-            Map<String, Object> source = getResponse.getSource();
-            instanceAlarmList.setApplicationId(((Number)source.get(InstanceAlarmListTable.COLUMN_APPLICATION_ID)).intValue());
-            instanceAlarmList.setInstanceId(((Number)source.get(InstanceAlarmListTable.COLUMN_INSTANCE_ID)).intValue());
-            instanceAlarmList.setSourceValue(((Number)source.get(InstanceAlarmListTable.COLUMN_SOURCE_VALUE)).intValue());
-
-            instanceAlarmList.setAlarmType(((Number)source.get(InstanceAlarmListTable.COLUMN_ALARM_TYPE)).intValue());
-            instanceAlarmList.setAlarmContent((String)source.get(InstanceAlarmListTable.COLUMN_ALARM_CONTENT));
-
-            instanceAlarmList.setTimeBucket(((Number)source.get(InstanceAlarmListTable.COLUMN_TIME_BUCKET)).longValue());
-            return instanceAlarmList;
-        } else {
-            return null;
-        }
+    @Override protected String tableName() {
+        return InstanceAlarmListTable.TABLE;
     }
 
-    @Override
-    public IndexRequestBuilder prepareBatchInsert(InstanceAlarmList data) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(InstanceAlarmListTable.COLUMN_APPLICATION_ID, data.getApplicationId());
-        source.put(InstanceAlarmListTable.COLUMN_INSTANCE_ID, data.getInstanceId());
-        source.put(InstanceAlarmListTable.COLUMN_SOURCE_VALUE, data.getSourceValue());
+    @Override protected InstanceAlarmList esDataToStreamData(Map<String, Object> source) {
+        InstanceAlarmList instanceAlarmList = new InstanceAlarmList();
+        instanceAlarmList.setApplicationId(((Number)source.get(InstanceAlarmListTable.APPLICATION_ID.getName())).intValue());
+        instanceAlarmList.setInstanceId(((Number)source.get(InstanceAlarmListTable.INSTANCE_ID.getName())).intValue());
+        instanceAlarmList.setSourceValue(((Number)source.get(InstanceAlarmListTable.SOURCE_VALUE.getName())).intValue());
 
-        source.put(InstanceAlarmListTable.COLUMN_ALARM_TYPE, data.getAlarmType());
-        source.put(InstanceAlarmListTable.COLUMN_ALARM_CONTENT, data.getAlarmContent());
+        instanceAlarmList.setAlarmType(((Number)source.get(InstanceAlarmListTable.ALARM_TYPE.getName())).intValue());
+        instanceAlarmList.setAlarmContent((String)source.get(InstanceAlarmListTable.ALARM_CONTENT.getName()));
 
-        source.put(InstanceAlarmListTable.COLUMN_TIME_BUCKET, data.getTimeBucket());
-
-        return getClient().prepareIndex(InstanceAlarmListTable.TABLE, data.getId()).setSource(source);
+        instanceAlarmList.setTimeBucket(((Number)source.get(InstanceAlarmListTable.TIME_BUCKET.getName())).longValue());
+        return instanceAlarmList;
     }
 
-    @Override
-    public UpdateRequestBuilder prepareBatchUpdate(InstanceAlarmList data) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(InstanceAlarmListTable.COLUMN_APPLICATION_ID, data.getApplicationId());
-        source.put(InstanceAlarmListTable.COLUMN_INSTANCE_ID, data.getInstanceId());
-        source.put(InstanceAlarmListTable.COLUMN_SOURCE_VALUE, data.getSourceValue());
-
-        source.put(InstanceAlarmListTable.COLUMN_ALARM_TYPE, data.getAlarmType());
-        source.put(InstanceAlarmListTable.COLUMN_ALARM_CONTENT, data.getAlarmContent());
+    @Override protected Map<String, Object> esStreamDataToEsData(InstanceAlarmList streamData) {
+        Map<String, Object> target = new HashMap<>();
+        target.put(InstanceAlarmListTable.APPLICATION_ID.getName(), streamData.getApplicationId());
+        target.put(InstanceAlarmListTable.INSTANCE_ID.getName(), streamData.getInstanceId());
+        target.put(InstanceAlarmListTable.SOURCE_VALUE.getName(), streamData.getSourceValue());
 
-        source.put(InstanceAlarmListTable.COLUMN_TIME_BUCKET, data.getTimeBucket());
+        target.put(InstanceAlarmListTable.ALARM_TYPE.getName(), streamData.getAlarmType());
+        target.put(InstanceAlarmListTable.ALARM_CONTENT.getName(), streamData.getAlarmContent());
 
-        return getClient().prepareUpdate(InstanceAlarmListTable.TABLE, data.getId()).setDoc(source);
+        target.put(InstanceAlarmListTable.TIME_BUCKET.getName(), streamData.getTimeBucket());
+        return target;
     }
 
-    @Override
-    public void deleteHistory(Long startTimestamp, Long endTimestamp) {
-        long startTimeBucket = TimeBucketUtils.INSTANCE.getMinuteTimeBucket(startTimestamp);
-        long endTimeBucket = TimeBucketUtils.INSTANCE.getMinuteTimeBucket(endTimestamp);
-        BulkByScrollResponse response = getClient().prepareDelete(
-            QueryBuilders.rangeQuery(InstanceAlarmListTable.COLUMN_TIME_BUCKET).gte(startTimeBucket).lte(endTimeBucket),
-            InstanceAlarmListTable.TABLE)
-            .get();
+    @Override protected String timeBucketColumnNameForDelete() {
+        return InstanceAlarmListTable.TIME_BUCKET.getName();
+    }
 
-        long deleted = response.getDeleted();
-        logger.info("Delete {} rows history from {} index.", deleted, InstanceAlarmListTable.TABLE);
+    @GraphComputingMetric(name = "/persistence/get/" + InstanceAlarmListTable.TABLE)
+    @Override public InstanceAlarmList get(String id) {
+        return super.get(id);
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/alarm/InstanceReferenceAlarmEsPersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/alarm/InstanceReferenceAlarmEsPersistenceDAO.java
index 79d21da78..ae9752e50 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/alarm/InstanceReferenceAlarmEsPersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/alarm/InstanceReferenceAlarmEsPersistenceDAO.java
@@ -20,25 +20,21 @@
 
 import java.util.HashMap;
 import java.util.Map;
-
 import org.apache.skywalking.apm.collector.client.elasticsearch.ElasticSearchClient;
-import org.apache.skywalking.apm.collector.core.util.TimeBucketUtils;
+import org.apache.skywalking.apm.collector.core.annotations.trace.GraphComputingMetric;
 import org.apache.skywalking.apm.collector.storage.dao.alarm.IInstanceReferenceAlarmPersistenceDAO;
-import org.apache.skywalking.apm.collector.storage.es.base.dao.EsDAO;
+import org.apache.skywalking.apm.collector.storage.es.base.dao.AbstractPersistenceEsDAO;
 import org.apache.skywalking.apm.collector.storage.table.alarm.InstanceReferenceAlarm;
 import org.apache.skywalking.apm.collector.storage.table.alarm.InstanceReferenceAlarmTable;
-import org.elasticsearch.action.get.GetResponse;
 import org.elasticsearch.action.index.IndexRequestBuilder;
 import org.elasticsearch.action.update.UpdateRequestBuilder;
-import org.elasticsearch.index.query.QueryBuilders;
-import org.elasticsearch.index.reindex.BulkByScrollResponse;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
  * @author peng-yongsheng
  */
-public class InstanceReferenceAlarmEsPersistenceDAO extends EsDAO implements IInstanceReferenceAlarmPersistenceDAO<IndexRequestBuilder, UpdateRequestBuilder, InstanceReferenceAlarm> {
+public class InstanceReferenceAlarmEsPersistenceDAO extends AbstractPersistenceEsDAO<InstanceReferenceAlarm> implements IInstanceReferenceAlarmPersistenceDAO<IndexRequestBuilder, UpdateRequestBuilder, InstanceReferenceAlarm> {
 
     private final Logger logger = LoggerFactory.getLogger(InstanceReferenceAlarmEsPersistenceDAO.class);
 
@@ -46,73 +42,46 @@ public InstanceReferenceAlarmEsPersistenceDAO(ElasticSearchClient client) {
         super(client);
     }
 
-    @Override
-    public InstanceReferenceAlarm get(String id) {
-        GetResponse getResponse = getClient().prepareGet(InstanceReferenceAlarmTable.TABLE, id).get();
-        if (getResponse.isExists()) {
-            InstanceReferenceAlarm instanceReferenceAlarm = new InstanceReferenceAlarm();
-            instanceReferenceAlarm.setId(id);
-            Map<String, Object> source = getResponse.getSource();
-            instanceReferenceAlarm.setFrontApplicationId(((Number) source.get(InstanceReferenceAlarmTable.COLUMN_FRONT_APPLICATION_ID)).intValue());
-            instanceReferenceAlarm.setBehindApplicationId(((Number) source.get(InstanceReferenceAlarmTable.COLUMN_BEHIND_APPLICATION_ID)).intValue());
-            instanceReferenceAlarm.setFrontInstanceId(((Number) source.get(InstanceReferenceAlarmTable.COLUMN_FRONT_INSTANCE_ID)).intValue());
-            instanceReferenceAlarm.setBehindInstanceId(((Number) source.get(InstanceReferenceAlarmTable.COLUMN_BEHIND_INSTANCE_ID)).intValue());
-            instanceReferenceAlarm.setSourceValue(((Number) source.get(InstanceReferenceAlarmTable.COLUMN_SOURCE_VALUE)).intValue());
-
-            instanceReferenceAlarm.setAlarmType(((Number) source.get(InstanceReferenceAlarmTable.COLUMN_ALARM_TYPE)).intValue());
-            instanceReferenceAlarm.setAlarmContent((String) source.get(InstanceReferenceAlarmTable.COLUMN_ALARM_CONTENT));
-
-            instanceReferenceAlarm.setLastTimeBucket(((Number) source.get(InstanceReferenceAlarmTable.COLUMN_LAST_TIME_BUCKET)).longValue());
-            return instanceReferenceAlarm;
-        } else {
-            return null;
-        }
+    @Override protected String tableName() {
+        return InstanceReferenceAlarmTable.TABLE;
     }
 
-    @Override
-    public IndexRequestBuilder prepareBatchInsert(InstanceReferenceAlarm data) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(InstanceReferenceAlarmTable.COLUMN_FRONT_APPLICATION_ID, data.getFrontApplicationId());
-        source.put(InstanceReferenceAlarmTable.COLUMN_BEHIND_APPLICATION_ID, data.getBehindApplicationId());
-        source.put(InstanceReferenceAlarmTable.COLUMN_FRONT_INSTANCE_ID, data.getFrontInstanceId());
-        source.put(InstanceReferenceAlarmTable.COLUMN_BEHIND_INSTANCE_ID, data.getBehindInstanceId());
-        source.put(InstanceReferenceAlarmTable.COLUMN_SOURCE_VALUE, data.getSourceValue());
+    @Override protected InstanceReferenceAlarm esDataToStreamData(Map<String, Object> source) {
+        InstanceReferenceAlarm instanceReferenceAlarm = new InstanceReferenceAlarm();
+        instanceReferenceAlarm.setFrontApplicationId(((Number)source.get(InstanceReferenceAlarmTable.FRONT_APPLICATION_ID.getName())).intValue());
+        instanceReferenceAlarm.setBehindApplicationId(((Number)source.get(InstanceReferenceAlarmTable.BEHIND_APPLICATION_ID.getName())).intValue());
+        instanceReferenceAlarm.setFrontInstanceId(((Number)source.get(InstanceReferenceAlarmTable.FRONT_INSTANCE_ID.getName())).intValue());
+        instanceReferenceAlarm.setBehindInstanceId(((Number)source.get(InstanceReferenceAlarmTable.BEHIND_INSTANCE_ID.getName())).intValue());
+        instanceReferenceAlarm.setSourceValue(((Number)source.get(InstanceReferenceAlarmTable.SOURCE_VALUE.getName())).intValue());
 
-        source.put(InstanceReferenceAlarmTable.COLUMN_ALARM_TYPE, data.getAlarmType());
-        source.put(InstanceReferenceAlarmTable.COLUMN_ALARM_CONTENT, data.getAlarmContent());
+        instanceReferenceAlarm.setAlarmType(((Number)source.get(InstanceReferenceAlarmTable.ALARM_TYPE.getName())).intValue());
+        instanceReferenceAlarm.setAlarmContent((String)source.get(InstanceReferenceAlarmTable.ALARM_CONTENT.getName()));
 
-        source.put(InstanceReferenceAlarmTable.COLUMN_LAST_TIME_BUCKET, data.getLastTimeBucket());
-
-        return getClient().prepareIndex(InstanceReferenceAlarmTable.TABLE, data.getId()).setSource(source);
+        instanceReferenceAlarm.setLastTimeBucket(((Number)source.get(InstanceReferenceAlarmTable.LAST_TIME_BUCKET.getName())).longValue());
+        return instanceReferenceAlarm;
     }
 
-    @Override
-    public UpdateRequestBuilder prepareBatchUpdate(InstanceReferenceAlarm data) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(InstanceReferenceAlarmTable.COLUMN_FRONT_APPLICATION_ID, data.getFrontApplicationId());
-        source.put(InstanceReferenceAlarmTable.COLUMN_BEHIND_APPLICATION_ID, data.getBehindApplicationId());
-        source.put(InstanceReferenceAlarmTable.COLUMN_FRONT_INSTANCE_ID, data.getFrontInstanceId());
-        source.put(InstanceReferenceAlarmTable.COLUMN_BEHIND_INSTANCE_ID, data.getBehindInstanceId());
-        source.put(InstanceReferenceAlarmTable.COLUMN_SOURCE_VALUE, data.getSourceValue());
-
-        source.put(InstanceReferenceAlarmTable.COLUMN_ALARM_TYPE, data.getAlarmType());
-        source.put(InstanceReferenceAlarmTable.COLUMN_ALARM_CONTENT, data.getAlarmContent());
+    @Override protected Map<String, Object> esStreamDataToEsData(InstanceReferenceAlarm streamData) {
+        Map<String, Object> target = new HashMap<>();
+        target.put(InstanceReferenceAlarmTable.FRONT_APPLICATION_ID.getName(), streamData.getFrontApplicationId());
+        target.put(InstanceReferenceAlarmTable.BEHIND_APPLICATION_ID.getName(), streamData.getBehindApplicationId());
+        target.put(InstanceReferenceAlarmTable.FRONT_INSTANCE_ID.getName(), streamData.getFrontInstanceId());
+        target.put(InstanceReferenceAlarmTable.BEHIND_INSTANCE_ID.getName(), streamData.getBehindInstanceId());
+        target.put(InstanceReferenceAlarmTable.SOURCE_VALUE.getName(), streamData.getSourceValue());
 
-        source.put(InstanceReferenceAlarmTable.COLUMN_LAST_TIME_BUCKET, data.getLastTimeBucket());
+        target.put(InstanceReferenceAlarmTable.ALARM_TYPE.getName(), streamData.getAlarmType());
+        target.put(InstanceReferenceAlarmTable.ALARM_CONTENT.getName(), streamData.getAlarmContent());
 
-        return getClient().prepareUpdate(InstanceReferenceAlarmTable.TABLE, data.getId()).setDoc(source);
+        target.put(InstanceReferenceAlarmTable.LAST_TIME_BUCKET.getName(), streamData.getLastTimeBucket());
+        return target;
     }
 
-    @Override
-    public void deleteHistory(Long startTimestamp, Long endTimestamp) {
-        long startTimeBucket = TimeBucketUtils.INSTANCE.getMinuteTimeBucket(startTimestamp);
-        long endTimeBucket = TimeBucketUtils.INSTANCE.getMinuteTimeBucket(endTimestamp);
-        BulkByScrollResponse response = getClient().prepareDelete(
-                QueryBuilders.rangeQuery(InstanceReferenceAlarmTable.COLUMN_LAST_TIME_BUCKET).gte(startTimeBucket).lte(endTimeBucket),
-                InstanceReferenceAlarmTable.TABLE)
-                .get();
+    @Override protected String timeBucketColumnNameForDelete() {
+        return InstanceReferenceAlarmTable.LAST_TIME_BUCKET.getName();
+    }
 
-        long deleted = response.getDeleted();
-        logger.info("Delete {} rows history from {} index.", deleted, InstanceReferenceAlarmTable.TABLE);
+    @GraphComputingMetric(name = "/persistence/get/" + InstanceReferenceAlarmTable.TABLE)
+    @Override public InstanceReferenceAlarm get(String id) {
+        return super.get(id);
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/alarm/InstanceReferenceAlarmListEsPersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/alarm/InstanceReferenceAlarmListEsPersistenceDAO.java
index eb1a161ab..d695cc580 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/alarm/InstanceReferenceAlarmListEsPersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/alarm/InstanceReferenceAlarmListEsPersistenceDAO.java
@@ -21,97 +21,63 @@
 import java.util.HashMap;
 import java.util.Map;
 import org.apache.skywalking.apm.collector.client.elasticsearch.ElasticSearchClient;
-import org.apache.skywalking.apm.collector.core.util.TimeBucketUtils;
+import org.apache.skywalking.apm.collector.core.annotations.trace.GraphComputingMetric;
 import org.apache.skywalking.apm.collector.storage.dao.alarm.IInstanceReferenceAlarmListPersistenceDAO;
-import org.apache.skywalking.apm.collector.storage.es.base.dao.EsDAO;
+import org.apache.skywalking.apm.collector.storage.es.base.dao.AbstractPersistenceEsDAO;
 import org.apache.skywalking.apm.collector.storage.table.alarm.InstanceReferenceAlarmList;
 import org.apache.skywalking.apm.collector.storage.table.alarm.InstanceReferenceAlarmListTable;
-import org.elasticsearch.action.get.GetResponse;
 import org.elasticsearch.action.index.IndexRequestBuilder;
 import org.elasticsearch.action.update.UpdateRequestBuilder;
-import org.elasticsearch.index.query.QueryBuilders;
-import org.elasticsearch.index.reindex.BulkByScrollResponse;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /**
  * @author peng-yongsheng
  */
-public class InstanceReferenceAlarmListEsPersistenceDAO extends EsDAO implements IInstanceReferenceAlarmListPersistenceDAO<IndexRequestBuilder, UpdateRequestBuilder, InstanceReferenceAlarmList> {
-
-    private static final Logger logger = LoggerFactory.getLogger(InstanceReferenceAlarmListEsPersistenceDAO.class);
+public class InstanceReferenceAlarmListEsPersistenceDAO extends AbstractPersistenceEsDAO<InstanceReferenceAlarmList> implements IInstanceReferenceAlarmListPersistenceDAO<IndexRequestBuilder, UpdateRequestBuilder, InstanceReferenceAlarmList> {
 
     public InstanceReferenceAlarmListEsPersistenceDAO(ElasticSearchClient client) {
         super(client);
     }
 
-    @Override
-    public InstanceReferenceAlarmList get(String id) {
-        GetResponse getResponse = getClient().prepareGet(InstanceReferenceAlarmListTable.TABLE, id).get();
-        if (getResponse.isExists()) {
-            InstanceReferenceAlarmList serviceReferenceAlarmList = new InstanceReferenceAlarmList();
-            serviceReferenceAlarmList.setId(id);
-            Map<String, Object> source = getResponse.getSource();
-            serviceReferenceAlarmList.setFrontApplicationId(((Number)source.get(InstanceReferenceAlarmListTable.COLUMN_FRONT_APPLICATION_ID)).intValue());
-            serviceReferenceAlarmList.setBehindApplicationId(((Number)source.get(InstanceReferenceAlarmListTable.COLUMN_BEHIND_APPLICATION_ID)).intValue());
-            serviceReferenceAlarmList.setFrontInstanceId(((Number)source.get(InstanceReferenceAlarmListTable.COLUMN_FRONT_INSTANCE_ID)).intValue());
-            serviceReferenceAlarmList.setBehindInstanceId(((Number)source.get(InstanceReferenceAlarmListTable.COLUMN_BEHIND_INSTANCE_ID)).intValue());
-            serviceReferenceAlarmList.setSourceValue(((Number)source.get(InstanceReferenceAlarmListTable.COLUMN_SOURCE_VALUE)).intValue());
-
-            serviceReferenceAlarmList.setAlarmType(((Number)source.get(InstanceReferenceAlarmListTable.COLUMN_ALARM_TYPE)).intValue());
-            serviceReferenceAlarmList.setAlarmContent((String)source.get(InstanceReferenceAlarmListTable.COLUMN_ALARM_CONTENT));
-
-            serviceReferenceAlarmList.setTimeBucket(((Number)source.get(InstanceReferenceAlarmListTable.COLUMN_TIME_BUCKET)).longValue());
-            return serviceReferenceAlarmList;
-        } else {
-            return null;
-        }
+    @Override protected String tableName() {
+        return InstanceReferenceAlarmListTable.TABLE;
     }
 
-    @Override
-    public IndexRequestBuilder prepareBatchInsert(InstanceReferenceAlarmList data) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(InstanceReferenceAlarmListTable.COLUMN_FRONT_APPLICATION_ID, data.getFrontApplicationId());
-        source.put(InstanceReferenceAlarmListTable.COLUMN_BEHIND_APPLICATION_ID, data.getBehindApplicationId());
-        source.put(InstanceReferenceAlarmListTable.COLUMN_FRONT_INSTANCE_ID, data.getFrontInstanceId());
-        source.put(InstanceReferenceAlarmListTable.COLUMN_BEHIND_INSTANCE_ID, data.getBehindInstanceId());
-        source.put(InstanceReferenceAlarmListTable.COLUMN_SOURCE_VALUE, data.getSourceValue());
+    @Override protected InstanceReferenceAlarmList esDataToStreamData(Map<String, Object> source) {
+        InstanceReferenceAlarmList serviceReferenceAlarmList = new InstanceReferenceAlarmList();
+        serviceReferenceAlarmList.setFrontApplicationId(((Number)source.get(InstanceReferenceAlarmListTable.FRONT_APPLICATION_ID.getName())).intValue());
+        serviceReferenceAlarmList.setBehindApplicationId(((Number)source.get(InstanceReferenceAlarmListTable.BEHIND_APPLICATION_ID.getName())).intValue());
+        serviceReferenceAlarmList.setFrontInstanceId(((Number)source.get(InstanceReferenceAlarmListTable.FRONT_INSTANCE_ID.getName())).intValue());
+        serviceReferenceAlarmList.setBehindInstanceId(((Number)source.get(InstanceReferenceAlarmListTable.BEHIND_INSTANCE_ID.getName())).intValue());
+        serviceReferenceAlarmList.setSourceValue(((Number)source.get(InstanceReferenceAlarmListTable.SOURCE_VALUE.getName())).intValue());
 
-        source.put(InstanceReferenceAlarmListTable.COLUMN_ALARM_TYPE, data.getAlarmType());
-        source.put(InstanceReferenceAlarmListTable.COLUMN_ALARM_CONTENT, data.getAlarmContent());
+        serviceReferenceAlarmList.setAlarmType(((Number)source.get(InstanceReferenceAlarmListTable.ALARM_TYPE.getName())).intValue());
+        serviceReferenceAlarmList.setAlarmContent((String)source.get(InstanceReferenceAlarmListTable.ALARM_CONTENT.getName()));
 
-        source.put(InstanceReferenceAlarmListTable.COLUMN_TIME_BUCKET, data.getTimeBucket());
-
-        return getClient().prepareIndex(InstanceReferenceAlarmListTable.TABLE, data.getId()).setSource(source);
+        serviceReferenceAlarmList.setTimeBucket(((Number)source.get(InstanceReferenceAlarmListTable.TIME_BUCKET.getName())).longValue());
+        return serviceReferenceAlarmList;
     }
 
-    @Override
-    public UpdateRequestBuilder prepareBatchUpdate(InstanceReferenceAlarmList data) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(InstanceReferenceAlarmListTable.COLUMN_FRONT_APPLICATION_ID, data.getFrontApplicationId());
-        source.put(InstanceReferenceAlarmListTable.COLUMN_BEHIND_APPLICATION_ID, data.getBehindApplicationId());
-        source.put(InstanceReferenceAlarmListTable.COLUMN_FRONT_INSTANCE_ID, data.getFrontInstanceId());
-        source.put(InstanceReferenceAlarmListTable.COLUMN_BEHIND_INSTANCE_ID, data.getBehindInstanceId());
-        source.put(InstanceReferenceAlarmListTable.COLUMN_SOURCE_VALUE, data.getSourceValue());
-
-        source.put(InstanceReferenceAlarmListTable.COLUMN_ALARM_TYPE, data.getAlarmType());
-        source.put(InstanceReferenceAlarmListTable.COLUMN_ALARM_CONTENT, data.getAlarmContent());
+    @Override protected Map<String, Object> esStreamDataToEsData(InstanceReferenceAlarmList streamData) {
+        Map<String, Object> target = new HashMap<>();
+        target.put(InstanceReferenceAlarmListTable.FRONT_APPLICATION_ID.getName(), streamData.getFrontApplicationId());
+        target.put(InstanceReferenceAlarmListTable.BEHIND_APPLICATION_ID.getName(), streamData.getBehindApplicationId());
+        target.put(InstanceReferenceAlarmListTable.FRONT_INSTANCE_ID.getName(), streamData.getFrontInstanceId());
+        target.put(InstanceReferenceAlarmListTable.BEHIND_INSTANCE_ID.getName(), streamData.getBehindInstanceId());
+        target.put(InstanceReferenceAlarmListTable.SOURCE_VALUE.getName(), streamData.getSourceValue());
 
-        source.put(InstanceReferenceAlarmListTable.COLUMN_TIME_BUCKET, data.getTimeBucket());
+        target.put(InstanceReferenceAlarmListTable.ALARM_TYPE.getName(), streamData.getAlarmType());
+        target.put(InstanceReferenceAlarmListTable.ALARM_CONTENT.getName(), streamData.getAlarmContent());
 
-        return getClient().prepareUpdate(InstanceReferenceAlarmListTable.TABLE, data.getId()).setDoc(source);
+        target.put(InstanceReferenceAlarmListTable.TIME_BUCKET.getName(), streamData.getTimeBucket());
+        return target;
     }
 
-    @Override
-    public void deleteHistory(Long startTimestamp, Long endTimestamp) {
-        long startTimeBucket = TimeBucketUtils.INSTANCE.getMinuteTimeBucket(startTimestamp);
-        long endTimeBucket = TimeBucketUtils.INSTANCE.getMinuteTimeBucket(endTimestamp);
-        BulkByScrollResponse response = getClient().prepareDelete(
-            QueryBuilders.rangeQuery(InstanceReferenceAlarmListTable.COLUMN_TIME_BUCKET).gte(startTimeBucket).lte(endTimeBucket),
-            InstanceReferenceAlarmListTable.TABLE)
-            .get();
+    @Override protected String timeBucketColumnNameForDelete() {
+        return InstanceReferenceAlarmListTable.TIME_BUCKET.getName();
+    }
 
-        long deleted = response.getDeleted();
-        logger.info("Delete {} rows history from {} index.", deleted, InstanceReferenceAlarmListTable.TABLE);
+    @GraphComputingMetric(name = "/persistence/get/" + InstanceReferenceAlarmListTable.TABLE)
+    @Override public InstanceReferenceAlarmList get(String id) {
+        return super.get(id);
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/alarm/ServiceAlarmEsPersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/alarm/ServiceAlarmEsPersistenceDAO.java
index ea414e58b..a16d2fa7d 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/alarm/ServiceAlarmEsPersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/alarm/ServiceAlarmEsPersistenceDAO.java
@@ -21,94 +21,61 @@
 import java.util.HashMap;
 import java.util.Map;
 import org.apache.skywalking.apm.collector.client.elasticsearch.ElasticSearchClient;
-import org.apache.skywalking.apm.collector.core.util.TimeBucketUtils;
+import org.apache.skywalking.apm.collector.core.annotations.trace.GraphComputingMetric;
 import org.apache.skywalking.apm.collector.storage.dao.alarm.IServiceAlarmPersistenceDAO;
-import org.apache.skywalking.apm.collector.storage.es.base.dao.EsDAO;
+import org.apache.skywalking.apm.collector.storage.es.base.dao.AbstractPersistenceEsDAO;
 import org.apache.skywalking.apm.collector.storage.table.alarm.ServiceAlarm;
 import org.apache.skywalking.apm.collector.storage.table.alarm.ServiceAlarmTable;
-import org.elasticsearch.action.get.GetResponse;
 import org.elasticsearch.action.index.IndexRequestBuilder;
 import org.elasticsearch.action.update.UpdateRequestBuilder;
-import org.elasticsearch.index.query.QueryBuilders;
-import org.elasticsearch.index.reindex.BulkByScrollResponse;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /**
  * @author peng-yongsheng
  */
-public class ServiceAlarmEsPersistenceDAO extends EsDAO implements IServiceAlarmPersistenceDAO<IndexRequestBuilder, UpdateRequestBuilder, ServiceAlarm> {
-
-    private static final Logger logger = LoggerFactory.getLogger(ServiceAlarmEsPersistenceDAO.class);
+public class ServiceAlarmEsPersistenceDAO extends AbstractPersistenceEsDAO<ServiceAlarm> implements IServiceAlarmPersistenceDAO<IndexRequestBuilder, UpdateRequestBuilder, ServiceAlarm> {
 
     public ServiceAlarmEsPersistenceDAO(ElasticSearchClient client) {
         super(client);
     }
 
-    @Override
-    public ServiceAlarm get(String id) {
-        GetResponse getResponse = getClient().prepareGet(ServiceAlarmTable.TABLE, id).get();
-        if (getResponse.isExists()) {
-            ServiceAlarm serviceAlarm = new ServiceAlarm();
-            serviceAlarm.setId(id);
-            Map<String, Object> source = getResponse.getSource();
-            serviceAlarm.setApplicationId(((Number)source.get(ServiceAlarmTable.COLUMN_APPLICATION_ID)).intValue());
-            serviceAlarm.setInstanceId(((Number)source.get(ServiceAlarmTable.COLUMN_INSTANCE_ID)).intValue());
-            serviceAlarm.setServiceId(((Number)source.get(ServiceAlarmTable.COLUMN_SERVICE_ID)).intValue());
-            serviceAlarm.setSourceValue(((Number)source.get(ServiceAlarmTable.COLUMN_SOURCE_VALUE)).intValue());
-
-            serviceAlarm.setAlarmType(((Number)source.get(ServiceAlarmTable.COLUMN_ALARM_TYPE)).intValue());
-            serviceAlarm.setAlarmContent((String)source.get(ServiceAlarmTable.COLUMN_ALARM_CONTENT));
-
-            serviceAlarm.setLastTimeBucket(((Number)source.get(ServiceAlarmTable.COLUMN_LAST_TIME_BUCKET)).longValue());
-            return serviceAlarm;
-        } else {
-            return null;
-        }
+    @Override protected String tableName() {
+        return ServiceAlarmTable.TABLE;
     }
 
-    @Override
-    public IndexRequestBuilder prepareBatchInsert(ServiceAlarm data) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(ServiceAlarmTable.COLUMN_APPLICATION_ID, data.getApplicationId());
-        source.put(ServiceAlarmTable.COLUMN_INSTANCE_ID, data.getInstanceId());
-        source.put(ServiceAlarmTable.COLUMN_SERVICE_ID, data.getServiceId());
-        source.put(ServiceAlarmTable.COLUMN_SOURCE_VALUE, data.getSourceValue());
+    @Override protected ServiceAlarm esDataToStreamData(Map<String, Object> source) {
+        ServiceAlarm serviceAlarm = new ServiceAlarm();
+        serviceAlarm.setApplicationId(((Number)source.get(ServiceAlarmTable.APPLICATION_ID.getName())).intValue());
+        serviceAlarm.setInstanceId(((Number)source.get(ServiceAlarmTable.INSTANCE_ID.getName())).intValue());
+        serviceAlarm.setServiceId(((Number)source.get(ServiceAlarmTable.SERVICE_ID.getName())).intValue());
+        serviceAlarm.setSourceValue(((Number)source.get(ServiceAlarmTable.SOURCE_VALUE.getName())).intValue());
 
-        source.put(ServiceAlarmTable.COLUMN_ALARM_TYPE, data.getAlarmType());
-        source.put(ServiceAlarmTable.COLUMN_ALARM_CONTENT, data.getAlarmContent());
+        serviceAlarm.setAlarmType(((Number)source.get(ServiceAlarmTable.ALARM_TYPE.getName())).intValue());
+        serviceAlarm.setAlarmContent((String)source.get(ServiceAlarmTable.ALARM_CONTENT.getName()));
 
-        source.put(ServiceAlarmTable.COLUMN_LAST_TIME_BUCKET, data.getLastTimeBucket());
-
-        return getClient().prepareIndex(ServiceAlarmTable.TABLE, data.getId()).setSource(source);
+        serviceAlarm.setLastTimeBucket(((Number)source.get(ServiceAlarmTable.LAST_TIME_BUCKET.getName())).longValue());
+        return serviceAlarm;
     }
 
-    @Override
-    public UpdateRequestBuilder prepareBatchUpdate(ServiceAlarm data) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(ServiceAlarmTable.COLUMN_APPLICATION_ID, data.getApplicationId());
-        source.put(ServiceAlarmTable.COLUMN_INSTANCE_ID, data.getInstanceId());
-        source.put(ServiceAlarmTable.COLUMN_SERVICE_ID, data.getServiceId());
-        source.put(ServiceAlarmTable.COLUMN_SOURCE_VALUE, data.getSourceValue());
-
-        source.put(ServiceAlarmTable.COLUMN_ALARM_TYPE, data.getAlarmType());
-        source.put(ServiceAlarmTable.COLUMN_ALARM_CONTENT, data.getAlarmContent());
+    @Override protected Map<String, Object> esStreamDataToEsData(ServiceAlarm streamData) {
+        Map<String, Object> target = new HashMap<>();
+        target.put(ServiceAlarmTable.APPLICATION_ID.getName(), streamData.getApplicationId());
+        target.put(ServiceAlarmTable.INSTANCE_ID.getName(), streamData.getInstanceId());
+        target.put(ServiceAlarmTable.SERVICE_ID.getName(), streamData.getServiceId());
+        target.put(ServiceAlarmTable.SOURCE_VALUE.getName(), streamData.getSourceValue());
 
-        source.put(ServiceAlarmTable.COLUMN_LAST_TIME_BUCKET, data.getLastTimeBucket());
+        target.put(ServiceAlarmTable.ALARM_TYPE.getName(), streamData.getAlarmType());
+        target.put(ServiceAlarmTable.ALARM_CONTENT.getName(), streamData.getAlarmContent());
 
-        return getClient().prepareUpdate(ServiceAlarmTable.TABLE, data.getId()).setDoc(source);
+        target.put(ServiceAlarmTable.LAST_TIME_BUCKET.getName(), streamData.getLastTimeBucket());
+        return target;
     }
 
-    @Override
-    public void deleteHistory(Long startTimestamp, Long endTimestamp) {
-        long startTimeBucket = TimeBucketUtils.INSTANCE.getMinuteTimeBucket(startTimestamp);
-        long endTimeBucket = TimeBucketUtils.INSTANCE.getMinuteTimeBucket(endTimestamp);
-        BulkByScrollResponse response = getClient().prepareDelete(
-            QueryBuilders.rangeQuery(ServiceAlarmTable.COLUMN_LAST_TIME_BUCKET).gte(startTimeBucket).lte(endTimeBucket),
-            ServiceAlarmTable.TABLE)
-            .get();
+    @Override protected String timeBucketColumnNameForDelete() {
+        return ServiceAlarmTable.LAST_TIME_BUCKET.getName();
+    }
 
-        long deleted = response.getDeleted();
-        logger.info("Delete {} rows history from {} index.", deleted, ServiceAlarmTable.TABLE);
+    @GraphComputingMetric(name = "/persistence/get/" + ServiceAlarmTable.TABLE)
+    @Override public ServiceAlarm get(String id) {
+        return super.get(id);
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/alarm/ServiceAlarmListEsPersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/alarm/ServiceAlarmListEsPersistenceDAO.java
index e143fe6b6..39e4b2e08 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/alarm/ServiceAlarmListEsPersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/alarm/ServiceAlarmListEsPersistenceDAO.java
@@ -21,94 +21,61 @@
 import java.util.HashMap;
 import java.util.Map;
 import org.apache.skywalking.apm.collector.client.elasticsearch.ElasticSearchClient;
-import org.apache.skywalking.apm.collector.core.util.TimeBucketUtils;
+import org.apache.skywalking.apm.collector.core.annotations.trace.GraphComputingMetric;
 import org.apache.skywalking.apm.collector.storage.dao.alarm.IServiceAlarmListPersistenceDAO;
-import org.apache.skywalking.apm.collector.storage.es.base.dao.EsDAO;
+import org.apache.skywalking.apm.collector.storage.es.base.dao.AbstractPersistenceEsDAO;
 import org.apache.skywalking.apm.collector.storage.table.alarm.ServiceAlarmList;
 import org.apache.skywalking.apm.collector.storage.table.alarm.ServiceAlarmListTable;
-import org.elasticsearch.action.get.GetResponse;
 import org.elasticsearch.action.index.IndexRequestBuilder;
 import org.elasticsearch.action.update.UpdateRequestBuilder;
-import org.elasticsearch.index.query.QueryBuilders;
-import org.elasticsearch.index.reindex.BulkByScrollResponse;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /**
  * @author peng-yongsheng
  */
-public class ServiceAlarmListEsPersistenceDAO extends EsDAO implements IServiceAlarmListPersistenceDAO<IndexRequestBuilder, UpdateRequestBuilder, ServiceAlarmList> {
-
-    private static final Logger logger = LoggerFactory.getLogger(ServiceAlarmListEsPersistenceDAO.class);
+public class ServiceAlarmListEsPersistenceDAO extends AbstractPersistenceEsDAO<ServiceAlarmList> implements IServiceAlarmListPersistenceDAO<IndexRequestBuilder, UpdateRequestBuilder, ServiceAlarmList> {
 
     public ServiceAlarmListEsPersistenceDAO(ElasticSearchClient client) {
         super(client);
     }
 
-    @Override
-    public ServiceAlarmList get(String id) {
-        GetResponse getResponse = getClient().prepareGet(ServiceAlarmListTable.TABLE, id).get();
-        if (getResponse.isExists()) {
-            ServiceAlarmList serviceAlarmList = new ServiceAlarmList();
-            serviceAlarmList.setId(id);
-            Map<String, Object> source = getResponse.getSource();
-            serviceAlarmList.setApplicationId(((Number)source.get(ServiceAlarmListTable.COLUMN_APPLICATION_ID)).intValue());
-            serviceAlarmList.setInstanceId(((Number)source.get(ServiceAlarmListTable.COLUMN_INSTANCE_ID)).intValue());
-            serviceAlarmList.setServiceId(((Number)source.get(ServiceAlarmListTable.COLUMN_SERVICE_ID)).intValue());
-            serviceAlarmList.setSourceValue(((Number)source.get(ServiceAlarmListTable.COLUMN_SOURCE_VALUE)).intValue());
-
-            serviceAlarmList.setAlarmType(((Number)source.get(ServiceAlarmListTable.COLUMN_ALARM_TYPE)).intValue());
-            serviceAlarmList.setAlarmContent((String)source.get(ServiceAlarmListTable.COLUMN_ALARM_CONTENT));
-
-            serviceAlarmList.setTimeBucket(((Number)source.get(ServiceAlarmListTable.COLUMN_TIME_BUCKET)).longValue());
-            return serviceAlarmList;
-        } else {
-            return null;
-        }
+    @Override protected String tableName() {
+        return ServiceAlarmListTable.TABLE;
     }
 
-    @Override
-    public IndexRequestBuilder prepareBatchInsert(ServiceAlarmList data) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(ServiceAlarmListTable.COLUMN_APPLICATION_ID, data.getApplicationId());
-        source.put(ServiceAlarmListTable.COLUMN_INSTANCE_ID, data.getInstanceId());
-        source.put(ServiceAlarmListTable.COLUMN_SERVICE_ID, data.getServiceId());
-        source.put(ServiceAlarmListTable.COLUMN_SOURCE_VALUE, data.getSourceValue());
+    @Override protected ServiceAlarmList esDataToStreamData(Map<String, Object> source) {
+        ServiceAlarmList serviceAlarmList = new ServiceAlarmList();
+        serviceAlarmList.setApplicationId(((Number)source.get(ServiceAlarmListTable.APPLICATION_ID.getName())).intValue());
+        serviceAlarmList.setInstanceId(((Number)source.get(ServiceAlarmListTable.INSTANCE_ID.getName())).intValue());
+        serviceAlarmList.setServiceId(((Number)source.get(ServiceAlarmListTable.SERVICE_ID.getName())).intValue());
+        serviceAlarmList.setSourceValue(((Number)source.get(ServiceAlarmListTable.SOURCE_VALUE.getName())).intValue());
 
-        source.put(ServiceAlarmListTable.COLUMN_ALARM_TYPE, data.getAlarmType());
-        source.put(ServiceAlarmListTable.COLUMN_ALARM_CONTENT, data.getAlarmContent());
+        serviceAlarmList.setAlarmType(((Number)source.get(ServiceAlarmListTable.ALARM_TYPE.getName())).intValue());
+        serviceAlarmList.setAlarmContent((String)source.get(ServiceAlarmListTable.ALARM_CONTENT.getName()));
 
-        source.put(ServiceAlarmListTable.COLUMN_TIME_BUCKET, data.getTimeBucket());
-
-        return getClient().prepareIndex(ServiceAlarmListTable.TABLE, data.getId()).setSource(source);
+        serviceAlarmList.setTimeBucket(((Number)source.get(ServiceAlarmListTable.TIME_BUCKET.getName())).longValue());
+        return serviceAlarmList;
     }
 
-    @Override
-    public UpdateRequestBuilder prepareBatchUpdate(ServiceAlarmList data) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(ServiceAlarmListTable.COLUMN_APPLICATION_ID, data.getApplicationId());
-        source.put(ServiceAlarmListTable.COLUMN_INSTANCE_ID, data.getInstanceId());
-        source.put(ServiceAlarmListTable.COLUMN_SERVICE_ID, data.getServiceId());
-        source.put(ServiceAlarmListTable.COLUMN_SOURCE_VALUE, data.getSourceValue());
-
-        source.put(ServiceAlarmListTable.COLUMN_ALARM_TYPE, data.getAlarmType());
-        source.put(ServiceAlarmListTable.COLUMN_ALARM_CONTENT, data.getAlarmContent());
+    @Override protected Map<String, Object> esStreamDataToEsData(ServiceAlarmList streamData) {
+        Map<String, Object> target = new HashMap<>();
+        target.put(ServiceAlarmListTable.APPLICATION_ID.getName(), streamData.getApplicationId());
+        target.put(ServiceAlarmListTable.INSTANCE_ID.getName(), streamData.getInstanceId());
+        target.put(ServiceAlarmListTable.SERVICE_ID.getName(), streamData.getServiceId());
+        target.put(ServiceAlarmListTable.SOURCE_VALUE.getName(), streamData.getSourceValue());
 
-        source.put(ServiceAlarmListTable.COLUMN_TIME_BUCKET, data.getTimeBucket());
+        target.put(ServiceAlarmListTable.ALARM_TYPE.getName(), streamData.getAlarmType());
+        target.put(ServiceAlarmListTable.ALARM_CONTENT.getName(), streamData.getAlarmContent());
 
-        return getClient().prepareUpdate(ServiceAlarmListTable.TABLE, data.getId()).setDoc(source);
+        target.put(ServiceAlarmListTable.TIME_BUCKET.getName(), streamData.getTimeBucket());
+        return target;
     }
 
-    @Override
-    public void deleteHistory(Long startTimestamp, Long endTimestamp) {
-        long startTimeBucket = TimeBucketUtils.INSTANCE.getMinuteTimeBucket(startTimestamp);
-        long endTimeBucket = TimeBucketUtils.INSTANCE.getMinuteTimeBucket(endTimestamp);
-        BulkByScrollResponse response = getClient().prepareDelete(
-            QueryBuilders.rangeQuery(ServiceAlarmListTable.COLUMN_TIME_BUCKET).gte(startTimeBucket).lte(endTimeBucket),
-            ServiceAlarmListTable.TABLE)
-            .get();
+    @Override protected String timeBucketColumnNameForDelete() {
+        return ServiceAlarmListTable.TIME_BUCKET.getName();
+    }
 
-        long deleted = response.getDeleted();
-        logger.info("Delete {} rows history from {} index.", deleted, ServiceAlarmListTable.TABLE);
+    @GraphComputingMetric(name = "/persistence/get/" + ServiceAlarmListTable.TABLE)
+    @Override public ServiceAlarmList get(String id) {
+        return super.get(id);
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/alarm/ServiceReferenceAlarmEsPersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/alarm/ServiceReferenceAlarmEsPersistenceDAO.java
index 940002451..407258ae1 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/alarm/ServiceReferenceAlarmEsPersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/alarm/ServiceReferenceAlarmEsPersistenceDAO.java
@@ -20,105 +20,68 @@
 
 import java.util.HashMap;
 import java.util.Map;
-
 import org.apache.skywalking.apm.collector.client.elasticsearch.ElasticSearchClient;
-import org.apache.skywalking.apm.collector.core.util.TimeBucketUtils;
+import org.apache.skywalking.apm.collector.core.annotations.trace.GraphComputingMetric;
 import org.apache.skywalking.apm.collector.storage.dao.alarm.IServiceReferenceAlarmPersistenceDAO;
-import org.apache.skywalking.apm.collector.storage.es.base.dao.EsDAO;
+import org.apache.skywalking.apm.collector.storage.es.base.dao.AbstractPersistenceEsDAO;
 import org.apache.skywalking.apm.collector.storage.table.alarm.ServiceReferenceAlarm;
 import org.apache.skywalking.apm.collector.storage.table.alarm.ServiceReferenceAlarmTable;
-import org.elasticsearch.action.get.GetResponse;
 import org.elasticsearch.action.index.IndexRequestBuilder;
 import org.elasticsearch.action.update.UpdateRequestBuilder;
-import org.elasticsearch.index.query.QueryBuilders;
-import org.elasticsearch.index.reindex.BulkByScrollResponse;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /**
  * @author peng-yongsheng
  */
-public class ServiceReferenceAlarmEsPersistenceDAO extends EsDAO implements IServiceReferenceAlarmPersistenceDAO<IndexRequestBuilder, UpdateRequestBuilder, ServiceReferenceAlarm> {
-
-    private final Logger logger = LoggerFactory.getLogger(ServiceReferenceAlarmEsPersistenceDAO.class);
+public class ServiceReferenceAlarmEsPersistenceDAO extends AbstractPersistenceEsDAO<ServiceReferenceAlarm> implements IServiceReferenceAlarmPersistenceDAO<IndexRequestBuilder, UpdateRequestBuilder, ServiceReferenceAlarm> {
 
     public ServiceReferenceAlarmEsPersistenceDAO(ElasticSearchClient client) {
         super(client);
     }
 
-    @Override
-    public ServiceReferenceAlarm get(String id) {
-        GetResponse getResponse = getClient().prepareGet(ServiceReferenceAlarmTable.TABLE, id).get();
-        if (getResponse.isExists()) {
-            ServiceReferenceAlarm serviceReferenceAlarm = new ServiceReferenceAlarm();
-            serviceReferenceAlarm.setId(id);
-            Map<String, Object> source = getResponse.getSource();
-            serviceReferenceAlarm.setFrontApplicationId(((Number) source.get(ServiceReferenceAlarmTable.COLUMN_FRONT_APPLICATION_ID)).intValue());
-            serviceReferenceAlarm.setBehindApplicationId(((Number) source.get(ServiceReferenceAlarmTable.COLUMN_BEHIND_APPLICATION_ID)).intValue());
-            serviceReferenceAlarm.setFrontInstanceId(((Number) source.get(ServiceReferenceAlarmTable.COLUMN_FRONT_INSTANCE_ID)).intValue());
-            serviceReferenceAlarm.setBehindInstanceId(((Number) source.get(ServiceReferenceAlarmTable.COLUMN_BEHIND_INSTANCE_ID)).intValue());
-            serviceReferenceAlarm.setFrontServiceId(((Number) source.get(ServiceReferenceAlarmTable.COLUMN_FRONT_SERVICE_ID)).intValue());
-            serviceReferenceAlarm.setBehindServiceId(((Number) source.get(ServiceReferenceAlarmTable.COLUMN_BEHIND_SERVICE_ID)).intValue());
-            serviceReferenceAlarm.setSourceValue(((Number) source.get(ServiceReferenceAlarmTable.COLUMN_SOURCE_VALUE)).intValue());
-
-            serviceReferenceAlarm.setAlarmType(((Number) source.get(ServiceReferenceAlarmTable.COLUMN_ALARM_TYPE)).intValue());
-            serviceReferenceAlarm.setAlarmContent((String) source.get(ServiceReferenceAlarmTable.COLUMN_ALARM_CONTENT));
-
-            serviceReferenceAlarm.setLastTimeBucket(((Number) source.get(ServiceReferenceAlarmTable.COLUMN_LAST_TIME_BUCKET)).longValue());
-            return serviceReferenceAlarm;
-        } else {
-            return null;
-        }
+    @Override protected String tableName() {
+        return ServiceReferenceAlarmTable.TABLE;
     }
 
-    @Override
-    public IndexRequestBuilder prepareBatchInsert(ServiceReferenceAlarm data) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(ServiceReferenceAlarmTable.COLUMN_FRONT_APPLICATION_ID, data.getFrontApplicationId());
-        source.put(ServiceReferenceAlarmTable.COLUMN_BEHIND_APPLICATION_ID, data.getBehindApplicationId());
-        source.put(ServiceReferenceAlarmTable.COLUMN_FRONT_INSTANCE_ID, data.getFrontInstanceId());
-        source.put(ServiceReferenceAlarmTable.COLUMN_BEHIND_INSTANCE_ID, data.getBehindInstanceId());
-        source.put(ServiceReferenceAlarmTable.COLUMN_FRONT_SERVICE_ID, data.getFrontServiceId());
-        source.put(ServiceReferenceAlarmTable.COLUMN_BEHIND_SERVICE_ID, data.getBehindServiceId());
-        source.put(ServiceReferenceAlarmTable.COLUMN_SOURCE_VALUE, data.getSourceValue());
-
-        source.put(ServiceReferenceAlarmTable.COLUMN_ALARM_TYPE, data.getAlarmType());
-        source.put(ServiceReferenceAlarmTable.COLUMN_ALARM_CONTENT, data.getAlarmContent());
-
-        source.put(ServiceReferenceAlarmTable.COLUMN_LAST_TIME_BUCKET, data.getLastTimeBucket());
-
-        return getClient().prepareIndex(ServiceReferenceAlarmTable.TABLE, data.getId()).setSource(source);
+    @Override protected ServiceReferenceAlarm esDataToStreamData(Map<String, Object> source) {
+        ServiceReferenceAlarm serviceReferenceAlarm = new ServiceReferenceAlarm();
+        serviceReferenceAlarm.setFrontApplicationId(((Number)source.get(ServiceReferenceAlarmTable.FRONT_APPLICATION_ID.getName())).intValue());
+        serviceReferenceAlarm.setBehindApplicationId(((Number)source.get(ServiceReferenceAlarmTable.BEHIND_APPLICATION_ID.getName())).intValue());
+        serviceReferenceAlarm.setFrontInstanceId(((Number)source.get(ServiceReferenceAlarmTable.FRONT_INSTANCE_ID.getName())).intValue());
+        serviceReferenceAlarm.setBehindInstanceId(((Number)source.get(ServiceReferenceAlarmTable.BEHIND_INSTANCE_ID.getName())).intValue());
+        serviceReferenceAlarm.setFrontServiceId(((Number)source.get(ServiceReferenceAlarmTable.FRONT_SERVICE_ID.getName())).intValue());
+        serviceReferenceAlarm.setBehindServiceId(((Number)source.get(ServiceReferenceAlarmTable.BEHIND_SERVICE_ID.getName())).intValue());
+        serviceReferenceAlarm.setSourceValue(((Number)source.get(ServiceReferenceAlarmTable.SOURCE_VALUE.getName())).intValue());
+
+        serviceReferenceAlarm.setAlarmType(((Number)source.get(ServiceReferenceAlarmTable.ALARM_TYPE.getName())).intValue());
+        serviceReferenceAlarm.setAlarmContent((String)source.get(ServiceReferenceAlarmTable.ALARM_CONTENT.getName()));
+
+        serviceReferenceAlarm.setLastTimeBucket(((Number)source.get(ServiceReferenceAlarmTable.LAST_TIME_BUCKET.getName())).longValue());
+        return serviceReferenceAlarm;
     }
 
-    @Override
-    public UpdateRequestBuilder prepareBatchUpdate(ServiceReferenceAlarm data) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(ServiceReferenceAlarmTable.COLUMN_FRONT_APPLICATION_ID, data.getFrontApplicationId());
-        source.put(ServiceReferenceAlarmTable.COLUMN_BEHIND_APPLICATION_ID, data.getBehindApplicationId());
-        source.put(ServiceReferenceAlarmTable.COLUMN_FRONT_INSTANCE_ID, data.getFrontInstanceId());
-        source.put(ServiceReferenceAlarmTable.COLUMN_BEHIND_INSTANCE_ID, data.getBehindInstanceId());
-        source.put(ServiceReferenceAlarmTable.COLUMN_FRONT_SERVICE_ID, data.getFrontServiceId());
-        source.put(ServiceReferenceAlarmTable.COLUMN_BEHIND_SERVICE_ID, data.getBehindServiceId());
-        source.put(ServiceReferenceAlarmTable.COLUMN_SOURCE_VALUE, data.getSourceValue());
-
-        source.put(ServiceReferenceAlarmTable.COLUMN_ALARM_TYPE, data.getAlarmType());
-        source.put(ServiceReferenceAlarmTable.COLUMN_ALARM_CONTENT, data.getAlarmContent());
-
-        source.put(ServiceReferenceAlarmTable.COLUMN_LAST_TIME_BUCKET, data.getLastTimeBucket());
-
-        return getClient().prepareUpdate(ServiceReferenceAlarmTable.TABLE, data.getId()).setDoc(source);
+    @Override protected Map<String, Object> esStreamDataToEsData(ServiceReferenceAlarm streamData) {
+        Map<String, Object> target = new HashMap<>();
+        target.put(ServiceReferenceAlarmTable.FRONT_APPLICATION_ID.getName(), streamData.getFrontApplicationId());
+        target.put(ServiceReferenceAlarmTable.BEHIND_APPLICATION_ID.getName(), streamData.getBehindApplicationId());
+        target.put(ServiceReferenceAlarmTable.FRONT_INSTANCE_ID.getName(), streamData.getFrontInstanceId());
+        target.put(ServiceReferenceAlarmTable.BEHIND_INSTANCE_ID.getName(), streamData.getBehindInstanceId());
+        target.put(ServiceReferenceAlarmTable.FRONT_SERVICE_ID.getName(), streamData.getFrontServiceId());
+        target.put(ServiceReferenceAlarmTable.BEHIND_SERVICE_ID.getName(), streamData.getBehindServiceId());
+        target.put(ServiceReferenceAlarmTable.SOURCE_VALUE.getName(), streamData.getSourceValue());
+
+        target.put(ServiceReferenceAlarmTable.ALARM_TYPE.getName(), streamData.getAlarmType());
+        target.put(ServiceReferenceAlarmTable.ALARM_CONTENT.getName(), streamData.getAlarmContent());
+
+        target.put(ServiceReferenceAlarmTable.LAST_TIME_BUCKET.getName(), streamData.getLastTimeBucket());
+        return target;
     }
 
-    @Override
-    public void deleteHistory(Long startTimestamp, Long endTimestamp) {
-        long startTimeBucket = TimeBucketUtils.INSTANCE.getMinuteTimeBucket(startTimestamp);
-        long endTimeBucket = TimeBucketUtils.INSTANCE.getMinuteTimeBucket(endTimestamp);
-        BulkByScrollResponse response = getClient().prepareDelete(
-                QueryBuilders.rangeQuery(ServiceReferenceAlarmTable.COLUMN_LAST_TIME_BUCKET).gte(startTimeBucket).lte(endTimeBucket),
-                ServiceReferenceAlarmTable.TABLE)
-                .get();
+    @Override protected String timeBucketColumnNameForDelete() {
+        return ServiceReferenceAlarmTable.LAST_TIME_BUCKET.getName();
+    }
 
-        long deleted = response.getDeleted();
-        logger.info("Delete {} rows history from {} index.", deleted, ServiceReferenceAlarmTable.TABLE);
+    @GraphComputingMetric(name = "/persistence/get/" + ServiceReferenceAlarmTable.TABLE)
+    @Override public ServiceReferenceAlarm get(String id) {
+        return super.get(id);
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/alarm/ServiceReferenceAlarmListEsPersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/alarm/ServiceReferenceAlarmListEsPersistenceDAO.java
index 3014ca1a1..ade36d34d 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/alarm/ServiceReferenceAlarmListEsPersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/alarm/ServiceReferenceAlarmListEsPersistenceDAO.java
@@ -20,105 +20,68 @@
 
 import java.util.HashMap;
 import java.util.Map;
-
 import org.apache.skywalking.apm.collector.client.elasticsearch.ElasticSearchClient;
-import org.apache.skywalking.apm.collector.core.util.TimeBucketUtils;
+import org.apache.skywalking.apm.collector.core.annotations.trace.GraphComputingMetric;
 import org.apache.skywalking.apm.collector.storage.dao.alarm.IServiceReferenceAlarmListPersistenceDAO;
-import org.apache.skywalking.apm.collector.storage.es.base.dao.EsDAO;
+import org.apache.skywalking.apm.collector.storage.es.base.dao.AbstractPersistenceEsDAO;
 import org.apache.skywalking.apm.collector.storage.table.alarm.ServiceReferenceAlarmList;
 import org.apache.skywalking.apm.collector.storage.table.alarm.ServiceReferenceAlarmListTable;
-import org.elasticsearch.action.get.GetResponse;
 import org.elasticsearch.action.index.IndexRequestBuilder;
 import org.elasticsearch.action.update.UpdateRequestBuilder;
-import org.elasticsearch.index.query.QueryBuilders;
-import org.elasticsearch.index.reindex.BulkByScrollResponse;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /**
  * @author peng-yongsheng
  */
-public class ServiceReferenceAlarmListEsPersistenceDAO extends EsDAO implements IServiceReferenceAlarmListPersistenceDAO<IndexRequestBuilder, UpdateRequestBuilder, ServiceReferenceAlarmList> {
-
-    private final Logger logger = LoggerFactory.getLogger(ServiceReferenceAlarmListEsPersistenceDAO.class);
+public class ServiceReferenceAlarmListEsPersistenceDAO extends AbstractPersistenceEsDAO<ServiceReferenceAlarmList> implements IServiceReferenceAlarmListPersistenceDAO<IndexRequestBuilder, UpdateRequestBuilder, ServiceReferenceAlarmList> {
 
     public ServiceReferenceAlarmListEsPersistenceDAO(ElasticSearchClient client) {
         super(client);
     }
 
-    @Override
-    public ServiceReferenceAlarmList get(String id) {
-        GetResponse getResponse = getClient().prepareGet(ServiceReferenceAlarmListTable.TABLE, id).get();
-        if (getResponse.isExists()) {
-            ServiceReferenceAlarmList serviceReferenceAlarmList = new ServiceReferenceAlarmList();
-            serviceReferenceAlarmList.setId(id);
-            Map<String, Object> source = getResponse.getSource();
-            serviceReferenceAlarmList.setFrontApplicationId(((Number) source.get(ServiceReferenceAlarmListTable.COLUMN_FRONT_APPLICATION_ID)).intValue());
-            serviceReferenceAlarmList.setBehindApplicationId(((Number) source.get(ServiceReferenceAlarmListTable.COLUMN_BEHIND_APPLICATION_ID)).intValue());
-            serviceReferenceAlarmList.setFrontInstanceId(((Number) source.get(ServiceReferenceAlarmListTable.COLUMN_FRONT_INSTANCE_ID)).intValue());
-            serviceReferenceAlarmList.setBehindInstanceId(((Number) source.get(ServiceReferenceAlarmListTable.COLUMN_BEHIND_INSTANCE_ID)).intValue());
-            serviceReferenceAlarmList.setFrontServiceId(((Number) source.get(ServiceReferenceAlarmListTable.COLUMN_FRONT_SERVICE_ID)).intValue());
-            serviceReferenceAlarmList.setBehindServiceId(((Number) source.get(ServiceReferenceAlarmListTable.COLUMN_BEHIND_SERVICE_ID)).intValue());
-            serviceReferenceAlarmList.setSourceValue(((Number) source.get(ServiceReferenceAlarmListTable.COLUMN_SOURCE_VALUE)).intValue());
-
-            serviceReferenceAlarmList.setAlarmType(((Number) source.get(ServiceReferenceAlarmListTable.COLUMN_ALARM_TYPE)).intValue());
-            serviceReferenceAlarmList.setAlarmContent((String) source.get(ServiceReferenceAlarmListTable.COLUMN_ALARM_CONTENT));
-
-            serviceReferenceAlarmList.setTimeBucket(((Number) source.get(ServiceReferenceAlarmListTable.COLUMN_TIME_BUCKET)).longValue());
-            return serviceReferenceAlarmList;
-        } else {
-            return null;
-        }
+    @Override protected String tableName() {
+        return ServiceReferenceAlarmListTable.TABLE;
     }
 
-    @Override
-    public IndexRequestBuilder prepareBatchInsert(ServiceReferenceAlarmList data) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(ServiceReferenceAlarmListTable.COLUMN_FRONT_APPLICATION_ID, data.getFrontApplicationId());
-        source.put(ServiceReferenceAlarmListTable.COLUMN_BEHIND_APPLICATION_ID, data.getBehindApplicationId());
-        source.put(ServiceReferenceAlarmListTable.COLUMN_FRONT_INSTANCE_ID, data.getFrontInstanceId());
-        source.put(ServiceReferenceAlarmListTable.COLUMN_BEHIND_INSTANCE_ID, data.getBehindInstanceId());
-        source.put(ServiceReferenceAlarmListTable.COLUMN_FRONT_SERVICE_ID, data.getFrontServiceId());
-        source.put(ServiceReferenceAlarmListTable.COLUMN_BEHIND_SERVICE_ID, data.getBehindServiceId());
-        source.put(ServiceReferenceAlarmListTable.COLUMN_SOURCE_VALUE, data.getSourceValue());
-
-        source.put(ServiceReferenceAlarmListTable.COLUMN_ALARM_TYPE, data.getAlarmType());
-        source.put(ServiceReferenceAlarmListTable.COLUMN_ALARM_CONTENT, data.getAlarmContent());
-
-        source.put(ServiceReferenceAlarmListTable.COLUMN_TIME_BUCKET, data.getTimeBucket());
-
-        return getClient().prepareIndex(ServiceReferenceAlarmListTable.TABLE, data.getId()).setSource(source);
+    @Override protected ServiceReferenceAlarmList esDataToStreamData(Map<String, Object> source) {
+        ServiceReferenceAlarmList serviceReferenceAlarmList = new ServiceReferenceAlarmList();
+        serviceReferenceAlarmList.setFrontApplicationId(((Number)source.get(ServiceReferenceAlarmListTable.FRONT_APPLICATION_ID.getName())).intValue());
+        serviceReferenceAlarmList.setBehindApplicationId(((Number)source.get(ServiceReferenceAlarmListTable.BEHIND_APPLICATION_ID.getName())).intValue());
+        serviceReferenceAlarmList.setFrontInstanceId(((Number)source.get(ServiceReferenceAlarmListTable.FRONT_INSTANCE_ID.getName())).intValue());
+        serviceReferenceAlarmList.setBehindInstanceId(((Number)source.get(ServiceReferenceAlarmListTable.BEHIND_INSTANCE_ID.getName())).intValue());
+        serviceReferenceAlarmList.setFrontServiceId(((Number)source.get(ServiceReferenceAlarmListTable.FRONT_SERVICE_ID.getName())).intValue());
+        serviceReferenceAlarmList.setBehindServiceId(((Number)source.get(ServiceReferenceAlarmListTable.BEHIND_SERVICE_ID.getName())).intValue());
+        serviceReferenceAlarmList.setSourceValue(((Number)source.get(ServiceReferenceAlarmListTable.SOURCE_VALUE.getName())).intValue());
+
+        serviceReferenceAlarmList.setAlarmType(((Number)source.get(ServiceReferenceAlarmListTable.ALARM_TYPE.getName())).intValue());
+        serviceReferenceAlarmList.setAlarmContent((String)source.get(ServiceReferenceAlarmListTable.ALARM_CONTENT.getName()));
+
+        serviceReferenceAlarmList.setTimeBucket(((Number)source.get(ServiceReferenceAlarmListTable.TIME_BUCKET.getName())).longValue());
+        return serviceReferenceAlarmList;
     }
 
-    @Override
-    public UpdateRequestBuilder prepareBatchUpdate(ServiceReferenceAlarmList data) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(ServiceReferenceAlarmListTable.COLUMN_FRONT_APPLICATION_ID, data.getFrontApplicationId());
-        source.put(ServiceReferenceAlarmListTable.COLUMN_BEHIND_APPLICATION_ID, data.getBehindApplicationId());
-        source.put(ServiceReferenceAlarmListTable.COLUMN_FRONT_INSTANCE_ID, data.getFrontInstanceId());
-        source.put(ServiceReferenceAlarmListTable.COLUMN_BEHIND_INSTANCE_ID, data.getBehindInstanceId());
-        source.put(ServiceReferenceAlarmListTable.COLUMN_FRONT_SERVICE_ID, data.getFrontServiceId());
-        source.put(ServiceReferenceAlarmListTable.COLUMN_BEHIND_SERVICE_ID, data.getBehindServiceId());
-        source.put(ServiceReferenceAlarmListTable.COLUMN_SOURCE_VALUE, data.getSourceValue());
-
-        source.put(ServiceReferenceAlarmListTable.COLUMN_ALARM_TYPE, data.getAlarmType());
-        source.put(ServiceReferenceAlarmListTable.COLUMN_ALARM_CONTENT, data.getAlarmContent());
-
-        source.put(ServiceReferenceAlarmListTable.COLUMN_TIME_BUCKET, data.getTimeBucket());
-
-        return getClient().prepareUpdate(ServiceReferenceAlarmListTable.TABLE, data.getId()).setDoc(source);
+    @Override protected Map<String, Object> esStreamDataToEsData(ServiceReferenceAlarmList streamData) {
+        Map<String, Object> target = new HashMap<>();
+        target.put(ServiceReferenceAlarmListTable.FRONT_APPLICATION_ID.getName(), streamData.getFrontApplicationId());
+        target.put(ServiceReferenceAlarmListTable.BEHIND_APPLICATION_ID.getName(), streamData.getBehindApplicationId());
+        target.put(ServiceReferenceAlarmListTable.FRONT_INSTANCE_ID.getName(), streamData.getFrontInstanceId());
+        target.put(ServiceReferenceAlarmListTable.BEHIND_INSTANCE_ID.getName(), streamData.getBehindInstanceId());
+        target.put(ServiceReferenceAlarmListTable.FRONT_SERVICE_ID.getName(), streamData.getFrontServiceId());
+        target.put(ServiceReferenceAlarmListTable.BEHIND_SERVICE_ID.getName(), streamData.getBehindServiceId());
+        target.put(ServiceReferenceAlarmListTable.SOURCE_VALUE.getName(), streamData.getSourceValue());
+
+        target.put(ServiceReferenceAlarmListTable.ALARM_TYPE.getName(), streamData.getAlarmType());
+        target.put(ServiceReferenceAlarmListTable.ALARM_CONTENT.getName(), streamData.getAlarmContent());
+
+        target.put(ServiceReferenceAlarmListTable.TIME_BUCKET.getName(), streamData.getTimeBucket());
+        return target;
     }
 
-    @Override
-    public void deleteHistory(Long startTimestamp, Long endTimestamp) {
-        long startTimeBucket = TimeBucketUtils.INSTANCE.getMinuteTimeBucket(startTimestamp);
-        long endTimeBucket = TimeBucketUtils.INSTANCE.getMinuteTimeBucket(endTimestamp);
-        BulkByScrollResponse response = getClient().prepareDelete(
-                QueryBuilders.rangeQuery(ServiceReferenceAlarmListTable.COLUMN_TIME_BUCKET).gte(startTimeBucket).lte(endTimeBucket),
-                ServiceReferenceAlarmListTable.TABLE)
-                .get();
+    @Override protected String timeBucketColumnNameForDelete() {
+        return ServiceReferenceAlarmListTable.TIME_BUCKET.getName();
+    }
 
-        long deleted = response.getDeleted();
-        logger.info("Delete {} rows history from {} index.", deleted, ServiceReferenceAlarmListTable.TABLE);
+    @GraphComputingMetric(name = "/persistence/get/" + ServiceReferenceAlarmListTable.TABLE)
+    @Override public ServiceReferenceAlarmList get(String id) {
+        return super.get(id);
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/amp/AbstractApplicationMetricEsPersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/amp/AbstractApplicationMetricEsPersistenceDAO.java
index 388f6dab3..b4f8d8bd0 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/amp/AbstractApplicationMetricEsPersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/amp/AbstractApplicationMetricEsPersistenceDAO.java
@@ -25,6 +25,7 @@
 import org.apache.skywalking.apm.collector.storage.es.base.dao.AbstractPersistenceEsDAO;
 import org.apache.skywalking.apm.collector.storage.table.application.ApplicationMetric;
 import org.apache.skywalking.apm.collector.storage.table.application.ApplicationMetricTable;
+import org.apache.skywalking.apm.collector.storage.es.MetricTransformUtil;
 
 /**
  * @author peng-yongsheng
@@ -36,73 +37,37 @@
     }
 
     @Override protected final String timeBucketColumnNameForDelete() {
-        return ApplicationMetricTable.COLUMN_TIME_BUCKET;
+        return ApplicationMetricTable.TIME_BUCKET.getName();
     }
 
     @Override protected final ApplicationMetric esDataToStreamData(Map<String, Object> source) {
         ApplicationMetric applicationMetric = new ApplicationMetric();
-        applicationMetric.setMetricId((String)source.get(ApplicationMetricTable.COLUMN_METRIC_ID));
-
-        applicationMetric.setApplicationId(((Number)source.get(ApplicationMetricTable.COLUMN_APPLICATION_ID)).intValue());
-        applicationMetric.setSourceValue(((Number)source.get(ApplicationMetricTable.COLUMN_SOURCE_VALUE)).intValue());
-
-        applicationMetric.setTransactionCalls(((Number)source.get(ApplicationMetricTable.COLUMN_TRANSACTION_CALLS)).longValue());
-        applicationMetric.setTransactionErrorCalls(((Number)source.get(ApplicationMetricTable.COLUMN_TRANSACTION_ERROR_CALLS)).longValue());
-        applicationMetric.setTransactionDurationSum(((Number)source.get(ApplicationMetricTable.COLUMN_TRANSACTION_DURATION_SUM)).longValue());
-        applicationMetric.setTransactionErrorDurationSum(((Number)source.get(ApplicationMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM)).longValue());
-        applicationMetric.setTransactionAverageDuration(((Number)source.get(ApplicationMetricTable.COLUMN_TRANSACTION_AVERAGE_DURATION)).longValue());
-
-        applicationMetric.setBusinessTransactionCalls(((Number)source.get(ApplicationMetricTable.COLUMN_BUSINESS_TRANSACTION_CALLS)).longValue());
-        applicationMetric.setBusinessTransactionErrorCalls(((Number)source.get(ApplicationMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_CALLS)).longValue());
-        applicationMetric.setBusinessTransactionDurationSum(((Number)source.get(ApplicationMetricTable.COLUMN_BUSINESS_TRANSACTION_DURATION_SUM)).longValue());
-        applicationMetric.setBusinessTransactionErrorDurationSum(((Number)source.get(ApplicationMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_DURATION_SUM)).longValue());
-        applicationMetric.setBusinessTransactionAverageDuration(((Number)source.get(ApplicationMetricTable.COLUMN_BUSINESS_TRANSACTION_AVERAGE_DURATION)).longValue());
-
-        applicationMetric.setMqTransactionCalls(((Number)source.get(ApplicationMetricTable.COLUMN_MQ_TRANSACTION_CALLS)).longValue());
-        applicationMetric.setMqTransactionErrorCalls(((Number)source.get(ApplicationMetricTable.COLUMN_MQ_TRANSACTION_ERROR_CALLS)).longValue());
-        applicationMetric.setMqTransactionDurationSum(((Number)source.get(ApplicationMetricTable.COLUMN_MQ_TRANSACTION_DURATION_SUM)).longValue());
-        applicationMetric.setMqTransactionErrorDurationSum(((Number)source.get(ApplicationMetricTable.COLUMN_MQ_TRANSACTION_ERROR_DURATION_SUM)).longValue());
-        applicationMetric.setMqTransactionAverageDuration(((Number)source.get(ApplicationMetricTable.COLUMN_MQ_TRANSACTION_AVERAGE_DURATION)).longValue());
-
-        applicationMetric.setSatisfiedCount(((Number)source.get(ApplicationMetricTable.COLUMN_SATISFIED_COUNT)).longValue());
-        applicationMetric.setToleratingCount(((Number)source.get(ApplicationMetricTable.COLUMN_TOLERATING_COUNT)).longValue());
-        applicationMetric.setFrustratedCount(((Number)source.get(ApplicationMetricTable.COLUMN_FRUSTRATED_COUNT)).longValue());
-        applicationMetric.setTimeBucket(((Number)source.get(ApplicationMetricTable.COLUMN_TIME_BUCKET)).longValue());
+        applicationMetric.setMetricId((String)source.get(ApplicationMetricTable.METRIC_ID.getName()));
+
+        applicationMetric.setApplicationId(((Number)source.get(ApplicationMetricTable.APPLICATION_ID.getName())).intValue());
+
+        MetricTransformUtil.INSTANCE.esDataToStreamData(source, applicationMetric);
+
+        applicationMetric.setSatisfiedCount(((Number)source.get(ApplicationMetricTable.SATISFIED_COUNT.getName())).longValue());
+        applicationMetric.setToleratingCount(((Number)source.get(ApplicationMetricTable.TOLERATING_COUNT.getName())).longValue());
+        applicationMetric.setFrustratedCount(((Number)source.get(ApplicationMetricTable.FRUSTRATED_COUNT.getName())).longValue());
 
         return applicationMetric;
     }
 
     @Override protected final Map<String, Object> esStreamDataToEsData(ApplicationMetric streamData) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(ApplicationMetricTable.COLUMN_METRIC_ID, streamData.getMetricId());
-
-        source.put(ApplicationMetricTable.COLUMN_APPLICATION_ID, streamData.getApplicationId());
-        source.put(ApplicationMetricTable.COLUMN_SOURCE_VALUE, streamData.getSourceValue());
-
-        source.put(ApplicationMetricTable.COLUMN_TRANSACTION_CALLS, streamData.getTransactionCalls());
-        source.put(ApplicationMetricTable.COLUMN_TRANSACTION_ERROR_CALLS, streamData.getTransactionErrorCalls());
-        source.put(ApplicationMetricTable.COLUMN_TRANSACTION_DURATION_SUM, streamData.getTransactionDurationSum());
-        source.put(ApplicationMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM, streamData.getTransactionErrorDurationSum());
-        source.put(ApplicationMetricTable.COLUMN_TRANSACTION_AVERAGE_DURATION, streamData.getTransactionAverageDuration());
-
-        source.put(ApplicationMetricTable.COLUMN_BUSINESS_TRANSACTION_CALLS, streamData.getBusinessTransactionCalls());
-        source.put(ApplicationMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_CALLS, streamData.getBusinessTransactionErrorCalls());
-        source.put(ApplicationMetricTable.COLUMN_BUSINESS_TRANSACTION_DURATION_SUM, streamData.getBusinessTransactionDurationSum());
-        source.put(ApplicationMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_DURATION_SUM, streamData.getBusinessTransactionErrorDurationSum());
-        source.put(ApplicationMetricTable.COLUMN_BUSINESS_TRANSACTION_AVERAGE_DURATION, streamData.getBusinessTransactionAverageDuration());
-
-        source.put(ApplicationMetricTable.COLUMN_MQ_TRANSACTION_CALLS, streamData.getMqTransactionCalls());
-        source.put(ApplicationMetricTable.COLUMN_MQ_TRANSACTION_ERROR_CALLS, streamData.getMqTransactionErrorCalls());
-        source.put(ApplicationMetricTable.COLUMN_MQ_TRANSACTION_DURATION_SUM, streamData.getMqTransactionDurationSum());
-        source.put(ApplicationMetricTable.COLUMN_MQ_TRANSACTION_ERROR_DURATION_SUM, streamData.getMqTransactionErrorDurationSum());
-        source.put(ApplicationMetricTable.COLUMN_MQ_TRANSACTION_AVERAGE_DURATION, streamData.getMqTransactionAverageDuration());
-
-        source.put(ApplicationMetricTable.COLUMN_SATISFIED_COUNT, streamData.getSatisfiedCount());
-        source.put(ApplicationMetricTable.COLUMN_TOLERATING_COUNT, streamData.getToleratingCount());
-        source.put(ApplicationMetricTable.COLUMN_FRUSTRATED_COUNT, streamData.getFrustratedCount());
-        source.put(ApplicationMetricTable.COLUMN_TIME_BUCKET, streamData.getTimeBucket());
-
-        return source;
+        Map<String, Object> target = new HashMap<>();
+        target.put(ApplicationMetricTable.METRIC_ID.getName(), streamData.getMetricId());
+
+        target.put(ApplicationMetricTable.APPLICATION_ID.getName(), streamData.getApplicationId());
+
+        MetricTransformUtil.INSTANCE.esStreamDataToEsData(streamData, target);
+
+        target.put(ApplicationMetricTable.SATISFIED_COUNT.getName(), streamData.getSatisfiedCount());
+        target.put(ApplicationMetricTable.TOLERATING_COUNT.getName(), streamData.getToleratingCount());
+        target.put(ApplicationMetricTable.FRUSTRATED_COUNT.getName(), streamData.getFrustratedCount());
+
+        return target;
     }
 
     @GraphComputingMetric(name = "/persistence/get/" + ApplicationMetricTable.TABLE)
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ampp/AbstractApplicationMappingEsPersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ampp/AbstractApplicationMappingEsPersistenceDAO.java
index 53604d352..b02bd1595 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ampp/AbstractApplicationMappingEsPersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ampp/AbstractApplicationMappingEsPersistenceDAO.java
@@ -36,28 +36,28 @@
     }
 
     @Override protected final String timeBucketColumnNameForDelete() {
-        return ApplicationMappingTable.COLUMN_TIME_BUCKET;
+        return ApplicationMappingTable.TIME_BUCKET.getName();
     }
 
     @Override protected final ApplicationMapping esDataToStreamData(Map<String, Object> source) {
         ApplicationMapping applicationMapping = new ApplicationMapping();
-        applicationMapping.setMetricId((String)source.get(ApplicationMappingTable.COLUMN_METRIC_ID));
+        applicationMapping.setMetricId((String)source.get(ApplicationMappingTable.METRIC_ID.getName()));
 
-        applicationMapping.setApplicationId(((Number)source.get(ApplicationMappingTable.COLUMN_APPLICATION_ID)).intValue());
-        applicationMapping.setMappingApplicationId(((Number)source.get(ApplicationMappingTable.COLUMN_MAPPING_APPLICATION_ID)).intValue());
-        applicationMapping.setTimeBucket(((Number)source.get(ApplicationMappingTable.COLUMN_TIME_BUCKET)).longValue());
+        applicationMapping.setApplicationId(((Number)source.get(ApplicationMappingTable.APPLICATION_ID.getName())).intValue());
+        applicationMapping.setMappingApplicationId(((Number)source.get(ApplicationMappingTable.MAPPING_APPLICATION_ID.getName())).intValue());
+        applicationMapping.setTimeBucket(((Number)source.get(ApplicationMappingTable.TIME_BUCKET.getName())).longValue());
         return applicationMapping;
     }
 
     @Override protected final Map<String, Object> esStreamDataToEsData(ApplicationMapping streamData) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(ApplicationMappingTable.COLUMN_METRIC_ID, streamData.getMetricId());
+        Map<String, Object> target = new HashMap<>();
+        target.put(ApplicationMappingTable.METRIC_ID.getName(), streamData.getMetricId());
 
-        source.put(ApplicationMappingTable.COLUMN_APPLICATION_ID, streamData.getApplicationId());
-        source.put(ApplicationMappingTable.COLUMN_MAPPING_APPLICATION_ID, streamData.getMappingApplicationId());
-        source.put(ApplicationMappingTable.COLUMN_TIME_BUCKET, streamData.getTimeBucket());
+        target.put(ApplicationMappingTable.APPLICATION_ID.getName(), streamData.getApplicationId());
+        target.put(ApplicationMappingTable.MAPPING_APPLICATION_ID.getName(), streamData.getMappingApplicationId());
+        target.put(ApplicationMappingTable.TIME_BUCKET.getName(), streamData.getTimeBucket());
 
-        return source;
+        return target;
     }
 
     @GraphComputingMetric(name = "/persistence/get/" + ApplicationMappingTable.TABLE)
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/armp/AbstractApplicationReferenceMetricEsPersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/armp/AbstractApplicationReferenceMetricEsPersistenceDAO.java
index 714f6ef37..0ef7935e9 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/armp/AbstractApplicationReferenceMetricEsPersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/armp/AbstractApplicationReferenceMetricEsPersistenceDAO.java
@@ -22,6 +22,7 @@
 import java.util.Map;
 import org.apache.skywalking.apm.collector.client.elasticsearch.ElasticSearchClient;
 import org.apache.skywalking.apm.collector.core.annotations.trace.GraphComputingMetric;
+import org.apache.skywalking.apm.collector.storage.es.MetricTransformUtil;
 import org.apache.skywalking.apm.collector.storage.es.base.dao.AbstractPersistenceEsDAO;
 import org.apache.skywalking.apm.collector.storage.table.application.ApplicationReferenceMetric;
 import org.apache.skywalking.apm.collector.storage.table.application.ApplicationReferenceMetricTable;
@@ -36,76 +37,39 @@
     }
 
     @Override protected final String timeBucketColumnNameForDelete() {
-        return ApplicationReferenceMetricTable.COLUMN_TIME_BUCKET;
+        return ApplicationReferenceMetricTable.TIME_BUCKET.getName();
     }
 
     @Override protected final ApplicationReferenceMetric esDataToStreamData(Map<String, Object> source) {
         ApplicationReferenceMetric applicationReferenceMetric = new ApplicationReferenceMetric();
-        applicationReferenceMetric.setMetricId((String)source.get(ApplicationReferenceMetricTable.COLUMN_METRIC_ID));
-
-        applicationReferenceMetric.setFrontApplicationId(((Number)source.get(ApplicationReferenceMetricTable.COLUMN_FRONT_APPLICATION_ID)).intValue());
-        applicationReferenceMetric.setBehindApplicationId(((Number)source.get(ApplicationReferenceMetricTable.COLUMN_BEHIND_APPLICATION_ID)).intValue());
-        applicationReferenceMetric.setSourceValue(((Number)source.get(ApplicationReferenceMetricTable.COLUMN_SOURCE_VALUE)).intValue());
-
-        applicationReferenceMetric.setTransactionCalls(((Number)source.get(ApplicationReferenceMetricTable.COLUMN_TRANSACTION_CALLS)).longValue());
-        applicationReferenceMetric.setTransactionErrorCalls(((Number)source.get(ApplicationReferenceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS)).longValue());
-        applicationReferenceMetric.setTransactionDurationSum(((Number)source.get(ApplicationReferenceMetricTable.COLUMN_TRANSACTION_DURATION_SUM)).longValue());
-        applicationReferenceMetric.setTransactionErrorDurationSum(((Number)source.get(ApplicationReferenceMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM)).longValue());
-        applicationReferenceMetric.setTransactionAverageDuration(((Number)source.get(ApplicationReferenceMetricTable.COLUMN_TRANSACTION_AVERAGE_DURATION)).longValue());
-
-        applicationReferenceMetric.setBusinessTransactionCalls(((Number)source.get(ApplicationReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_CALLS)).longValue());
-        applicationReferenceMetric.setBusinessTransactionErrorCalls(((Number)source.get(ApplicationReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_CALLS)).longValue());
-        applicationReferenceMetric.setBusinessTransactionDurationSum(((Number)source.get(ApplicationReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_DURATION_SUM)).longValue());
-        applicationReferenceMetric.setBusinessTransactionErrorDurationSum(((Number)source.get(ApplicationReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_DURATION_SUM)).longValue());
-        applicationReferenceMetric.setBusinessTransactionAverageDuration(((Number)source.get(ApplicationReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_AVERAGE_DURATION)).longValue());
-
-        applicationReferenceMetric.setMqTransactionCalls(((Number)source.get(ApplicationReferenceMetricTable.COLUMN_MQ_TRANSACTION_CALLS)).longValue());
-        applicationReferenceMetric.setMqTransactionErrorCalls(((Number)source.get(ApplicationReferenceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_CALLS)).longValue());
-        applicationReferenceMetric.setMqTransactionDurationSum(((Number)source.get(ApplicationReferenceMetricTable.COLUMN_MQ_TRANSACTION_DURATION_SUM)).longValue());
-        applicationReferenceMetric.setMqTransactionErrorDurationSum(((Number)source.get(ApplicationReferenceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_DURATION_SUM)).longValue());
-        applicationReferenceMetric.setMqTransactionAverageDuration(((Number)source.get(ApplicationReferenceMetricTable.COLUMN_MQ_TRANSACTION_AVERAGE_DURATION)).longValue());
-
-        applicationReferenceMetric.setSatisfiedCount(((Number)source.get(ApplicationReferenceMetricTable.COLUMN_SATISFIED_COUNT)).longValue());
-        applicationReferenceMetric.setToleratingCount(((Number)source.get(ApplicationReferenceMetricTable.COLUMN_TOLERATING_COUNT)).longValue());
-        applicationReferenceMetric.setFrustratedCount(((Number)source.get(ApplicationReferenceMetricTable.COLUMN_FRUSTRATED_COUNT)).longValue());
-
-        applicationReferenceMetric.setTimeBucket(((Number)source.get(ApplicationReferenceMetricTable.COLUMN_TIME_BUCKET)).longValue());
+        applicationReferenceMetric.setMetricId((String)source.get(ApplicationReferenceMetricTable.METRIC_ID.getName()));
+
+        applicationReferenceMetric.setFrontApplicationId(((Number)source.get(ApplicationReferenceMetricTable.FRONT_APPLICATION_ID.getName())).intValue());
+        applicationReferenceMetric.setBehindApplicationId(((Number)source.get(ApplicationReferenceMetricTable.BEHIND_APPLICATION_ID.getName())).intValue());
+
+        MetricTransformUtil.INSTANCE.esDataToStreamData(source, applicationReferenceMetric);
+
+        applicationReferenceMetric.setSatisfiedCount(((Number)source.get(ApplicationReferenceMetricTable.SATISFIED_COUNT.getName())).longValue());
+        applicationReferenceMetric.setToleratingCount(((Number)source.get(ApplicationReferenceMetricTable.TOLERATING_COUNT.getName())).longValue());
+        applicationReferenceMetric.setFrustratedCount(((Number)source.get(ApplicationReferenceMetricTable.FRUSTRATED_COUNT.getName())).longValue());
+
         return applicationReferenceMetric;
     }
 
     @Override protected final Map<String, Object> esStreamDataToEsData(ApplicationReferenceMetric streamData) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(ApplicationReferenceMetricTable.COLUMN_METRIC_ID, streamData.getMetricId());
-
-        source.put(ApplicationReferenceMetricTable.COLUMN_FRONT_APPLICATION_ID, streamData.getFrontApplicationId());
-        source.put(ApplicationReferenceMetricTable.COLUMN_BEHIND_APPLICATION_ID, streamData.getBehindApplicationId());
-        source.put(ApplicationReferenceMetricTable.COLUMN_SOURCE_VALUE, streamData.getSourceValue());
-
-        source.put(ApplicationReferenceMetricTable.COLUMN_TRANSACTION_CALLS, streamData.getTransactionCalls());
-        source.put(ApplicationReferenceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS, streamData.getTransactionErrorCalls());
-        source.put(ApplicationReferenceMetricTable.COLUMN_TRANSACTION_DURATION_SUM, streamData.getTransactionDurationSum());
-        source.put(ApplicationReferenceMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM, streamData.getTransactionErrorDurationSum());
-        source.put(ApplicationReferenceMetricTable.COLUMN_TRANSACTION_AVERAGE_DURATION, streamData.getTransactionAverageDuration());
-
-        source.put(ApplicationReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_CALLS, streamData.getBusinessTransactionCalls());
-        source.put(ApplicationReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_CALLS, streamData.getBusinessTransactionErrorCalls());
-        source.put(ApplicationReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_DURATION_SUM, streamData.getBusinessTransactionDurationSum());
-        source.put(ApplicationReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_DURATION_SUM, streamData.getBusinessTransactionErrorDurationSum());
-        source.put(ApplicationReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_AVERAGE_DURATION, streamData.getBusinessTransactionAverageDuration());
-
-        source.put(ApplicationReferenceMetricTable.COLUMN_MQ_TRANSACTION_CALLS, streamData.getMqTransactionCalls());
-        source.put(ApplicationReferenceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_CALLS, streamData.getMqTransactionErrorCalls());
-        source.put(ApplicationReferenceMetricTable.COLUMN_MQ_TRANSACTION_DURATION_SUM, streamData.getMqTransactionDurationSum());
-        source.put(ApplicationReferenceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_DURATION_SUM, streamData.getMqTransactionErrorDurationSum());
-        source.put(ApplicationReferenceMetricTable.COLUMN_MQ_TRANSACTION_AVERAGE_DURATION, streamData.getMqTransactionAverageDuration());
-
-        source.put(ApplicationReferenceMetricTable.COLUMN_SATISFIED_COUNT, streamData.getSatisfiedCount());
-        source.put(ApplicationReferenceMetricTable.COLUMN_TOLERATING_COUNT, streamData.getToleratingCount());
-        source.put(ApplicationReferenceMetricTable.COLUMN_FRUSTRATED_COUNT, streamData.getFrustratedCount());
-
-        source.put(ApplicationReferenceMetricTable.COLUMN_TIME_BUCKET, streamData.getTimeBucket());
-
-        return source;
+        Map<String, Object> target = new HashMap<>();
+        target.put(ApplicationReferenceMetricTable.METRIC_ID.getName(), streamData.getMetricId());
+
+        target.put(ApplicationReferenceMetricTable.FRONT_APPLICATION_ID.getName(), streamData.getFrontApplicationId());
+        target.put(ApplicationReferenceMetricTable.BEHIND_APPLICATION_ID.getName(), streamData.getBehindApplicationId());
+
+        MetricTransformUtil.INSTANCE.esStreamDataToEsData(streamData, target);
+
+        target.put(ApplicationReferenceMetricTable.SATISFIED_COUNT.getName(), streamData.getSatisfiedCount());
+        target.put(ApplicationReferenceMetricTable.TOLERATING_COUNT.getName(), streamData.getToleratingCount());
+        target.put(ApplicationReferenceMetricTable.FRUSTRATED_COUNT.getName(), streamData.getFrustratedCount());
+
+        return target;
     }
 
     @GraphComputingMetric(name = "/persistence/get/" + ApplicationReferenceMetricTable.TABLE)
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/cache/ApplicationEsCacheDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/cache/ApplicationEsCacheDAO.java
index 93bec1ec3..e01e60fc5 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/cache/ApplicationEsCacheDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/cache/ApplicationEsCacheDAO.java
@@ -54,8 +54,8 @@ public ApplicationEsCacheDAO(ElasticSearchClient client) {
         searchRequestBuilder.setSearchType(SearchType.QUERY_THEN_FETCH);
 
         BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
-        boolQueryBuilder.must().add(QueryBuilders.termQuery(ApplicationTable.COLUMN_APPLICATION_CODE, applicationCode));
-        boolQueryBuilder.must().add(QueryBuilders.termQuery(ApplicationTable.COLUMN_IS_ADDRESS, BooleanUtils.FALSE));
+        boolQueryBuilder.must().add(QueryBuilders.termQuery(ApplicationTable.APPLICATION_CODE.getName(), applicationCode));
+        boolQueryBuilder.must().add(QueryBuilders.termQuery(ApplicationTable.IS_ADDRESS.getName(), BooleanUtils.FALSE));
 
         searchRequestBuilder.setQuery(boolQueryBuilder);
         searchRequestBuilder.setSize(1);
@@ -63,7 +63,7 @@ public ApplicationEsCacheDAO(ElasticSearchClient client) {
         SearchResponse searchResponse = searchRequestBuilder.execute().actionGet();
         if (searchResponse.getHits().totalHits > 0) {
             SearchHit searchHit = searchResponse.getHits().iterator().next();
-            return (int)searchHit.getSource().get(ApplicationTable.COLUMN_APPLICATION_ID);
+            return (int)searchHit.getSource().get(ApplicationTable.APPLICATION_ID.getName());
         }
         return 0;
     }
@@ -77,8 +77,8 @@ public ApplicationEsCacheDAO(ElasticSearchClient client) {
         if (getResponse.isExists()) {
             Application application = new Application();
             application.setApplicationId(applicationId);
-            application.setApplicationCode((String)getResponse.getSource().get(ApplicationTable.COLUMN_APPLICATION_CODE));
-            application.setIsAddress(((Number)getResponse.getSource().get(ApplicationTable.COLUMN_IS_ADDRESS)).intValue());
+            application.setApplicationCode((String)getResponse.getSource().get(ApplicationTable.APPLICATION_CODE.getName()));
+            application.setIsAddress(((Number)getResponse.getSource().get(ApplicationTable.IS_ADDRESS.getName())).intValue());
             return application;
         }
         return null;
@@ -92,8 +92,8 @@ public ApplicationEsCacheDAO(ElasticSearchClient client) {
         searchRequestBuilder.setSearchType(SearchType.QUERY_THEN_FETCH);
 
         BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
-        boolQueryBuilder.must().add(QueryBuilders.termQuery(ApplicationTable.COLUMN_ADDRESS_ID, addressId));
-        boolQueryBuilder.must().add(QueryBuilders.termQuery(ApplicationTable.COLUMN_IS_ADDRESS, BooleanUtils.TRUE));
+        boolQueryBuilder.must().add(QueryBuilders.termQuery(ApplicationTable.ADDRESS_ID.getName(), addressId));
+        boolQueryBuilder.must().add(QueryBuilders.termQuery(ApplicationTable.IS_ADDRESS.getName(), BooleanUtils.TRUE));
 
         searchRequestBuilder.setQuery(boolQueryBuilder);
         searchRequestBuilder.setSize(1);
@@ -101,7 +101,7 @@ public ApplicationEsCacheDAO(ElasticSearchClient client) {
         SearchResponse searchResponse = searchRequestBuilder.execute().actionGet();
         if (searchResponse.getHits().totalHits > 0) {
             SearchHit searchHit = searchResponse.getHits().iterator().next();
-            return (int)searchHit.getSource().get(ApplicationTable.COLUMN_APPLICATION_ID);
+            return (int)searchHit.getSource().get(ApplicationTable.APPLICATION_ID.getName());
         }
         return 0;
     }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/cache/InstanceEsCacheDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/cache/InstanceEsCacheDAO.java
index 0c302b012..c3dd88c9c 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/cache/InstanceEsCacheDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/cache/InstanceEsCacheDAO.java
@@ -43,7 +43,7 @@ public InstanceEsCacheDAO(ElasticSearchClient client) {
     @Override public int getApplicationId(int instanceId) {
         GetResponse response = getClient().prepareGet(InstanceTable.TABLE, String.valueOf(instanceId)).get();
         if (response.isExists()) {
-            return (int)response.getSource().get(InstanceTable.COLUMN_APPLICATION_ID);
+            return (int)response.getSource().get(InstanceTable.APPLICATION_ID.getName());
         } else {
             return 0;
         }
@@ -56,16 +56,16 @@ public InstanceEsCacheDAO(ElasticSearchClient client) {
         searchRequestBuilder.setTypes(InstanceTable.TABLE_TYPE);
         searchRequestBuilder.setSearchType(SearchType.QUERY_THEN_FETCH);
         BoolQueryBuilder builder = QueryBuilders.boolQuery();
-        builder.must().add(QueryBuilders.termQuery(InstanceTable.COLUMN_APPLICATION_ID, applicationId));
-        builder.must().add(QueryBuilders.termQuery(InstanceTable.COLUMN_AGENT_UUID, agentUUID));
-        builder.must().add(QueryBuilders.termQuery(InstanceTable.COLUMN_IS_ADDRESS, BooleanUtils.FALSE));
+        builder.must().add(QueryBuilders.termQuery(InstanceTable.APPLICATION_ID.getName(), applicationId));
+        builder.must().add(QueryBuilders.termQuery(InstanceTable.AGENT_UUID.getName(), agentUUID));
+        builder.must().add(QueryBuilders.termQuery(InstanceTable.IS_ADDRESS.getName(), BooleanUtils.FALSE));
         searchRequestBuilder.setQuery(builder);
         searchRequestBuilder.setSize(1);
 
         SearchResponse searchResponse = searchRequestBuilder.execute().actionGet();
         if (searchResponse.getHits().totalHits > 0) {
             SearchHit searchHit = searchResponse.getHits().iterator().next();
-            return (int)searchHit.getSource().get(InstanceTable.COLUMN_INSTANCE_ID);
+            return (int)searchHit.getSource().get(InstanceTable.INSTANCE_ID.getName());
         }
         return 0;
     }
@@ -77,16 +77,16 @@ public InstanceEsCacheDAO(ElasticSearchClient client) {
         searchRequestBuilder.setTypes(InstanceTable.TABLE_TYPE);
         searchRequestBuilder.setSearchType(SearchType.QUERY_THEN_FETCH);
         BoolQueryBuilder builder = QueryBuilders.boolQuery();
-        builder.must().add(QueryBuilders.termQuery(InstanceTable.COLUMN_APPLICATION_ID, applicationId));
-        builder.must().add(QueryBuilders.termQuery(InstanceTable.COLUMN_ADDRESS_ID, addressId));
-        builder.must().add(QueryBuilders.termQuery(InstanceTable.COLUMN_IS_ADDRESS, BooleanUtils.TRUE));
+        builder.must().add(QueryBuilders.termQuery(InstanceTable.APPLICATION_ID.getName(), applicationId));
+        builder.must().add(QueryBuilders.termQuery(InstanceTable.ADDRESS_ID.getName(), addressId));
+        builder.must().add(QueryBuilders.termQuery(InstanceTable.IS_ADDRESS.getName(), BooleanUtils.TRUE));
         searchRequestBuilder.setQuery(builder);
         searchRequestBuilder.setSize(1);
 
         SearchResponse searchResponse = searchRequestBuilder.execute().actionGet();
         if (searchResponse.getHits().totalHits > 0) {
             SearchHit searchHit = searchResponse.getHits().iterator().next();
-            return (int)searchHit.getSource().get(InstanceTable.COLUMN_INSTANCE_ID);
+            return (int)searchHit.getSource().get(InstanceTable.INSTANCE_ID.getName());
         }
         return 0;
     }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/cache/NetworkAddressEsCacheDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/cache/NetworkAddressEsCacheDAO.java
index d132f1d80..3af92cfd0 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/cache/NetworkAddressEsCacheDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/cache/NetworkAddressEsCacheDAO.java
@@ -31,16 +31,12 @@
 import org.elasticsearch.action.search.SearchType;
 import org.elasticsearch.index.query.QueryBuilders;
 import org.elasticsearch.search.SearchHit;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /**
  * @author peng-yongsheng
  */
 public class NetworkAddressEsCacheDAO extends EsDAO implements INetworkAddressCacheDAO {
 
-    private final Logger logger = LoggerFactory.getLogger(NetworkAddressEsCacheDAO.class);
-
     public NetworkAddressEsCacheDAO(ElasticSearchClient client) {
         super(client);
     }
@@ -51,13 +47,13 @@ public NetworkAddressEsCacheDAO(ElasticSearchClient client) {
         SearchRequestBuilder searchRequestBuilder = client.prepareSearch(NetworkAddressTable.TABLE);
         searchRequestBuilder.setTypes(NetworkAddressTable.TABLE_TYPE);
         searchRequestBuilder.setSearchType(SearchType.QUERY_THEN_FETCH);
-        searchRequestBuilder.setQuery(QueryBuilders.termQuery(NetworkAddressTable.COLUMN_NETWORK_ADDRESS, networkAddress));
+        searchRequestBuilder.setQuery(QueryBuilders.termQuery(NetworkAddressTable.NETWORK_ADDRESS.getName(), networkAddress));
         searchRequestBuilder.setSize(1);
 
         SearchResponse searchResponse = searchRequestBuilder.execute().actionGet();
         if (searchResponse.getHits().totalHits > 0) {
             SearchHit searchHit = searchResponse.getHits().iterator().next();
-            return ((Number)searchHit.getSource().get(NetworkAddressTable.COLUMN_ADDRESS_ID)).intValue();
+            return ((Number)searchHit.getSource().get(NetworkAddressTable.ADDRESS_ID.getName())).intValue();
         }
         return Const.NONE;
     }
@@ -69,11 +65,11 @@ public NetworkAddressEsCacheDAO(ElasticSearchClient client) {
         GetResponse getResponse = getRequestBuilder.get();
         if (getResponse.isExists()) {
             NetworkAddress address = new NetworkAddress();
-            address.setId((String)getResponse.getSource().get(NetworkAddressTable.COLUMN_ID));
-            address.setAddressId(((Number)getResponse.getSource().get(NetworkAddressTable.COLUMN_ADDRESS_ID)).intValue());
-            address.setSpanLayer(((Number)getResponse.getSource().get(NetworkAddressTable.COLUMN_SPAN_LAYER)).intValue());
-            address.setServerType(((Number)getResponse.getSource().get(NetworkAddressTable.COLUMN_SERVER_TYPE)).intValue());
-            address.setNetworkAddress((String)getResponse.getSource().get(NetworkAddressTable.COLUMN_NETWORK_ADDRESS));
+            address.setId((String)getResponse.getSource().get(NetworkAddressTable.ID.getName()));
+            address.setAddressId(((Number)getResponse.getSource().get(NetworkAddressTable.ADDRESS_ID.getName())).intValue());
+            address.setSrcSpanLayer(((Number)getResponse.getSource().get(NetworkAddressTable.SRC_SPAN_LAYER.getName())).intValue());
+            address.setServerType(((Number)getResponse.getSource().get(NetworkAddressTable.SERVER_TYPE.getName())).intValue());
+            address.setNetworkAddress((String)getResponse.getSource().get(NetworkAddressTable.NETWORK_ADDRESS.getName()));
             return address;
         }
         return null;
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/cache/ServiceNameEsCacheDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/cache/ServiceNameEsCacheDAO.java
index 6aaa62cdc..c6b1f23f5 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/cache/ServiceNameEsCacheDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/cache/ServiceNameEsCacheDAO.java
@@ -48,9 +48,9 @@ public ServiceNameEsCacheDAO(ElasticSearchClient client) {
 
         if (getResponse.isExists()) {
             ServiceName serviceName = new ServiceName();
-            serviceName.setApplicationId(((Number)getResponse.getSource().get(ServiceNameTable.COLUMN_APPLICATION_ID)).intValue());
+            serviceName.setApplicationId(((Number)getResponse.getSource().get(ServiceNameTable.APPLICATION_ID.getName())).intValue());
             serviceName.setServiceId(serviceId);
-            serviceName.setServiceName((String)getResponse.getSource().get(ServiceNameTable.COLUMN_SERVICE_NAME));
+            serviceName.setServiceName((String)getResponse.getSource().get(ServiceNameTable.SERVICE_NAME.getName()));
             return serviceName;
         }
         return null;
@@ -62,16 +62,16 @@ public ServiceNameEsCacheDAO(ElasticSearchClient client) {
         searchRequestBuilder.setSearchType(SearchType.DFS_QUERY_THEN_FETCH);
 
         BoolQueryBuilder boolQuery = QueryBuilders.boolQuery();
-        boolQuery.must().add(QueryBuilders.termQuery(ServiceNameTable.COLUMN_APPLICATION_ID, applicationId));
-        boolQuery.must().add(QueryBuilders.termQuery(ServiceNameTable.COLUMN_SRC_SPAN_TYPE, srcSpanType));
-        boolQuery.must().add(QueryBuilders.termQuery(ServiceNameTable.COLUMN_SERVICE_NAME_KEYWORD, serviceName));
+        boolQuery.must().add(QueryBuilders.termQuery(ServiceNameTable.APPLICATION_ID.getName(), applicationId));
+        boolQuery.must().add(QueryBuilders.termQuery(ServiceNameTable.SRC_SPAN_TYPE.getName(), srcSpanType));
+        boolQuery.must().add(QueryBuilders.termQuery(ServiceNameTable.SERVICE_NAME_KEYWORD.getName(), serviceName));
         searchRequestBuilder.setQuery(boolQuery);
         searchRequestBuilder.setSize(1);
 
         SearchResponse searchResponse = searchRequestBuilder.get();
         if (searchResponse.getHits().totalHits > 0) {
             SearchHit searchHit = searchResponse.getHits().iterator().next();
-            return (int)searchHit.getSource().get(ServiceNameTable.COLUMN_SERVICE_ID);
+            return (int)searchHit.getSource().get(ServiceNameTable.SERVICE_ID.getName());
         }
         return 0;
     }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/cpu/AbstractCpuMetricEsPersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/cpu/AbstractCpuMetricEsPersistenceDAO.java
index 420edea3a..fcae67f64 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/cpu/AbstractCpuMetricEsPersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/cpu/AbstractCpuMetricEsPersistenceDAO.java
@@ -36,32 +36,32 @@
     }
 
     @Override protected final String timeBucketColumnNameForDelete() {
-        return CpuMetricTable.COLUMN_TIME_BUCKET;
+        return CpuMetricTable.TIME_BUCKET.getName();
     }
 
     @Override protected final CpuMetric esDataToStreamData(Map<String, Object> source) {
         CpuMetric cpuMetric = new CpuMetric();
-        cpuMetric.setMetricId((String)source.get(CpuMetricTable.COLUMN_METRIC_ID));
+        cpuMetric.setMetricId((String)source.get(CpuMetricTable.METRIC_ID.getName()));
 
-        cpuMetric.setInstanceId(((Number)source.get(CpuMetricTable.COLUMN_INSTANCE_ID)).intValue());
+        cpuMetric.setInstanceId(((Number)source.get(CpuMetricTable.INSTANCE_ID.getName())).intValue());
 
-        cpuMetric.setUsagePercent(((Number)source.get(CpuMetricTable.COLUMN_USAGE_PERCENT)).doubleValue());
-        cpuMetric.setTimes(((Number)source.get(CpuMetricTable.COLUMN_TIMES)).longValue());
-        cpuMetric.setTimeBucket(((Number)source.get(CpuMetricTable.COLUMN_TIME_BUCKET)).longValue());
+        cpuMetric.setUsagePercent(((Number)source.get(CpuMetricTable.USAGE_PERCENT.getName())).doubleValue());
+        cpuMetric.setTimes(((Number)source.get(CpuMetricTable.TIMES.getName())).longValue());
+        cpuMetric.setTimeBucket(((Number)source.get(CpuMetricTable.TIME_BUCKET.getName())).longValue());
 
         return cpuMetric;
     }
 
     @Override protected final Map<String, Object> esStreamDataToEsData(CpuMetric streamData) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(CpuMetricTable.COLUMN_METRIC_ID, streamData.getMetricId());
+        Map<String, Object> target = new HashMap<>();
+        target.put(CpuMetricTable.METRIC_ID.getName(), streamData.getMetricId());
 
-        source.put(CpuMetricTable.COLUMN_INSTANCE_ID, streamData.getInstanceId());
-        source.put(CpuMetricTable.COLUMN_USAGE_PERCENT, streamData.getUsagePercent());
-        source.put(CpuMetricTable.COLUMN_TIMES, streamData.getTimes());
-        source.put(CpuMetricTable.COLUMN_TIME_BUCKET, streamData.getTimeBucket());
+        target.put(CpuMetricTable.INSTANCE_ID.getName(), streamData.getInstanceId());
+        target.put(CpuMetricTable.USAGE_PERCENT.getName(), streamData.getUsagePercent());
+        target.put(CpuMetricTable.TIMES.getName(), streamData.getTimes());
+        target.put(CpuMetricTable.TIME_BUCKET.getName(), streamData.getTimeBucket());
 
-        return source;
+        return target;
     }
 
     @GraphComputingMetric(name = "/persistence/get/" + CpuMetricTable.TABLE)
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/gc/AbstractGCMetricEsPersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/gc/AbstractGCMetricEsPersistenceDAO.java
index 53c615292..05b584bba 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/gc/AbstractGCMetricEsPersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/gc/AbstractGCMetricEsPersistenceDAO.java
@@ -36,35 +36,35 @@
     }
 
     @Override protected final String timeBucketColumnNameForDelete() {
-        return GCMetricTable.COLUMN_TIME_BUCKET;
+        return GCMetricTable.TIME_BUCKET.getName();
     }
 
     @Override protected final GCMetric esDataToStreamData(Map<String, Object> source) {
         GCMetric gcMetric = new GCMetric();
-        gcMetric.setMetricId((String)source.get(GCMetricTable.COLUMN_METRIC_ID));
+        gcMetric.setMetricId((String)source.get(GCMetricTable.METRIC_ID.getName()));
 
-        gcMetric.setInstanceId(((Number)source.get(GCMetricTable.COLUMN_INSTANCE_ID)).intValue());
-        gcMetric.setPhrase(((Number)source.get(GCMetricTable.COLUMN_PHRASE)).intValue());
+        gcMetric.setInstanceId(((Number)source.get(GCMetricTable.INSTANCE_ID.getName())).intValue());
+        gcMetric.setPhrase(((Number)source.get(GCMetricTable.PHRASE.getName())).intValue());
 
-        gcMetric.setCount(((Number)source.get(GCMetricTable.COLUMN_COUNT)).longValue());
-        gcMetric.setTimes(((Number)source.get(GCMetricTable.COLUMN_TIMES)).longValue());
+        gcMetric.setCount(((Number)source.get(GCMetricTable.COUNT.getName())).longValue());
+        gcMetric.setTimes(((Number)source.get(GCMetricTable.TIMES.getName())).longValue());
 
-        gcMetric.setTimeBucket(((Number)source.get(GCMetricTable.COLUMN_TIME_BUCKET)).longValue());
+        gcMetric.setTimeBucket(((Number)source.get(GCMetricTable.TIME_BUCKET.getName())).longValue());
 
         return gcMetric;
     }
 
     @Override protected final Map<String, Object> esStreamDataToEsData(GCMetric streamData) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(GCMetricTable.COLUMN_METRIC_ID, streamData.getMetricId());
+        Map<String, Object> target = new HashMap<>();
+        target.put(GCMetricTable.METRIC_ID.getName(), streamData.getMetricId());
 
-        source.put(GCMetricTable.COLUMN_INSTANCE_ID, streamData.getInstanceId());
-        source.put(GCMetricTable.COLUMN_PHRASE, streamData.getPhrase());
-        source.put(GCMetricTable.COLUMN_COUNT, streamData.getCount());
-        source.put(GCMetricTable.COLUMN_TIMES, streamData.getTimes());
-        source.put(GCMetricTable.COLUMN_TIME_BUCKET, streamData.getTimeBucket());
+        target.put(GCMetricTable.INSTANCE_ID.getName(), streamData.getInstanceId());
+        target.put(GCMetricTable.PHRASE.getName(), streamData.getPhrase());
+        target.put(GCMetricTable.COUNT.getName(), streamData.getCount());
+        target.put(GCMetricTable.TIMES.getName(), streamData.getTimes());
+        target.put(GCMetricTable.TIME_BUCKET.getName(), streamData.getTimeBucket());
 
-        return source;
+        return target;
     }
 
     @GraphComputingMetric(name = "/persistence/get/" + GCMetricTable.TABLE)
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/imp/AbstractInstanceMetricEsPersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/imp/AbstractInstanceMetricEsPersistenceDAO.java
index f85c3be4a..a9d48f285 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/imp/AbstractInstanceMetricEsPersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/imp/AbstractInstanceMetricEsPersistenceDAO.java
@@ -22,6 +22,7 @@
 import java.util.Map;
 import org.apache.skywalking.apm.collector.client.elasticsearch.ElasticSearchClient;
 import org.apache.skywalking.apm.collector.core.annotations.trace.GraphComputingMetric;
+import org.apache.skywalking.apm.collector.storage.es.MetricTransformUtil;
 import org.apache.skywalking.apm.collector.storage.es.base.dao.AbstractPersistenceEsDAO;
 import org.apache.skywalking.apm.collector.storage.table.instance.InstanceMetric;
 import org.apache.skywalking.apm.collector.storage.table.instance.InstanceMetricTable;
@@ -36,67 +37,30 @@
     }
 
     @Override protected final String timeBucketColumnNameForDelete() {
-        return InstanceMetricTable.COLUMN_TIME_BUCKET;
+        return InstanceMetricTable.TIME_BUCKET.getName();
     }
 
     @Override protected final InstanceMetric esDataToStreamData(Map<String, Object> source) {
         InstanceMetric instanceMetric = new InstanceMetric();
 
-        instanceMetric.setMetricId((String)source.get(InstanceMetricTable.COLUMN_METRIC_ID));
-        instanceMetric.setApplicationId((Integer)source.get(InstanceMetricTable.COLUMN_APPLICATION_ID));
-        instanceMetric.setInstanceId((Integer)source.get(InstanceMetricTable.COLUMN_INSTANCE_ID));
-        instanceMetric.setSourceValue((Integer)source.get(InstanceMetricTable.COLUMN_SOURCE_VALUE));
+        instanceMetric.setMetricId((String)source.get(InstanceMetricTable.METRIC_ID.getName()));
+        instanceMetric.setApplicationId((Integer)source.get(InstanceMetricTable.APPLICATION_ID.getName()));
+        instanceMetric.setInstanceId((Integer)source.get(InstanceMetricTable.INSTANCE_ID.getName()));
 
-        instanceMetric.setTransactionCalls(((Number)source.get(InstanceMetricTable.COLUMN_TRANSACTION_CALLS)).longValue());
-        instanceMetric.setTransactionErrorCalls(((Number)source.get(InstanceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS)).longValue());
-        instanceMetric.setTransactionDurationSum(((Number)source.get(InstanceMetricTable.COLUMN_TRANSACTION_DURATION_SUM)).longValue());
-        instanceMetric.setTransactionErrorDurationSum(((Number)source.get(InstanceMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM)).longValue());
-        instanceMetric.setTransactionAverageDuration(((Number)source.get(InstanceMetricTable.COLUMN_TRANSACTION_AVERAGE_DURATION)).longValue());
+        MetricTransformUtil.INSTANCE.esDataToStreamData(source, instanceMetric);
 
-        instanceMetric.setBusinessTransactionCalls(((Number)source.get(InstanceMetricTable.COLUMN_BUSINESS_TRANSACTION_CALLS)).longValue());
-        instanceMetric.setBusinessTransactionErrorCalls(((Number)source.get(InstanceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_CALLS)).longValue());
-        instanceMetric.setBusinessTransactionDurationSum(((Number)source.get(InstanceMetricTable.COLUMN_BUSINESS_TRANSACTION_DURATION_SUM)).longValue());
-        instanceMetric.setBusinessTransactionErrorDurationSum(((Number)source.get(InstanceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_DURATION_SUM)).longValue());
-        instanceMetric.setBusinessTransactionAverageDuration(((Number)source.get(InstanceMetricTable.COLUMN_BUSINESS_TRANSACTION_AVERAGE_DURATION)).longValue());
-
-        instanceMetric.setMqTransactionCalls(((Number)source.get(InstanceMetricTable.COLUMN_MQ_TRANSACTION_CALLS)).longValue());
-        instanceMetric.setMqTransactionErrorCalls(((Number)source.get(InstanceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_CALLS)).longValue());
-        instanceMetric.setMqTransactionDurationSum(((Number)source.get(InstanceMetricTable.COLUMN_MQ_TRANSACTION_DURATION_SUM)).longValue());
-        instanceMetric.setMqTransactionErrorDurationSum(((Number)source.get(InstanceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_DURATION_SUM)).longValue());
-        instanceMetric.setMqTransactionAverageDuration(((Number)source.get(InstanceMetricTable.COLUMN_MQ_TRANSACTION_AVERAGE_DURATION)).longValue());
-
-        instanceMetric.setTimeBucket(((Number)source.get(InstanceMetricTable.COLUMN_TIME_BUCKET)).longValue());
         return instanceMetric;
     }
 
     @Override protected final Map<String, Object> esStreamDataToEsData(InstanceMetric streamData) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(InstanceMetricTable.COLUMN_METRIC_ID, streamData.getMetricId());
-        source.put(InstanceMetricTable.COLUMN_APPLICATION_ID, streamData.getApplicationId());
-        source.put(InstanceMetricTable.COLUMN_INSTANCE_ID, streamData.getInstanceId());
-        source.put(InstanceMetricTable.COLUMN_SOURCE_VALUE, streamData.getSourceValue());
-
-        source.put(InstanceMetricTable.COLUMN_TRANSACTION_CALLS, streamData.getTransactionCalls());
-        source.put(InstanceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS, streamData.getTransactionErrorCalls());
-        source.put(InstanceMetricTable.COLUMN_TRANSACTION_DURATION_SUM, streamData.getTransactionDurationSum());
-        source.put(InstanceMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM, streamData.getTransactionErrorDurationSum());
-        source.put(InstanceMetricTable.COLUMN_TRANSACTION_AVERAGE_DURATION, streamData.getTransactionAverageDuration());
-
-        source.put(InstanceMetricTable.COLUMN_BUSINESS_TRANSACTION_CALLS, streamData.getBusinessTransactionCalls());
-        source.put(InstanceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_CALLS, streamData.getBusinessTransactionErrorCalls());
-        source.put(InstanceMetricTable.COLUMN_BUSINESS_TRANSACTION_DURATION_SUM, streamData.getBusinessTransactionDurationSum());
-        source.put(InstanceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_DURATION_SUM, streamData.getBusinessTransactionErrorDurationSum());
-        source.put(InstanceMetricTable.COLUMN_BUSINESS_TRANSACTION_AVERAGE_DURATION, streamData.getBusinessTransactionAverageDuration());
-
-        source.put(InstanceMetricTable.COLUMN_MQ_TRANSACTION_CALLS, streamData.getMqTransactionCalls());
-        source.put(InstanceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_CALLS, streamData.getMqTransactionErrorCalls());
-        source.put(InstanceMetricTable.COLUMN_MQ_TRANSACTION_DURATION_SUM, streamData.getMqTransactionDurationSum());
-        source.put(InstanceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_DURATION_SUM, streamData.getMqTransactionErrorDurationSum());
-        source.put(InstanceMetricTable.COLUMN_MQ_TRANSACTION_AVERAGE_DURATION, streamData.getMqTransactionAverageDuration());
+        Map<String, Object> target = new HashMap<>();
+        target.put(InstanceMetricTable.METRIC_ID.getName(), streamData.getMetricId());
+        target.put(InstanceMetricTable.APPLICATION_ID.getName(), streamData.getApplicationId());
+        target.put(InstanceMetricTable.INSTANCE_ID.getName(), streamData.getInstanceId());
 
-        source.put(InstanceMetricTable.COLUMN_TIME_BUCKET, streamData.getTimeBucket());
+        MetricTransformUtil.INSTANCE.esStreamDataToEsData(streamData, target);
 
-        return source;
+        return target;
     }
 
     @GraphComputingMetric(name = "/persistence/get/" + InstanceMetricTable.TABLE)
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/impp/AbstractInstanceMappingEsPersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/impp/AbstractInstanceMappingEsPersistenceDAO.java
index 8a47fa690..093894bdb 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/impp/AbstractInstanceMappingEsPersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/impp/AbstractInstanceMappingEsPersistenceDAO.java
@@ -36,30 +36,30 @@
     }
 
     @Override protected final String timeBucketColumnNameForDelete() {
-        return InstanceMappingTable.COLUMN_TIME_BUCKET;
+        return InstanceMappingTable.TIME_BUCKET.getName();
     }
 
     @Override protected final InstanceMapping esDataToStreamData(Map<String, Object> source) {
         InstanceMapping instanceMapping = new InstanceMapping();
-        instanceMapping.setMetricId((String)source.get(InstanceMappingTable.COLUMN_METRIC_ID));
+        instanceMapping.setMetricId((String)source.get(InstanceMappingTable.METRIC_ID.getName()));
 
-        instanceMapping.setApplicationId(((Number)source.get(InstanceMappingTable.COLUMN_APPLICATION_ID)).intValue());
-        instanceMapping.setInstanceId(((Number)source.get(InstanceMappingTable.COLUMN_INSTANCE_ID)).intValue());
-        instanceMapping.setAddressId(((Number)source.get(InstanceMappingTable.COLUMN_ADDRESS_ID)).intValue());
-        instanceMapping.setTimeBucket(((Number)source.get(InstanceMappingTable.COLUMN_TIME_BUCKET)).longValue());
+        instanceMapping.setApplicationId(((Number)source.get(InstanceMappingTable.APPLICATION_ID.getName())).intValue());
+        instanceMapping.setInstanceId(((Number)source.get(InstanceMappingTable.INSTANCE_ID.getName())).intValue());
+        instanceMapping.setAddressId(((Number)source.get(InstanceMappingTable.ADDRESS_ID.getName())).intValue());
+        instanceMapping.setTimeBucket(((Number)source.get(InstanceMappingTable.TIME_BUCKET.getName())).longValue());
         return instanceMapping;
     }
 
     @Override protected final Map<String, Object> esStreamDataToEsData(InstanceMapping streamData) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(InstanceMappingTable.COLUMN_METRIC_ID, streamData.getMetricId());
+        Map<String, Object> target = new HashMap<>();
+        target.put(InstanceMappingTable.METRIC_ID.getName(), streamData.getMetricId());
 
-        source.put(InstanceMappingTable.COLUMN_APPLICATION_ID, streamData.getApplicationId());
-        source.put(InstanceMappingTable.COLUMN_INSTANCE_ID, streamData.getInstanceId());
-        source.put(InstanceMappingTable.COLUMN_ADDRESS_ID, streamData.getAddressId());
-        source.put(InstanceMappingTable.COLUMN_TIME_BUCKET, streamData.getTimeBucket());
+        target.put(InstanceMappingTable.APPLICATION_ID.getName(), streamData.getApplicationId());
+        target.put(InstanceMappingTable.INSTANCE_ID.getName(), streamData.getInstanceId());
+        target.put(InstanceMappingTable.ADDRESS_ID.getName(), streamData.getAddressId());
+        target.put(InstanceMappingTable.TIME_BUCKET.getName(), streamData.getTimeBucket());
 
-        return source;
+        return target;
     }
 
     @GraphComputingMetric(name = "/persistence/get/" + InstanceMappingTable.TABLE)
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/irmp/AbstractInstanceReferenceMetricEsPersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/irmp/AbstractInstanceReferenceMetricEsPersistenceDAO.java
index f30e096a4..fa474b72f 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/irmp/AbstractInstanceReferenceMetricEsPersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/irmp/AbstractInstanceReferenceMetricEsPersistenceDAO.java
@@ -22,6 +22,7 @@
 import java.util.Map;
 import org.apache.skywalking.apm.collector.client.elasticsearch.ElasticSearchClient;
 import org.apache.skywalking.apm.collector.core.annotations.trace.GraphComputingMetric;
+import org.apache.skywalking.apm.collector.storage.es.MetricTransformUtil;
 import org.apache.skywalking.apm.collector.storage.es.base.dao.AbstractPersistenceEsDAO;
 import org.apache.skywalking.apm.collector.storage.table.instance.InstanceReferenceMetric;
 import org.apache.skywalking.apm.collector.storage.table.instance.InstanceReferenceMetricTable;
@@ -36,72 +37,35 @@
     }
 
     @Override protected final String timeBucketColumnNameForDelete() {
-        return InstanceReferenceMetricTable.COLUMN_TIME_BUCKET;
+        return InstanceReferenceMetricTable.TIME_BUCKET.getName();
     }
 
     @Override protected final InstanceReferenceMetric esDataToStreamData(Map<String, Object> source) {
         InstanceReferenceMetric instanceReferenceMetric = new InstanceReferenceMetric();
-        instanceReferenceMetric.setMetricId((String)source.get(InstanceReferenceMetricTable.COLUMN_METRIC_ID));
+        instanceReferenceMetric.setMetricId((String)source.get(InstanceReferenceMetricTable.METRIC_ID.getName()));
 
-        instanceReferenceMetric.setFrontApplicationId((Integer)source.get(InstanceReferenceMetricTable.COLUMN_FRONT_APPLICATION_ID));
-        instanceReferenceMetric.setBehindApplicationId((Integer)source.get(InstanceReferenceMetricTable.COLUMN_BEHIND_APPLICATION_ID));
-        instanceReferenceMetric.setFrontInstanceId((Integer)source.get(InstanceReferenceMetricTable.COLUMN_FRONT_INSTANCE_ID));
-        instanceReferenceMetric.setBehindInstanceId((Integer)source.get(InstanceReferenceMetricTable.COLUMN_BEHIND_INSTANCE_ID));
-        instanceReferenceMetric.setSourceValue((Integer)source.get(InstanceReferenceMetricTable.COLUMN_SOURCE_VALUE));
+        instanceReferenceMetric.setFrontApplicationId((Integer)source.get(InstanceReferenceMetricTable.FRONT_APPLICATION_ID.getName()));
+        instanceReferenceMetric.setBehindApplicationId((Integer)source.get(InstanceReferenceMetricTable.BEHIND_APPLICATION_ID.getName()));
+        instanceReferenceMetric.setFrontInstanceId((Integer)source.get(InstanceReferenceMetricTable.FRONT_INSTANCE_ID.getName()));
+        instanceReferenceMetric.setBehindInstanceId((Integer)source.get(InstanceReferenceMetricTable.BEHIND_INSTANCE_ID.getName()));
 
-        instanceReferenceMetric.setTransactionCalls(((Number)source.get(InstanceReferenceMetricTable.COLUMN_TRANSACTION_CALLS)).longValue());
-        instanceReferenceMetric.setTransactionErrorCalls(((Number)source.get(InstanceReferenceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS)).longValue());
-        instanceReferenceMetric.setTransactionDurationSum(((Number)source.get(InstanceReferenceMetricTable.COLUMN_TRANSACTION_DURATION_SUM)).longValue());
-        instanceReferenceMetric.setTransactionErrorDurationSum(((Number)source.get(InstanceReferenceMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM)).longValue());
-        instanceReferenceMetric.setTransactionAverageDuration(((Number)source.get(InstanceReferenceMetricTable.COLUMN_TRANSACTION_AVERAGE_DURATION)).longValue());
+        MetricTransformUtil.INSTANCE.esDataToStreamData(source, instanceReferenceMetric);
 
-        instanceReferenceMetric.setBusinessTransactionCalls(((Number)source.get(InstanceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_CALLS)).longValue());
-        instanceReferenceMetric.setBusinessTransactionErrorCalls(((Number)source.get(InstanceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_CALLS)).longValue());
-        instanceReferenceMetric.setBusinessTransactionDurationSum(((Number)source.get(InstanceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_DURATION_SUM)).longValue());
-        instanceReferenceMetric.setBusinessTransactionErrorDurationSum(((Number)source.get(InstanceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_DURATION_SUM)).longValue());
-        instanceReferenceMetric.setBusinessTransactionAverageDuration(((Number)source.get(InstanceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_AVERAGE_DURATION)).longValue());
-
-        instanceReferenceMetric.setMqTransactionCalls(((Number)source.get(InstanceReferenceMetricTable.COLUMN_MQ_TRANSACTION_CALLS)).longValue());
-        instanceReferenceMetric.setMqTransactionErrorCalls(((Number)source.get(InstanceReferenceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_CALLS)).longValue());
-        instanceReferenceMetric.setMqTransactionDurationSum(((Number)source.get(InstanceReferenceMetricTable.COLUMN_MQ_TRANSACTION_DURATION_SUM)).longValue());
-        instanceReferenceMetric.setMqTransactionErrorDurationSum(((Number)source.get(InstanceReferenceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_DURATION_SUM)).longValue());
-        instanceReferenceMetric.setMqTransactionAverageDuration(((Number)source.get(InstanceReferenceMetricTable.COLUMN_MQ_TRANSACTION_AVERAGE_DURATION)).longValue());
-
-        instanceReferenceMetric.setTimeBucket(((Number)source.get(InstanceReferenceMetricTable.COLUMN_TIME_BUCKET)).longValue());
         return instanceReferenceMetric;
     }
 
     @Override protected final Map<String, Object> esStreamDataToEsData(InstanceReferenceMetric streamData) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(InstanceReferenceMetricTable.COLUMN_METRIC_ID, streamData.getMetricId());
-
-        source.put(InstanceReferenceMetricTable.COLUMN_FRONT_APPLICATION_ID, streamData.getFrontApplicationId());
-        source.put(InstanceReferenceMetricTable.COLUMN_BEHIND_APPLICATION_ID, streamData.getBehindApplicationId());
-        source.put(InstanceReferenceMetricTable.COLUMN_FRONT_INSTANCE_ID, streamData.getFrontInstanceId());
-        source.put(InstanceReferenceMetricTable.COLUMN_BEHIND_INSTANCE_ID, streamData.getBehindInstanceId());
-        source.put(InstanceReferenceMetricTable.COLUMN_SOURCE_VALUE, streamData.getSourceValue());
-
-        source.put(InstanceReferenceMetricTable.COLUMN_TRANSACTION_CALLS, streamData.getTransactionCalls());
-        source.put(InstanceReferenceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS, streamData.getTransactionErrorCalls());
-        source.put(InstanceReferenceMetricTable.COLUMN_TRANSACTION_DURATION_SUM, streamData.getTransactionDurationSum());
-        source.put(InstanceReferenceMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM, streamData.getTransactionErrorDurationSum());
-        source.put(InstanceReferenceMetricTable.COLUMN_TRANSACTION_AVERAGE_DURATION, streamData.getTransactionAverageDuration());
-
-        source.put(InstanceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_CALLS, streamData.getBusinessTransactionCalls());
-        source.put(InstanceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_CALLS, streamData.getBusinessTransactionErrorCalls());
-        source.put(InstanceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_DURATION_SUM, streamData.getBusinessTransactionDurationSum());
-        source.put(InstanceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_DURATION_SUM, streamData.getBusinessTransactionErrorDurationSum());
-        source.put(InstanceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_AVERAGE_DURATION, streamData.getBusinessTransactionAverageDuration());
+        Map<String, Object> target = new HashMap<>();
+        target.put(InstanceReferenceMetricTable.METRIC_ID.getName(), streamData.getMetricId());
 
-        source.put(InstanceReferenceMetricTable.COLUMN_MQ_TRANSACTION_CALLS, streamData.getMqTransactionCalls());
-        source.put(InstanceReferenceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_CALLS, streamData.getMqTransactionErrorCalls());
-        source.put(InstanceReferenceMetricTable.COLUMN_MQ_TRANSACTION_DURATION_SUM, streamData.getMqTransactionDurationSum());
-        source.put(InstanceReferenceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_DURATION_SUM, streamData.getMqTransactionErrorDurationSum());
-        source.put(InstanceReferenceMetricTable.COLUMN_MQ_TRANSACTION_AVERAGE_DURATION, streamData.getMqTransactionAverageDuration());
+        target.put(InstanceReferenceMetricTable.FRONT_APPLICATION_ID.getName(), streamData.getFrontApplicationId());
+        target.put(InstanceReferenceMetricTable.BEHIND_APPLICATION_ID.getName(), streamData.getBehindApplicationId());
+        target.put(InstanceReferenceMetricTable.FRONT_INSTANCE_ID.getName(), streamData.getFrontInstanceId());
+        target.put(InstanceReferenceMetricTable.BEHIND_INSTANCE_ID.getName(), streamData.getBehindInstanceId());
 
-        source.put(InstanceReferenceMetricTable.COLUMN_TIME_BUCKET, streamData.getTimeBucket());
+        MetricTransformUtil.INSTANCE.esStreamDataToEsData(streamData, target);
 
-        return source;
+        return target;
     }
 
     @GraphComputingMetric(name = "/persistence/get/" + InstanceReferenceMetricTable.TABLE)
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/memory/AbstractMemoryMetricEsPersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/memory/AbstractMemoryMetricEsPersistenceDAO.java
index 406dbffd0..8f12f0d26 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/memory/AbstractMemoryMetricEsPersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/memory/AbstractMemoryMetricEsPersistenceDAO.java
@@ -36,40 +36,40 @@
     }
 
     @Override protected final String timeBucketColumnNameForDelete() {
-        return MemoryMetricTable.COLUMN_TIME_BUCKET;
+        return MemoryMetricTable.TIME_BUCKET.getName();
     }
 
     @Override protected final MemoryMetric esDataToStreamData(Map<String, Object> source) {
         MemoryMetric memoryMetric = new MemoryMetric();
-        memoryMetric.setMetricId((String)source.get(MemoryMetricTable.COLUMN_METRIC_ID));
+        memoryMetric.setMetricId((String)source.get(MemoryMetricTable.METRIC_ID.getName()));
 
-        memoryMetric.setInstanceId(((Number)source.get(MemoryMetricTable.COLUMN_INSTANCE_ID)).intValue());
-        memoryMetric.setIsHeap(((Number)source.get(MemoryMetricTable.COLUMN_IS_HEAP)).intValue());
+        memoryMetric.setInstanceId(((Number)source.get(MemoryMetricTable.INSTANCE_ID.getName())).intValue());
+        memoryMetric.setIsHeap(((Number)source.get(MemoryMetricTable.IS_HEAP.getName())).intValue());
 
-        memoryMetric.setInit(((Number)source.get(MemoryMetricTable.COLUMN_INIT)).longValue());
-        memoryMetric.setMax(((Number)source.get(MemoryMetricTable.COLUMN_MAX)).longValue());
-        memoryMetric.setUsed(((Number)source.get(MemoryMetricTable.COLUMN_USED)).longValue());
-        memoryMetric.setCommitted(((Number)source.get(MemoryMetricTable.COLUMN_COMMITTED)).longValue());
-        memoryMetric.setTimes(((Number)source.get(MemoryMetricTable.COLUMN_TIMES)).longValue());
+        memoryMetric.setInit(((Number)source.get(MemoryMetricTable.INIT.getName())).longValue());
+        memoryMetric.setMax(((Number)source.get(MemoryMetricTable.MAX.getName())).longValue());
+        memoryMetric.setUsed(((Number)source.get(MemoryMetricTable.USED.getName())).longValue());
+        memoryMetric.setCommitted(((Number)source.get(MemoryMetricTable.COMMITTED.getName())).longValue());
+        memoryMetric.setTimes(((Number)source.get(MemoryMetricTable.TIMES.getName())).longValue());
 
-        memoryMetric.setTimeBucket(((Number)source.get(MemoryMetricTable.COLUMN_TIME_BUCKET)).longValue());
+        memoryMetric.setTimeBucket(((Number)source.get(MemoryMetricTable.TIME_BUCKET.getName())).longValue());
         return memoryMetric;
     }
 
     @Override protected final Map<String, Object> esStreamDataToEsData(MemoryMetric streamData) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(MemoryMetricTable.COLUMN_METRIC_ID, streamData.getMetricId());
+        Map<String, Object> target = new HashMap<>();
+        target.put(MemoryMetricTable.METRIC_ID.getName(), streamData.getMetricId());
 
-        source.put(MemoryMetricTable.COLUMN_INSTANCE_ID, streamData.getInstanceId());
-        source.put(MemoryMetricTable.COLUMN_IS_HEAP, streamData.getIsHeap());
-        source.put(MemoryMetricTable.COLUMN_INIT, streamData.getInit());
-        source.put(MemoryMetricTable.COLUMN_MAX, streamData.getMax());
-        source.put(MemoryMetricTable.COLUMN_USED, streamData.getUsed());
-        source.put(MemoryMetricTable.COLUMN_COMMITTED, streamData.getCommitted());
-        source.put(MemoryMetricTable.COLUMN_TIMES, streamData.getTimes());
-        source.put(MemoryMetricTable.COLUMN_TIME_BUCKET, streamData.getTimeBucket());
+        target.put(MemoryMetricTable.INSTANCE_ID.getName(), streamData.getInstanceId());
+        target.put(MemoryMetricTable.IS_HEAP.getName(), streamData.getIsHeap());
+        target.put(MemoryMetricTable.INIT.getName(), streamData.getInit());
+        target.put(MemoryMetricTable.MAX.getName(), streamData.getMax());
+        target.put(MemoryMetricTable.USED.getName(), streamData.getUsed());
+        target.put(MemoryMetricTable.COMMITTED.getName(), streamData.getCommitted());
+        target.put(MemoryMetricTable.TIMES.getName(), streamData.getTimes());
+        target.put(MemoryMetricTable.TIME_BUCKET.getName(), streamData.getTimeBucket());
 
-        return source;
+        return target;
     }
 
     @GraphComputingMetric(name = "/persistence/get/" + MemoryMetricTable.TABLE)
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/mpool/AbstractMemoryPoolMetricEsPersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/mpool/AbstractMemoryPoolMetricEsPersistenceDAO.java
index 98b8ab1c0..12f87cd3e 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/mpool/AbstractMemoryPoolMetricEsPersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/mpool/AbstractMemoryPoolMetricEsPersistenceDAO.java
@@ -37,42 +37,42 @@
 
     @Override
     protected final String timeBucketColumnNameForDelete() {
-        return MemoryPoolMetricTable.COLUMN_TIME_BUCKET;
+        return MemoryPoolMetricTable.TIME_BUCKET.getName();
     }
 
     @Override
     protected final MemoryPoolMetric esDataToStreamData(Map<String, Object> source) {
         MemoryPoolMetric memoryPoolMetric = new MemoryPoolMetric();
-        memoryPoolMetric.setMetricId((String)source.get(MemoryPoolMetricTable.COLUMN_METRIC_ID));
+        memoryPoolMetric.setMetricId((String)source.get(MemoryPoolMetricTable.METRIC_ID.getName()));
 
-        memoryPoolMetric.setInstanceId(((Number)source.get(MemoryPoolMetricTable.COLUMN_INSTANCE_ID)).intValue());
-        memoryPoolMetric.setPoolType(((Number)source.get(MemoryPoolMetricTable.COLUMN_POOL_TYPE)).intValue());
+        memoryPoolMetric.setInstanceId(((Number)source.get(MemoryPoolMetricTable.INSTANCE_ID.getName())).intValue());
+        memoryPoolMetric.setPoolType(((Number)source.get(MemoryPoolMetricTable.POOL_TYPE.getName())).intValue());
 
-        memoryPoolMetric.setInit(((Number)source.get(MemoryPoolMetricTable.COLUMN_INIT)).longValue());
-        memoryPoolMetric.setMax(((Number)source.get(MemoryPoolMetricTable.COLUMN_MAX)).longValue());
-        memoryPoolMetric.setUsed(((Number)source.get(MemoryPoolMetricTable.COLUMN_USED)).longValue());
-        memoryPoolMetric.setCommitted(((Number)source.get(MemoryPoolMetricTable.COLUMN_COMMITTED)).longValue());
-        memoryPoolMetric.setTimes(((Number)source.get(MemoryPoolMetricTable.COLUMN_TIMES)).longValue());
+        memoryPoolMetric.setInit(((Number)source.get(MemoryPoolMetricTable.INIT.getName())).longValue());
+        memoryPoolMetric.setMax(((Number)source.get(MemoryPoolMetricTable.MAX.getName())).longValue());
+        memoryPoolMetric.setUsed(((Number)source.get(MemoryPoolMetricTable.USED.getName())).longValue());
+        memoryPoolMetric.setCommitted(((Number)source.get(MemoryPoolMetricTable.COMMITTED.getName())).longValue());
+        memoryPoolMetric.setTimes(((Number)source.get(MemoryPoolMetricTable.TIMES.getName())).longValue());
 
-        memoryPoolMetric.setTimeBucket(((Number)source.get(MemoryPoolMetricTable.COLUMN_TIME_BUCKET)).longValue());
+        memoryPoolMetric.setTimeBucket(((Number)source.get(MemoryPoolMetricTable.TIME_BUCKET.getName())).longValue());
         return memoryPoolMetric;
     }
 
     @Override
     protected final Map<String, Object> esStreamDataToEsData(MemoryPoolMetric streamData) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(MemoryPoolMetricTable.COLUMN_METRIC_ID, streamData.getMetricId());
+        Map<String, Object> target = new HashMap<>();
+        target.put(MemoryPoolMetricTable.METRIC_ID.getName(), streamData.getMetricId());
 
-        source.put(MemoryPoolMetricTable.COLUMN_INSTANCE_ID, streamData.getInstanceId());
-        source.put(MemoryPoolMetricTable.COLUMN_POOL_TYPE, streamData.getPoolType());
-        source.put(MemoryPoolMetricTable.COLUMN_INIT, streamData.getInit());
-        source.put(MemoryPoolMetricTable.COLUMN_MAX, streamData.getMax());
-        source.put(MemoryPoolMetricTable.COLUMN_USED, streamData.getUsed());
-        source.put(MemoryPoolMetricTable.COLUMN_COMMITTED, streamData.getCommitted());
-        source.put(MemoryPoolMetricTable.COLUMN_TIMES, streamData.getTimes());
-        source.put(MemoryPoolMetricTable.COLUMN_TIME_BUCKET, streamData.getTimeBucket());
+        target.put(MemoryPoolMetricTable.INSTANCE_ID.getName(), streamData.getInstanceId());
+        target.put(MemoryPoolMetricTable.POOL_TYPE.getName(), streamData.getPoolType());
+        target.put(MemoryPoolMetricTable.INIT.getName(), streamData.getInit());
+        target.put(MemoryPoolMetricTable.MAX.getName(), streamData.getMax());
+        target.put(MemoryPoolMetricTable.USED.getName(), streamData.getUsed());
+        target.put(MemoryPoolMetricTable.COMMITTED.getName(), streamData.getCommitted());
+        target.put(MemoryPoolMetricTable.TIMES.getName(), streamData.getTimes());
+        target.put(MemoryPoolMetricTable.TIME_BUCKET.getName(), streamData.getTimeBucket());
 
-        return source;
+        return target;
     }
 
     @GraphComputingMetric(name = "/persistence/get/" + MemoryPoolMetricTable.TABLE)
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/register/ApplicationRegisterEsDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/register/ApplicationRegisterEsDAO.java
index 62627ccb7..279b8a101 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/register/ApplicationRegisterEsDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/register/ApplicationRegisterEsDAO.java
@@ -42,23 +42,23 @@ public ApplicationRegisterEsDAO(ElasticSearchClient client) {
     }
 
     @Override public int getMaxApplicationId() {
-        return getMaxId(ApplicationTable.TABLE, ApplicationTable.COLUMN_APPLICATION_ID);
+        return getMaxId(ApplicationTable.TABLE, ApplicationTable.APPLICATION_ID.getName());
     }
 
     @Override public int getMinApplicationId() {
-        return getMinId(ApplicationTable.TABLE, ApplicationTable.COLUMN_APPLICATION_ID);
+        return getMinId(ApplicationTable.TABLE, ApplicationTable.APPLICATION_ID.getName());
     }
 
     @Override public void save(Application application) {
         logger.debug("save application register info, application getApplicationId: {}, application code: {}", application.getId(), application.getApplicationCode());
         ElasticSearchClient client = getClient();
-        Map<String, Object> source = new HashMap<>();
-        source.put(ApplicationTable.COLUMN_APPLICATION_CODE, application.getApplicationCode());
-        source.put(ApplicationTable.COLUMN_APPLICATION_ID, application.getApplicationId());
-        source.put(ApplicationTable.COLUMN_ADDRESS_ID, application.getAddressId());
-        source.put(ApplicationTable.COLUMN_IS_ADDRESS, application.getIsAddress());
+        Map<String, Object> target = new HashMap<>();
+        target.put(ApplicationTable.APPLICATION_CODE.getName(), application.getApplicationCode());
+        target.put(ApplicationTable.APPLICATION_ID.getName(), application.getApplicationId());
+        target.put(ApplicationTable.ADDRESS_ID.getName(), application.getAddressId());
+        target.put(ApplicationTable.IS_ADDRESS.getName(), application.getIsAddress());
 
-        IndexResponse response = client.prepareIndex(ApplicationTable.TABLE, application.getId()).setSource(source).setRefreshPolicy(WriteRequest.RefreshPolicy.IMMEDIATE).get();
+        IndexResponse response = client.prepareIndex(ApplicationTable.TABLE, application.getId()).setSource(target).setRefreshPolicy(WriteRequest.RefreshPolicy.IMMEDIATE).get();
         logger.debug("save application register info, application getApplicationId: {}, application code: {}, status: {}", application.getApplicationId(), application.getApplicationCode(), response.status().name());
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/register/InstanceRegisterEsDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/register/InstanceRegisterEsDAO.java
index 93a75dc09..3919fbee8 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/register/InstanceRegisterEsDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/register/InstanceRegisterEsDAO.java
@@ -18,6 +18,8 @@
 
 package org.apache.skywalking.apm.collector.storage.es.dao.register;
 
+import java.util.HashMap;
+import java.util.Map;
 import org.apache.skywalking.apm.collector.client.elasticsearch.ElasticSearchClient;
 import org.apache.skywalking.apm.collector.core.util.TimeBucketUtils;
 import org.apache.skywalking.apm.collector.storage.dao.register.IInstanceRegisterDAO;
@@ -30,9 +32,6 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.util.HashMap;
-import java.util.Map;
-
 /**
  * @author peng-yongsheng
  */
@@ -46,30 +45,30 @@ public InstanceRegisterEsDAO(ElasticSearchClient client) {
 
     @Override
     public int getMaxInstanceId() {
-        return getMaxId(InstanceTable.TABLE, InstanceTable.COLUMN_INSTANCE_ID);
+        return getMaxId(InstanceTable.TABLE, InstanceTable.INSTANCE_ID.getName());
     }
 
     @Override
     public int getMinInstanceId() {
-        return getMinId(InstanceTable.TABLE, InstanceTable.COLUMN_INSTANCE_ID);
+        return getMinId(InstanceTable.TABLE, InstanceTable.INSTANCE_ID.getName());
     }
 
     @Override
     public void save(Instance instance) {
         logger.debug("save instance register info, application getApplicationId: {}, agentUUID: {}", instance.getApplicationId(), instance.getAgentUUID());
         ElasticSearchClient client = getClient();
-        Map<String, Object> source = new HashMap<>();
-        source.put(InstanceTable.COLUMN_INSTANCE_ID, instance.getInstanceId());
-        source.put(InstanceTable.COLUMN_APPLICATION_ID, instance.getApplicationId());
-        source.put(InstanceTable.COLUMN_APPLICATION_CODE, instance.getApplicationCode());
-        source.put(InstanceTable.COLUMN_AGENT_UUID, instance.getAgentUUID());
-        source.put(InstanceTable.COLUMN_REGISTER_TIME, TimeBucketUtils.INSTANCE.getSecondTimeBucket(instance.getRegisterTime()));
-        source.put(InstanceTable.COLUMN_HEARTBEAT_TIME, TimeBucketUtils.INSTANCE.getSecondTimeBucket(instance.getHeartBeatTime()));
-        source.put(InstanceTable.COLUMN_OS_INFO, instance.getOsInfo());
-        source.put(InstanceTable.COLUMN_ADDRESS_ID, instance.getAddressId());
-        source.put(InstanceTable.COLUMN_IS_ADDRESS, instance.getIsAddress());
+        Map<String, Object> target = new HashMap<>();
+        target.put(InstanceTable.INSTANCE_ID.getName(), instance.getInstanceId());
+        target.put(InstanceTable.APPLICATION_ID.getName(), instance.getApplicationId());
+        target.put(InstanceTable.APPLICATION_CODE.getName(), instance.getApplicationCode());
+        target.put(InstanceTable.AGENT_UUID.getName(), instance.getAgentUUID());
+        target.put(InstanceTable.REGISTER_TIME.getName(), TimeBucketUtils.INSTANCE.getSecondTimeBucket(instance.getRegisterTime()));
+        target.put(InstanceTable.HEARTBEAT_TIME.getName(), TimeBucketUtils.INSTANCE.getSecondTimeBucket(instance.getHeartBeatTime()));
+        target.put(InstanceTable.OS_INFO.getName(), instance.getOsInfo());
+        target.put(InstanceTable.ADDRESS_ID.getName(), instance.getAddressId());
+        target.put(InstanceTable.IS_ADDRESS.getName(), instance.getIsAddress());
 
-        IndexResponse response = client.prepareIndex(InstanceTable.TABLE, instance.getId()).setSource(source).setRefreshPolicy(WriteRequest.RefreshPolicy.IMMEDIATE).get();
+        IndexResponse response = client.prepareIndex(InstanceTable.TABLE, instance.getId()).setSource(target).setRefreshPolicy(WriteRequest.RefreshPolicy.IMMEDIATE).get();
         logger.debug("save instance register info, application getApplicationId: {}, agentUUID: {}, status: {}", instance.getApplicationId(), instance.getAgentUUID(), response.status().name());
     }
 
@@ -77,9 +76,9 @@ public void save(Instance instance) {
     public void updateHeartbeatTime(int instanceId, long heartbeatTime) {
         UpdateRequestBuilder updateRequestBuilder = getClient().prepareUpdate(InstanceTable.TABLE, String.valueOf(instanceId));
         updateRequestBuilder.setRefreshPolicy(WriteRequest.RefreshPolicy.IMMEDIATE);
-        Map<String, Object> source = new HashMap<>();
-        source.put(InstanceTable.COLUMN_HEARTBEAT_TIME, TimeBucketUtils.INSTANCE.getSecondTimeBucket(heartbeatTime));
-        updateRequestBuilder.setDoc(source);
+        Map<String, Object> target = new HashMap<>();
+        target.put(InstanceTable.HEARTBEAT_TIME.getName(), TimeBucketUtils.INSTANCE.getSecondTimeBucket(heartbeatTime));
+        updateRequestBuilder.setDoc(target);
 
         updateRequestBuilder.get();
     }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/register/NetworkAddressRegisterEsDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/register/NetworkAddressRegisterEsDAO.java
index a585b1134..c2b51639f 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/register/NetworkAddressRegisterEsDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/register/NetworkAddressRegisterEsDAO.java
@@ -42,32 +42,32 @@ public NetworkAddressRegisterEsDAO(ElasticSearchClient client) {
     }
 
     @Override public int getMaxNetworkAddressId() {
-        return getMaxId(NetworkAddressTable.TABLE, NetworkAddressTable.COLUMN_ADDRESS_ID);
+        return getMaxId(NetworkAddressTable.TABLE, NetworkAddressTable.ADDRESS_ID.getName());
     }
 
     @Override public int getMinNetworkAddressId() {
-        return getMinId(NetworkAddressTable.TABLE, NetworkAddressTable.COLUMN_ADDRESS_ID);
+        return getMinId(NetworkAddressTable.TABLE, NetworkAddressTable.ADDRESS_ID.getName());
     }
 
     @Override public void save(NetworkAddress networkAddress) {
         logger.debug("save network address register info, address getApplicationId: {}, network address code: {}", networkAddress.getId(), networkAddress.getNetworkAddress());
         ElasticSearchClient client = getClient();
-        Map<String, Object> source = new HashMap<>();
-        source.put(NetworkAddressTable.COLUMN_NETWORK_ADDRESS, networkAddress.getNetworkAddress());
-        source.put(NetworkAddressTable.COLUMN_ADDRESS_ID, networkAddress.getAddressId());
-        source.put(NetworkAddressTable.COLUMN_SPAN_LAYER, networkAddress.getSpanLayer());
-        source.put(NetworkAddressTable.COLUMN_SERVER_TYPE, networkAddress.getServerType());
+        Map<String, Object> target = new HashMap<>();
+        target.put(NetworkAddressTable.NETWORK_ADDRESS.getName(), networkAddress.getNetworkAddress());
+        target.put(NetworkAddressTable.ADDRESS_ID.getName(), networkAddress.getAddressId());
+        target.put(NetworkAddressTable.SRC_SPAN_LAYER.getName(), networkAddress.getSrcSpanLayer());
+        target.put(NetworkAddressTable.SERVER_TYPE.getName(), networkAddress.getServerType());
 
-        IndexResponse response = client.prepareIndex(NetworkAddressTable.TABLE, networkAddress.getId()).setSource(source).setRefreshPolicy(WriteRequest.RefreshPolicy.IMMEDIATE).get();
+        IndexResponse response = client.prepareIndex(NetworkAddressTable.TABLE, networkAddress.getId()).setSource(target).setRefreshPolicy(WriteRequest.RefreshPolicy.IMMEDIATE).get();
         logger.debug("save network address register info, address getApplicationId: {}, network address code: {}, status: {}", networkAddress.getAddressId(), networkAddress.getNetworkAddress(), response.status().name());
     }
 
     @Override public void update(String id, int spanLayer, int serverType) {
         ElasticSearchClient client = getClient();
 
-        Map<String, Object> source = new HashMap<>();
-        source.put(NetworkAddressTable.COLUMN_SPAN_LAYER, spanLayer);
-        source.put(NetworkAddressTable.COLUMN_SERVER_TYPE, serverType);
-        client.prepareUpdate(NetworkAddressTable.TABLE, id).setDoc(source).setRefreshPolicy(WriteRequest.RefreshPolicy.IMMEDIATE).get();
+        Map<String, Object> target = new HashMap<>();
+        target.put(NetworkAddressTable.SRC_SPAN_LAYER.getName(), spanLayer);
+        target.put(NetworkAddressTable.SERVER_TYPE.getName(), serverType);
+        client.prepareUpdate(NetworkAddressTable.TABLE, id).setDoc(target).setRefreshPolicy(WriteRequest.RefreshPolicy.IMMEDIATE).get();
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/register/ServiceNameRegisterEsDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/register/ServiceNameRegisterEsDAO.java
index bb84be214..de74d26e5 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/register/ServiceNameRegisterEsDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/register/ServiceNameRegisterEsDAO.java
@@ -42,24 +42,24 @@ public ServiceNameRegisterEsDAO(ElasticSearchClient client) {
     }
 
     @Override public int getMaxServiceId() {
-        return getMaxId(ServiceNameTable.TABLE, ServiceNameTable.COLUMN_SERVICE_ID);
+        return getMaxId(ServiceNameTable.TABLE, ServiceNameTable.SERVICE_ID.getName());
     }
 
     @Override public int getMinServiceId() {
-        return getMinId(ServiceNameTable.TABLE, ServiceNameTable.COLUMN_SERVICE_ID);
+        return getMinId(ServiceNameTable.TABLE, ServiceNameTable.SERVICE_ID.getName());
     }
 
     @Override public void save(ServiceName serviceName) {
         logger.debug("save service name register info, application getApplicationId: {}, service name: {}", serviceName.getId(), serviceName.getServiceName());
         ElasticSearchClient client = getClient();
-        Map<String, Object> source = new HashMap<>();
-        source.put(ServiceNameTable.COLUMN_SERVICE_ID, serviceName.getServiceId());
-        source.put(ServiceNameTable.COLUMN_APPLICATION_ID, serviceName.getApplicationId());
-        source.put(ServiceNameTable.COLUMN_SERVICE_NAME, serviceName.getServiceName());
-        source.put(ServiceNameTable.COLUMN_SERVICE_NAME_KEYWORD, serviceName.getServiceName());
-        source.put(ServiceNameTable.COLUMN_SRC_SPAN_TYPE, serviceName.getSrcSpanType());
+        Map<String, Object> target = new HashMap<>();
+        target.put(ServiceNameTable.SERVICE_ID.getName(), serviceName.getServiceId());
+        target.put(ServiceNameTable.APPLICATION_ID.getName(), serviceName.getApplicationId());
+        target.put(ServiceNameTable.SERVICE_NAME.getName(), serviceName.getServiceName());
+        target.put(ServiceNameTable.SERVICE_NAME_KEYWORD.getName(), serviceName.getServiceName());
+        target.put(ServiceNameTable.SRC_SPAN_TYPE.getName(), serviceName.getSrcSpanType());
 
-        IndexResponse response = client.prepareIndex(ServiceNameTable.TABLE, serviceName.getId()).setSource(source).setRefreshPolicy(WriteRequest.RefreshPolicy.IMMEDIATE).get();
+        IndexResponse response = client.prepareIndex(ServiceNameTable.TABLE, serviceName.getId()).setSource(target).setRefreshPolicy(WriteRequest.RefreshPolicy.IMMEDIATE).get();
         logger.debug("save service name register info, application getApplicationId: {}, service name: {}, status: {}", serviceName.getId(), serviceName.getServiceName(), response.status().name());
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/smp/AbstractServiceMetricEsPersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/smp/AbstractServiceMetricEsPersistenceDAO.java
index 52a2f0e6c..4530ccc39 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/smp/AbstractServiceMetricEsPersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/smp/AbstractServiceMetricEsPersistenceDAO.java
@@ -22,6 +22,7 @@
 import java.util.Map;
 import org.apache.skywalking.apm.collector.client.elasticsearch.ElasticSearchClient;
 import org.apache.skywalking.apm.collector.core.annotations.trace.GraphComputingMetric;
+import org.apache.skywalking.apm.collector.storage.es.MetricTransformUtil;
 import org.apache.skywalking.apm.collector.storage.es.base.dao.AbstractPersistenceEsDAO;
 import org.apache.skywalking.apm.collector.storage.table.service.ServiceMetric;
 import org.apache.skywalking.apm.collector.storage.table.service.ServiceMetricTable;
@@ -36,70 +37,33 @@
     }
 
     @Override protected final String timeBucketColumnNameForDelete() {
-        return ServiceMetricTable.COLUMN_TIME_BUCKET;
+        return ServiceMetricTable.TIME_BUCKET.getName();
     }
 
     @Override protected final ServiceMetric esDataToStreamData(Map<String, Object> source) {
         ServiceMetric serviceMetric = new ServiceMetric();
-        serviceMetric.setMetricId((String)source.get(ServiceMetricTable.COLUMN_METRIC_ID));
+        serviceMetric.setMetricId((String)source.get(ServiceMetricTable.METRIC_ID.getName()));
 
-        serviceMetric.setApplicationId(((Number)source.get(ServiceMetricTable.COLUMN_APPLICATION_ID)).intValue());
-        serviceMetric.setInstanceId(((Number)source.get(ServiceMetricTable.COLUMN_INSTANCE_ID)).intValue());
-        serviceMetric.setServiceId(((Number)source.get(ServiceMetricTable.COLUMN_SERVICE_ID)).intValue());
-        serviceMetric.setSourceValue(((Number)source.get(ServiceMetricTable.COLUMN_SOURCE_VALUE)).intValue());
+        serviceMetric.setApplicationId(((Number)source.get(ServiceMetricTable.APPLICATION_ID.getName())).intValue());
+        serviceMetric.setInstanceId(((Number)source.get(ServiceMetricTable.INSTANCE_ID.getName())).intValue());
+        serviceMetric.setServiceId(((Number)source.get(ServiceMetricTable.SERVICE_ID.getName())).intValue());
 
-        serviceMetric.setTransactionCalls(((Number)source.get(ServiceMetricTable.COLUMN_TRANSACTION_CALLS)).longValue());
-        serviceMetric.setTransactionErrorCalls(((Number)source.get(ServiceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS)).longValue());
-        serviceMetric.setTransactionDurationSum(((Number)source.get(ServiceMetricTable.COLUMN_TRANSACTION_DURATION_SUM)).longValue());
-        serviceMetric.setTransactionErrorDurationSum(((Number)source.get(ServiceMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM)).longValue());
-        serviceMetric.setTransactionAverageDuration(((Number)source.get(ServiceMetricTable.COLUMN_TRANSACTION_AVERAGE_DURATION)).longValue());
+        MetricTransformUtil.INSTANCE.esDataToStreamData(source, serviceMetric);
 
-        serviceMetric.setBusinessTransactionCalls(((Number)source.get(ServiceMetricTable.COLUMN_BUSINESS_TRANSACTION_CALLS)).longValue());
-        serviceMetric.setBusinessTransactionErrorCalls(((Number)source.get(ServiceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_CALLS)).longValue());
-        serviceMetric.setBusinessTransactionDurationSum(((Number)source.get(ServiceMetricTable.COLUMN_BUSINESS_TRANSACTION_DURATION_SUM)).longValue());
-        serviceMetric.setBusinessTransactionErrorDurationSum(((Number)source.get(ServiceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_DURATION_SUM)).longValue());
-        serviceMetric.setBusinessTransactionAverageDuration(((Number)source.get(ServiceMetricTable.COLUMN_BUSINESS_TRANSACTION_AVERAGE_DURATION)).longValue());
-
-        serviceMetric.setMqTransactionCalls(((Number)source.get(ServiceMetricTable.COLUMN_MQ_TRANSACTION_CALLS)).longValue());
-        serviceMetric.setMqTransactionErrorCalls(((Number)source.get(ServiceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_CALLS)).longValue());
-        serviceMetric.setMqTransactionDurationSum(((Number)source.get(ServiceMetricTable.COLUMN_MQ_TRANSACTION_DURATION_SUM)).longValue());
-        serviceMetric.setMqTransactionErrorDurationSum(((Number)source.get(ServiceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_DURATION_SUM)).longValue());
-        serviceMetric.setMqTransactionAverageDuration(((Number)source.get(ServiceMetricTable.COLUMN_MQ_TRANSACTION_AVERAGE_DURATION)).longValue());
-
-        serviceMetric.setTimeBucket(((Number)source.get(ServiceMetricTable.COLUMN_TIME_BUCKET)).longValue());
         return serviceMetric;
     }
 
     @Override protected final Map<String, Object> esStreamDataToEsData(ServiceMetric streamData) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(ServiceMetricTable.COLUMN_METRIC_ID, streamData.getMetricId());
-
-        source.put(ServiceMetricTable.COLUMN_APPLICATION_ID, streamData.getApplicationId());
-        source.put(ServiceMetricTable.COLUMN_INSTANCE_ID, streamData.getInstanceId());
-        source.put(ServiceMetricTable.COLUMN_SERVICE_ID, streamData.getServiceId());
-        source.put(ServiceMetricTable.COLUMN_SOURCE_VALUE, streamData.getSourceValue());
-
-        source.put(ServiceMetricTable.COLUMN_TRANSACTION_CALLS, streamData.getTransactionCalls());
-        source.put(ServiceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS, streamData.getTransactionErrorCalls());
-        source.put(ServiceMetricTable.COLUMN_TRANSACTION_DURATION_SUM, streamData.getTransactionDurationSum());
-        source.put(ServiceMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM, streamData.getTransactionErrorDurationSum());
-        source.put(ServiceMetricTable.COLUMN_TRANSACTION_AVERAGE_DURATION, streamData.getTransactionAverageDuration());
-
-        source.put(ServiceMetricTable.COLUMN_BUSINESS_TRANSACTION_CALLS, streamData.getBusinessTransactionCalls());
-        source.put(ServiceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_CALLS, streamData.getBusinessTransactionErrorCalls());
-        source.put(ServiceMetricTable.COLUMN_BUSINESS_TRANSACTION_DURATION_SUM, streamData.getBusinessTransactionDurationSum());
-        source.put(ServiceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_DURATION_SUM, streamData.getBusinessTransactionErrorDurationSum());
-        source.put(ServiceMetricTable.COLUMN_BUSINESS_TRANSACTION_AVERAGE_DURATION, streamData.getBusinessTransactionAverageDuration());
+        Map<String, Object> target = new HashMap<>();
+        target.put(ServiceMetricTable.METRIC_ID.getName(), streamData.getMetricId());
 
-        source.put(ServiceMetricTable.COLUMN_MQ_TRANSACTION_CALLS, streamData.getMqTransactionCalls());
-        source.put(ServiceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_CALLS, streamData.getMqTransactionErrorCalls());
-        source.put(ServiceMetricTable.COLUMN_MQ_TRANSACTION_DURATION_SUM, streamData.getMqTransactionDurationSum());
-        source.put(ServiceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_DURATION_SUM, streamData.getMqTransactionErrorDurationSum());
-        source.put(ServiceMetricTable.COLUMN_MQ_TRANSACTION_AVERAGE_DURATION, streamData.getMqTransactionAverageDuration());
+        target.put(ServiceMetricTable.APPLICATION_ID.getName(), streamData.getApplicationId());
+        target.put(ServiceMetricTable.INSTANCE_ID.getName(), streamData.getInstanceId());
+        target.put(ServiceMetricTable.SERVICE_ID.getName(), streamData.getServiceId());
 
-        source.put(ServiceMetricTable.COLUMN_TIME_BUCKET, streamData.getTimeBucket());
+        MetricTransformUtil.INSTANCE.esStreamDataToEsData(streamData, target);
 
-        return source;
+        return target;
     }
 
     @GraphComputingMetric(name = "/persistence/get/" + ServiceMetricTable.TABLE)
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/srmp/AbstractServiceReferenceMetricEsPersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/srmp/AbstractServiceReferenceMetricEsPersistenceDAO.java
index 6753ac8f0..3a1a8dfa9 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/srmp/AbstractServiceReferenceMetricEsPersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/srmp/AbstractServiceReferenceMetricEsPersistenceDAO.java
@@ -22,6 +22,7 @@
 import java.util.Map;
 import org.apache.skywalking.apm.collector.client.elasticsearch.ElasticSearchClient;
 import org.apache.skywalking.apm.collector.core.annotations.trace.GraphComputingMetric;
+import org.apache.skywalking.apm.collector.storage.es.MetricTransformUtil;
 import org.apache.skywalking.apm.collector.storage.es.base.dao.AbstractPersistenceEsDAO;
 import org.apache.skywalking.apm.collector.storage.table.service.ServiceReferenceMetric;
 import org.apache.skywalking.apm.collector.storage.table.service.ServiceReferenceMetricTable;
@@ -36,76 +37,39 @@
     }
 
     @Override protected final String timeBucketColumnNameForDelete() {
-        return ServiceReferenceMetricTable.COLUMN_TIME_BUCKET;
+        return ServiceReferenceMetricTable.TIME_BUCKET.getName();
     }
 
     @Override protected final ServiceReferenceMetric esDataToStreamData(Map<String, Object> source) {
         ServiceReferenceMetric serviceReferenceMetric = new ServiceReferenceMetric();
-        serviceReferenceMetric.setMetricId((String)source.get(ServiceReferenceMetricTable.COLUMN_METRIC_ID));
+        serviceReferenceMetric.setMetricId((String)source.get(ServiceReferenceMetricTable.METRIC_ID.getName()));
 
-        serviceReferenceMetric.setFrontApplicationId(((Number)source.get(ServiceReferenceMetricTable.COLUMN_FRONT_APPLICATION_ID)).intValue());
-        serviceReferenceMetric.setBehindApplicationId(((Number)source.get(ServiceReferenceMetricTable.COLUMN_BEHIND_APPLICATION_ID)).intValue());
-        serviceReferenceMetric.setFrontInstanceId(((Number)source.get(ServiceReferenceMetricTable.COLUMN_FRONT_INSTANCE_ID)).intValue());
-        serviceReferenceMetric.setBehindInstanceId(((Number)source.get(ServiceReferenceMetricTable.COLUMN_BEHIND_INSTANCE_ID)).intValue());
-        serviceReferenceMetric.setFrontServiceId(((Number)source.get(ServiceReferenceMetricTable.COLUMN_FRONT_SERVICE_ID)).intValue());
-        serviceReferenceMetric.setBehindServiceId(((Number)source.get(ServiceReferenceMetricTable.COLUMN_BEHIND_SERVICE_ID)).intValue());
-        serviceReferenceMetric.setSourceValue(((Number)source.get(ServiceReferenceMetricTable.COLUMN_SOURCE_VALUE)).intValue());
+        serviceReferenceMetric.setFrontApplicationId(((Number)source.get(ServiceReferenceMetricTable.FRONT_APPLICATION_ID.getName())).intValue());
+        serviceReferenceMetric.setBehindApplicationId(((Number)source.get(ServiceReferenceMetricTable.BEHIND_APPLICATION_ID.getName())).intValue());
+        serviceReferenceMetric.setFrontInstanceId(((Number)source.get(ServiceReferenceMetricTable.FRONT_INSTANCE_ID.getName())).intValue());
+        serviceReferenceMetric.setBehindInstanceId(((Number)source.get(ServiceReferenceMetricTable.BEHIND_INSTANCE_ID.getName())).intValue());
+        serviceReferenceMetric.setFrontServiceId(((Number)source.get(ServiceReferenceMetricTable.FRONT_SERVICE_ID.getName())).intValue());
+        serviceReferenceMetric.setBehindServiceId(((Number)source.get(ServiceReferenceMetricTable.BEHIND_SERVICE_ID.getName())).intValue());
 
-        serviceReferenceMetric.setTransactionCalls(((Number)source.get(ServiceReferenceMetricTable.COLUMN_TRANSACTION_CALLS)).longValue());
-        serviceReferenceMetric.setTransactionErrorCalls(((Number)source.get(ServiceReferenceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS)).longValue());
-        serviceReferenceMetric.setTransactionDurationSum(((Number)source.get(ServiceReferenceMetricTable.COLUMN_TRANSACTION_DURATION_SUM)).longValue());
-        serviceReferenceMetric.setTransactionErrorDurationSum(((Number)source.get(ServiceReferenceMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM)).longValue());
-        serviceReferenceMetric.setTransactionAverageDuration(((Number)source.get(ServiceReferenceMetricTable.COLUMN_TRANSACTION_AVERAGE_DURATION)).longValue());
+        MetricTransformUtil.INSTANCE.esDataToStreamData(source, serviceReferenceMetric);
 
-        serviceReferenceMetric.setBusinessTransactionCalls(((Number)source.get(ServiceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_CALLS)).longValue());
-        serviceReferenceMetric.setBusinessTransactionErrorCalls(((Number)source.get(ServiceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_CALLS)).longValue());
-        serviceReferenceMetric.setBusinessTransactionDurationSum(((Number)source.get(ServiceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_DURATION_SUM)).longValue());
-        serviceReferenceMetric.setBusinessTransactionErrorDurationSum(((Number)source.get(ServiceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_DURATION_SUM)).longValue());
-        serviceReferenceMetric.setBusinessTransactionAverageDuration(((Number)source.get(ServiceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_AVERAGE_DURATION)).longValue());
-
-        serviceReferenceMetric.setMqTransactionCalls(((Number)source.get(ServiceReferenceMetricTable.COLUMN_MQ_TRANSACTION_CALLS)).longValue());
-        serviceReferenceMetric.setMqTransactionErrorCalls(((Number)source.get(ServiceReferenceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_CALLS)).longValue());
-        serviceReferenceMetric.setMqTransactionDurationSum(((Number)source.get(ServiceReferenceMetricTable.COLUMN_MQ_TRANSACTION_DURATION_SUM)).longValue());
-        serviceReferenceMetric.setMqTransactionErrorDurationSum(((Number)source.get(ServiceReferenceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_DURATION_SUM)).longValue());
-        serviceReferenceMetric.setMqTransactionAverageDuration(((Number)source.get(ServiceReferenceMetricTable.COLUMN_MQ_TRANSACTION_AVERAGE_DURATION)).longValue());
-
-        serviceReferenceMetric.setTimeBucket(((Number)source.get(ServiceReferenceMetricTable.COLUMN_TIME_BUCKET)).longValue());
         return serviceReferenceMetric;
     }
 
     @Override protected final Map<String, Object> esStreamDataToEsData(ServiceReferenceMetric streamData) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(ServiceReferenceMetricTable.COLUMN_METRIC_ID, streamData.getMetricId());
-
-        source.put(ServiceReferenceMetricTable.COLUMN_FRONT_APPLICATION_ID, streamData.getFrontApplicationId());
-        source.put(ServiceReferenceMetricTable.COLUMN_BEHIND_APPLICATION_ID, streamData.getBehindApplicationId());
-        source.put(ServiceReferenceMetricTable.COLUMN_FRONT_INSTANCE_ID, streamData.getFrontInstanceId());
-        source.put(ServiceReferenceMetricTable.COLUMN_BEHIND_INSTANCE_ID, streamData.getBehindInstanceId());
-        source.put(ServiceReferenceMetricTable.COLUMN_FRONT_SERVICE_ID, streamData.getFrontServiceId());
-        source.put(ServiceReferenceMetricTable.COLUMN_BEHIND_SERVICE_ID, streamData.getBehindServiceId());
-        source.put(ServiceReferenceMetricTable.COLUMN_SOURCE_VALUE, streamData.getSourceValue());
-
-        source.put(ServiceReferenceMetricTable.COLUMN_TRANSACTION_CALLS, streamData.getTransactionCalls());
-        source.put(ServiceReferenceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS, streamData.getTransactionErrorCalls());
-        source.put(ServiceReferenceMetricTable.COLUMN_TRANSACTION_DURATION_SUM, streamData.getTransactionDurationSum());
-        source.put(ServiceReferenceMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM, streamData.getTransactionErrorDurationSum());
-        source.put(ServiceReferenceMetricTable.COLUMN_TRANSACTION_AVERAGE_DURATION, streamData.getTransactionAverageDuration());
-
-        source.put(ServiceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_CALLS, streamData.getBusinessTransactionCalls());
-        source.put(ServiceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_CALLS, streamData.getBusinessTransactionErrorCalls());
-        source.put(ServiceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_DURATION_SUM, streamData.getBusinessTransactionDurationSum());
-        source.put(ServiceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_DURATION_SUM, streamData.getBusinessTransactionErrorDurationSum());
-        source.put(ServiceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_AVERAGE_DURATION, streamData.getBusinessTransactionAverageDuration());
+        Map<String, Object> target = new HashMap<>();
+        target.put(ServiceReferenceMetricTable.METRIC_ID.getName(), streamData.getMetricId());
 
-        source.put(ServiceReferenceMetricTable.COLUMN_MQ_TRANSACTION_CALLS, streamData.getMqTransactionCalls());
-        source.put(ServiceReferenceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_CALLS, streamData.getMqTransactionErrorCalls());
-        source.put(ServiceReferenceMetricTable.COLUMN_MQ_TRANSACTION_DURATION_SUM, streamData.getMqTransactionDurationSum());
-        source.put(ServiceReferenceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_DURATION_SUM, streamData.getMqTransactionErrorDurationSum());
-        source.put(ServiceReferenceMetricTable.COLUMN_MQ_TRANSACTION_AVERAGE_DURATION, streamData.getMqTransactionAverageDuration());
+        target.put(ServiceReferenceMetricTable.FRONT_APPLICATION_ID.getName(), streamData.getFrontApplicationId());
+        target.put(ServiceReferenceMetricTable.BEHIND_APPLICATION_ID.getName(), streamData.getBehindApplicationId());
+        target.put(ServiceReferenceMetricTable.FRONT_INSTANCE_ID.getName(), streamData.getFrontInstanceId());
+        target.put(ServiceReferenceMetricTable.BEHIND_INSTANCE_ID.getName(), streamData.getBehindInstanceId());
+        target.put(ServiceReferenceMetricTable.FRONT_SERVICE_ID.getName(), streamData.getFrontServiceId());
+        target.put(ServiceReferenceMetricTable.BEHIND_SERVICE_ID.getName(), streamData.getBehindServiceId());
 
-        source.put(ServiceReferenceMetricTable.COLUMN_TIME_BUCKET, streamData.getTimeBucket());
+        MetricTransformUtil.INSTANCE.esStreamDataToEsData(streamData, target);
 
-        return source;
+        return target;
     }
 
     @GraphComputingMetric(name = "/persistence/get/" + ServiceReferenceMetricTable.TABLE)
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/ApplicationAlarmEsUIDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/ApplicationAlarmEsUIDAO.java
index aa241e5cd..1e00f23f2 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/ApplicationAlarmEsUIDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/ApplicationAlarmEsUIDAO.java
@@ -53,9 +53,9 @@ public Alarm loadAlarmList(String keyword, long startTimeBucket, long endTimeBuc
         searchRequestBuilder.setSearchType(SearchType.DFS_QUERY_THEN_FETCH);
 
         BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
-        boolQueryBuilder.must().add(QueryBuilders.rangeQuery(ApplicationAlarmTable.COLUMN_LAST_TIME_BUCKET).gte(startTimeBucket).lte(endTimeBucket));
+        boolQueryBuilder.must().add(QueryBuilders.rangeQuery(ApplicationAlarmTable.LAST_TIME_BUCKET.getName()).gte(startTimeBucket).lte(endTimeBucket));
         if (StringUtils.isNotEmpty(keyword)) {
-            boolQueryBuilder.must().add(QueryBuilders.matchQuery(ApplicationAlarmTable.COLUMN_ALARM_CONTENT, keyword));
+            boolQueryBuilder.must().add(QueryBuilders.matchQuery(ApplicationAlarmTable.ALARM_CONTENT.getName(), keyword));
         }
 
         searchRequestBuilder.setQuery(boolQueryBuilder);
@@ -69,14 +69,14 @@ public Alarm loadAlarmList(String keyword, long startTimeBucket, long endTimeBuc
         alarm.setTotal((int)searchResponse.getHits().getTotalHits());
         for (SearchHit searchHit : searchHits) {
             AlarmItem alarmItem = new AlarmItem();
-            alarmItem.setId(((Number)searchHit.getSource().get(ApplicationAlarmTable.COLUMN_APPLICATION_ID)).intValue());
-            alarmItem.setContent((String)searchHit.getSource().get(ApplicationAlarmTable.COLUMN_ALARM_CONTENT));
+            alarmItem.setId(((Number)searchHit.getSource().get(ApplicationAlarmTable.APPLICATION_ID.getName())).intValue());
+            alarmItem.setContent((String)searchHit.getSource().get(ApplicationAlarmTable.ALARM_CONTENT.getName()));
 
-            long lastTimeBucket = ((Number)searchHit.getSource().get(ApplicationAlarmTable.COLUMN_LAST_TIME_BUCKET)).longValue();
+            long lastTimeBucket = ((Number)searchHit.getSource().get(ApplicationAlarmTable.LAST_TIME_BUCKET.getName())).longValue();
             alarmItem.setStartTime(TimeBucketUtils.INSTANCE.formatMinuteTimeBucket(lastTimeBucket));
             alarmItem.setAlarmType(AlarmType.APPLICATION);
 
-            int alarmType = ((Number)searchHit.getSource().get(ApplicationAlarmTable.COLUMN_ALARM_TYPE)).intValue();
+            int alarmType = ((Number)searchHit.getSource().get(ApplicationAlarmTable.ALARM_TYPE.getName())).intValue();
             if (org.apache.skywalking.apm.collector.storage.table.alarm.AlarmType.SLOW_RTT.getValue() == alarmType) {
                 alarmItem.setCauseType(CauseType.SLOW_RESPONSE);
             } else if (org.apache.skywalking.apm.collector.storage.table.alarm.AlarmType.ERROR_RATE.getValue() == alarmType) {
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/ApplicationAlarmListEsUIDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/ApplicationAlarmListEsUIDAO.java
index fcc205233..befba896a 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/ApplicationAlarmListEsUIDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/ApplicationAlarmListEsUIDAO.java
@@ -47,19 +47,19 @@ public ApplicationAlarmListEsUIDAO(ElasticSearchClient client) {
         SearchRequestBuilder searchRequestBuilder = getClient().prepareSearch(tableName);
         searchRequestBuilder.setTypes(ApplicationAlarmListTable.TABLE_TYPE);
         searchRequestBuilder.setSearchType(SearchType.DFS_QUERY_THEN_FETCH);
-        searchRequestBuilder.setQuery(QueryBuilders.rangeQuery(ApplicationAlarmListTable.COLUMN_TIME_BUCKET).gte(startTimeBucket).lte(endTimeBucket));
+        searchRequestBuilder.setQuery(QueryBuilders.rangeQuery(ApplicationAlarmListTable.TIME_BUCKET.getName()).gte(startTimeBucket).lte(endTimeBucket));
         searchRequestBuilder.setSize(0);
 
-        searchRequestBuilder.addAggregation(AggregationBuilders.terms(ApplicationAlarmListTable.COLUMN_TIME_BUCKET).field(ApplicationAlarmListTable.COLUMN_TIME_BUCKET).size(100)
-            .subAggregation(AggregationBuilders.terms(ApplicationAlarmListTable.COLUMN_APPLICATION_ID).field(ApplicationAlarmListTable.COLUMN_APPLICATION_ID).size(100)));
+        searchRequestBuilder.addAggregation(AggregationBuilders.terms(ApplicationAlarmListTable.TIME_BUCKET.getName()).field(ApplicationAlarmListTable.TIME_BUCKET.getName()).size(100)
+            .subAggregation(AggregationBuilders.terms(ApplicationAlarmListTable.APPLICATION_ID.getName()).field(ApplicationAlarmListTable.APPLICATION_ID.getName()).size(100)));
 
         SearchResponse searchResponse = searchRequestBuilder.execute().actionGet();
 
-        Terms timeBucketTerms = searchResponse.getAggregations().get(ApplicationAlarmListTable.COLUMN_TIME_BUCKET);
+        Terms timeBucketTerms = searchResponse.getAggregations().get(ApplicationAlarmListTable.TIME_BUCKET.getName());
 
         List<AlarmTrend> alarmTrends = new LinkedList<>();
         for (Terms.Bucket timeBucketBucket : timeBucketTerms.getBuckets()) {
-            Terms applicationBucketTerms = timeBucketBucket.getAggregations().get(ApplicationAlarmListTable.COLUMN_APPLICATION_ID);
+            Terms applicationBucketTerms = timeBucketBucket.getAggregations().get(ApplicationAlarmListTable.APPLICATION_ID.getName());
 
             AlarmTrend alarmTrend = new AlarmTrend();
             alarmTrend.setNumberOfApplication(applicationBucketTerms.getBuckets().size());
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/ApplicationComponentEsUIDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/ApplicationComponentEsUIDAO.java
index 12e977209..93ee0425c 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/ApplicationComponentEsUIDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/ApplicationComponentEsUIDAO.java
@@ -52,15 +52,15 @@ public ApplicationComponentEsUIDAO(ElasticSearchClient client) {
         SearchRequestBuilder searchRequestBuilder = getClient().prepareSearch(tableName);
         searchRequestBuilder.setTypes(ApplicationComponentTable.TABLE_TYPE);
         searchRequestBuilder.setSearchType(SearchType.DFS_QUERY_THEN_FETCH);
-        searchRequestBuilder.setQuery(QueryBuilders.rangeQuery(ApplicationComponentTable.COLUMN_TIME_BUCKET).gte(startTimeBucket).lte(endTimeBucket));
+        searchRequestBuilder.setQuery(QueryBuilders.rangeQuery(ApplicationComponentTable.TIME_BUCKET.getName()).gte(startTimeBucket).lte(endTimeBucket));
         searchRequestBuilder.setSize(0);
 
-        searchRequestBuilder.addAggregation(AggregationBuilders.terms(ApplicationComponentTable.COLUMN_COMPONENT_ID).field(ApplicationComponentTable.COLUMN_COMPONENT_ID).size(100)
-            .subAggregation(AggregationBuilders.terms(ApplicationComponentTable.COLUMN_APPLICATION_ID).field(ApplicationComponentTable.COLUMN_APPLICATION_ID).size(100)));
+        searchRequestBuilder.addAggregation(AggregationBuilders.terms(ApplicationComponentTable.COMPONENT_ID.getName()).field(ApplicationComponentTable.COMPONENT_ID.getName()).size(100)
+            .subAggregation(AggregationBuilders.terms(ApplicationComponentTable.APPLICATION_ID.getName()).field(ApplicationComponentTable.APPLICATION_ID.getName()).size(100)));
 
         SearchResponse searchResponse = searchRequestBuilder.execute().actionGet();
 
-        Terms componentIdTerms = searchResponse.getAggregations().get(ApplicationComponentTable.COLUMN_COMPONENT_ID);
+        Terms componentIdTerms = searchResponse.getAggregations().get(ApplicationComponentTable.COMPONENT_ID.getName());
 
         List<ApplicationComponent> applicationComponents = new LinkedList<>();
         for (Terms.Bucket componentIdBucket : componentIdTerms.getBuckets()) {
@@ -73,7 +73,7 @@ public ApplicationComponentEsUIDAO(ElasticSearchClient client) {
 
     private void buildApplicationComponents(Terms.Bucket componentBucket, int componentId,
         List<ApplicationComponent> applicationComponents) {
-        Terms peerIdTerms = componentBucket.getAggregations().get(ApplicationComponentTable.COLUMN_APPLICATION_ID);
+        Terms peerIdTerms = componentBucket.getAggregations().get(ApplicationComponentTable.APPLICATION_ID.getName());
         for (Terms.Bucket peerIdBucket : peerIdTerms.getBuckets()) {
             int applicationId = peerIdBucket.getKeyAsNumber().intValue();
 
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/ApplicationMappingEsUIDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/ApplicationMappingEsUIDAO.java
index 949af12da..53a10b4c9 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/ApplicationMappingEsUIDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/ApplicationMappingEsUIDAO.java
@@ -52,20 +52,20 @@ public ApplicationMappingEsUIDAO(ElasticSearchClient client) {
         SearchRequestBuilder searchRequestBuilder = getClient().prepareSearch(tableName);
         searchRequestBuilder.setTypes(ApplicationMappingTable.TABLE_TYPE);
         searchRequestBuilder.setSearchType(SearchType.DFS_QUERY_THEN_FETCH);
-        searchRequestBuilder.setQuery(QueryBuilders.rangeQuery(ApplicationMappingTable.COLUMN_TIME_BUCKET).gte(startTimeBucket).lte(endTimeBucket));
+        searchRequestBuilder.setQuery(QueryBuilders.rangeQuery(ApplicationMappingTable.TIME_BUCKET.getName()).gte(startTimeBucket).lte(endTimeBucket));
         searchRequestBuilder.setSize(0);
 
         searchRequestBuilder.addAggregation(
-            AggregationBuilders.terms(ApplicationMappingTable.COLUMN_APPLICATION_ID).field(ApplicationMappingTable.COLUMN_APPLICATION_ID).size(100)
-                .subAggregation(AggregationBuilders.terms(ApplicationMappingTable.COLUMN_MAPPING_APPLICATION_ID).field(ApplicationMappingTable.COLUMN_MAPPING_APPLICATION_ID).size(100)));
+            AggregationBuilders.terms(ApplicationMappingTable.APPLICATION_ID.getName()).field(ApplicationMappingTable.APPLICATION_ID.getName()).size(100)
+                .subAggregation(AggregationBuilders.terms(ApplicationMappingTable.MAPPING_APPLICATION_ID.getName()).field(ApplicationMappingTable.MAPPING_APPLICATION_ID.getName()).size(100)));
         SearchResponse searchResponse = searchRequestBuilder.execute().actionGet();
 
-        Terms applicationIdTerms = searchResponse.getAggregations().get(ApplicationMappingTable.COLUMN_APPLICATION_ID);
+        Terms applicationIdTerms = searchResponse.getAggregations().get(ApplicationMappingTable.APPLICATION_ID.getName());
 
         List<ApplicationMapping> applicationMappings = new LinkedList<>();
         for (Terms.Bucket applicationIdBucket : applicationIdTerms.getBuckets()) {
             int applicationId = applicationIdBucket.getKeyAsNumber().intValue();
-            Terms addressIdTerms = applicationIdBucket.getAggregations().get(ApplicationMappingTable.COLUMN_MAPPING_APPLICATION_ID);
+            Terms addressIdTerms = applicationIdBucket.getAggregations().get(ApplicationMappingTable.MAPPING_APPLICATION_ID.getName());
             for (Terms.Bucket addressIdBucket : addressIdTerms.getBuckets()) {
                 int addressId = addressIdBucket.getKeyAsNumber().intValue();
 
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/ApplicationMetricEsUIDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/ApplicationMetricEsUIDAO.java
index c3c7213f0..b3f5e0bcd 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/ApplicationMetricEsUIDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/ApplicationMetricEsUIDAO.java
@@ -57,23 +57,23 @@ public ApplicationMetricEsUIDAO(ElasticSearchClient client) {
         searchRequestBuilder.setSearchType(SearchType.DFS_QUERY_THEN_FETCH);
 
         BoolQueryBuilder boolQuery = QueryBuilders.boolQuery();
-        boolQuery.must().add(QueryBuilders.rangeQuery(ApplicationMetricTable.COLUMN_TIME_BUCKET).gte(startTimeBucket).lte(endTimeBucket));
-        boolQuery.must().add(QueryBuilders.termQuery(ApplicationMetricTable.COLUMN_SOURCE_VALUE, metricSource.getValue()));
+        boolQuery.must().add(QueryBuilders.rangeQuery(ApplicationMetricTable.TIME_BUCKET.getName()).gte(startTimeBucket).lte(endTimeBucket));
+        boolQuery.must().add(QueryBuilders.termQuery(ApplicationMetricTable.SOURCE_VALUE.getName(), metricSource.getValue()));
 
         searchRequestBuilder.setQuery(boolQuery);
         searchRequestBuilder.setSize(0);
 
-        TermsAggregationBuilder aggregationBuilder = AggregationBuilders.terms(ApplicationMetricTable.COLUMN_APPLICATION_ID).field(ApplicationMetricTable.COLUMN_APPLICATION_ID).size(2000);
-        aggregationBuilder.subAggregation(AggregationBuilders.sum(ApplicationMetricTable.COLUMN_TRANSACTION_CALLS).field(ApplicationMetricTable.COLUMN_TRANSACTION_CALLS));
+        TermsAggregationBuilder aggregationBuilder = AggregationBuilders.terms(ApplicationMetricTable.APPLICATION_ID.getName()).field(ApplicationMetricTable.APPLICATION_ID.getName()).size(2000);
+        aggregationBuilder.subAggregation(AggregationBuilders.sum(ApplicationMetricTable.TRANSACTION_CALLS.getName()).field(ApplicationMetricTable.TRANSACTION_CALLS.getName()));
         searchRequestBuilder.addAggregation(aggregationBuilder);
 
         SearchResponse searchResponse = searchRequestBuilder.execute().actionGet();
 
         List<ApplicationTPS> applicationTPSs = new LinkedList<>();
-        Terms applicationIdTerms = searchResponse.getAggregations().get(ApplicationMetricTable.COLUMN_APPLICATION_ID);
+        Terms applicationIdTerms = searchResponse.getAggregations().get(ApplicationMetricTable.APPLICATION_ID.getName());
         applicationIdTerms.getBuckets().forEach(applicationIdTerm -> {
             int applicationId = applicationIdTerm.getKeyAsNumber().intValue();
-            Sum callSum = applicationIdTerm.getAggregations().get(ApplicationMetricTable.COLUMN_TRANSACTION_CALLS);
+            Sum callSum = applicationIdTerm.getAggregations().get(ApplicationMetricTable.TRANSACTION_CALLS.getName());
             long calls = (long)callSum.getValue();
             int callsPerSec = (int)(betweenSecond == 0 ? 0 : calls / betweenSecond);
 
@@ -106,36 +106,36 @@ public ApplicationMetricEsUIDAO(ElasticSearchClient client) {
         searchRequestBuilder.setSearchType(SearchType.DFS_QUERY_THEN_FETCH);
 
         BoolQueryBuilder boolQuery = QueryBuilders.boolQuery();
-        boolQuery.must().add(QueryBuilders.rangeQuery(ApplicationMetricTable.COLUMN_TIME_BUCKET).gte(startTimeBucket).lte(endTimeBucket));
-        boolQuery.must().add(QueryBuilders.termQuery(ApplicationMetricTable.COLUMN_SOURCE_VALUE, metricSource.getValue()));
+        boolQuery.must().add(QueryBuilders.rangeQuery(ApplicationMetricTable.TIME_BUCKET.getName()).gte(startTimeBucket).lte(endTimeBucket));
+        boolQuery.must().add(QueryBuilders.termQuery(ApplicationMetricTable.SOURCE_VALUE.getName(), metricSource.getValue()));
 
         searchRequestBuilder.setQuery(boolQuery);
         searchRequestBuilder.setSize(0);
 
-        TermsAggregationBuilder aggregationBuilder = AggregationBuilders.terms(ApplicationMetricTable.COLUMN_APPLICATION_ID).field(ApplicationMetricTable.COLUMN_APPLICATION_ID).size(100);
-        aggregationBuilder.subAggregation(AggregationBuilders.sum(ApplicationMetricTable.COLUMN_TRANSACTION_CALLS).field(ApplicationMetricTable.COLUMN_TRANSACTION_CALLS));
-        aggregationBuilder.subAggregation(AggregationBuilders.sum(ApplicationMetricTable.COLUMN_TRANSACTION_ERROR_CALLS).field(ApplicationMetricTable.COLUMN_TRANSACTION_ERROR_CALLS));
-        aggregationBuilder.subAggregation(AggregationBuilders.sum(ApplicationMetricTable.COLUMN_TRANSACTION_DURATION_SUM).field(ApplicationMetricTable.COLUMN_TRANSACTION_DURATION_SUM));
-        aggregationBuilder.subAggregation(AggregationBuilders.sum(ApplicationMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM).field(ApplicationMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM));
-        aggregationBuilder.subAggregation(AggregationBuilders.sum(ApplicationMetricTable.COLUMN_SATISFIED_COUNT).field(ApplicationMetricTable.COLUMN_SATISFIED_COUNT));
-        aggregationBuilder.subAggregation(AggregationBuilders.sum(ApplicationMetricTable.COLUMN_TOLERATING_COUNT).field(ApplicationMetricTable.COLUMN_TOLERATING_COUNT));
-        aggregationBuilder.subAggregation(AggregationBuilders.sum(ApplicationMetricTable.COLUMN_FRUSTRATED_COUNT).field(ApplicationMetricTable.COLUMN_FRUSTRATED_COUNT));
+        TermsAggregationBuilder aggregationBuilder = AggregationBuilders.terms(ApplicationMetricTable.APPLICATION_ID.getName()).field(ApplicationMetricTable.APPLICATION_ID.getName()).size(100);
+        aggregationBuilder.subAggregation(AggregationBuilders.sum(ApplicationMetricTable.TRANSACTION_CALLS.getName()).field(ApplicationMetricTable.TRANSACTION_CALLS.getName()));
+        aggregationBuilder.subAggregation(AggregationBuilders.sum(ApplicationMetricTable.TRANSACTION_ERROR_CALLS.getName()).field(ApplicationMetricTable.TRANSACTION_ERROR_CALLS.getName()));
+        aggregationBuilder.subAggregation(AggregationBuilders.sum(ApplicationMetricTable.TRANSACTION_DURATION_SUM.getName()).field(ApplicationMetricTable.TRANSACTION_DURATION_SUM.getName()));
+        aggregationBuilder.subAggregation(AggregationBuilders.sum(ApplicationMetricTable.TRANSACTION_ERROR_DURATION_SUM.getName()).field(ApplicationMetricTable.TRANSACTION_ERROR_DURATION_SUM.getName()));
+        aggregationBuilder.subAggregation(AggregationBuilders.sum(ApplicationMetricTable.SATISFIED_COUNT.getName()).field(ApplicationMetricTable.SATISFIED_COUNT.getName()));
+        aggregationBuilder.subAggregation(AggregationBuilders.sum(ApplicationMetricTable.TOLERATING_COUNT.getName()).field(ApplicationMetricTable.TOLERATING_COUNT.getName()));
+        aggregationBuilder.subAggregation(AggregationBuilders.sum(ApplicationMetricTable.FRUSTRATED_COUNT.getName()).field(ApplicationMetricTable.FRUSTRATED_COUNT.getName()));
 
         searchRequestBuilder.addAggregation(aggregationBuilder);
         SearchResponse searchResponse = searchRequestBuilder.execute().actionGet();
 
         List<ApplicationMetric> applicationMetrics = new LinkedList<>();
-        Terms applicationIdTerms = searchResponse.getAggregations().get(ApplicationMetricTable.COLUMN_APPLICATION_ID);
+        Terms applicationIdTerms = searchResponse.getAggregations().get(ApplicationMetricTable.APPLICATION_ID.getName());
         applicationIdTerms.getBuckets().forEach(applicationIdTerm -> {
             int applicationId = applicationIdTerm.getKeyAsNumber().intValue();
 
-            Sum calls = applicationIdTerm.getAggregations().get(ApplicationMetricTable.COLUMN_TRANSACTION_CALLS);
-            Sum errorCalls = applicationIdTerm.getAggregations().get(ApplicationMetricTable.COLUMN_TRANSACTION_ERROR_CALLS);
-            Sum durations = applicationIdTerm.getAggregations().get(ApplicationMetricTable.COLUMN_TRANSACTION_DURATION_SUM);
-            Sum errorDurations = applicationIdTerm.getAggregations().get(ApplicationMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM);
-            Sum satisfiedCount = applicationIdTerm.getAggregations().get(ApplicationMetricTable.COLUMN_SATISFIED_COUNT);
-            Sum toleratingCount = applicationIdTerm.getAggregations().get(ApplicationMetricTable.COLUMN_TOLERATING_COUNT);
-            Sum frustratedCount = applicationIdTerm.getAggregations().get(ApplicationMetricTable.COLUMN_FRUSTRATED_COUNT);
+            Sum calls = applicationIdTerm.getAggregations().get(ApplicationMetricTable.TRANSACTION_CALLS.getName());
+            Sum errorCalls = applicationIdTerm.getAggregations().get(ApplicationMetricTable.TRANSACTION_ERROR_CALLS.getName());
+            Sum durations = applicationIdTerm.getAggregations().get(ApplicationMetricTable.TRANSACTION_DURATION_SUM.getName());
+            Sum errorDurations = applicationIdTerm.getAggregations().get(ApplicationMetricTable.TRANSACTION_ERROR_DURATION_SUM.getName());
+            Sum satisfiedCount = applicationIdTerm.getAggregations().get(ApplicationMetricTable.SATISFIED_COUNT.getName());
+            Sum toleratingCount = applicationIdTerm.getAggregations().get(ApplicationMetricTable.TOLERATING_COUNT.getName());
+            Sum frustratedCount = applicationIdTerm.getAggregations().get(ApplicationMetricTable.FRUSTRATED_COUNT.getName());
 
             ApplicationMetric applicationMetric = new ApplicationMetric();
             applicationMetric.setId(applicationId);
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/ApplicationReferenceMetricEsUIDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/ApplicationReferenceMetricEsUIDAO.java
index d7a7254af..3dd84de96 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/ApplicationReferenceMetricEsUIDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/ApplicationReferenceMetricEsUIDAO.java
@@ -56,8 +56,8 @@ public ApplicationReferenceMetricEsUIDAO(ElasticSearchClient client) {
         searchRequestBuilder.setSearchType(SearchType.DFS_QUERY_THEN_FETCH);
 
         BoolQueryBuilder boolQuery = QueryBuilders.boolQuery();
-        boolQuery.must().add(QueryBuilders.rangeQuery(ApplicationReferenceMetricTable.COLUMN_TIME_BUCKET).gte(startTimeBucket).lte(endTimeBucket));
-        boolQuery.must().add(QueryBuilders.termQuery(ApplicationReferenceMetricTable.COLUMN_SOURCE_VALUE, metricSource.getValue()));
+        boolQuery.must().add(QueryBuilders.rangeQuery(ApplicationReferenceMetricTable.TIME_BUCKET.getName()).gte(startTimeBucket).lte(endTimeBucket));
+        boolQuery.must().add(QueryBuilders.termQuery(ApplicationReferenceMetricTable.SOURCE_VALUE.getName(), metricSource.getValue()));
 
         if (CollectionUtils.isNotEmpty(applicationIds)) {
             BoolQueryBuilder applicationBoolQuery = QueryBuilders.boolQuery();
@@ -66,8 +66,8 @@ public ApplicationReferenceMetricEsUIDAO(ElasticSearchClient client) {
                 ids[i] = applicationIds[i];
             }
 
-            applicationBoolQuery.should().add(QueryBuilders.termsQuery(ApplicationReferenceMetricTable.COLUMN_FRONT_APPLICATION_ID, ids));
-            applicationBoolQuery.should().add(QueryBuilders.termsQuery(ApplicationReferenceMetricTable.COLUMN_BEHIND_APPLICATION_ID, ids));
+            applicationBoolQuery.should().add(QueryBuilders.termsQuery(ApplicationReferenceMetricTable.FRONT_APPLICATION_ID.getName(), ids));
+            applicationBoolQuery.should().add(QueryBuilders.termsQuery(ApplicationReferenceMetricTable.BEHIND_APPLICATION_ID.getName(), ids));
             boolQuery.must().add(applicationBoolQuery);
         }
 
@@ -78,30 +78,30 @@ public ApplicationReferenceMetricEsUIDAO(ElasticSearchClient client) {
     }
 
     private List<ApplicationReferenceMetric> buildMetrics(SearchRequestBuilder searchRequestBuilder) {
-        TermsAggregationBuilder frontAggregationBuilder = AggregationBuilders.terms(ApplicationReferenceMetricTable.COLUMN_FRONT_APPLICATION_ID).field(ApplicationReferenceMetricTable.COLUMN_FRONT_APPLICATION_ID).size(100);
-        TermsAggregationBuilder behindAggregationBuilder = AggregationBuilders.terms(ApplicationReferenceMetricTable.COLUMN_BEHIND_APPLICATION_ID).field(ApplicationReferenceMetricTable.COLUMN_BEHIND_APPLICATION_ID).size(100);
+        TermsAggregationBuilder frontAggregationBuilder = AggregationBuilders.terms(ApplicationReferenceMetricTable.FRONT_APPLICATION_ID.getName()).field(ApplicationReferenceMetricTable.FRONT_APPLICATION_ID.getName()).size(100);
+        TermsAggregationBuilder behindAggregationBuilder = AggregationBuilders.terms(ApplicationReferenceMetricTable.BEHIND_APPLICATION_ID.getName()).field(ApplicationReferenceMetricTable.BEHIND_APPLICATION_ID.getName()).size(100);
         frontAggregationBuilder.subAggregation(behindAggregationBuilder);
 
-        behindAggregationBuilder.subAggregation(AggregationBuilders.sum(ApplicationReferenceMetricTable.COLUMN_TRANSACTION_CALLS).field(ApplicationReferenceMetricTable.COLUMN_TRANSACTION_CALLS));
-        behindAggregationBuilder.subAggregation(AggregationBuilders.sum(ApplicationReferenceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS).field(ApplicationReferenceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS));
-        behindAggregationBuilder.subAggregation(AggregationBuilders.sum(ApplicationReferenceMetricTable.COLUMN_TRANSACTION_DURATION_SUM).field(ApplicationReferenceMetricTable.COLUMN_TRANSACTION_DURATION_SUM));
-        behindAggregationBuilder.subAggregation(AggregationBuilders.sum(ApplicationReferenceMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM).field(ApplicationReferenceMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM));
+        behindAggregationBuilder.subAggregation(AggregationBuilders.sum(ApplicationReferenceMetricTable.TRANSACTION_CALLS.getName()).field(ApplicationReferenceMetricTable.TRANSACTION_CALLS.getName()));
+        behindAggregationBuilder.subAggregation(AggregationBuilders.sum(ApplicationReferenceMetricTable.TRANSACTION_ERROR_CALLS.getName()).field(ApplicationReferenceMetricTable.TRANSACTION_ERROR_CALLS.getName()));
+        behindAggregationBuilder.subAggregation(AggregationBuilders.sum(ApplicationReferenceMetricTable.TRANSACTION_DURATION_SUM.getName()).field(ApplicationReferenceMetricTable.TRANSACTION_DURATION_SUM.getName()));
+        behindAggregationBuilder.subAggregation(AggregationBuilders.sum(ApplicationReferenceMetricTable.TRANSACTION_ERROR_DURATION_SUM.getName()).field(ApplicationReferenceMetricTable.TRANSACTION_ERROR_DURATION_SUM.getName()));
 
         searchRequestBuilder.addAggregation(frontAggregationBuilder);
         SearchResponse searchResponse = searchRequestBuilder.execute().actionGet();
         List<ApplicationReferenceMetric> referenceMetrics = new LinkedList<>();
-        Terms sourceApplicationIdTerms = searchResponse.getAggregations().get(ApplicationReferenceMetricTable.COLUMN_FRONT_APPLICATION_ID);
+        Terms sourceApplicationIdTerms = searchResponse.getAggregations().get(ApplicationReferenceMetricTable.FRONT_APPLICATION_ID.getName());
         for (Terms.Bucket sourceApplicationIdBucket : sourceApplicationIdTerms.getBuckets()) {
             int sourceApplicationId = sourceApplicationIdBucket.getKeyAsNumber().intValue();
 
-            Terms targetApplicationIdTerms = sourceApplicationIdBucket.getAggregations().get(ApplicationReferenceMetricTable.COLUMN_BEHIND_APPLICATION_ID);
+            Terms targetApplicationIdTerms = sourceApplicationIdBucket.getAggregations().get(ApplicationReferenceMetricTable.BEHIND_APPLICATION_ID.getName());
             for (Terms.Bucket targetApplicationIdBucket : targetApplicationIdTerms.getBuckets()) {
                 int targetApplicationId = targetApplicationIdBucket.getKeyAsNumber().intValue();
 
-                Sum calls = targetApplicationIdBucket.getAggregations().get(ApplicationReferenceMetricTable.COLUMN_TRANSACTION_CALLS);
-                Sum errorCalls = targetApplicationIdBucket.getAggregations().get(ApplicationReferenceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS);
-                Sum durations = targetApplicationIdBucket.getAggregations().get(ApplicationReferenceMetricTable.COLUMN_TRANSACTION_DURATION_SUM);
-                Sum errorDurations = targetApplicationIdBucket.getAggregations().get(ApplicationReferenceMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM);
+                Sum calls = targetApplicationIdBucket.getAggregations().get(ApplicationReferenceMetricTable.TRANSACTION_CALLS.getName());
+                Sum errorCalls = targetApplicationIdBucket.getAggregations().get(ApplicationReferenceMetricTable.TRANSACTION_ERROR_CALLS.getName());
+                Sum durations = targetApplicationIdBucket.getAggregations().get(ApplicationReferenceMetricTable.TRANSACTION_DURATION_SUM.getName());
+                Sum errorDurations = targetApplicationIdBucket.getAggregations().get(ApplicationReferenceMetricTable.TRANSACTION_ERROR_DURATION_SUM.getName());
 
                 ApplicationReferenceMetric referenceMetric = new ApplicationReferenceMetric();
                 referenceMetric.setSource(sourceApplicationId);
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/CpuMetricEsUIDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/CpuMetricEsUIDAO.java
index 1d4b1ea0b..84b6ad057 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/CpuMetricEsUIDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/CpuMetricEsUIDAO.java
@@ -59,8 +59,8 @@ public void accept(DurationPoint durationPoint) {
         MultiGetResponse multiGetResponse = prepareMultiGet.get();
         for (MultiGetItemResponse response : multiGetResponse.getResponses()) {
             if (response.getResponse().isExists()) {
-                double cpuUsed = ((Number) response.getResponse().getSource().get(CpuMetricTable.COLUMN_USAGE_PERCENT)).doubleValue();
-                long times = ((Number) response.getResponse().getSource().get(CpuMetricTable.COLUMN_TIMES)).longValue();
+                double cpuUsed = ((Number) response.getResponse().getSource().get(CpuMetricTable.USAGE_PERCENT.getName())).doubleValue();
+                long times = ((Number) response.getResponse().getSource().get(CpuMetricTable.TIMES.getName())).longValue();
                 cpuTrends.add((int) ((cpuUsed / times) * 100));
             } else {
                 cpuTrends.add(0);
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/GCMetricEsUIDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/GCMetricEsUIDAO.java
index 30db5bd0f..2a42db041 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/GCMetricEsUIDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/GCMetricEsUIDAO.java
@@ -68,8 +68,8 @@ public void accept(DurationPoint durationPoint) {
         MultiGetResponse multiGetResponse = youngPrepareMultiGet.get();
         for (MultiGetItemResponse itemResponse : multiGetResponse.getResponses()) {
             if (itemResponse.getResponse().isExists()) {
-                long count = ((Number) itemResponse.getResponse().getSource().get(GCMetricTable.COLUMN_COUNT)).longValue();
-                long times = ((Number) itemResponse.getResponse().getSource().get(GCMetricTable.COLUMN_TIMES)).intValue();
+                long count = ((Number) itemResponse.getResponse().getSource().get(GCMetricTable.COUNT.getName())).longValue();
+                long times = ((Number) itemResponse.getResponse().getSource().get(GCMetricTable.TIMES.getName())).intValue();
                 gcTrends.add((int) (count / times));
             } else {
                 gcTrends.add(0);
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/GlobalTraceEsUIDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/GlobalTraceEsUIDAO.java
index f5a8bb2a9..81b980e13 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/GlobalTraceEsUIDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/GlobalTraceEsUIDAO.java
@@ -47,7 +47,7 @@ public GlobalTraceEsUIDAO(ElasticSearchClient client) {
         SearchRequestBuilder searchRequestBuilder = getClient().prepareSearch(GlobalTraceTable.TABLE);
         searchRequestBuilder.setTypes(GlobalTraceTable.TABLE_TYPE);
         searchRequestBuilder.setSearchType(SearchType.DFS_QUERY_THEN_FETCH);
-        searchRequestBuilder.setQuery(QueryBuilders.termQuery(GlobalTraceTable.COLUMN_SEGMENT_ID, segmentId));
+        searchRequestBuilder.setQuery(QueryBuilders.termQuery(GlobalTraceTable.SEGMENT_ID.getName(), segmentId));
         searchRequestBuilder.setSize(10);
 
         SearchResponse searchResponse = searchRequestBuilder.execute().actionGet();
@@ -55,7 +55,7 @@ public GlobalTraceEsUIDAO(ElasticSearchClient client) {
         List<String> globalTraceIds = new ArrayList<>();
         SearchHit[] searchHits = searchResponse.getHits().getHits();
         for (SearchHit searchHit : searchHits) {
-            String globalTraceId = (String)searchHit.getSource().get(GlobalTraceTable.COLUMN_GLOBAL_TRACE_ID);
+            String globalTraceId = (String)searchHit.getSource().get(GlobalTraceTable.TRACE_ID.getName());
             logger.debug("segmentId: {}, global trace id: {}", segmentId, globalTraceId);
             globalTraceIds.add(globalTraceId);
         }
@@ -66,7 +66,7 @@ public GlobalTraceEsUIDAO(ElasticSearchClient client) {
         SearchRequestBuilder searchRequestBuilder = getClient().prepareSearch(GlobalTraceTable.TABLE);
         searchRequestBuilder.setTypes(GlobalTraceTable.TABLE_TYPE);
         searchRequestBuilder.setSearchType(SearchType.DFS_QUERY_THEN_FETCH);
-        searchRequestBuilder.setQuery(QueryBuilders.termQuery(GlobalTraceTable.COLUMN_GLOBAL_TRACE_ID, globalTraceId));
+        searchRequestBuilder.setQuery(QueryBuilders.termQuery(GlobalTraceTable.TRACE_ID.getName(), globalTraceId));
         searchRequestBuilder.setSize(10);
 
         SearchResponse searchResponse = searchRequestBuilder.execute().actionGet();
@@ -74,7 +74,7 @@ public GlobalTraceEsUIDAO(ElasticSearchClient client) {
         List<String> segmentIds = new ArrayList<>();
         SearchHit[] searchHits = searchResponse.getHits().getHits();
         for (SearchHit searchHit : searchHits) {
-            String segmentId = (String)searchHit.getSource().get(GlobalTraceTable.COLUMN_SEGMENT_ID);
+            String segmentId = (String)searchHit.getSource().get(GlobalTraceTable.SEGMENT_ID.getName());
             logger.debug("segmentId: {}, global trace id: {}", segmentId, globalTraceId);
             segmentIds.add(segmentId);
         }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/InstanceAlarmEsUIDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/InstanceAlarmEsUIDAO.java
index 86bc2c04f..4febd9daf 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/InstanceAlarmEsUIDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/InstanceAlarmEsUIDAO.java
@@ -53,9 +53,9 @@ public Alarm loadAlarmList(String keyword, long startTimeBucket, long endTimeBuc
         searchRequestBuilder.setSearchType(SearchType.DFS_QUERY_THEN_FETCH);
 
         BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
-        boolQueryBuilder.must().add(QueryBuilders.rangeQuery(InstanceAlarmTable.COLUMN_LAST_TIME_BUCKET).gte(startTimeBucket).lte(endTimeBucket));
+        boolQueryBuilder.must().add(QueryBuilders.rangeQuery(InstanceAlarmTable.LAST_TIME_BUCKET.getName()).gte(startTimeBucket).lte(endTimeBucket));
         if (StringUtils.isNotEmpty(keyword)) {
-            boolQueryBuilder.must().add(QueryBuilders.matchQuery(InstanceAlarmTable.COLUMN_ALARM_CONTENT, keyword));
+            boolQueryBuilder.must().add(QueryBuilders.matchQuery(InstanceAlarmTable.ALARM_CONTENT.getName(), keyword));
         }
 
         searchRequestBuilder.setQuery(boolQueryBuilder);
@@ -69,15 +69,15 @@ public Alarm loadAlarmList(String keyword, long startTimeBucket, long endTimeBuc
         alarm.setTotal((int)searchResponse.getHits().getTotalHits());
         for (SearchHit searchHit : searchHits) {
             AlarmItem alarmItem = new AlarmItem();
-            alarmItem.setId(((Number)searchHit.getSource().get(InstanceAlarmTable.COLUMN_INSTANCE_ID)).intValue());
-            alarmItem.setTitle((String)searchHit.getSource().get(InstanceAlarmTable.COLUMN_ALARM_CONTENT));
-            alarmItem.setContent((String)searchHit.getSource().get(InstanceAlarmTable.COLUMN_ALARM_CONTENT));
+            alarmItem.setId(((Number)searchHit.getSource().get(InstanceAlarmTable.INSTANCE_ID.getName())).intValue());
+            alarmItem.setTitle((String)searchHit.getSource().get(InstanceAlarmTable.ALARM_CONTENT.getName()));
+            alarmItem.setContent((String)searchHit.getSource().get(InstanceAlarmTable.ALARM_CONTENT.getName()));
 
-            long lastTimeBucket = ((Number)searchHit.getSource().get(InstanceAlarmTable.COLUMN_LAST_TIME_BUCKET)).longValue();
+            long lastTimeBucket = ((Number)searchHit.getSource().get(InstanceAlarmTable.LAST_TIME_BUCKET.getName())).longValue();
             alarmItem.setStartTime(TimeBucketUtils.INSTANCE.formatMinuteTimeBucket(lastTimeBucket));
             alarmItem.setAlarmType(AlarmType.SERVER);
 
-            int alarmType = ((Number)searchHit.getSource().get(InstanceAlarmTable.COLUMN_ALARM_TYPE)).intValue();
+            int alarmType = ((Number)searchHit.getSource().get(InstanceAlarmTable.ALARM_TYPE.getName())).intValue();
             if (org.apache.skywalking.apm.collector.storage.table.alarm.AlarmType.SLOW_RTT.getValue() == alarmType) {
                 alarmItem.setCauseType(CauseType.SLOW_RESPONSE);
             } else if (org.apache.skywalking.apm.collector.storage.table.alarm.AlarmType.ERROR_RATE.getValue() == alarmType) {
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/InstanceEsUIDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/InstanceEsUIDAO.java
index 2f1e82e2c..dd1b8d118 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/InstanceEsUIDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/InstanceEsUIDAO.java
@@ -62,7 +62,7 @@ public InstanceEsUIDAO(ElasticSearchClient client) {
     @Override public Long lastHeartBeatTime() {
         long fiveMinuteBefore = System.currentTimeMillis() - 5 * 60 * 1000;
         fiveMinuteBefore = TimeBucketUtils.INSTANCE.getSecondTimeBucket(fiveMinuteBefore);
-        RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery(InstanceTable.COLUMN_HEARTBEAT_TIME).gt(fiveMinuteBefore);
+        RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery(InstanceTable.HEARTBEAT_TIME.getName()).gt(fiveMinuteBefore);
         return heartBeatTime(rangeQueryBuilder);
     }
 
@@ -71,8 +71,8 @@ public InstanceEsUIDAO(ElasticSearchClient client) {
         fiveMinuteBefore = TimeBucketUtils.INSTANCE.getSecondTimeBucket(fiveMinuteBefore);
 
         BoolQueryBuilder boolQueryBuilder = new BoolQueryBuilder();
-        boolQueryBuilder.must(QueryBuilders.rangeQuery(InstanceTable.COLUMN_HEARTBEAT_TIME).gt(fiveMinuteBefore));
-        boolQueryBuilder.must(QueryBuilders.termQuery(InstanceTable.COLUMN_INSTANCE_ID, applicationInstanceId));
+        boolQueryBuilder.must(QueryBuilders.rangeQuery(InstanceTable.HEARTBEAT_TIME.getName()).gt(fiveMinuteBefore));
+        boolQueryBuilder.must(QueryBuilders.termQuery(InstanceTable.INSTANCE_ID.getName(), applicationInstanceId));
         return heartBeatTime(boolQueryBuilder);
     }
 
@@ -82,15 +82,15 @@ private Long heartBeatTime(AbstractQueryBuilder queryBuilder) {
         searchRequestBuilder.setSearchType(SearchType.DFS_QUERY_THEN_FETCH);
         searchRequestBuilder.setQuery(queryBuilder);
         searchRequestBuilder.setSize(1);
-        searchRequestBuilder.setFetchSource(InstanceTable.COLUMN_HEARTBEAT_TIME, null);
-        searchRequestBuilder.addSort(SortBuilders.fieldSort(InstanceTable.COLUMN_HEARTBEAT_TIME).sortMode(SortMode.MAX));
+        searchRequestBuilder.setFetchSource(InstanceTable.HEARTBEAT_TIME.getName(), null);
+        searchRequestBuilder.addSort(SortBuilders.fieldSort(InstanceTable.HEARTBEAT_TIME.getName()).sortMode(SortMode.MAX));
 
         SearchResponse searchResponse = searchRequestBuilder.execute().actionGet();
         SearchHit[] searchHits = searchResponse.getHits().getHits();
 
         Long heartBeatTime = 0L;
         for (SearchHit searchHit : searchHits) {
-            heartBeatTime = (Long)searchHit.getSource().get(InstanceTable.COLUMN_HEARTBEAT_TIME);
+            heartBeatTime = (Long)searchHit.getSource().get(InstanceTable.HEARTBEAT_TIME.getName());
             logger.debug("heartBeatTime: {}", heartBeatTime);
             heartBeatTime = heartBeatTime - 5;
         }
@@ -107,12 +107,12 @@ private Long heartBeatTime(AbstractQueryBuilder queryBuilder) {
         BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
 
         BoolQueryBuilder boolQuery1 = QueryBuilders.boolQuery();
-        boolQuery1.must().add(QueryBuilders.rangeQuery(InstanceTable.COLUMN_HEARTBEAT_TIME).gte(endSecondTimeBucket));
-        boolQuery1.must().add(QueryBuilders.rangeQuery(InstanceTable.COLUMN_REGISTER_TIME).lte(endSecondTimeBucket));
+        boolQuery1.must().add(QueryBuilders.rangeQuery(InstanceTable.HEARTBEAT_TIME.getName()).gte(endSecondTimeBucket));
+        boolQuery1.must().add(QueryBuilders.rangeQuery(InstanceTable.REGISTER_TIME.getName()).lte(endSecondTimeBucket));
 
         BoolQueryBuilder boolQuery2 = QueryBuilders.boolQuery();
-        boolQuery2.must().add(QueryBuilders.rangeQuery(InstanceTable.COLUMN_REGISTER_TIME).lte(endSecondTimeBucket));
-        boolQuery2.must().add(QueryBuilders.rangeQuery(InstanceTable.COLUMN_HEARTBEAT_TIME).gte(startSecondTimeBucket));
+        boolQuery2.must().add(QueryBuilders.rangeQuery(InstanceTable.REGISTER_TIME.getName()).lte(endSecondTimeBucket));
+        boolQuery2.must().add(QueryBuilders.rangeQuery(InstanceTable.HEARTBEAT_TIME.getName()).gte(startSecondTimeBucket));
 
         BoolQueryBuilder timeBoolQuery = QueryBuilders.boolQuery();
         timeBoolQuery.should().add(boolQuery1);
@@ -120,25 +120,25 @@ private Long heartBeatTime(AbstractQueryBuilder queryBuilder) {
 
         boolQueryBuilder.must().add(timeBoolQuery);
 
-        boolQueryBuilder.must().add(QueryBuilders.termQuery(InstanceTable.COLUMN_IS_ADDRESS, BooleanUtils.FALSE));
+        boolQueryBuilder.must().add(QueryBuilders.termQuery(InstanceTable.IS_ADDRESS.getName(), BooleanUtils.FALSE));
         if (applicationIds.length > 0) {
-            boolQueryBuilder.must().add(QueryBuilders.termsQuery(InstanceTable.COLUMN_APPLICATION_ID, applicationIds));
+            boolQueryBuilder.must().add(QueryBuilders.termsQuery(InstanceTable.APPLICATION_ID.getName(), applicationIds));
         }
 
         searchRequestBuilder.setQuery(boolQueryBuilder);
         searchRequestBuilder.setSize(0);
-        searchRequestBuilder.addAggregation(AggregationBuilders.terms(InstanceTable.COLUMN_APPLICATION_ID).field(InstanceTable.COLUMN_APPLICATION_ID).size(100)
-            .subAggregation(AggregationBuilders.count(InstanceTable.COLUMN_INSTANCE_ID).field(InstanceTable.COLUMN_INSTANCE_ID)));
+        searchRequestBuilder.addAggregation(AggregationBuilders.terms(InstanceTable.APPLICATION_ID.getName()).field(InstanceTable.APPLICATION_ID.getName()).size(100)
+            .subAggregation(AggregationBuilders.count(InstanceTable.INSTANCE_ID.getName()).field(InstanceTable.INSTANCE_ID.getName())));
 
         SearchResponse searchResponse = searchRequestBuilder.execute().actionGet();
-        Terms genders = searchResponse.getAggregations().get(InstanceTable.COLUMN_APPLICATION_ID);
+        Terms genders = searchResponse.getAggregations().get(InstanceTable.APPLICATION_ID.getName());
 
         List<Application> applications = new LinkedList<>();
         for (Terms.Bucket applicationsBucket : genders.getBuckets()) {
             Integer applicationId = applicationsBucket.getKeyAsNumber().intValue();
             logger.debug("applicationId: {}", applicationId);
 
-            ValueCount instanceCount = applicationsBucket.getAggregations().get(InstanceTable.COLUMN_INSTANCE_ID);
+            ValueCount instanceCount = applicationsBucket.getAggregations().get(InstanceTable.INSTANCE_ID.getName());
 
             Application application = new Application();
             application.setId(applicationId);
@@ -155,11 +155,11 @@ private Long heartBeatTime(AbstractQueryBuilder queryBuilder) {
         if (getResponse.isExists()) {
             Instance instance = new Instance();
             instance.setId(getResponse.getId());
-            instance.setApplicationId(((Number)getResponse.getSource().get(InstanceTable.COLUMN_APPLICATION_ID)).intValue());
-            instance.setAgentUUID((String)getResponse.getSource().get(InstanceTable.COLUMN_AGENT_UUID));
-            instance.setRegisterTime(((Number)getResponse.getSource().get(InstanceTable.COLUMN_REGISTER_TIME)).longValue());
-            instance.setHeartBeatTime(((Number)getResponse.getSource().get(InstanceTable.COLUMN_HEARTBEAT_TIME)).longValue());
-            instance.setOsInfo((String)getResponse.getSource().get(InstanceTable.COLUMN_OS_INFO));
+            instance.setApplicationId(((Number)getResponse.getSource().get(InstanceTable.APPLICATION_ID.getName())).intValue());
+            instance.setAgentUUID((String)getResponse.getSource().get(InstanceTable.AGENT_UUID.getName()));
+            instance.setRegisterTime(((Number)getResponse.getSource().get(InstanceTable.REGISTER_TIME.getName())).longValue());
+            instance.setHeartBeatTime(((Number)getResponse.getSource().get(InstanceTable.HEARTBEAT_TIME.getName())).longValue());
+            instance.setOsInfo((String)getResponse.getSource().get(InstanceTable.OS_INFO.getName()));
             return instance;
         }
         return null;
@@ -177,15 +177,15 @@ private Long heartBeatTime(AbstractQueryBuilder queryBuilder) {
         if (StringUtils.isNotEmpty(keyword)) {
             boolQuery.must().add(QueryBuilders.queryStringQuery(keyword));
         }
-        boolQuery.must().add(QueryBuilders.termQuery(InstanceTable.COLUMN_IS_ADDRESS, BooleanUtils.FALSE));
+        boolQuery.must().add(QueryBuilders.termQuery(InstanceTable.IS_ADDRESS.getName(), BooleanUtils.FALSE));
 
         BoolQueryBuilder boolQuery1 = QueryBuilders.boolQuery();
-        boolQuery1.must().add(QueryBuilders.rangeQuery(InstanceTable.COLUMN_HEARTBEAT_TIME).gte(endSecondTimeBucket));
-        boolQuery1.must().add(QueryBuilders.rangeQuery(InstanceTable.COLUMN_REGISTER_TIME).lte(endSecondTimeBucket));
+        boolQuery1.must().add(QueryBuilders.rangeQuery(InstanceTable.HEARTBEAT_TIME.getName()).gte(endSecondTimeBucket));
+        boolQuery1.must().add(QueryBuilders.rangeQuery(InstanceTable.REGISTER_TIME.getName()).lte(endSecondTimeBucket));
 
         BoolQueryBuilder boolQuery2 = QueryBuilders.boolQuery();
-        boolQuery2.must().add(QueryBuilders.rangeQuery(InstanceTable.COLUMN_REGISTER_TIME).lte(endSecondTimeBucket));
-        boolQuery2.must().add(QueryBuilders.rangeQuery(InstanceTable.COLUMN_HEARTBEAT_TIME).gte(startSecondTimeBucket));
+        boolQuery2.must().add(QueryBuilders.rangeQuery(InstanceTable.REGISTER_TIME.getName()).lte(endSecondTimeBucket));
+        boolQuery2.must().add(QueryBuilders.rangeQuery(InstanceTable.HEARTBEAT_TIME.getName()).gte(startSecondTimeBucket));
 
         BoolQueryBuilder timeBoolQuery = QueryBuilders.boolQuery();
         timeBoolQuery.should().add(boolQuery1);
@@ -210,16 +210,16 @@ private Long heartBeatTime(AbstractQueryBuilder queryBuilder) {
         searchRequestBuilder.setSize(1000);
 
         BoolQueryBuilder boolQuery = QueryBuilders.boolQuery();
-        boolQuery.must().add(QueryBuilders.termQuery(InstanceTable.COLUMN_APPLICATION_ID, applicationId));
-        boolQuery.must().add(QueryBuilders.termQuery(InstanceTable.COLUMN_IS_ADDRESS, BooleanUtils.FALSE));
+        boolQuery.must().add(QueryBuilders.termQuery(InstanceTable.APPLICATION_ID.getName(), applicationId));
+        boolQuery.must().add(QueryBuilders.termQuery(InstanceTable.IS_ADDRESS.getName(), BooleanUtils.FALSE));
 
         BoolQueryBuilder boolQuery1 = QueryBuilders.boolQuery();
-        boolQuery1.must().add(QueryBuilders.rangeQuery(InstanceTable.COLUMN_HEARTBEAT_TIME).gte(endSecondTimeBucket));
-        boolQuery1.must().add(QueryBuilders.rangeQuery(InstanceTable.COLUMN_REGISTER_TIME).lte(endSecondTimeBucket));
+        boolQuery1.must().add(QueryBuilders.rangeQuery(InstanceTable.HEARTBEAT_TIME.getName()).gte(endSecondTimeBucket));
+        boolQuery1.must().add(QueryBuilders.rangeQuery(InstanceTable.REGISTER_TIME.getName()).lte(endSecondTimeBucket));
 
         BoolQueryBuilder boolQuery2 = QueryBuilders.boolQuery();
-        boolQuery2.must().add(QueryBuilders.rangeQuery(InstanceTable.COLUMN_REGISTER_TIME).lte(endSecondTimeBucket));
-        boolQuery2.must().add(QueryBuilders.rangeQuery(InstanceTable.COLUMN_HEARTBEAT_TIME).gte(startSecondTimeBucket));
+        boolQuery2.must().add(QueryBuilders.rangeQuery(InstanceTable.REGISTER_TIME.getName()).lte(endSecondTimeBucket));
+        boolQuery2.must().add(QueryBuilders.rangeQuery(InstanceTable.HEARTBEAT_TIME.getName()).gte(startSecondTimeBucket));
 
         BoolQueryBuilder timeBoolQuery = QueryBuilders.boolQuery();
         timeBoolQuery.should().add(boolQuery1);
@@ -240,15 +240,15 @@ private Long heartBeatTime(AbstractQueryBuilder queryBuilder) {
         searchRequestBuilder.setSearchType(SearchType.DFS_QUERY_THEN_FETCH);
         searchRequestBuilder.setSize(1);
 
-        searchRequestBuilder.setQuery(QueryBuilders.termQuery(InstanceTable.COLUMN_APPLICATION_ID, applicationId));
-        searchRequestBuilder.addSort(SortBuilders.fieldSort(InstanceTable.COLUMN_REGISTER_TIME).sortMode(SortMode.MIN));
+        searchRequestBuilder.setQuery(QueryBuilders.termQuery(InstanceTable.APPLICATION_ID.getName(), applicationId));
+        searchRequestBuilder.addSort(SortBuilders.fieldSort(InstanceTable.REGISTER_TIME.getName()).sortMode(SortMode.MIN));
 
         SearchResponse searchResponse = searchRequestBuilder.execute().actionGet();
 
         SearchHit[] searchHits = searchResponse.getHits().getHits();
 
         if (searchHits.length > 0) {
-            return ((Number)searchHits[0].getSource().get(InstanceTable.COLUMN_REGISTER_TIME)).longValue();
+            return ((Number)searchHits[0].getSource().get(InstanceTable.REGISTER_TIME.getName())).longValue();
         }
 
         return Long.MIN_VALUE;
@@ -260,15 +260,15 @@ private Long heartBeatTime(AbstractQueryBuilder queryBuilder) {
         searchRequestBuilder.setSearchType(SearchType.DFS_QUERY_THEN_FETCH);
         searchRequestBuilder.setSize(1);
 
-        searchRequestBuilder.setQuery(QueryBuilders.termQuery(InstanceTable.COLUMN_APPLICATION_ID, applicationId));
-        searchRequestBuilder.addSort(SortBuilders.fieldSort(InstanceTable.COLUMN_HEARTBEAT_TIME).sortMode(SortMode.MAX));
+        searchRequestBuilder.setQuery(QueryBuilders.termQuery(InstanceTable.APPLICATION_ID.getName(), applicationId));
+        searchRequestBuilder.addSort(SortBuilders.fieldSort(InstanceTable.HEARTBEAT_TIME.getName()).sortMode(SortMode.MAX));
 
         SearchResponse searchResponse = searchRequestBuilder.execute().actionGet();
 
         SearchHit[] searchHits = searchResponse.getHits().getHits();
 
         if (searchHits.length > 0) {
-            return ((Number)searchHits[0].getSource().get(InstanceTable.COLUMN_HEARTBEAT_TIME)).longValue();
+            return ((Number)searchHits[0].getSource().get(InstanceTable.HEARTBEAT_TIME.getName())).longValue();
         }
 
         return Long.MAX_VALUE;
@@ -278,9 +278,9 @@ private Long heartBeatTime(AbstractQueryBuilder queryBuilder) {
         List<AppServerInfo> appServerInfos = new LinkedList<>();
         for (SearchHit searchHit : searchHits) {
             AppServerInfo appServerInfo = new AppServerInfo();
-            appServerInfo.setId(((Number)searchHit.getSource().get(InstanceTable.COLUMN_INSTANCE_ID)).intValue());
-            appServerInfo.setApplicationId(((Number)searchHit.getSource().get(InstanceTable.COLUMN_APPLICATION_ID)).intValue());
-            appServerInfo.setOsInfo((String)searchHit.getSource().get(InstanceTable.COLUMN_OS_INFO));
+            appServerInfo.setId(((Number)searchHit.getSource().get(InstanceTable.INSTANCE_ID.getName())).intValue());
+            appServerInfo.setApplicationId(((Number)searchHit.getSource().get(InstanceTable.APPLICATION_ID.getName())).intValue());
+            appServerInfo.setOsInfo((String)searchHit.getSource().get(InstanceTable.OS_INFO.getName()));
             appServerInfos.add(appServerInfo);
         }
         return appServerInfos;
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/InstanceMetricEsUIDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/InstanceMetricEsUIDAO.java
index dbac89ca5..64e41ac12 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/InstanceMetricEsUIDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/InstanceMetricEsUIDAO.java
@@ -64,26 +64,26 @@ public InstanceMetricEsUIDAO(ElasticSearchClient client) {
         searchRequestBuilder.setSearchType(SearchType.DFS_QUERY_THEN_FETCH);
 
         BoolQueryBuilder boolQuery = QueryBuilders.boolQuery();
-        boolQuery.must().add(QueryBuilders.rangeQuery(InstanceMetricTable.COLUMN_TIME_BUCKET).gte(startTimeBucket).lte(endTimeBucket));
+        boolQuery.must().add(QueryBuilders.rangeQuery(InstanceMetricTable.TIME_BUCKET.getName()).gte(startTimeBucket).lte(endTimeBucket));
         if (applicationId != 0) {
-            boolQuery.must().add(QueryBuilders.termQuery(InstanceMetricTable.COLUMN_APPLICATION_ID, applicationId));
+            boolQuery.must().add(QueryBuilders.termQuery(InstanceMetricTable.APPLICATION_ID.getName(), applicationId));
         }
-        boolQuery.must().add(QueryBuilders.termQuery(InstanceMetricTable.COLUMN_SOURCE_VALUE, metricSource.getValue()));
+        boolQuery.must().add(QueryBuilders.termQuery(InstanceMetricTable.SOURCE_VALUE.getName(), metricSource.getValue()));
 
         searchRequestBuilder.setQuery(boolQuery);
         searchRequestBuilder.setSize(0);
 
-        TermsAggregationBuilder aggregationBuilder = AggregationBuilders.terms(InstanceMetricTable.COLUMN_INSTANCE_ID).field(InstanceMetricTable.COLUMN_INSTANCE_ID).size(2000);
-        aggregationBuilder.subAggregation(AggregationBuilders.sum(InstanceMetricTable.COLUMN_TRANSACTION_CALLS).field(InstanceMetricTable.COLUMN_TRANSACTION_CALLS));
+        TermsAggregationBuilder aggregationBuilder = AggregationBuilders.terms(InstanceMetricTable.INSTANCE_ID.getName()).field(InstanceMetricTable.INSTANCE_ID.getName()).size(2000);
+        aggregationBuilder.subAggregation(AggregationBuilders.sum(InstanceMetricTable.TRANSACTION_CALLS.getName()).field(InstanceMetricTable.TRANSACTION_CALLS.getName()));
 
         searchRequestBuilder.addAggregation(aggregationBuilder);
         SearchResponse searchResponse = searchRequestBuilder.execute().actionGet();
 
         List<AppServerInfo> appServerInfos = new LinkedList<>();
-        Terms instanceIdTerms = searchResponse.getAggregations().get(InstanceMetricTable.COLUMN_INSTANCE_ID);
+        Terms instanceIdTerms = searchResponse.getAggregations().get(InstanceMetricTable.INSTANCE_ID.getName());
         instanceIdTerms.getBuckets().forEach(instanceIdTerm -> {
             int instanceId = instanceIdTerm.getKeyAsNumber().intValue();
-            Sum callSum = instanceIdTerm.getAggregations().get(ApplicationMetricTable.COLUMN_TRANSACTION_CALLS);
+            Sum callSum = instanceIdTerm.getAggregations().get(ApplicationMetricTable.TRANSACTION_CALLS.getName());
             long calls = (long) callSum.getValue();
             int callsPerSec = (int) (secondBetween == 0 ? 0 : calls / secondBetween);
 
@@ -122,7 +122,7 @@ public void accept(DurationPoint durationPoint) {
         for (int i = 0; i < multiGetResponse.getResponses().length; i++) {
             MultiGetItemResponse response = multiGetResponse.getResponses()[i];
             if (response.getResponse().isExists()) {
-                long callTimes = ((Number) response.getResponse().getSource().get(InstanceMetricTable.COLUMN_TRANSACTION_CALLS)).longValue();
+                long callTimes = ((Number) response.getResponse().getSource().get(InstanceMetricTable.TRANSACTION_CALLS.getName())).longValue();
                 throughputTrend.add((int) (callTimes / durationPoints.get(i).getSecondsBetween()));
             } else {
                 throughputTrend.add(0);
@@ -148,10 +148,10 @@ public void accept(DurationPoint durationPoint) {
         MultiGetResponse multiGetResponse = prepareMultiGet.get();
         for (MultiGetItemResponse response : multiGetResponse.getResponses()) {
             if (response.getResponse().isExists()) {
-                long callTimes = ((Number)response.getResponse().getSource().get(InstanceMetricTable.COLUMN_TRANSACTION_CALLS)).longValue();
-                long errorCallTimes = ((Number)response.getResponse().getSource().get(InstanceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS)).longValue();
-                long durationSum = ((Number)response.getResponse().getSource().get(InstanceMetricTable.COLUMN_TRANSACTION_DURATION_SUM)).longValue();
-                long errorDurationSum = ((Number)response.getResponse().getSource().get(InstanceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_DURATION_SUM)).longValue();
+                long callTimes = ((Number)response.getResponse().getSource().get(InstanceMetricTable.TRANSACTION_CALLS.getName())).longValue();
+                long errorCallTimes = ((Number)response.getResponse().getSource().get(InstanceMetricTable.TRANSACTION_ERROR_CALLS.getName())).longValue();
+                long durationSum = ((Number)response.getResponse().getSource().get(InstanceMetricTable.TRANSACTION_DURATION_SUM.getName())).longValue();
+                long errorDurationSum = ((Number)response.getResponse().getSource().get(InstanceMetricTable.BUSINESS_TRANSACTION_ERROR_DURATION_SUM.getName())).longValue();
                 long correctCallTimes = callTimes - errorCallTimes;
                 if (correctCallTimes != 0L) {
                     responseTimeTrends.add((int)((durationSum - errorDurationSum) / correctCallTimes));
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/MemoryMetricEsUIDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/MemoryMetricEsUIDAO.java
index fb30adfcf..d1a45ab10 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/MemoryMetricEsUIDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/MemoryMetricEsUIDAO.java
@@ -68,9 +68,9 @@ public void accept(DurationPoint durationPoint) {
         MultiGetResponse multiGetResponse = prepareMultiGet.get();
         for (MultiGetItemResponse response : multiGetResponse.getResponses()) {
             if (response.getResponse().isExists()) {
-                long max = ((Number) response.getResponse().getSource().get(MemoryMetricTable.COLUMN_MAX)).longValue();
-                long used = ((Number) response.getResponse().getSource().get(MemoryMetricTable.COLUMN_USED)).longValue();
-                long times = ((Number) response.getResponse().getSource().get(MemoryMetricTable.COLUMN_TIMES)).longValue();
+                long max = ((Number) response.getResponse().getSource().get(MemoryMetricTable.MAX.getName())).longValue();
+                long used = ((Number) response.getResponse().getSource().get(MemoryMetricTable.USED.getName())).longValue();
+                long times = ((Number) response.getResponse().getSource().get(MemoryMetricTable.TIMES.getName())).longValue();
 
                 trend.getMetrics().add((int) (used / times));
 
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/MemoryPoolMetricEsUIDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/MemoryPoolMetricEsUIDAO.java
deleted file mode 100644
index 5f769b7a3..000000000
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/MemoryPoolMetricEsUIDAO.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.skywalking.apm.collector.storage.es.dao.ui;
-
-import com.google.gson.JsonObject;
-import org.apache.skywalking.apm.collector.client.elasticsearch.ElasticSearchClient;
-import org.apache.skywalking.apm.collector.core.UnexpectedException;
-import org.apache.skywalking.apm.collector.core.util.Const;
-import org.apache.skywalking.apm.collector.storage.dao.ui.IMemoryPoolMetricUIDAO;
-import org.apache.skywalking.apm.collector.storage.es.base.dao.EsDAO;
-import org.apache.skywalking.apm.collector.storage.table.jvm.MemoryPoolMetricTable;
-import org.elasticsearch.action.get.GetResponse;
-
-/**
- * @author peng-yongsheng
- */
-public class MemoryPoolMetricEsUIDAO extends EsDAO implements IMemoryPoolMetricUIDAO {
-
-    public MemoryPoolMetricEsUIDAO(ElasticSearchClient client) {
-        super(client);
-    }
-
-    @Override
-    public JsonObject getMetric(int instanceId, long timeBucket, int poolType) {
-        String id = timeBucket + Const.ID_SPLIT + instanceId + Const.ID_SPLIT + poolType;
-        GetResponse getResponse = getClient().prepareGet(MemoryPoolMetricTable.TABLE, id).get();
-
-        JsonObject metric = new JsonObject();
-        if (getResponse.isExists()) {
-            metric.addProperty("max", ((Number) getResponse.getSource().get(MemoryPoolMetricTable.COLUMN_MAX)).intValue());
-            metric.addProperty("init", ((Number) getResponse.getSource().get(MemoryPoolMetricTable.COLUMN_INIT)).intValue());
-            metric.addProperty("used", ((Number) getResponse.getSource().get(MemoryPoolMetricTable.COLUMN_USED)).intValue());
-        } else {
-            metric.addProperty("max", 0);
-            metric.addProperty("init", 0);
-            metric.addProperty("used", 0);
-        }
-        return metric;
-    }
-
-    @Override
-    public JsonObject getMetric(int instanceId, long startTimeBucket, long endTimeBucket, int poolType) {
-        throw new UnexpectedException("Not implement methodø");
-    }
-}
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/NetworkAddressEsUIDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/NetworkAddressEsUIDAO.java
index 9838e3a50..d098916e4 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/NetworkAddressEsUIDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/NetworkAddressEsUIDAO.java
@@ -47,7 +47,7 @@ public NetworkAddressEsUIDAO(ElasticSearchClient client) {
         SearchRequestBuilder searchRequestBuilder = getClient().prepareSearch(NetworkAddressTable.TABLE);
         searchRequestBuilder.setTypes(NetworkAddressTable.TABLE_TYPE);
         searchRequestBuilder.setSearchType(SearchType.DFS_QUERY_THEN_FETCH);
-        searchRequestBuilder.setQuery(QueryBuilders.termQuery(NetworkAddressTable.COLUMN_SPAN_LAYER, spanLayer));
+        searchRequestBuilder.setQuery(QueryBuilders.termQuery(NetworkAddressTable.SRC_SPAN_LAYER.getName(), spanLayer));
         searchRequestBuilder.setSize(0);
 
         SearchResponse searchResponse = searchRequestBuilder.execute().actionGet();
@@ -60,16 +60,16 @@ public NetworkAddressEsUIDAO(ElasticSearchClient client) {
         searchRequestBuilder.setSearchType(SearchType.DFS_QUERY_THEN_FETCH);
 
         int[] spanLayers = new int[] {SpanLayer.Database_VALUE, SpanLayer.Cache_VALUE, SpanLayer.MQ_VALUE};
-        searchRequestBuilder.setQuery(QueryBuilders.termsQuery(NetworkAddressTable.COLUMN_SPAN_LAYER, spanLayers));
+        searchRequestBuilder.setQuery(QueryBuilders.termsQuery(NetworkAddressTable.SRC_SPAN_LAYER.getName(), spanLayers));
         searchRequestBuilder.setSize(0);
 
-        TermsAggregationBuilder aggregationBuilder = AggregationBuilders.terms(NetworkAddressTable.COLUMN_SERVER_TYPE).field(NetworkAddressTable.COLUMN_SERVER_TYPE).size(100);
+        TermsAggregationBuilder aggregationBuilder = AggregationBuilders.terms(NetworkAddressTable.SERVER_TYPE.getName()).field(NetworkAddressTable.SERVER_TYPE.getName()).size(100);
 
         searchRequestBuilder.addAggregation(aggregationBuilder);
         SearchResponse searchResponse = searchRequestBuilder.execute().actionGet();
 
         List<ConjecturalApp> conjecturalApps = new LinkedList<>();
-        Terms serverTypeTerms = searchResponse.getAggregations().get(NetworkAddressTable.COLUMN_SERVER_TYPE);
+        Terms serverTypeTerms = searchResponse.getAggregations().get(NetworkAddressTable.SERVER_TYPE.getName());
         serverTypeTerms.getBuckets().forEach(serverTypeTerm -> {
             int serverType = serverTypeTerm.getKeyAsNumber().intValue();
 
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/SegmentDurationEsUIDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/SegmentDurationEsUIDAO.java
index 22f9b8405..1ea751945 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/SegmentDurationEsUIDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/SegmentDurationEsUIDAO.java
@@ -58,11 +58,11 @@ public TraceBrief loadTop(long startSecondTimeBucket, long endSecondTimeBucket,
 
         if (startSecondTimeBucket != 0 && endSecondTimeBucket != 0) {
             //TODO second
-            mustQueryList.add(QueryBuilders.rangeQuery(SegmentDurationTable.COLUMN_TIME_BUCKET).gte(startSecondTimeBucket).lte(endSecondTimeBucket));
+            mustQueryList.add(QueryBuilders.rangeQuery(SegmentDurationTable.TIME_BUCKET.getName()).gte(startSecondTimeBucket).lte(endSecondTimeBucket));
         }
 
         if (minDuration != 0 || maxDuration != 0) {
-            RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery(SegmentDurationTable.COLUMN_DURATION);
+            RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery(SegmentDurationTable.DURATION.getName());
             if (minDuration != 0) {
                 rangeQueryBuilder.gte(minDuration);
             }
@@ -72,13 +72,13 @@ public TraceBrief loadTop(long startSecondTimeBucket, long endSecondTimeBucket,
             boolQueryBuilder.must().add(rangeQueryBuilder);
         }
         if (StringUtils.isNotEmpty(operationName)) {
-            mustQueryList.add(QueryBuilders.matchQuery(SegmentDurationTable.COLUMN_SERVICE_NAME, operationName));
+            mustQueryList.add(QueryBuilders.matchQuery(SegmentDurationTable.SERVICE_NAME.getName(), operationName));
         }
         if (CollectionUtils.isNotEmpty(segmentIds)) {
-            boolQueryBuilder.must().add(QueryBuilders.termsQuery(SegmentDurationTable.COLUMN_SEGMENT_ID, segmentIds));
+            boolQueryBuilder.must().add(QueryBuilders.termsQuery(SegmentDurationTable.SEGMENT_ID.getName(), segmentIds));
         }
         if (applicationId != 0) {
-            boolQueryBuilder.must().add(QueryBuilders.termQuery(SegmentDurationTable.COLUMN_APPLICATION_ID, applicationId));
+            boolQueryBuilder.must().add(QueryBuilders.termQuery(SegmentDurationTable.APPLICATION_ID.getName(), applicationId));
         }
 
         searchRequestBuilder.setSize(limit);
@@ -92,11 +92,11 @@ public TraceBrief loadTop(long startSecondTimeBucket, long endSecondTimeBucket,
         for (SearchHit searchHit : searchResponse.getHits().getHits()) {
             BasicTrace basicTrace = new BasicTrace();
 
-            basicTrace.setSegmentId((String)searchHit.getSource().get(SegmentDurationTable.COLUMN_SEGMENT_ID));
-            basicTrace.setStart(((Number)searchHit.getSource().get(SegmentDurationTable.COLUMN_START_TIME)).longValue());
-            basicTrace.setOperationName((String)searchHit.getSource().get(SegmentDurationTable.COLUMN_SERVICE_NAME));
-            basicTrace.setDuration(((Number)searchHit.getSource().get(SegmentDurationTable.COLUMN_DURATION)).intValue());
-            basicTrace.setError(BooleanUtils.valueToBoolean(((Number)searchHit.getSource().get(SegmentDurationTable.COLUMN_IS_ERROR)).intValue()));
+            basicTrace.setSegmentId((String)searchHit.getSource().get(SegmentDurationTable.SEGMENT_ID.getName()));
+            basicTrace.setStart(((Number)searchHit.getSource().get(SegmentDurationTable.START_TIME.getName())).longValue());
+            basicTrace.setOperationName((String)searchHit.getSource().get(SegmentDurationTable.SERVICE_NAME.getName()));
+            basicTrace.setDuration(((Number)searchHit.getSource().get(SegmentDurationTable.DURATION.getName())).intValue());
+            basicTrace.setError(BooleanUtils.valueToBoolean(((Number)searchHit.getSource().get(SegmentDurationTable.IS_ERROR.getName())).intValue()));
             traceBrief.getTraces().add(basicTrace);
         }
 
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/SegmentEsUIDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/SegmentEsUIDAO.java
index 1158ff759..135619015 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/SegmentEsUIDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/SegmentEsUIDAO.java
@@ -45,7 +45,7 @@ public SegmentEsUIDAO(ElasticSearchClient client) {
     @Override public TraceSegmentObject load(String segmentId) {
         GetResponse response = getClient().prepareGet(SegmentTable.TABLE, segmentId).get();
         Map<String, Object> source = response.getSource();
-        String dataBinaryBase64 = (String)source.get(SegmentTable.COLUMN_DATA_BINARY);
+        String dataBinaryBase64 = (String)source.get(SegmentTable.DATA_BINARY.getName());
         if (StringUtils.isNotEmpty(dataBinaryBase64)) {
             byte[] dataBinary = Base64.getDecoder().decode(dataBinaryBase64);
             try {
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/ServiceAlarmEsUIDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/ServiceAlarmEsUIDAO.java
index 53967169b..77034ef27 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/ServiceAlarmEsUIDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/ServiceAlarmEsUIDAO.java
@@ -53,9 +53,9 @@ public Alarm loadAlarmList(String keyword, long startTimeBucket, long endTimeBuc
         searchRequestBuilder.setSearchType(SearchType.DFS_QUERY_THEN_FETCH);
 
         BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
-        boolQueryBuilder.must().add(QueryBuilders.rangeQuery(ServiceAlarmTable.COLUMN_LAST_TIME_BUCKET).gte(startTimeBucket).lte(endTimeBucket));
+        boolQueryBuilder.must().add(QueryBuilders.rangeQuery(ServiceAlarmTable.LAST_TIME_BUCKET.getName()).gte(startTimeBucket).lte(endTimeBucket));
         if (StringUtils.isNotEmpty(keyword)) {
-            boolQueryBuilder.must().add(QueryBuilders.matchQuery(ServiceAlarmTable.COLUMN_ALARM_CONTENT, keyword));
+            boolQueryBuilder.must().add(QueryBuilders.matchQuery(ServiceAlarmTable.ALARM_CONTENT.getName(), keyword));
         }
 
         searchRequestBuilder.setQuery(boolQueryBuilder);
@@ -69,15 +69,15 @@ public Alarm loadAlarmList(String keyword, long startTimeBucket, long endTimeBuc
         alarm.setTotal((int)searchResponse.getHits().getTotalHits());
         for (SearchHit searchHit : searchHits) {
             AlarmItem alarmItem = new AlarmItem();
-            alarmItem.setId(((Number)searchHit.getSource().get(ServiceAlarmTable.COLUMN_SERVICE_ID)).intValue());
-            alarmItem.setTitle((String)searchHit.getSource().get(ServiceAlarmTable.COLUMN_ALARM_CONTENT));
-            alarmItem.setContent((String)searchHit.getSource().get(ServiceAlarmTable.COLUMN_ALARM_CONTENT));
+            alarmItem.setId(((Number)searchHit.getSource().get(ServiceAlarmTable.SERVICE_ID.getName())).intValue());
+            alarmItem.setTitle((String)searchHit.getSource().get(ServiceAlarmTable.ALARM_CONTENT.getName()));
+            alarmItem.setContent((String)searchHit.getSource().get(ServiceAlarmTable.ALARM_CONTENT.getName()));
 
-            long lastTimeBucket = ((Number)searchHit.getSource().get(ServiceAlarmTable.COLUMN_LAST_TIME_BUCKET)).longValue();
+            long lastTimeBucket = ((Number)searchHit.getSource().get(ServiceAlarmTable.LAST_TIME_BUCKET.getName())).longValue();
             alarmItem.setStartTime(TimeBucketUtils.INSTANCE.formatMinuteTimeBucket(lastTimeBucket));
             alarmItem.setAlarmType(AlarmType.SERVICE);
 
-            int alarmType = ((Number)searchHit.getSource().get(ServiceAlarmTable.COLUMN_ALARM_TYPE)).intValue();
+            int alarmType = ((Number)searchHit.getSource().get(ServiceAlarmTable.ALARM_TYPE.getName())).intValue();
             if (org.apache.skywalking.apm.collector.storage.table.alarm.AlarmType.SLOW_RTT.getValue() == alarmType) {
                 alarmItem.setCauseType(CauseType.SLOW_RESPONSE);
             } else if (org.apache.skywalking.apm.collector.storage.table.alarm.AlarmType.ERROR_RATE.getValue() == alarmType) {
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/ServiceMetricEsUIDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/ServiceMetricEsUIDAO.java
index 2b10a5be1..7f1148bc8 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/ServiceMetricEsUIDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/ServiceMetricEsUIDAO.java
@@ -18,6 +18,11 @@
 
 package org.apache.skywalking.apm.collector.storage.es.dao.ui;
 
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
 import org.apache.skywalking.apm.collector.client.elasticsearch.ElasticSearchClient;
 import org.apache.skywalking.apm.collector.core.util.Const;
 import org.apache.skywalking.apm.collector.storage.dao.ui.IServiceMetricUIDAO;
@@ -46,8 +51,6 @@
 import org.elasticsearch.search.sort.SortBuilders;
 import org.elasticsearch.search.sort.SortOrder;
 
-import java.util.*;
-
 /**
  * @author peng-yongsheng
  */
@@ -72,9 +75,9 @@ public void accept(DurationPoint durationPoint) {
         MultiGetResponse multiGetResponse = prepareMultiGet.get();
         for (MultiGetItemResponse response : multiGetResponse.getResponses()) {
             if (response.getResponse().isExists()) {
-                long calls = ((Number) response.getResponse().getSource().get(ServiceMetricTable.COLUMN_TRANSACTION_CALLS)).longValue();
-                long durationSum = ((Number) response.getResponse().getSource().get(ServiceMetricTable.COLUMN_TRANSACTION_DURATION_SUM)).longValue();
-                trends.add((int) (durationSum / calls));
+                long calls = ((Number)response.getResponse().getSource().get(ServiceMetricTable.TRANSACTION_CALLS.getName())).longValue();
+                long durationSum = ((Number)response.getResponse().getSource().get(ServiceMetricTable.TRANSACTION_DURATION_SUM.getName())).longValue();
+                trends.add((int)(durationSum / calls));
             } else {
                 trends.add(0);
             }
@@ -99,9 +102,9 @@ public void accept(DurationPoint durationPoint) {
         int index = 0;
         for (MultiGetItemResponse response : multiGetResponse.getResponses()) {
             if (response.getResponse().isExists()) {
-                long calls = ((Number) response.getResponse().getSource().get(ServiceMetricTable.COLUMN_TRANSACTION_CALLS)).longValue();
+                long calls = ((Number)response.getResponse().getSource().get(ServiceMetricTable.TRANSACTION_CALLS.getName())).longValue();
                 long secondBetween = durationPoints.get(index).getSecondsBetween();
-                trends.add((int) (calls / secondBetween));
+                trends.add((int)(calls / secondBetween));
             } else {
                 trends.add(0);
             }
@@ -125,9 +128,9 @@ public void accept(DurationPoint durationPoint) {
         MultiGetResponse multiGetResponse = prepareMultiGet.get();
         for (MultiGetItemResponse response : multiGetResponse.getResponses()) {
             if (response.getResponse().isExists()) {
-                long calls = ((Number) response.getResponse().getSource().get(ServiceMetricTable.COLUMN_TRANSACTION_CALLS)).longValue();
-                long errorCalls = ((Number) response.getResponse().getSource().get(ServiceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS)).longValue();
-                trends.add((int) (((calls - errorCalls) / calls)) * 10000);
+                long calls = ((Number)response.getResponse().getSource().get(ServiceMetricTable.TRANSACTION_CALLS.getName())).longValue();
+                long errorCalls = ((Number)response.getResponse().getSource().get(ServiceMetricTable.TRANSACTION_ERROR_CALLS.getName())).longValue();
+                trends.add((int)(((calls - errorCalls) / calls)) * 10000);
             } else {
                 trends.add(10000);
             }
@@ -137,7 +140,7 @@ public void accept(DurationPoint durationPoint) {
 
     @Override
     public List<Node> getServicesMetric(Step step, long startTime, long endTime, MetricSource metricSource,
-                                        Collection<Integer> serviceIds) {
+        Collection<Integer> serviceIds) {
         String tableName = TimePyramidTableNameBuilder.build(step, ServiceMetricTable.TABLE);
 
         SearchRequestBuilder searchRequestBuilder = getClient().prepareSearch(tableName);
@@ -145,32 +148,32 @@ public void accept(DurationPoint durationPoint) {
         searchRequestBuilder.setSearchType(SearchType.DFS_QUERY_THEN_FETCH);
 
         BoolQueryBuilder boolQuery = QueryBuilders.boolQuery();
-        boolQuery.must().add(QueryBuilders.rangeQuery(ServiceMetricTable.COLUMN_TIME_BUCKET).gte(startTime).lte(endTime));
-        boolQuery.must().add(QueryBuilders.termsQuery(ServiceMetricTable.COLUMN_SERVICE_ID, serviceIds));
-        boolQuery.must().add(QueryBuilders.termQuery(ServiceMetricTable.COLUMN_SOURCE_VALUE, metricSource.getValue()));
+        boolQuery.must().add(QueryBuilders.rangeQuery(ServiceMetricTable.TIME_BUCKET.getName()).gte(startTime).lte(endTime));
+        boolQuery.must().add(QueryBuilders.termsQuery(ServiceMetricTable.SERVICE_ID.getName(), serviceIds));
+        boolQuery.must().add(QueryBuilders.termQuery(ServiceMetricTable.SOURCE_VALUE.getName(), metricSource.getValue()));
 
         searchRequestBuilder.setQuery(boolQuery);
         searchRequestBuilder.setSize(0);
 
-        TermsAggregationBuilder aggregationBuilder = AggregationBuilders.terms(ServiceMetricTable.COLUMN_SERVICE_ID).field(ServiceMetricTable.COLUMN_SERVICE_ID).size(100);
-        aggregationBuilder.subAggregation(AggregationBuilders.sum(ServiceMetricTable.COLUMN_TRANSACTION_CALLS).field(ServiceMetricTable.COLUMN_TRANSACTION_CALLS));
-        aggregationBuilder.subAggregation(AggregationBuilders.sum(ServiceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS).field(ServiceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS));
+        TermsAggregationBuilder aggregationBuilder = AggregationBuilders.terms(ServiceMetricTable.SERVICE_ID.getName()).field(ServiceMetricTable.SERVICE_ID.getName()).size(100);
+        aggregationBuilder.subAggregation(AggregationBuilders.sum(ServiceMetricTable.TRANSACTION_CALLS.getName()).field(ServiceMetricTable.TRANSACTION_CALLS.getName()));
+        aggregationBuilder.subAggregation(AggregationBuilders.sum(ServiceMetricTable.TRANSACTION_ERROR_CALLS.getName()).field(ServiceMetricTable.TRANSACTION_ERROR_CALLS.getName()));
 
         searchRequestBuilder.addAggregation(aggregationBuilder);
         SearchResponse searchResponse = searchRequestBuilder.execute().actionGet();
 
         List<Node> nodes = new LinkedList<>();
-        Terms serviceIdTerms = searchResponse.getAggregations().get(ServiceMetricTable.COLUMN_SERVICE_ID);
+        Terms serviceIdTerms = searchResponse.getAggregations().get(ServiceMetricTable.SERVICE_ID.getName());
         serviceIdTerms.getBuckets().forEach(serviceIdBucket -> {
             int serviceId = serviceIdBucket.getKeyAsNumber().intValue();
 
-            Sum callsSum = serviceIdBucket.getAggregations().get(ServiceMetricTable.COLUMN_TRANSACTION_CALLS);
-            Sum errorCallsSum = serviceIdBucket.getAggregations().get(ServiceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS);
+            Sum callsSum = serviceIdBucket.getAggregations().get(ServiceMetricTable.TRANSACTION_CALLS.getName());
+            Sum errorCallsSum = serviceIdBucket.getAggregations().get(ServiceMetricTable.TRANSACTION_ERROR_CALLS.getName());
 
             ServiceNode serviceNode = new ServiceNode();
             serviceNode.setId(serviceId);
-            serviceNode.setCalls((long) callsSum.getValue());
-            serviceNode.setSla((int) (((callsSum.getValue() - errorCallsSum.getValue()) / callsSum.getValue()) * 10000));
+            serviceNode.setCalls((long)callsSum.getValue());
+            serviceNode.setSla((int)(((callsSum.getValue() - errorCallsSum.getValue()) / callsSum.getValue()) * 10000));
             nodes.add(serviceNode);
         });
         return nodes;
@@ -178,7 +181,7 @@ public void accept(DurationPoint durationPoint) {
 
     @Override
     public List<ServiceMetric> getSlowService(int applicationId, Step step, long startTimeBucket, long endTimeBucket,
-                                              Integer topN, MetricSource metricSource) {
+        Integer topN, MetricSource metricSource) {
         String tableName = TimePyramidTableNameBuilder.build(step, ServiceMetricTable.TABLE);
 
         SearchRequestBuilder searchRequestBuilder = getClient().prepareSearch(tableName);
@@ -186,15 +189,15 @@ public void accept(DurationPoint durationPoint) {
         searchRequestBuilder.setSearchType(SearchType.DFS_QUERY_THEN_FETCH);
 
         BoolQueryBuilder boolQuery = QueryBuilders.boolQuery();
-        boolQuery.must().add(QueryBuilders.rangeQuery(ServiceMetricTable.COLUMN_TIME_BUCKET).gte(startTimeBucket).lte(endTimeBucket));
+        boolQuery.must().add(QueryBuilders.rangeQuery(ServiceMetricTable.TIME_BUCKET.getName()).gte(startTimeBucket).lte(endTimeBucket));
         if (applicationId != 0) {
-            boolQuery.must().add(QueryBuilders.termQuery(ServiceMetricTable.COLUMN_APPLICATION_ID, applicationId));
+            boolQuery.must().add(QueryBuilders.termQuery(ServiceMetricTable.APPLICATION_ID.getName(), applicationId));
         }
-        boolQuery.must().add(QueryBuilders.termQuery(ServiceMetricTable.COLUMN_SOURCE_VALUE, metricSource.getValue()));
+        boolQuery.must().add(QueryBuilders.termQuery(ServiceMetricTable.SOURCE_VALUE.getName(), metricSource.getValue()));
 
         searchRequestBuilder.setQuery(boolQuery);
         searchRequestBuilder.setSize(topN * 60);
-        searchRequestBuilder.addSort(SortBuilders.fieldSort(ServiceMetricTable.COLUMN_TRANSACTION_AVERAGE_DURATION).order(SortOrder.DESC));
+        searchRequestBuilder.addSort(SortBuilders.fieldSort(ServiceMetricTable.TRANSACTION_AVERAGE_DURATION.getName()).order(SortOrder.DESC));
         SearchResponse searchResponse = searchRequestBuilder.execute().actionGet();
 
         SearchHit[] searchHits = searchResponse.getHits().getHits();
@@ -202,12 +205,12 @@ public void accept(DurationPoint durationPoint) {
         Set<Integer> serviceIds = new HashSet<>();
         List<ServiceMetric> serviceMetrics = new LinkedList<>();
         for (SearchHit searchHit : searchHits) {
-            int serviceId = ((Number) searchHit.getSource().get(ServiceMetricTable.COLUMN_SERVICE_ID)).intValue();
+            int serviceId = ((Number)searchHit.getSource().get(ServiceMetricTable.SERVICE_ID.getName())).intValue();
             if (!serviceIds.contains(serviceId)) {
                 ServiceMetric serviceMetric = new ServiceMetric();
                 serviceMetric.setId(serviceId);
-                serviceMetric.setCalls(((Number) searchHit.getSource().get(ServiceMetricTable.COLUMN_TRANSACTION_CALLS)).longValue());
-                serviceMetric.setAvgResponseTime(((Number) searchHit.getSource().get(ServiceMetricTable.COLUMN_TRANSACTION_AVERAGE_DURATION)).intValue());
+                serviceMetric.setCalls(((Number)searchHit.getSource().get(ServiceMetricTable.TRANSACTION_CALLS.getName())).longValue());
+                serviceMetric.setAvgResponseTime(((Number)searchHit.getSource().get(ServiceMetricTable.TRANSACTION_AVERAGE_DURATION.getName())).intValue());
                 serviceMetrics.add(serviceMetric);
 
                 serviceIds.add(serviceId);
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/ServiceNameServiceEsUIDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/ServiceNameServiceEsUIDAO.java
index da385aac9..d937dfb00 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/ServiceNameServiceEsUIDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/ServiceNameServiceEsUIDAO.java
@@ -47,7 +47,7 @@ public ServiceNameServiceEsUIDAO(ElasticSearchClient client) {
         SearchRequestBuilder searchRequestBuilder = getClient().prepareSearch(ServiceNameTable.TABLE);
         searchRequestBuilder.setTypes(ServiceNameTable.TABLE_TYPE);
         searchRequestBuilder.setSearchType(SearchType.DFS_QUERY_THEN_FETCH);
-        searchRequestBuilder.setQuery(QueryBuilders.termQuery(ServiceNameTable.COLUMN_SRC_SPAN_TYPE, SpanType.Entry_VALUE));
+        searchRequestBuilder.setQuery(QueryBuilders.termQuery(ServiceNameTable.SRC_SPAN_TYPE.getName(), SpanType.Entry_VALUE));
         searchRequestBuilder.setSize(0);
 
         SearchResponse searchResponse = searchRequestBuilder.execute().actionGet();
@@ -62,11 +62,11 @@ public ServiceNameServiceEsUIDAO(ElasticSearchClient client) {
 
         if (StringUtils.isNotEmpty(keyword)) {
             BoolQueryBuilder boolQuery = QueryBuilders.boolQuery();
-            boolQuery.must().add(QueryBuilders.matchQuery(ServiceNameTable.COLUMN_SERVICE_NAME, keyword));
-            boolQuery.must().add(QueryBuilders.termQuery(ServiceNameTable.COLUMN_SRC_SPAN_TYPE, SpanType.Entry_VALUE));
+            boolQuery.must().add(QueryBuilders.matchQuery(ServiceNameTable.SERVICE_NAME.getName(), keyword));
+            boolQuery.must().add(QueryBuilders.termQuery(ServiceNameTable.SRC_SPAN_TYPE.getName(), SpanType.Entry_VALUE));
             searchRequestBuilder.setQuery(boolQuery);
         } else {
-            searchRequestBuilder.setQuery(QueryBuilders.termQuery(ServiceNameTable.COLUMN_SRC_SPAN_TYPE, SpanType.Entry_VALUE));
+            searchRequestBuilder.setQuery(QueryBuilders.termQuery(ServiceNameTable.SRC_SPAN_TYPE.getName(), SpanType.Entry_VALUE));
         }
 
         SearchResponse searchResponse = searchRequestBuilder.execute().actionGet();
@@ -75,8 +75,8 @@ public ServiceNameServiceEsUIDAO(ElasticSearchClient client) {
         List<ServiceInfo> serviceInfos = new LinkedList<>();
         for (SearchHit searchHit : searchHits) {
             ServiceInfo serviceInfo = new ServiceInfo();
-            serviceInfo.setId(((Number)searchHit.getSource().get(ServiceNameTable.COLUMN_SERVICE_ID)).intValue());
-            serviceInfo.setName((String)searchHit.getSource().get(ServiceNameTable.COLUMN_SERVICE_NAME));
+            serviceInfo.setId(((Number)searchHit.getSource().get(ServiceNameTable.SERVICE_ID.getName())).intValue());
+            serviceInfo.setName((String)searchHit.getSource().get(ServiceNameTable.SERVICE_NAME.getName()));
             serviceInfos.add(serviceInfo);
         }
         return serviceInfos;
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/ServiceReferenceEsMetricUIDAO.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/ServiceReferenceEsMetricUIDAO.java
index bfc6dfff4..7cf186179 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/ServiceReferenceEsMetricUIDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/dao/ui/ServiceReferenceEsMetricUIDAO.java
@@ -56,24 +56,24 @@ public ServiceReferenceEsMetricUIDAO(ElasticSearchClient client) {
         searchRequestBuilder.setSearchType(SearchType.DFS_QUERY_THEN_FETCH);
 
         BoolQueryBuilder boolQuery = QueryBuilders.boolQuery();
-        boolQuery.must().add(QueryBuilders.rangeQuery(ServiceReferenceMetricTable.COLUMN_TIME_BUCKET).gte(startTimeBucket).lte(endTimeBucket));
-        boolQuery.must().add(QueryBuilders.termQuery(ServiceReferenceMetricTable.COLUMN_BEHIND_SERVICE_ID, behindServiceId));
-        boolQuery.must().add(QueryBuilders.termQuery(ServiceReferenceMetricTable.COLUMN_SOURCE_VALUE, metricSource.getValue()));
+        boolQuery.must().add(QueryBuilders.rangeQuery(ServiceReferenceMetricTable.TIME_BUCKET.getName()).gte(startTimeBucket).lte(endTimeBucket));
+        boolQuery.must().add(QueryBuilders.termQuery(ServiceReferenceMetricTable.BEHIND_SERVICE_ID.getName(), behindServiceId));
+        boolQuery.must().add(QueryBuilders.termQuery(ServiceReferenceMetricTable.SOURCE_VALUE.getName(), metricSource.getValue()));
 
         searchRequestBuilder.setQuery(boolQuery);
         searchRequestBuilder.setSize(0);
 
-        TermsAggregationBuilder aggregationBuilder = AggregationBuilders.terms(ServiceReferenceMetricTable.COLUMN_FRONT_SERVICE_ID).field(ServiceReferenceMetricTable.COLUMN_FRONT_SERVICE_ID).size(100);
-        aggregationBuilder.subAggregation(AggregationBuilders.sum(ServiceReferenceMetricTable.COLUMN_TRANSACTION_CALLS).field(ServiceReferenceMetricTable.COLUMN_TRANSACTION_CALLS));
-        aggregationBuilder.subAggregation(AggregationBuilders.sum(ServiceReferenceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS).field(ServiceReferenceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS));
-        aggregationBuilder.subAggregation(AggregationBuilders.sum(ServiceReferenceMetricTable.COLUMN_TRANSACTION_DURATION_SUM).field(ServiceReferenceMetricTable.COLUMN_TRANSACTION_DURATION_SUM));
-        aggregationBuilder.subAggregation(AggregationBuilders.sum(ServiceReferenceMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM).field(ServiceReferenceMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM));
+        TermsAggregationBuilder aggregationBuilder = AggregationBuilders.terms(ServiceReferenceMetricTable.FRONT_SERVICE_ID.getName()).field(ServiceReferenceMetricTable.FRONT_SERVICE_ID.getName()).size(100);
+        aggregationBuilder.subAggregation(AggregationBuilders.sum(ServiceReferenceMetricTable.TRANSACTION_CALLS.getName()).field(ServiceReferenceMetricTable.TRANSACTION_CALLS.getName()));
+        aggregationBuilder.subAggregation(AggregationBuilders.sum(ServiceReferenceMetricTable.TRANSACTION_ERROR_CALLS.getName()).field(ServiceReferenceMetricTable.TRANSACTION_ERROR_CALLS.getName()));
+        aggregationBuilder.subAggregation(AggregationBuilders.sum(ServiceReferenceMetricTable.TRANSACTION_DURATION_SUM.getName()).field(ServiceReferenceMetricTable.TRANSACTION_DURATION_SUM.getName()));
+        aggregationBuilder.subAggregation(AggregationBuilders.sum(ServiceReferenceMetricTable.TRANSACTION_ERROR_DURATION_SUM.getName()).field(ServiceReferenceMetricTable.TRANSACTION_ERROR_DURATION_SUM.getName()));
 
         searchRequestBuilder.addAggregation(aggregationBuilder);
         SearchResponse searchResponse = searchRequestBuilder.execute().actionGet();
 
         List<ServiceReferenceMetric> referenceMetrics = new LinkedList<>();
-        Terms frontServiceIdTerms = searchResponse.getAggregations().get(ServiceReferenceMetricTable.COLUMN_FRONT_SERVICE_ID);
+        Terms frontServiceIdTerms = searchResponse.getAggregations().get(ServiceReferenceMetricTable.FRONT_SERVICE_ID.getName());
         buildNodeByBehindServiceId(referenceMetrics, frontServiceIdTerms, behindServiceId);
 
         return referenceMetrics;
@@ -89,24 +89,24 @@ public ServiceReferenceEsMetricUIDAO(ElasticSearchClient client) {
         searchRequestBuilder.setSearchType(SearchType.DFS_QUERY_THEN_FETCH);
 
         BoolQueryBuilder boolQuery = QueryBuilders.boolQuery();
-        boolQuery.must().add(QueryBuilders.rangeQuery(ServiceReferenceMetricTable.COLUMN_TIME_BUCKET).gte(startTimeBucket).lte(endTimeBucket));
-        boolQuery.must().add(QueryBuilders.termQuery(ServiceReferenceMetricTable.COLUMN_FRONT_SERVICE_ID, frontServiceId));
-        boolQuery.must().add(QueryBuilders.termQuery(ServiceReferenceMetricTable.COLUMN_SOURCE_VALUE, metricSource.getValue()));
+        boolQuery.must().add(QueryBuilders.rangeQuery(ServiceReferenceMetricTable.TIME_BUCKET.getName()).gte(startTimeBucket).lte(endTimeBucket));
+        boolQuery.must().add(QueryBuilders.termQuery(ServiceReferenceMetricTable.FRONT_SERVICE_ID.getName(), frontServiceId));
+        boolQuery.must().add(QueryBuilders.termQuery(ServiceReferenceMetricTable.SOURCE_VALUE.getName(), metricSource.getValue()));
 
         searchRequestBuilder.setQuery(boolQuery);
         searchRequestBuilder.setSize(0);
 
-        TermsAggregationBuilder aggregationBuilder = AggregationBuilders.terms(ServiceReferenceMetricTable.COLUMN_BEHIND_SERVICE_ID).field(ServiceReferenceMetricTable.COLUMN_BEHIND_SERVICE_ID).size(100);
-        aggregationBuilder.subAggregation(AggregationBuilders.sum(ServiceReferenceMetricTable.COLUMN_TRANSACTION_CALLS).field(ServiceReferenceMetricTable.COLUMN_TRANSACTION_CALLS));
-        aggregationBuilder.subAggregation(AggregationBuilders.sum(ServiceReferenceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS).field(ServiceReferenceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS));
-        aggregationBuilder.subAggregation(AggregationBuilders.sum(ServiceReferenceMetricTable.COLUMN_TRANSACTION_DURATION_SUM).field(ServiceReferenceMetricTable.COLUMN_TRANSACTION_DURATION_SUM));
-        aggregationBuilder.subAggregation(AggregationBuilders.sum(ServiceReferenceMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM).field(ServiceReferenceMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM));
+        TermsAggregationBuilder aggregationBuilder = AggregationBuilders.terms(ServiceReferenceMetricTable.BEHIND_SERVICE_ID.getName()).field(ServiceReferenceMetricTable.BEHIND_SERVICE_ID.getName()).size(100);
+        aggregationBuilder.subAggregation(AggregationBuilders.sum(ServiceReferenceMetricTable.TRANSACTION_CALLS.getName()).field(ServiceReferenceMetricTable.TRANSACTION_CALLS.getName()));
+        aggregationBuilder.subAggregation(AggregationBuilders.sum(ServiceReferenceMetricTable.TRANSACTION_ERROR_CALLS.getName()).field(ServiceReferenceMetricTable.TRANSACTION_ERROR_CALLS.getName()));
+        aggregationBuilder.subAggregation(AggregationBuilders.sum(ServiceReferenceMetricTable.TRANSACTION_DURATION_SUM.getName()).field(ServiceReferenceMetricTable.TRANSACTION_DURATION_SUM.getName()));
+        aggregationBuilder.subAggregation(AggregationBuilders.sum(ServiceReferenceMetricTable.TRANSACTION_ERROR_DURATION_SUM.getName()).field(ServiceReferenceMetricTable.TRANSACTION_ERROR_DURATION_SUM.getName()));
 
         searchRequestBuilder.addAggregation(aggregationBuilder);
         SearchResponse searchResponse = searchRequestBuilder.execute().actionGet();
 
         List<ServiceReferenceMetric> referenceMetrics = new LinkedList<>();
-        Terms behindServiceIdTerms = searchResponse.getAggregations().get(ServiceReferenceMetricTable.COLUMN_BEHIND_SERVICE_ID);
+        Terms behindServiceIdTerms = searchResponse.getAggregations().get(ServiceReferenceMetricTable.BEHIND_SERVICE_ID.getName());
         buildNodeByFrontServiceId(referenceMetrics, behindServiceIdTerms, frontServiceId);
 
         return referenceMetrics;
@@ -117,10 +117,10 @@ private void buildNodeByFrontServiceId(List<ServiceReferenceMetric> referenceMet
         behindServiceIdTerms.getBuckets().forEach(behindServiceIdBucket -> {
             int behindServiceId = behindServiceIdBucket.getKeyAsNumber().intValue();
 
-            Sum callsSum = behindServiceIdBucket.getAggregations().get(ServiceReferenceMetricTable.COLUMN_TRANSACTION_CALLS);
-            Sum errorCallsSum = behindServiceIdBucket.getAggregations().get(ServiceReferenceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS);
-            Sum durationSum = behindServiceIdBucket.getAggregations().get(ServiceReferenceMetricTable.COLUMN_TRANSACTION_DURATION_SUM);
-            Sum errorDurationSum = behindServiceIdBucket.getAggregations().get(ServiceReferenceMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM);
+            Sum callsSum = behindServiceIdBucket.getAggregations().get(ServiceReferenceMetricTable.TRANSACTION_CALLS.getName());
+            Sum errorCallsSum = behindServiceIdBucket.getAggregations().get(ServiceReferenceMetricTable.TRANSACTION_ERROR_CALLS.getName());
+            Sum durationSum = behindServiceIdBucket.getAggregations().get(ServiceReferenceMetricTable.TRANSACTION_DURATION_SUM.getName());
+            Sum errorDurationSum = behindServiceIdBucket.getAggregations().get(ServiceReferenceMetricTable.TRANSACTION_ERROR_DURATION_SUM.getName());
 
             ServiceReferenceMetric referenceMetric = new ServiceReferenceMetric();
             referenceMetric.setSource(frontServiceId);
@@ -138,10 +138,10 @@ private void buildNodeByBehindServiceId(List<ServiceReferenceMetric> referenceMe
         frontServiceIdTerms.getBuckets().forEach(frontServiceIdBucket -> {
             int frontServiceId = frontServiceIdBucket.getKeyAsNumber().intValue();
 
-            Sum callsSum = frontServiceIdBucket.getAggregations().get(ServiceReferenceMetricTable.COLUMN_TRANSACTION_CALLS);
-            Sum errorCallsSum = frontServiceIdBucket.getAggregations().get(ServiceReferenceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS);
-            Sum durationSum = frontServiceIdBucket.getAggregations().get(ServiceReferenceMetricTable.COLUMN_TRANSACTION_DURATION_SUM);
-            Sum errorDurationSum = frontServiceIdBucket.getAggregations().get(ServiceReferenceMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM);
+            Sum callsSum = frontServiceIdBucket.getAggregations().get(ServiceReferenceMetricTable.TRANSACTION_CALLS.getName());
+            Sum errorCallsSum = frontServiceIdBucket.getAggregations().get(ServiceReferenceMetricTable.TRANSACTION_ERROR_CALLS.getName());
+            Sum durationSum = frontServiceIdBucket.getAggregations().get(ServiceReferenceMetricTable.TRANSACTION_DURATION_SUM.getName());
+            Sum errorDurationSum = frontServiceIdBucket.getAggregations().get(ServiceReferenceMetricTable.TRANSACTION_ERROR_DURATION_SUM.getName());
 
             ServiceReferenceMetric referenceMetric = new ServiceReferenceMetric();
             referenceMetric.setTarget(behindServiceId);
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/GlobalTraceEsTableDefine.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/GlobalTraceEsTableDefine.java
index dd7233fcc..5eb469a90 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/GlobalTraceEsTableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/GlobalTraceEsTableDefine.java
@@ -32,12 +32,12 @@ public GlobalTraceEsTableDefine() {
     }
 
     @Override public int refreshInterval() {
-        return 5;
+        return 3;
     }
 
     @Override public void initialize() {
-        addColumn(new ElasticSearchColumnDefine(GlobalTraceTable.COLUMN_SEGMENT_ID, ElasticSearchColumnDefine.Type.Keyword.name()));
-        addColumn(new ElasticSearchColumnDefine(GlobalTraceTable.COLUMN_GLOBAL_TRACE_ID, ElasticSearchColumnDefine.Type.Keyword.name()));
-        addColumn(new ElasticSearchColumnDefine(GlobalTraceTable.COLUMN_TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(GlobalTraceTable.SEGMENT_ID, ElasticSearchColumnDefine.Type.Keyword.name()));
+        addColumn(new ElasticSearchColumnDefine(GlobalTraceTable.TRACE_ID, ElasticSearchColumnDefine.Type.Keyword.name()));
+        addColumn(new ElasticSearchColumnDefine(GlobalTraceTable.TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/SegmentDurationEsTableDefine.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/SegmentDurationEsTableDefine.java
index 02d0a69d4..f0bff4b8c 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/SegmentDurationEsTableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/SegmentDurationEsTableDefine.java
@@ -32,18 +32,18 @@ public SegmentDurationEsTableDefine() {
     }
 
     @Override public int refreshInterval() {
-        return 5;
+        return 3;
     }
 
     @Override public void initialize() {
-        addColumn(new ElasticSearchColumnDefine(SegmentDurationTable.COLUMN_SEGMENT_ID, ElasticSearchColumnDefine.Type.Keyword.name()));
-        addColumn(new ElasticSearchColumnDefine(SegmentDurationTable.COLUMN_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(SegmentDurationTable.COLUMN_SERVICE_NAME, ElasticSearchColumnDefine.Type.Text.name()));
-        addColumn(new ElasticSearchColumnDefine(SegmentDurationTable.COLUMN_TRACE_ID, ElasticSearchColumnDefine.Type.Keyword.name()));
-        addColumn(new ElasticSearchColumnDefine(SegmentDurationTable.COLUMN_DURATION, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(SegmentDurationTable.COLUMN_START_TIME, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(SegmentDurationTable.COLUMN_END_TIME, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(SegmentDurationTable.COLUMN_IS_ERROR, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(SegmentDurationTable.COLUMN_TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(SegmentDurationTable.SEGMENT_ID, ElasticSearchColumnDefine.Type.Keyword.name()));
+        addColumn(new ElasticSearchColumnDefine(SegmentDurationTable.APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(SegmentDurationTable.SERVICE_NAME, ElasticSearchColumnDefine.Type.Text.name()));
+        addColumn(new ElasticSearchColumnDefine(SegmentDurationTable.TRACE_ID, ElasticSearchColumnDefine.Type.Keyword.name()));
+        addColumn(new ElasticSearchColumnDefine(SegmentDurationTable.DURATION, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(SegmentDurationTable.START_TIME, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(SegmentDurationTable.END_TIME, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(SegmentDurationTable.IS_ERROR, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(SegmentDurationTable.TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/SegmentEsTableDefine.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/SegmentEsTableDefine.java
index fbec27d9f..927aea5f5 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/SegmentEsTableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/SegmentEsTableDefine.java
@@ -32,11 +32,11 @@ public SegmentEsTableDefine() {
     }
 
     @Override public int refreshInterval() {
-        return 10;
+        return 3;
     }
 
     @Override public void initialize() {
-        addColumn(new ElasticSearchColumnDefine(SegmentTable.COLUMN_DATA_BINARY, ElasticSearchColumnDefine.Type.Binary.name()));
-        addColumn(new ElasticSearchColumnDefine(SegmentTable.COLUMN_TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(SegmentTable.DATA_BINARY, ElasticSearchColumnDefine.Type.Binary.name()));
+        addColumn(new ElasticSearchColumnDefine(SegmentTable.TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/acp/AbstractApplicationComponentEsTableDefine.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/acp/AbstractApplicationComponentEsTableDefine.java
index 0473554a9..364e1ad06 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/acp/AbstractApplicationComponentEsTableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/acp/AbstractApplicationComponentEsTableDefine.java
@@ -32,9 +32,9 @@
     }
 
     @Override public final void initialize() {
-        addColumn(new ElasticSearchColumnDefine(ApplicationComponentTable.COLUMN_METRIC_ID, ElasticSearchColumnDefine.Type.Keyword.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationComponentTable.COLUMN_COMPONENT_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationComponentTable.COLUMN_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationComponentTable.COLUMN_TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationComponentTable.METRIC_ID, ElasticSearchColumnDefine.Type.Keyword.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationComponentTable.COMPONENT_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationComponentTable.APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationComponentTable.TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/alarm/AbstractApplicationAlarmListEsTableDefine.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/alarm/AbstractApplicationAlarmListEsTableDefine.java
index 408328f46..f690062f4 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/alarm/AbstractApplicationAlarmListEsTableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/alarm/AbstractApplicationAlarmListEsTableDefine.java
@@ -32,11 +32,11 @@
     }
 
     @Override public void initialize() {
-        addColumn(new ElasticSearchColumnDefine(ApplicationAlarmListTable.COLUMN_METRIC_ID, ElasticSearchColumnDefine.Type.Keyword.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationAlarmListTable.COLUMN_ALARM_CONTENT, ElasticSearchColumnDefine.Type.Text.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationAlarmListTable.COLUMN_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationAlarmListTable.COLUMN_SOURCE_VALUE, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationAlarmListTable.COLUMN_ALARM_TYPE, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationAlarmListTable.COLUMN_TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationAlarmListTable.METRIC_ID, ElasticSearchColumnDefine.Type.Keyword.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationAlarmListTable.ALARM_CONTENT, ElasticSearchColumnDefine.Type.Text.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationAlarmListTable.APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationAlarmListTable.SOURCE_VALUE, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationAlarmListTable.ALARM_TYPE, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationAlarmListTable.TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/alarm/ApplicationAlarmEsTableDefine.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/alarm/ApplicationAlarmEsTableDefine.java
index 1c0cd6285..0d31cbcf8 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/alarm/ApplicationAlarmEsTableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/alarm/ApplicationAlarmEsTableDefine.java
@@ -36,13 +36,13 @@ public ApplicationAlarmEsTableDefine() {
     }
 
     @Override public void initialize() {
-        addColumn(new ElasticSearchColumnDefine(ApplicationAlarmTable.COLUMN_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationAlarmTable.APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
 
-        addColumn(new ElasticSearchColumnDefine(ApplicationAlarmTable.COLUMN_SOURCE_VALUE, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationAlarmTable.COLUMN_ALARM_TYPE, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationAlarmTable.SOURCE_VALUE, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationAlarmTable.ALARM_TYPE, ElasticSearchColumnDefine.Type.Integer.name()));
 
-        addColumn(new ElasticSearchColumnDefine(ApplicationAlarmTable.COLUMN_ALARM_CONTENT, ElasticSearchColumnDefine.Type.Text.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationAlarmTable.ALARM_CONTENT, ElasticSearchColumnDefine.Type.Text.name()));
 
-        addColumn(new ElasticSearchColumnDefine(ApplicationAlarmTable.COLUMN_LAST_TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationAlarmTable.LAST_TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/alarm/ApplicationReferenceAlarmEsTableDefine.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/alarm/ApplicationReferenceAlarmEsTableDefine.java
index 4f987d2cf..b86613139 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/alarm/ApplicationReferenceAlarmEsTableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/alarm/ApplicationReferenceAlarmEsTableDefine.java
@@ -36,14 +36,14 @@ public ApplicationReferenceAlarmEsTableDefine() {
     }
 
     @Override public void initialize() {
-        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceAlarmTable.COLUMN_FRONT_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceAlarmTable.COLUMN_BEHIND_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceAlarmTable.FRONT_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceAlarmTable.BEHIND_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
 
-        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceAlarmTable.COLUMN_SOURCE_VALUE, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceAlarmTable.COLUMN_ALARM_TYPE, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceAlarmTable.SOURCE_VALUE, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceAlarmTable.ALARM_TYPE, ElasticSearchColumnDefine.Type.Integer.name()));
 
-        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceAlarmTable.COLUMN_ALARM_CONTENT, ElasticSearchColumnDefine.Type.Text.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceAlarmTable.ALARM_CONTENT, ElasticSearchColumnDefine.Type.Text.name()));
 
-        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceAlarmTable.COLUMN_LAST_TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceAlarmTable.LAST_TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/alarm/ApplicationReferenceAlarmListEsTableDefine.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/alarm/ApplicationReferenceAlarmListEsTableDefine.java
index 18c8e5438..c1d041837 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/alarm/ApplicationReferenceAlarmListEsTableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/alarm/ApplicationReferenceAlarmListEsTableDefine.java
@@ -36,14 +36,14 @@ public ApplicationReferenceAlarmListEsTableDefine() {
     }
 
     @Override public void initialize() {
-        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceAlarmListTable.COLUMN_FRONT_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceAlarmListTable.COLUMN_BEHIND_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceAlarmListTable.FRONT_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceAlarmListTable.BEHIND_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
 
-        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceAlarmListTable.COLUMN_SOURCE_VALUE, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceAlarmListTable.COLUMN_ALARM_TYPE, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceAlarmListTable.SOURCE_VALUE, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceAlarmListTable.ALARM_TYPE, ElasticSearchColumnDefine.Type.Integer.name()));
 
-        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceAlarmListTable.COLUMN_ALARM_CONTENT, ElasticSearchColumnDefine.Type.Text.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceAlarmListTable.ALARM_CONTENT, ElasticSearchColumnDefine.Type.Text.name()));
 
-        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceAlarmListTable.COLUMN_TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceAlarmListTable.TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/alarm/InstanceAlarmEsTableDefine.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/alarm/InstanceAlarmEsTableDefine.java
index 85949d0a1..bc876c8ce 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/alarm/InstanceAlarmEsTableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/alarm/InstanceAlarmEsTableDefine.java
@@ -36,14 +36,14 @@ public InstanceAlarmEsTableDefine() {
     }
 
     @Override public void initialize() {
-        addColumn(new ElasticSearchColumnDefine(InstanceAlarmTable.COLUMN_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceAlarmTable.COLUMN_INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceAlarmTable.APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceAlarmTable.INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
 
-        addColumn(new ElasticSearchColumnDefine(InstanceAlarmTable.COLUMN_SOURCE_VALUE, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceAlarmTable.COLUMN_ALARM_TYPE, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceAlarmTable.SOURCE_VALUE, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceAlarmTable.ALARM_TYPE, ElasticSearchColumnDefine.Type.Integer.name()));
 
-        addColumn(new ElasticSearchColumnDefine(InstanceAlarmTable.COLUMN_ALARM_CONTENT, ElasticSearchColumnDefine.Type.Text.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceAlarmTable.ALARM_CONTENT, ElasticSearchColumnDefine.Type.Text.name()));
 
-        addColumn(new ElasticSearchColumnDefine(InstanceAlarmTable.COLUMN_LAST_TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceAlarmTable.LAST_TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/alarm/InstanceAlarmListEsTableDefine.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/alarm/InstanceAlarmListEsTableDefine.java
index 824477361..c25977c73 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/alarm/InstanceAlarmListEsTableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/alarm/InstanceAlarmListEsTableDefine.java
@@ -36,14 +36,14 @@ public InstanceAlarmListEsTableDefine() {
     }
 
     @Override public void initialize() {
-        addColumn(new ElasticSearchColumnDefine(InstanceAlarmListTable.COLUMN_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceAlarmListTable.COLUMN_INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceAlarmListTable.APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceAlarmListTable.INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
 
-        addColumn(new ElasticSearchColumnDefine(InstanceAlarmListTable.COLUMN_SOURCE_VALUE, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceAlarmListTable.COLUMN_ALARM_TYPE, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceAlarmListTable.SOURCE_VALUE, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceAlarmListTable.ALARM_TYPE, ElasticSearchColumnDefine.Type.Integer.name()));
 
-        addColumn(new ElasticSearchColumnDefine(InstanceAlarmListTable.COLUMN_ALARM_CONTENT, ElasticSearchColumnDefine.Type.Text.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceAlarmListTable.ALARM_CONTENT, ElasticSearchColumnDefine.Type.Text.name()));
 
-        addColumn(new ElasticSearchColumnDefine(InstanceAlarmListTable.COLUMN_TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceAlarmListTable.TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/alarm/InstanceReferenceAlarmEsTableDefine.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/alarm/InstanceReferenceAlarmEsTableDefine.java
index 5199f7df6..b65e1d724 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/alarm/InstanceReferenceAlarmEsTableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/alarm/InstanceReferenceAlarmEsTableDefine.java
@@ -36,16 +36,16 @@ public InstanceReferenceAlarmEsTableDefine() {
     }
 
     @Override public void initialize() {
-        addColumn(new ElasticSearchColumnDefine(InstanceReferenceAlarmTable.COLUMN_FRONT_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceReferenceAlarmTable.COLUMN_BEHIND_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceReferenceAlarmTable.COLUMN_FRONT_INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceReferenceAlarmTable.COLUMN_BEHIND_INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceReferenceAlarmTable.FRONT_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceReferenceAlarmTable.BEHIND_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceReferenceAlarmTable.FRONT_INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceReferenceAlarmTable.BEHIND_INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
 
-        addColumn(new ElasticSearchColumnDefine(InstanceReferenceAlarmTable.COLUMN_SOURCE_VALUE, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceReferenceAlarmTable.COLUMN_ALARM_TYPE, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceReferenceAlarmTable.SOURCE_VALUE, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceReferenceAlarmTable.ALARM_TYPE, ElasticSearchColumnDefine.Type.Integer.name()));
 
-        addColumn(new ElasticSearchColumnDefine(InstanceReferenceAlarmTable.COLUMN_ALARM_CONTENT, ElasticSearchColumnDefine.Type.Text.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceReferenceAlarmTable.ALARM_CONTENT, ElasticSearchColumnDefine.Type.Text.name()));
 
-        addColumn(new ElasticSearchColumnDefine(InstanceReferenceAlarmTable.COLUMN_LAST_TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceReferenceAlarmTable.LAST_TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/alarm/InstanceReferenceAlarmListEsTableDefine.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/alarm/InstanceReferenceAlarmListEsTableDefine.java
index fd498054d..5e5fd158b 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/alarm/InstanceReferenceAlarmListEsTableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/alarm/InstanceReferenceAlarmListEsTableDefine.java
@@ -36,16 +36,16 @@ public InstanceReferenceAlarmListEsTableDefine() {
     }
 
     @Override public void initialize() {
-        addColumn(new ElasticSearchColumnDefine(InstanceReferenceAlarmListTable.COLUMN_FRONT_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceReferenceAlarmListTable.COLUMN_BEHIND_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceReferenceAlarmListTable.COLUMN_FRONT_INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceReferenceAlarmListTable.COLUMN_BEHIND_INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceReferenceAlarmListTable.FRONT_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceReferenceAlarmListTable.BEHIND_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceReferenceAlarmListTable.FRONT_INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceReferenceAlarmListTable.BEHIND_INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
 
-        addColumn(new ElasticSearchColumnDefine(InstanceReferenceAlarmListTable.COLUMN_SOURCE_VALUE, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceReferenceAlarmListTable.COLUMN_ALARM_TYPE, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceReferenceAlarmListTable.SOURCE_VALUE, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceReferenceAlarmListTable.ALARM_TYPE, ElasticSearchColumnDefine.Type.Integer.name()));
 
-        addColumn(new ElasticSearchColumnDefine(InstanceReferenceAlarmListTable.COLUMN_ALARM_CONTENT, ElasticSearchColumnDefine.Type.Text.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceReferenceAlarmListTable.ALARM_CONTENT, ElasticSearchColumnDefine.Type.Text.name()));
 
-        addColumn(new ElasticSearchColumnDefine(InstanceReferenceAlarmListTable.COLUMN_TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceReferenceAlarmListTable.TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/alarm/ServiceAlarmEsTableDefine.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/alarm/ServiceAlarmEsTableDefine.java
index 21ffe65e0..09c0e03ef 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/alarm/ServiceAlarmEsTableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/alarm/ServiceAlarmEsTableDefine.java
@@ -36,15 +36,15 @@ public ServiceAlarmEsTableDefine() {
     }
 
     @Override public void initialize() {
-        addColumn(new ElasticSearchColumnDefine(ServiceAlarmTable.COLUMN_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceAlarmTable.COLUMN_INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceAlarmTable.COLUMN_SERVICE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceAlarmTable.APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceAlarmTable.INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceAlarmTable.SERVICE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
 
-        addColumn(new ElasticSearchColumnDefine(ServiceAlarmTable.COLUMN_SOURCE_VALUE, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceAlarmTable.COLUMN_ALARM_TYPE, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceAlarmTable.SOURCE_VALUE, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceAlarmTable.ALARM_TYPE, ElasticSearchColumnDefine.Type.Integer.name()));
 
-        addColumn(new ElasticSearchColumnDefine(ServiceAlarmTable.COLUMN_ALARM_CONTENT, ElasticSearchColumnDefine.Type.Text.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceAlarmTable.ALARM_CONTENT, ElasticSearchColumnDefine.Type.Text.name()));
 
-        addColumn(new ElasticSearchColumnDefine(ServiceAlarmTable.COLUMN_LAST_TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceAlarmTable.LAST_TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/alarm/ServiceAlarmListEsTableDefine.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/alarm/ServiceAlarmListEsTableDefine.java
index eafa55b0a..44c80c8ba 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/alarm/ServiceAlarmListEsTableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/alarm/ServiceAlarmListEsTableDefine.java
@@ -36,15 +36,15 @@ public ServiceAlarmListEsTableDefine() {
     }
 
     @Override public void initialize() {
-        addColumn(new ElasticSearchColumnDefine(ServiceAlarmListTable.COLUMN_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceAlarmListTable.COLUMN_INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceAlarmListTable.COLUMN_SERVICE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceAlarmListTable.APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceAlarmListTable.INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceAlarmListTable.SERVICE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
 
-        addColumn(new ElasticSearchColumnDefine(ServiceAlarmListTable.COLUMN_SOURCE_VALUE, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceAlarmListTable.COLUMN_ALARM_TYPE, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceAlarmListTable.SOURCE_VALUE, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceAlarmListTable.ALARM_TYPE, ElasticSearchColumnDefine.Type.Integer.name()));
 
-        addColumn(new ElasticSearchColumnDefine(ServiceAlarmListTable.COLUMN_ALARM_CONTENT, ElasticSearchColumnDefine.Type.Text.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceAlarmListTable.ALARM_CONTENT, ElasticSearchColumnDefine.Type.Text.name()));
 
-        addColumn(new ElasticSearchColumnDefine(ServiceAlarmListTable.COLUMN_TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceAlarmListTable.TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/alarm/ServiceReferenceAlarmEsTableDefine.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/alarm/ServiceReferenceAlarmEsTableDefine.java
index d6653b789..02f43bf56 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/alarm/ServiceReferenceAlarmEsTableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/alarm/ServiceReferenceAlarmEsTableDefine.java
@@ -36,18 +36,18 @@ public ServiceReferenceAlarmEsTableDefine() {
     }
 
     @Override public void initialize() {
-        addColumn(new ElasticSearchColumnDefine(ServiceReferenceAlarmTable.COLUMN_FRONT_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceReferenceAlarmTable.COLUMN_BEHIND_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceReferenceAlarmTable.COLUMN_FRONT_INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceReferenceAlarmTable.COLUMN_BEHIND_INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceReferenceAlarmTable.COLUMN_FRONT_SERVICE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceReferenceAlarmTable.COLUMN_BEHIND_SERVICE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceReferenceAlarmTable.FRONT_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceReferenceAlarmTable.BEHIND_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceReferenceAlarmTable.FRONT_INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceReferenceAlarmTable.BEHIND_INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceReferenceAlarmTable.FRONT_SERVICE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceReferenceAlarmTable.BEHIND_SERVICE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
 
-        addColumn(new ElasticSearchColumnDefine(ServiceReferenceAlarmTable.COLUMN_SOURCE_VALUE, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceReferenceAlarmTable.COLUMN_ALARM_TYPE, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceReferenceAlarmTable.SOURCE_VALUE, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceReferenceAlarmTable.ALARM_TYPE, ElasticSearchColumnDefine.Type.Integer.name()));
 
-        addColumn(new ElasticSearchColumnDefine(ServiceReferenceAlarmTable.COLUMN_ALARM_CONTENT, ElasticSearchColumnDefine.Type.Text.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceReferenceAlarmTable.ALARM_CONTENT, ElasticSearchColumnDefine.Type.Text.name()));
 
-        addColumn(new ElasticSearchColumnDefine(ServiceReferenceAlarmTable.COLUMN_LAST_TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceReferenceAlarmTable.LAST_TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/alarm/ServiceReferenceAlarmListEsTableDefine.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/alarm/ServiceReferenceAlarmListEsTableDefine.java
index dc5c8d356..50f43835a 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/alarm/ServiceReferenceAlarmListEsTableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/alarm/ServiceReferenceAlarmListEsTableDefine.java
@@ -36,18 +36,18 @@ public ServiceReferenceAlarmListEsTableDefine() {
     }
 
     @Override public void initialize() {
-        addColumn(new ElasticSearchColumnDefine(ServiceReferenceAlarmListTable.COLUMN_FRONT_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceReferenceAlarmListTable.COLUMN_BEHIND_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceReferenceAlarmListTable.COLUMN_FRONT_INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceReferenceAlarmListTable.COLUMN_BEHIND_INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceReferenceAlarmListTable.COLUMN_FRONT_SERVICE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceReferenceAlarmListTable.COLUMN_BEHIND_SERVICE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceReferenceAlarmListTable.FRONT_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceReferenceAlarmListTable.BEHIND_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceReferenceAlarmListTable.FRONT_INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceReferenceAlarmListTable.BEHIND_INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceReferenceAlarmListTable.FRONT_SERVICE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceReferenceAlarmListTable.BEHIND_SERVICE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
 
-        addColumn(new ElasticSearchColumnDefine(ServiceReferenceAlarmListTable.COLUMN_SOURCE_VALUE, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceReferenceAlarmListTable.COLUMN_ALARM_TYPE, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceReferenceAlarmListTable.SOURCE_VALUE, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceReferenceAlarmListTable.ALARM_TYPE, ElasticSearchColumnDefine.Type.Integer.name()));
 
-        addColumn(new ElasticSearchColumnDefine(ServiceReferenceAlarmListTable.COLUMN_ALARM_CONTENT, ElasticSearchColumnDefine.Type.Text.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceReferenceAlarmListTable.ALARM_CONTENT, ElasticSearchColumnDefine.Type.Text.name()));
 
-        addColumn(new ElasticSearchColumnDefine(ServiceReferenceAlarmListTable.COLUMN_TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceReferenceAlarmListTable.TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/amp/AbstractApplicationMetricEsTableDefine.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/amp/AbstractApplicationMetricEsTableDefine.java
index 7593a04f9..435f4d5bb 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/amp/AbstractApplicationMetricEsTableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/amp/AbstractApplicationMetricEsTableDefine.java
@@ -27,38 +27,38 @@
  */
 public abstract class AbstractApplicationMetricEsTableDefine extends ElasticSearchTableDefine {
 
-    public AbstractApplicationMetricEsTableDefine(String name) {
+    AbstractApplicationMetricEsTableDefine(String name) {
         super(name);
     }
 
     @Override public final void initialize() {
-        addColumn(new ElasticSearchColumnDefine(ApplicationMetricTable.COLUMN_ID, ElasticSearchColumnDefine.Type.Keyword.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationMetricTable.COLUMN_METRIC_ID, ElasticSearchColumnDefine.Type.Keyword.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationMetricTable.COLUMN_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationMetricTable.COLUMN_SOURCE_VALUE, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationMetricTable.ID, ElasticSearchColumnDefine.Type.Keyword.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationMetricTable.METRIC_ID, ElasticSearchColumnDefine.Type.Keyword.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationMetricTable.APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationMetricTable.SOURCE_VALUE, ElasticSearchColumnDefine.Type.Integer.name()));
 
-        addColumn(new ElasticSearchColumnDefine(ApplicationMetricTable.COLUMN_TRANSACTION_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationMetricTable.COLUMN_TRANSACTION_ERROR_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationMetricTable.COLUMN_TRANSACTION_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationMetricTable.COLUMN_TRANSACTION_AVERAGE_DURATION, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationMetricTable.TRANSACTION_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationMetricTable.TRANSACTION_ERROR_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationMetricTable.TRANSACTION_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationMetricTable.TRANSACTION_ERROR_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationMetricTable.TRANSACTION_AVERAGE_DURATION, ElasticSearchColumnDefine.Type.Long.name()));
 
-        addColumn(new ElasticSearchColumnDefine(ApplicationMetricTable.COLUMN_BUSINESS_TRANSACTION_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationMetricTable.COLUMN_BUSINESS_TRANSACTION_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationMetricTable.COLUMN_BUSINESS_TRANSACTION_AVERAGE_DURATION, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationMetricTable.BUSINESS_TRANSACTION_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationMetricTable.BUSINESS_TRANSACTION_ERROR_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationMetricTable.BUSINESS_TRANSACTION_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationMetricTable.BUSINESS_TRANSACTION_ERROR_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationMetricTable.BUSINESS_TRANSACTION_AVERAGE_DURATION, ElasticSearchColumnDefine.Type.Long.name()));
 
-        addColumn(new ElasticSearchColumnDefine(ApplicationMetricTable.COLUMN_MQ_TRANSACTION_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationMetricTable.COLUMN_MQ_TRANSACTION_ERROR_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationMetricTable.COLUMN_MQ_TRANSACTION_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationMetricTable.COLUMN_MQ_TRANSACTION_ERROR_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationMetricTable.COLUMN_MQ_TRANSACTION_AVERAGE_DURATION, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationMetricTable.MQ_TRANSACTION_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationMetricTable.MQ_TRANSACTION_ERROR_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationMetricTable.MQ_TRANSACTION_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationMetricTable.MQ_TRANSACTION_ERROR_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationMetricTable.MQ_TRANSACTION_AVERAGE_DURATION, ElasticSearchColumnDefine.Type.Long.name()));
 
-        addColumn(new ElasticSearchColumnDefine(ApplicationMetricTable.COLUMN_SATISFIED_COUNT, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationMetricTable.COLUMN_TOLERATING_COUNT, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationMetricTable.COLUMN_FRUSTRATED_COUNT, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationMetricTable.SATISFIED_COUNT, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationMetricTable.TOLERATING_COUNT, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationMetricTable.FRUSTRATED_COUNT, ElasticSearchColumnDefine.Type.Long.name()));
 
-        addColumn(new ElasticSearchColumnDefine(ApplicationMetricTable.COLUMN_TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationMetricTable.TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/ampp/AbstractApplicationMappingEsTableDefine.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/ampp/AbstractApplicationMappingEsTableDefine.java
index 9a53ffed0..a2d18240d 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/ampp/AbstractApplicationMappingEsTableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/ampp/AbstractApplicationMappingEsTableDefine.java
@@ -32,9 +32,9 @@
     }
 
     @Override public final void initialize() {
-        addColumn(new ElasticSearchColumnDefine(ApplicationMappingTable.COLUMN_METRIC_ID, ElasticSearchColumnDefine.Type.Keyword.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationMappingTable.COLUMN_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationMappingTable.COLUMN_MAPPING_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationMappingTable.COLUMN_TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationMappingTable.METRIC_ID, ElasticSearchColumnDefine.Type.Keyword.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationMappingTable.APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationMappingTable.MAPPING_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationMappingTable.TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/armp/AbstractApplicationReferenceMetricEsTableDefine.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/armp/AbstractApplicationReferenceMetricEsTableDefine.java
index 367a4a5fb..f348d9ddf 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/armp/AbstractApplicationReferenceMetricEsTableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/armp/AbstractApplicationReferenceMetricEsTableDefine.java
@@ -27,38 +27,38 @@
  */
 public abstract class AbstractApplicationReferenceMetricEsTableDefine extends ElasticSearchTableDefine {
 
-    public AbstractApplicationReferenceMetricEsTableDefine(String name) {
+    AbstractApplicationReferenceMetricEsTableDefine(String name) {
         super(name);
     }
 
     @Override public final void initialize() {
-        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceMetricTable.COLUMN_ID, ElasticSearchColumnDefine.Type.Keyword.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceMetricTable.COLUMN_METRIC_ID, ElasticSearchColumnDefine.Type.Keyword.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceMetricTable.COLUMN_FRONT_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceMetricTable.COLUMN_BEHIND_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceMetricTable.COLUMN_SOURCE_VALUE, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceMetricTable.ID, ElasticSearchColumnDefine.Type.Keyword.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceMetricTable.METRIC_ID, ElasticSearchColumnDefine.Type.Keyword.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceMetricTable.FRONT_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceMetricTable.BEHIND_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceMetricTable.SOURCE_VALUE, ElasticSearchColumnDefine.Type.Integer.name()));
 
-        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceMetricTable.COLUMN_TRANSACTION_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceMetricTable.COLUMN_TRANSACTION_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceMetricTable.COLUMN_TRANSACTION_AVERAGE_DURATION, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceMetricTable.TRANSACTION_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceMetricTable.TRANSACTION_ERROR_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceMetricTable.TRANSACTION_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceMetricTable.TRANSACTION_ERROR_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceMetricTable.TRANSACTION_AVERAGE_DURATION, ElasticSearchColumnDefine.Type.Long.name()));
 
-        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_AVERAGE_DURATION, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceMetricTable.BUSINESS_TRANSACTION_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceMetricTable.BUSINESS_TRANSACTION_ERROR_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceMetricTable.BUSINESS_TRANSACTION_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceMetricTable.BUSINESS_TRANSACTION_ERROR_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceMetricTable.BUSINESS_TRANSACTION_AVERAGE_DURATION, ElasticSearchColumnDefine.Type.Long.name()));
 
-        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceMetricTable.COLUMN_MQ_TRANSACTION_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceMetricTable.COLUMN_MQ_TRANSACTION_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceMetricTable.COLUMN_MQ_TRANSACTION_AVERAGE_DURATION, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceMetricTable.MQ_TRANSACTION_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceMetricTable.MQ_TRANSACTION_ERROR_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceMetricTable.MQ_TRANSACTION_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceMetricTable.MQ_TRANSACTION_ERROR_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceMetricTable.MQ_TRANSACTION_AVERAGE_DURATION, ElasticSearchColumnDefine.Type.Long.name()));
 
-        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceMetricTable.COLUMN_SATISFIED_COUNT, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceMetricTable.COLUMN_TOLERATING_COUNT, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceMetricTable.COLUMN_FRUSTRATED_COUNT, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceMetricTable.COLUMN_TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceMetricTable.SATISFIED_COUNT, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceMetricTable.TOLERATING_COUNT, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceMetricTable.FRUSTRATED_COUNT, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationReferenceMetricTable.TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/cpu/AbstractCpuMetricEsTableDefine.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/cpu/AbstractCpuMetricEsTableDefine.java
index 61b39134f..8c28c04e5 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/cpu/AbstractCpuMetricEsTableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/cpu/AbstractCpuMetricEsTableDefine.java
@@ -27,16 +27,16 @@
  */
 public abstract class AbstractCpuMetricEsTableDefine extends ElasticSearchTableDefine {
 
-    public AbstractCpuMetricEsTableDefine(String name) {
+    AbstractCpuMetricEsTableDefine(String name) {
         super(name);
     }
 
     @Override public final void initialize() {
-        addColumn(new ElasticSearchColumnDefine(CpuMetricTable.COLUMN_ID, ElasticSearchColumnDefine.Type.Keyword.name()));
-        addColumn(new ElasticSearchColumnDefine(CpuMetricTable.COLUMN_METRIC_ID, ElasticSearchColumnDefine.Type.Keyword.name()));
-        addColumn(new ElasticSearchColumnDefine(CpuMetricTable.COLUMN_INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(CpuMetricTable.COLUMN_USAGE_PERCENT, ElasticSearchColumnDefine.Type.Double.name()));
-        addColumn(new ElasticSearchColumnDefine(CpuMetricTable.COLUMN_TIMES, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(CpuMetricTable.COLUMN_TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(CpuMetricTable.ID, ElasticSearchColumnDefine.Type.Keyword.name()));
+        addColumn(new ElasticSearchColumnDefine(CpuMetricTable.METRIC_ID, ElasticSearchColumnDefine.Type.Keyword.name()));
+        addColumn(new ElasticSearchColumnDefine(CpuMetricTable.INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(CpuMetricTable.USAGE_PERCENT, ElasticSearchColumnDefine.Type.Double.name()));
+        addColumn(new ElasticSearchColumnDefine(CpuMetricTable.TIMES, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(CpuMetricTable.TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/gc/AbstractGCMetricEsTableDefine.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/gc/AbstractGCMetricEsTableDefine.java
index efbdc7fd0..b76dd8658 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/gc/AbstractGCMetricEsTableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/gc/AbstractGCMetricEsTableDefine.java
@@ -27,17 +27,17 @@
  */
 public abstract class AbstractGCMetricEsTableDefine extends ElasticSearchTableDefine {
 
-    public AbstractGCMetricEsTableDefine(String name) {
+    AbstractGCMetricEsTableDefine(String name) {
         super(name);
     }
 
     @Override public final void initialize() {
-        addColumn(new ElasticSearchColumnDefine(GCMetricTable.COLUMN_ID, ElasticSearchColumnDefine.Type.Keyword.name()));
-        addColumn(new ElasticSearchColumnDefine(GCMetricTable.COLUMN_METRIC_ID, ElasticSearchColumnDefine.Type.Keyword.name()));
-        addColumn(new ElasticSearchColumnDefine(GCMetricTable.COLUMN_INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(GCMetricTable.COLUMN_PHRASE, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(GCMetricTable.COLUMN_COUNT, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(GCMetricTable.COLUMN_TIMES, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(GCMetricTable.COLUMN_TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(GCMetricTable.ID, ElasticSearchColumnDefine.Type.Keyword.name()));
+        addColumn(new ElasticSearchColumnDefine(GCMetricTable.METRIC_ID, ElasticSearchColumnDefine.Type.Keyword.name()));
+        addColumn(new ElasticSearchColumnDefine(GCMetricTable.INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(GCMetricTable.PHRASE, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(GCMetricTable.COUNT, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(GCMetricTable.TIMES, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(GCMetricTable.TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/imp/AbstractInstanceMetricEsTableDefine.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/imp/AbstractInstanceMetricEsTableDefine.java
index c4350d24e..c2e39d337 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/imp/AbstractInstanceMetricEsTableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/imp/AbstractInstanceMetricEsTableDefine.java
@@ -27,35 +27,35 @@
  */
 public abstract class AbstractInstanceMetricEsTableDefine extends ElasticSearchTableDefine {
 
-    public AbstractInstanceMetricEsTableDefine(String name) {
+    AbstractInstanceMetricEsTableDefine(String name) {
         super(name);
     }
 
     @Override public final void initialize() {
-        addColumn(new ElasticSearchColumnDefine(InstanceMetricTable.COLUMN_ID, ElasticSearchColumnDefine.Type.Keyword.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceMetricTable.COLUMN_METRIC_ID, ElasticSearchColumnDefine.Type.Keyword.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceMetricTable.COLUMN_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceMetricTable.COLUMN_INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceMetricTable.COLUMN_SOURCE_VALUE, ElasticSearchColumnDefine.Type.Integer.name()));
-
-        addColumn(new ElasticSearchColumnDefine(InstanceMetricTable.COLUMN_TRANSACTION_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceMetricTable.COLUMN_TRANSACTION_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceMetricTable.COLUMN_TRANSACTION_AVERAGE_DURATION, ElasticSearchColumnDefine.Type.Long.name()));
-
-        addColumn(new ElasticSearchColumnDefine(InstanceMetricTable.COLUMN_BUSINESS_TRANSACTION_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceMetricTable.COLUMN_BUSINESS_TRANSACTION_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceMetricTable.COLUMN_BUSINESS_TRANSACTION_AVERAGE_DURATION, ElasticSearchColumnDefine.Type.Long.name()));
-
-        addColumn(new ElasticSearchColumnDefine(InstanceMetricTable.COLUMN_MQ_TRANSACTION_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceMetricTable.COLUMN_MQ_TRANSACTION_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceMetricTable.COLUMN_MQ_TRANSACTION_AVERAGE_DURATION, ElasticSearchColumnDefine.Type.Long.name()));
-
-        addColumn(new ElasticSearchColumnDefine(InstanceMetricTable.COLUMN_TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceMetricTable.ID, ElasticSearchColumnDefine.Type.Keyword.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceMetricTable.METRIC_ID, ElasticSearchColumnDefine.Type.Keyword.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceMetricTable.APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceMetricTable.INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceMetricTable.SOURCE_VALUE, ElasticSearchColumnDefine.Type.Integer.name()));
+
+        addColumn(new ElasticSearchColumnDefine(InstanceMetricTable.TRANSACTION_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceMetricTable.TRANSACTION_ERROR_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceMetricTable.TRANSACTION_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceMetricTable.TRANSACTION_ERROR_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceMetricTable.TRANSACTION_AVERAGE_DURATION, ElasticSearchColumnDefine.Type.Long.name()));
+
+        addColumn(new ElasticSearchColumnDefine(InstanceMetricTable.BUSINESS_TRANSACTION_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceMetricTable.BUSINESS_TRANSACTION_ERROR_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceMetricTable.BUSINESS_TRANSACTION_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceMetricTable.BUSINESS_TRANSACTION_ERROR_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceMetricTable.BUSINESS_TRANSACTION_AVERAGE_DURATION, ElasticSearchColumnDefine.Type.Long.name()));
+
+        addColumn(new ElasticSearchColumnDefine(InstanceMetricTable.MQ_TRANSACTION_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceMetricTable.MQ_TRANSACTION_ERROR_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceMetricTable.MQ_TRANSACTION_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceMetricTable.MQ_TRANSACTION_ERROR_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceMetricTable.MQ_TRANSACTION_AVERAGE_DURATION, ElasticSearchColumnDefine.Type.Long.name()));
+
+        addColumn(new ElasticSearchColumnDefine(InstanceMetricTable.TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/impp/AbstractInstanceMappingEsTableDefine.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/impp/AbstractInstanceMappingEsTableDefine.java
index d2ee2f3cb..c52e30e17 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/impp/AbstractInstanceMappingEsTableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/impp/AbstractInstanceMappingEsTableDefine.java
@@ -32,11 +32,11 @@
     }
 
     @Override public final void initialize() {
-        addColumn(new ElasticSearchColumnDefine(InstanceMappingTable.COLUMN_ID, ElasticSearchColumnDefine.Type.Keyword.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceMappingTable.COLUMN_METRIC_ID, ElasticSearchColumnDefine.Type.Keyword.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceMappingTable.COLUMN_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceMappingTable.COLUMN_INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceMappingTable.COLUMN_ADDRESS_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceMappingTable.COLUMN_TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceMappingTable.ID, ElasticSearchColumnDefine.Type.Keyword.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceMappingTable.METRIC_ID, ElasticSearchColumnDefine.Type.Keyword.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceMappingTable.APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceMappingTable.INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceMappingTable.ADDRESS_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceMappingTable.TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/irmp/AbstractInstanceReferenceMetricEsTableDefine.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/irmp/AbstractInstanceReferenceMetricEsTableDefine.java
index 7e33c50ea..da021abd4 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/irmp/AbstractInstanceReferenceMetricEsTableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/irmp/AbstractInstanceReferenceMetricEsTableDefine.java
@@ -27,37 +27,37 @@
  */
 public abstract class AbstractInstanceReferenceMetricEsTableDefine extends ElasticSearchTableDefine {
 
-    public AbstractInstanceReferenceMetricEsTableDefine(String name) {
+    AbstractInstanceReferenceMetricEsTableDefine(String name) {
         super(name);
     }
 
     @Override public final void initialize() {
-        addColumn(new ElasticSearchColumnDefine(InstanceReferenceMetricTable.COLUMN_ID, ElasticSearchColumnDefine.Type.Keyword.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceReferenceMetricTable.COLUMN_METRIC_ID, ElasticSearchColumnDefine.Type.Keyword.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceReferenceMetricTable.COLUMN_FRONT_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceReferenceMetricTable.COLUMN_FRONT_INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceReferenceMetricTable.COLUMN_BEHIND_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceReferenceMetricTable.COLUMN_BEHIND_INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceReferenceMetricTable.COLUMN_SOURCE_VALUE, ElasticSearchColumnDefine.Type.Integer.name()));
-
-        addColumn(new ElasticSearchColumnDefine(InstanceReferenceMetricTable.COLUMN_TRANSACTION_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceReferenceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceReferenceMetricTable.COLUMN_TRANSACTION_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceReferenceMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceReferenceMetricTable.COLUMN_TRANSACTION_AVERAGE_DURATION, ElasticSearchColumnDefine.Type.Long.name()));
-
-        addColumn(new ElasticSearchColumnDefine(InstanceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_AVERAGE_DURATION, ElasticSearchColumnDefine.Type.Long.name()));
-
-        addColumn(new ElasticSearchColumnDefine(InstanceReferenceMetricTable.COLUMN_MQ_TRANSACTION_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceReferenceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceReferenceMetricTable.COLUMN_MQ_TRANSACTION_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceReferenceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceReferenceMetricTable.COLUMN_MQ_TRANSACTION_AVERAGE_DURATION, ElasticSearchColumnDefine.Type.Long.name()));
-
-        addColumn(new ElasticSearchColumnDefine(InstanceReferenceMetricTable.COLUMN_TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceReferenceMetricTable.ID, ElasticSearchColumnDefine.Type.Keyword.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceReferenceMetricTable.METRIC_ID, ElasticSearchColumnDefine.Type.Keyword.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceReferenceMetricTable.FRONT_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceReferenceMetricTable.FRONT_INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceReferenceMetricTable.BEHIND_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceReferenceMetricTable.BEHIND_INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceReferenceMetricTable.SOURCE_VALUE, ElasticSearchColumnDefine.Type.Integer.name()));
+
+        addColumn(new ElasticSearchColumnDefine(InstanceReferenceMetricTable.TRANSACTION_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceReferenceMetricTable.TRANSACTION_ERROR_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceReferenceMetricTable.TRANSACTION_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceReferenceMetricTable.TRANSACTION_ERROR_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceReferenceMetricTable.TRANSACTION_AVERAGE_DURATION, ElasticSearchColumnDefine.Type.Long.name()));
+
+        addColumn(new ElasticSearchColumnDefine(InstanceReferenceMetricTable.BUSINESS_TRANSACTION_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceReferenceMetricTable.BUSINESS_TRANSACTION_ERROR_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceReferenceMetricTable.BUSINESS_TRANSACTION_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceReferenceMetricTable.BUSINESS_TRANSACTION_ERROR_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceReferenceMetricTable.BUSINESS_TRANSACTION_AVERAGE_DURATION, ElasticSearchColumnDefine.Type.Long.name()));
+
+        addColumn(new ElasticSearchColumnDefine(InstanceReferenceMetricTable.MQ_TRANSACTION_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceReferenceMetricTable.MQ_TRANSACTION_ERROR_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceReferenceMetricTable.MQ_TRANSACTION_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceReferenceMetricTable.MQ_TRANSACTION_ERROR_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceReferenceMetricTable.MQ_TRANSACTION_AVERAGE_DURATION, ElasticSearchColumnDefine.Type.Long.name()));
+
+        addColumn(new ElasticSearchColumnDefine(InstanceReferenceMetricTable.TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/memory/AbstractMemoryMetricEsTableDefine.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/memory/AbstractMemoryMetricEsTableDefine.java
index 64c660ea2..e4a2810f0 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/memory/AbstractMemoryMetricEsTableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/memory/AbstractMemoryMetricEsTableDefine.java
@@ -27,20 +27,20 @@
  */
 public abstract class AbstractMemoryMetricEsTableDefine extends ElasticSearchTableDefine {
 
-    public AbstractMemoryMetricEsTableDefine(String name) {
+    AbstractMemoryMetricEsTableDefine(String name) {
         super(name);
     }
 
     @Override public final void initialize() {
-        addColumn(new ElasticSearchColumnDefine(MemoryMetricTable.COLUMN_ID, ElasticSearchColumnDefine.Type.Keyword.name()));
-        addColumn(new ElasticSearchColumnDefine(MemoryMetricTable.COLUMN_METRIC_ID, ElasticSearchColumnDefine.Type.Keyword.name()));
-        addColumn(new ElasticSearchColumnDefine(MemoryMetricTable.COLUMN_INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(MemoryMetricTable.COLUMN_IS_HEAP, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(MemoryMetricTable.COLUMN_INIT, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(MemoryMetricTable.COLUMN_MAX, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(MemoryMetricTable.COLUMN_USED, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(MemoryMetricTable.COLUMN_COMMITTED, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(MemoryMetricTable.COLUMN_TIMES, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(MemoryMetricTable.COLUMN_TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(MemoryMetricTable.ID, ElasticSearchColumnDefine.Type.Keyword.name()));
+        addColumn(new ElasticSearchColumnDefine(MemoryMetricTable.METRIC_ID, ElasticSearchColumnDefine.Type.Keyword.name()));
+        addColumn(new ElasticSearchColumnDefine(MemoryMetricTable.INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(MemoryMetricTable.IS_HEAP, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(MemoryMetricTable.INIT, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(MemoryMetricTable.MAX, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(MemoryMetricTable.USED, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(MemoryMetricTable.COMMITTED, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(MemoryMetricTable.TIMES, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(MemoryMetricTable.TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/mpool/AbstractMemoryPoolMetricEsTableDefine.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/mpool/AbstractMemoryPoolMetricEsTableDefine.java
index 37d213e0e..d8cb0a409 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/mpool/AbstractMemoryPoolMetricEsTableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/mpool/AbstractMemoryPoolMetricEsTableDefine.java
@@ -27,7 +27,7 @@
  */
 public abstract class AbstractMemoryPoolMetricEsTableDefine extends ElasticSearchTableDefine {
 
-    public AbstractMemoryPoolMetricEsTableDefine(String name) {
+    AbstractMemoryPoolMetricEsTableDefine(String name) {
         super(name);
     }
 
@@ -36,15 +36,15 @@ public AbstractMemoryPoolMetricEsTableDefine(String name) {
     }
 
     @Override public final void initialize() {
-        addColumn(new ElasticSearchColumnDefine(MemoryPoolMetricTable.COLUMN_ID, ElasticSearchColumnDefine.Type.Keyword.name()));
-        addColumn(new ElasticSearchColumnDefine(MemoryPoolMetricTable.COLUMN_METRIC_ID, ElasticSearchColumnDefine.Type.Keyword.name()));
-        addColumn(new ElasticSearchColumnDefine(MemoryPoolMetricTable.COLUMN_INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(MemoryPoolMetricTable.COLUMN_POOL_TYPE, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(MemoryPoolMetricTable.COLUMN_INIT, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(MemoryPoolMetricTable.COLUMN_MAX, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(MemoryPoolMetricTable.COLUMN_USED, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(MemoryPoolMetricTable.COLUMN_COMMITTED, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(MemoryPoolMetricTable.COLUMN_TIMES, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(MemoryPoolMetricTable.COLUMN_TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(MemoryPoolMetricTable.ID, ElasticSearchColumnDefine.Type.Keyword.name()));
+        addColumn(new ElasticSearchColumnDefine(MemoryPoolMetricTable.METRIC_ID, ElasticSearchColumnDefine.Type.Keyword.name()));
+        addColumn(new ElasticSearchColumnDefine(MemoryPoolMetricTable.INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(MemoryPoolMetricTable.POOL_TYPE, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(MemoryPoolMetricTable.INIT, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(MemoryPoolMetricTable.MAX, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(MemoryPoolMetricTable.USED, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(MemoryPoolMetricTable.COMMITTED, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(MemoryPoolMetricTable.TIMES, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(MemoryPoolMetricTable.TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/register/ApplicationEsTableDefine.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/register/ApplicationEsTableDefine.java
index 7d84a7869..1b3cbe472 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/register/ApplicationEsTableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/register/ApplicationEsTableDefine.java
@@ -36,10 +36,9 @@ public ApplicationEsTableDefine() {
     }
 
     @Override public void initialize() {
-        addColumn(new ElasticSearchColumnDefine(ApplicationTable.COLUMN_APPLICATION_CODE, ElasticSearchColumnDefine.Type.Keyword.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationTable.COLUMN_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationTable.COLUMN_LAYER, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationTable.COLUMN_ADDRESS_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(ApplicationTable.COLUMN_IS_ADDRESS, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationTable.APPLICATION_CODE, ElasticSearchColumnDefine.Type.Keyword.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationTable.APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationTable.ADDRESS_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ApplicationTable.IS_ADDRESS, ElasticSearchColumnDefine.Type.Integer.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/register/InstanceEsTableDefine.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/register/InstanceEsTableDefine.java
index ec545715a..d818c5e27 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/register/InstanceEsTableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/register/InstanceEsTableDefine.java
@@ -36,14 +36,14 @@ public InstanceEsTableDefine() {
     }
 
     @Override public void initialize() {
-        addColumn(new ElasticSearchColumnDefine(InstanceTable.COLUMN_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceTable.COLUMN_APPLICATION_CODE, ElasticSearchColumnDefine.Type.Text.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceTable.COLUMN_AGENT_UUID, ElasticSearchColumnDefine.Type.Keyword.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceTable.COLUMN_REGISTER_TIME, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceTable.COLUMN_INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceTable.COLUMN_HEARTBEAT_TIME, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceTable.COLUMN_OS_INFO, ElasticSearchColumnDefine.Type.Text.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceTable.COLUMN_ADDRESS_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(InstanceTable.COLUMN_IS_ADDRESS, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceTable.APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceTable.APPLICATION_CODE, ElasticSearchColumnDefine.Type.Text.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceTable.AGENT_UUID, ElasticSearchColumnDefine.Type.Keyword.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceTable.REGISTER_TIME, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceTable.INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceTable.HEARTBEAT_TIME, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceTable.OS_INFO, ElasticSearchColumnDefine.Type.Text.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceTable.ADDRESS_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(InstanceTable.IS_ADDRESS, ElasticSearchColumnDefine.Type.Integer.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/register/NetworkAddressEsTableDefine.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/register/NetworkAddressEsTableDefine.java
index ea9eaa28a..c281a3b55 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/register/NetworkAddressEsTableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/register/NetworkAddressEsTableDefine.java
@@ -36,9 +36,9 @@ public NetworkAddressEsTableDefine() {
     }
 
     @Override public void initialize() {
-        addColumn(new ElasticSearchColumnDefine(NetworkAddressTable.COLUMN_NETWORK_ADDRESS, ElasticSearchColumnDefine.Type.Keyword.name()));
-        addColumn(new ElasticSearchColumnDefine(NetworkAddressTable.COLUMN_ADDRESS_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(NetworkAddressTable.COLUMN_SPAN_LAYER, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(NetworkAddressTable.COLUMN_SERVER_TYPE, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(NetworkAddressTable.NETWORK_ADDRESS, ElasticSearchColumnDefine.Type.Keyword.name()));
+        addColumn(new ElasticSearchColumnDefine(NetworkAddressTable.ADDRESS_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(NetworkAddressTable.SRC_SPAN_LAYER, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(NetworkAddressTable.SERVER_TYPE, ElasticSearchColumnDefine.Type.Integer.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/register/ServiceNameEsTableDefine.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/register/ServiceNameEsTableDefine.java
index 7a29d63e3..0a8b3e0d4 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/register/ServiceNameEsTableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/register/ServiceNameEsTableDefine.java
@@ -36,10 +36,10 @@ public ServiceNameEsTableDefine() {
     }
 
     @Override public void initialize() {
-        addColumn(new ElasticSearchColumnDefine(ServiceNameTable.COLUMN_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceNameTable.COLUMN_SERVICE_NAME, ElasticSearchColumnDefine.Type.Text.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceNameTable.COLUMN_SERVICE_NAME_KEYWORD, ElasticSearchColumnDefine.Type.Keyword.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceNameTable.COLUMN_SERVICE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceNameTable.COLUMN_SRC_SPAN_TYPE, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceNameTable.APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceNameTable.SERVICE_NAME, ElasticSearchColumnDefine.Type.Text.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceNameTable.SERVICE_NAME_KEYWORD, ElasticSearchColumnDefine.Type.Keyword.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceNameTable.SERVICE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceNameTable.SRC_SPAN_TYPE, ElasticSearchColumnDefine.Type.Integer.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/smp/AbstractServiceMetricEsTableDefine.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/smp/AbstractServiceMetricEsTableDefine.java
index 8d5d9bed5..182334a6c 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/smp/AbstractServiceMetricEsTableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/smp/AbstractServiceMetricEsTableDefine.java
@@ -27,36 +27,36 @@
  */
 public abstract class AbstractServiceMetricEsTableDefine extends ElasticSearchTableDefine {
 
-    public AbstractServiceMetricEsTableDefine(String name) {
+    AbstractServiceMetricEsTableDefine(String name) {
         super(name);
     }
 
     @Override public final void initialize() {
-        addColumn(new ElasticSearchColumnDefine(ServiceMetricTable.COLUMN_ID, ElasticSearchColumnDefine.Type.Keyword.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceMetricTable.COLUMN_METRIC_ID, ElasticSearchColumnDefine.Type.Keyword.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceMetricTable.COLUMN_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceMetricTable.COLUMN_INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceMetricTable.COLUMN_SERVICE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceMetricTable.COLUMN_SOURCE_VALUE, ElasticSearchColumnDefine.Type.Integer.name()));
-
-        addColumn(new ElasticSearchColumnDefine(ServiceMetricTable.COLUMN_TRANSACTION_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceMetricTable.COLUMN_TRANSACTION_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceMetricTable.COLUMN_TRANSACTION_AVERAGE_DURATION, ElasticSearchColumnDefine.Type.Long.name()));
-
-        addColumn(new ElasticSearchColumnDefine(ServiceMetricTable.COLUMN_BUSINESS_TRANSACTION_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceMetricTable.COLUMN_BUSINESS_TRANSACTION_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceMetricTable.COLUMN_BUSINESS_TRANSACTION_AVERAGE_DURATION, ElasticSearchColumnDefine.Type.Long.name()));
-
-        addColumn(new ElasticSearchColumnDefine(ServiceMetricTable.COLUMN_MQ_TRANSACTION_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceMetricTable.COLUMN_MQ_TRANSACTION_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceMetricTable.COLUMN_MQ_TRANSACTION_AVERAGE_DURATION, ElasticSearchColumnDefine.Type.Long.name()));
-
-        addColumn(new ElasticSearchColumnDefine(ServiceMetricTable.COLUMN_TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceMetricTable.ID, ElasticSearchColumnDefine.Type.Keyword.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceMetricTable.METRIC_ID, ElasticSearchColumnDefine.Type.Keyword.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceMetricTable.APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceMetricTable.INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceMetricTable.SERVICE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceMetricTable.SOURCE_VALUE, ElasticSearchColumnDefine.Type.Integer.name()));
+
+        addColumn(new ElasticSearchColumnDefine(ServiceMetricTable.TRANSACTION_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceMetricTable.TRANSACTION_ERROR_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceMetricTable.TRANSACTION_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceMetricTable.TRANSACTION_ERROR_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceMetricTable.TRANSACTION_AVERAGE_DURATION, ElasticSearchColumnDefine.Type.Long.name()));
+
+        addColumn(new ElasticSearchColumnDefine(ServiceMetricTable.BUSINESS_TRANSACTION_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceMetricTable.BUSINESS_TRANSACTION_ERROR_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceMetricTable.BUSINESS_TRANSACTION_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceMetricTable.BUSINESS_TRANSACTION_ERROR_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceMetricTable.BUSINESS_TRANSACTION_AVERAGE_DURATION, ElasticSearchColumnDefine.Type.Long.name()));
+
+        addColumn(new ElasticSearchColumnDefine(ServiceMetricTable.MQ_TRANSACTION_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceMetricTable.MQ_TRANSACTION_ERROR_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceMetricTable.MQ_TRANSACTION_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceMetricTable.MQ_TRANSACTION_ERROR_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceMetricTable.MQ_TRANSACTION_AVERAGE_DURATION, ElasticSearchColumnDefine.Type.Long.name()));
+
+        addColumn(new ElasticSearchColumnDefine(ServiceMetricTable.TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/srmp/AbstractServiceReferenceMetricEsTableDefine.java b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/srmp/AbstractServiceReferenceMetricEsTableDefine.java
index e24f4ba80..64a4f2ab4 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/srmp/AbstractServiceReferenceMetricEsTableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/src/main/java/org/apache/skywalking/apm/collector/storage/es/define/srmp/AbstractServiceReferenceMetricEsTableDefine.java
@@ -27,39 +27,39 @@
  */
 public abstract class AbstractServiceReferenceMetricEsTableDefine extends ElasticSearchTableDefine {
 
-    public AbstractServiceReferenceMetricEsTableDefine(String name) {
+    AbstractServiceReferenceMetricEsTableDefine(String name) {
         super(name);
     }
 
     @Override public final void initialize() {
-        addColumn(new ElasticSearchColumnDefine(ServiceReferenceMetricTable.COLUMN_METRIC_ID, ElasticSearchColumnDefine.Type.Keyword.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceReferenceMetricTable.METRIC_ID, ElasticSearchColumnDefine.Type.Keyword.name()));
 
-        addColumn(new ElasticSearchColumnDefine(ServiceReferenceMetricTable.COLUMN_FRONT_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceReferenceMetricTable.COLUMN_FRONT_INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceReferenceMetricTable.COLUMN_FRONT_SERVICE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceReferenceMetricTable.COLUMN_BEHIND_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceReferenceMetricTable.COLUMN_BEHIND_INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceReferenceMetricTable.COLUMN_BEHIND_SERVICE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceReferenceMetricTable.COLUMN_SOURCE_VALUE, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceReferenceMetricTable.FRONT_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceReferenceMetricTable.FRONT_INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceReferenceMetricTable.FRONT_SERVICE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceReferenceMetricTable.BEHIND_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceReferenceMetricTable.BEHIND_INSTANCE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceReferenceMetricTable.BEHIND_SERVICE_ID, ElasticSearchColumnDefine.Type.Integer.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceReferenceMetricTable.SOURCE_VALUE, ElasticSearchColumnDefine.Type.Integer.name()));
 
-        addColumn(new ElasticSearchColumnDefine(ServiceReferenceMetricTable.COLUMN_TRANSACTION_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceReferenceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceReferenceMetricTable.COLUMN_TRANSACTION_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceReferenceMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceReferenceMetricTable.COLUMN_TRANSACTION_AVERAGE_DURATION, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceReferenceMetricTable.TRANSACTION_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceReferenceMetricTable.TRANSACTION_ERROR_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceReferenceMetricTable.TRANSACTION_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceReferenceMetricTable.TRANSACTION_ERROR_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceReferenceMetricTable.TRANSACTION_AVERAGE_DURATION, ElasticSearchColumnDefine.Type.Long.name()));
 
-        addColumn(new ElasticSearchColumnDefine(ServiceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_AVERAGE_DURATION, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceReferenceMetricTable.BUSINESS_TRANSACTION_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceReferenceMetricTable.BUSINESS_TRANSACTION_ERROR_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceReferenceMetricTable.BUSINESS_TRANSACTION_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceReferenceMetricTable.BUSINESS_TRANSACTION_ERROR_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceReferenceMetricTable.BUSINESS_TRANSACTION_AVERAGE_DURATION, ElasticSearchColumnDefine.Type.Long.name()));
 
-        addColumn(new ElasticSearchColumnDefine(ServiceReferenceMetricTable.COLUMN_MQ_TRANSACTION_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceReferenceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceReferenceMetricTable.COLUMN_MQ_TRANSACTION_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceReferenceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
-        addColumn(new ElasticSearchColumnDefine(ServiceReferenceMetricTable.COLUMN_MQ_TRANSACTION_AVERAGE_DURATION, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceReferenceMetricTable.MQ_TRANSACTION_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceReferenceMetricTable.MQ_TRANSACTION_ERROR_CALLS, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceReferenceMetricTable.MQ_TRANSACTION_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceReferenceMetricTable.MQ_TRANSACTION_ERROR_DURATION_SUM, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceReferenceMetricTable.MQ_TRANSACTION_AVERAGE_DURATION, ElasticSearchColumnDefine.Type.Long.name()));
 
-        addColumn(new ElasticSearchColumnDefine(ServiceReferenceMetricTable.COLUMN_TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
+        addColumn(new ElasticSearchColumnDefine(ServiceReferenceMetricTable.TIME_BUCKET, ElasticSearchColumnDefine.Type.Long.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/MetricTransformUtil.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/MetricTransformUtil.java
new file mode 100644
index 000000000..8a4e0f222
--- /dev/null
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/MetricTransformUtil.java
@@ -0,0 +1,78 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.skywalking.apm.collector.storage.h2;
+
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.Map;
+import org.apache.skywalking.apm.collector.storage.table.Metric;
+import org.apache.skywalking.apm.collector.storage.table.MetricColumns;
+
+/**
+ * @author peng-yongsheng
+ */
+public enum MetricTransformUtil {
+    INSTANCE;
+
+    public void h2DataToStreamData(ResultSet source, Metric target) throws SQLException {
+        target.setSourceValue(source.getInt(MetricColumns.SOURCE_VALUE.getName()));
+        target.setTimeBucket(source.getLong(MetricColumns.TIME_BUCKET.getName()));
+
+        target.setTransactionCalls(source.getLong(MetricColumns.TRANSACTION_CALLS.getName()));
+        target.setTransactionErrorCalls(source.getLong(MetricColumns.TRANSACTION_ERROR_CALLS.getName()));
+        target.setTransactionDurationSum(source.getLong(MetricColumns.TRANSACTION_DURATION_SUM.getName()));
+        target.setTransactionErrorDurationSum(source.getLong(MetricColumns.TRANSACTION_ERROR_DURATION_SUM.getName()));
+        target.setTransactionAverageDuration(source.getLong(MetricColumns.TRANSACTION_AVERAGE_DURATION.getName()));
+
+        target.setBusinessTransactionCalls(source.getLong(MetricColumns.BUSINESS_TRANSACTION_CALLS.getName()));
+        target.setBusinessTransactionErrorCalls(source.getLong(MetricColumns.BUSINESS_TRANSACTION_ERROR_CALLS.getName()));
+        target.setBusinessTransactionDurationSum(source.getLong(MetricColumns.BUSINESS_TRANSACTION_DURATION_SUM.getName()));
+        target.setBusinessTransactionErrorDurationSum(source.getLong(MetricColumns.BUSINESS_TRANSACTION_ERROR_DURATION_SUM.getName()));
+        target.setBusinessTransactionAverageDuration(source.getLong(MetricColumns.BUSINESS_TRANSACTION_AVERAGE_DURATION.getName()));
+
+        target.setMqTransactionCalls(source.getLong(MetricColumns.MQ_TRANSACTION_CALLS.getName()));
+        target.setMqTransactionErrorCalls(source.getLong(MetricColumns.MQ_TRANSACTION_ERROR_CALLS.getName()));
+        target.setMqTransactionDurationSum(source.getLong(MetricColumns.MQ_TRANSACTION_DURATION_SUM.getName()));
+        target.setMqTransactionErrorDurationSum(source.getLong(MetricColumns.MQ_TRANSACTION_ERROR_DURATION_SUM.getName()));
+        target.setMqTransactionAverageDuration(source.getLong(MetricColumns.MQ_TRANSACTION_AVERAGE_DURATION.getName()));
+    }
+
+    public void streamDataToH2Data(Metric source, Map<String, Object> target) {
+        target.put(MetricColumns.SOURCE_VALUE.getName(), source.getSourceValue());
+        target.put(MetricColumns.TIME_BUCKET.getName(), source.getTimeBucket());
+
+        target.put(MetricColumns.TRANSACTION_CALLS.getName(), source.getTransactionCalls());
+        target.put(MetricColumns.TRANSACTION_ERROR_CALLS.getName(), source.getTransactionErrorCalls());
+        target.put(MetricColumns.TRANSACTION_DURATION_SUM.getName(), source.getTransactionDurationSum());
+        target.put(MetricColumns.TRANSACTION_ERROR_DURATION_SUM.getName(), source.getTransactionErrorDurationSum());
+        target.put(MetricColumns.TRANSACTION_AVERAGE_DURATION.getName(), source.getTransactionAverageDuration());
+
+        target.put(MetricColumns.BUSINESS_TRANSACTION_CALLS.getName(), source.getBusinessTransactionCalls());
+        target.put(MetricColumns.BUSINESS_TRANSACTION_ERROR_CALLS.getName(), source.getBusinessTransactionErrorCalls());
+        target.put(MetricColumns.BUSINESS_TRANSACTION_DURATION_SUM.getName(), source.getBusinessTransactionDurationSum());
+        target.put(MetricColumns.BUSINESS_TRANSACTION_ERROR_DURATION_SUM.getName(), source.getBusinessTransactionErrorDurationSum());
+        target.put(MetricColumns.BUSINESS_TRANSACTION_AVERAGE_DURATION.getName(), source.getBusinessTransactionAverageDuration());
+
+        target.put(MetricColumns.MQ_TRANSACTION_CALLS.getName(), source.getMqTransactionCalls());
+        target.put(MetricColumns.MQ_TRANSACTION_ERROR_CALLS.getName(), source.getMqTransactionErrorCalls());
+        target.put(MetricColumns.MQ_TRANSACTION_DURATION_SUM.getName(), source.getMqTransactionDurationSum());
+        target.put(MetricColumns.MQ_TRANSACTION_ERROR_DURATION_SUM.getName(), source.getMqTransactionErrorDurationSum());
+        target.put(MetricColumns.MQ_TRANSACTION_AVERAGE_DURATION.getName(), source.getMqTransactionAverageDuration());
+    }
+}
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/StorageModuleH2Provider.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/StorageModuleH2Provider.java
index bca813666..fa5b91279 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/StorageModuleH2Provider.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/StorageModuleH2Provider.java
@@ -124,7 +124,6 @@
 import org.apache.skywalking.apm.collector.storage.dao.ui.IInstanceMetricUIDAO;
 import org.apache.skywalking.apm.collector.storage.dao.ui.IInstanceUIDAO;
 import org.apache.skywalking.apm.collector.storage.dao.ui.IMemoryMetricUIDAO;
-import org.apache.skywalking.apm.collector.storage.dao.ui.IMemoryPoolMetricUIDAO;
 import org.apache.skywalking.apm.collector.storage.dao.ui.INetworkAddressUIDAO;
 import org.apache.skywalking.apm.collector.storage.dao.ui.ISegmentDurationUIDAO;
 import org.apache.skywalking.apm.collector.storage.dao.ui.ISegmentUIDAO;
@@ -230,7 +229,6 @@
 import org.apache.skywalking.apm.collector.storage.h2.dao.ui.InstanceH2UIDAO;
 import org.apache.skywalking.apm.collector.storage.h2.dao.ui.InstanceMetricH2UIDAO;
 import org.apache.skywalking.apm.collector.storage.h2.dao.ui.MemoryMetricH2UIDAO;
-import org.apache.skywalking.apm.collector.storage.h2.dao.ui.MemoryPoolMetricH2UIDAO;
 import org.apache.skywalking.apm.collector.storage.h2.dao.ui.NetworkAddressH2UIDAO;
 import org.apache.skywalking.apm.collector.storage.h2.dao.ui.SegmentDurationH2UIDAO;
 import org.apache.skywalking.apm.collector.storage.h2.dao.ui.SegmentH2UIDAO;
@@ -395,7 +393,6 @@ private void registerUiDAO() throws ServiceNotProvidedException {
         this.registerServiceImplementation(ICpuMetricUIDAO.class, new CpuMetricH2UIDAO(h2Client));
         this.registerServiceImplementation(IGCMetricUIDAO.class, new GCMetricH2UIDAO(h2Client));
         this.registerServiceImplementation(IMemoryMetricUIDAO.class, new MemoryMetricH2UIDAO(h2Client));
-        this.registerServiceImplementation(IMemoryPoolMetricUIDAO.class, new MemoryPoolMetricH2UIDAO(h2Client));
 
         this.registerServiceImplementation(IGlobalTraceUIDAO.class, new GlobalTraceH2UIDAO(h2Client));
         this.registerServiceImplementation(IInstanceMetricUIDAO.class, new InstanceMetricH2UIDAO(h2Client));
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/base/dao/AbstractPersistenceH2DAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/base/dao/AbstractPersistenceH2DAO.java
index c6fac61d7..f9a248cbf 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/base/dao/AbstractPersistenceH2DAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/base/dao/AbstractPersistenceH2DAO.java
@@ -51,7 +51,7 @@ public AbstractPersistenceH2DAO(H2Client client) {
     protected abstract String tableName();
 
     @Override public final STREAM_DATA get(String id) {
-        String sql = SqlBuilder.buildSql(GET_SQL, tableName(), CommonTable.COLUMN_ID);
+        String sql = SqlBuilder.buildSql(GET_SQL, tableName(), CommonTable.ID.getName());
 
         Object[] params = new Object[] {id};
         try (ResultSet resultSet = getClient().executeQuery(sql, params)) {
@@ -68,7 +68,7 @@ public AbstractPersistenceH2DAO(H2Client client) {
 
     @Override public final H2SqlEntity prepareBatchInsert(STREAM_DATA streamData) {
         Map<String, Object> source = streamDataToH2Data(streamData);
-        source.put(CommonTable.COLUMN_ID, streamData.getId());
+        source.put(CommonTable.ID.getName(), streamData.getId());
 
         H2SqlEntity entity = new H2SqlEntity();
 
@@ -82,7 +82,7 @@ public AbstractPersistenceH2DAO(H2Client client) {
         Map<String, Object> source = streamDataToH2Data(streamData);
 
         H2SqlEntity entity = new H2SqlEntity();
-        String sql = SqlBuilder.buildBatchUpdateSql(tableName(), source.keySet(), CommonTable.COLUMN_ID);
+        String sql = SqlBuilder.buildBatchUpdateSql(tableName(), source.keySet(), CommonTable.ID.getName());
         entity.setSql(sql);
         List<Object> values = new ArrayList<>(source.values());
         values.add(streamData.getId());
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/base/define/H2ColumnDefine.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/base/define/H2ColumnDefine.java
index 435cc90cc..c497272f2 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/base/define/H2ColumnDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/base/define/H2ColumnDefine.java
@@ -19,14 +19,15 @@
 package org.apache.skywalking.apm.collector.storage.h2.base.define;
 
 import org.apache.skywalking.apm.collector.core.data.ColumnDefine;
+import org.apache.skywalking.apm.collector.core.data.ColumnName;
 
 /**
  * @author peng-yongsheng
  */
 public class H2ColumnDefine extends ColumnDefine {
 
-    public H2ColumnDefine(String name, String type) {
-        super(name, type);
+    public H2ColumnDefine(ColumnName columnName, String type) {
+        super(columnName, type);
     }
 
     public enum Type {
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/base/define/H2StorageInstaller.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/base/define/H2StorageInstaller.java
index ca7fb99ed..21adca86a 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/base/define/H2StorageInstaller.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/base/define/H2StorageInstaller.java
@@ -90,9 +90,9 @@
         h2TableDefine.getColumnDefines().forEach(columnDefine -> {
             H2ColumnDefine h2ColumnDefine = (H2ColumnDefine)columnDefine;
             if (h2ColumnDefine.getType().equals(H2ColumnDefine.Type.Varchar.name())) {
-                sqlBuilder.append(h2ColumnDefine.getName()).append(" ").append(h2ColumnDefine.getType()).append("(255),");
+                sqlBuilder.append(h2ColumnDefine.getColumnName()).append(" ").append(h2ColumnDefine.getType()).append("(255),");
             } else {
-                sqlBuilder.append(h2ColumnDefine.getName()).append(" ").append(h2ColumnDefine.getType()).append(",");
+                sqlBuilder.append(h2ColumnDefine.getColumnName()).append(" ").append(h2ColumnDefine.getType()).append(",");
             }
         });
         //remove last comma
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/GlobalTraceH2PersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/GlobalTraceH2PersistenceDAO.java
index 1d22777a3..5f69d3c7b 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/GlobalTraceH2PersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/GlobalTraceH2PersistenceDAO.java
@@ -51,17 +51,17 @@ public GlobalTraceH2PersistenceDAO(H2Client client) {
     }
 
     @Override public H2SqlEntity prepareBatchInsert(GlobalTrace data) {
-        Map<String, Object> source = new HashMap<>();
+        Map<String, Object> target = new HashMap<>();
         H2SqlEntity entity = new H2SqlEntity();
-        source.put(GlobalTraceTable.COLUMN_ID, data.getId());
-        source.put(GlobalTraceTable.COLUMN_SEGMENT_ID, data.getSegmentId());
-        source.put(GlobalTraceTable.COLUMN_GLOBAL_TRACE_ID, data.getGlobalTraceId());
-        source.put(GlobalTraceTable.COLUMN_TIME_BUCKET, data.getTimeBucket());
-        logger.debug("global trace source: {}", source.toString());
+        target.put(GlobalTraceTable.ID.getName(), data.getId());
+        target.put(GlobalTraceTable.SEGMENT_ID.getName(), data.getSegmentId());
+        target.put(GlobalTraceTable.TRACE_ID.getName(), data.getGlobalTraceId());
+        target.put(GlobalTraceTable.TIME_BUCKET.getName(), data.getTimeBucket());
+        logger.debug("global trace source: {}", target.toString());
 
-        String sql = SqlBuilder.buildBatchInsertSql(GlobalTraceTable.TABLE, source.keySet());
+        String sql = SqlBuilder.buildBatchInsertSql(GlobalTraceTable.TABLE, target.keySet());
         entity.setSql(sql);
-        entity.setParams(source.values().toArray(new Object[0]));
+        entity.setParams(target.values().toArray(new Object[0]));
         return entity;
     }
 
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/InstanceHeartBeatH2PersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/InstanceHeartBeatH2PersistenceDAO.java
index 6e3707d04..53f7f70f6 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/InstanceHeartBeatH2PersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/InstanceHeartBeatH2PersistenceDAO.java
@@ -51,14 +51,14 @@ public InstanceHeartBeatH2PersistenceDAO(H2Client client) {
 
     @Override public Instance get(String id) {
         H2Client client = getClient();
-        String sql = SqlBuilder.buildSql(GET_INSTANCE_HEARTBEAT_SQL, InstanceTable.TABLE, InstanceTable.COLUMN_INSTANCE_ID);
+        String sql = SqlBuilder.buildSql(GET_INSTANCE_HEARTBEAT_SQL, InstanceTable.TABLE, InstanceTable.INSTANCE_ID.getName());
         Object[] params = new Object[] {id};
         try (ResultSet rs = client.executeQuery(sql, params)) {
             if (rs.next()) {
                 Instance instance = new Instance();
                 instance.setId(id);
-                instance.setInstanceId(rs.getInt(InstanceTable.COLUMN_INSTANCE_ID));
-                instance.setHeartBeatTime(rs.getLong(InstanceTable.COLUMN_HEARTBEAT_TIME));
+                instance.setInstanceId(rs.getInt(InstanceTable.INSTANCE_ID.getName()));
+                instance.setHeartBeatTime(rs.getLong(InstanceTable.HEARTBEAT_TIME.getName()));
                 return instance;
             }
         } catch (SQLException | H2ClientException e) {
@@ -73,11 +73,11 @@ public InstanceHeartBeatH2PersistenceDAO(H2Client client) {
 
     @Override public H2SqlEntity prepareBatchUpdate(Instance data) {
         H2SqlEntity entity = new H2SqlEntity();
-        Map<String, Object> source = new HashMap<>();
-        source.put(InstanceTable.COLUMN_HEARTBEAT_TIME, data.getHeartBeatTime());
-        String sql = SqlBuilder.buildBatchUpdateSql(InstanceTable.TABLE, source.keySet(), InstanceTable.COLUMN_INSTANCE_ID);
+        Map<String, Object> target = new HashMap<>();
+        target.put(InstanceTable.HEARTBEAT_TIME.getName(), data.getHeartBeatTime());
+        String sql = SqlBuilder.buildBatchUpdateSql(InstanceTable.TABLE, target.keySet(), InstanceTable.INSTANCE_ID.getName());
         entity.setSql(sql);
-        List<Object> params = new ArrayList<>(source.values());
+        List<Object> params = new ArrayList<>(target.values());
         params.add(data.getId());
         entity.setParams(params.toArray(new Object[0]));
         return entity;
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/SegmentDurationH2PersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/SegmentDurationH2PersistenceDAO.java
index e4a66c03f..4cb3fde0e 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/SegmentDurationH2PersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/SegmentDurationH2PersistenceDAO.java
@@ -48,21 +48,21 @@ public SegmentDurationH2PersistenceDAO(H2Client client) {
     @Override public H2SqlEntity prepareBatchInsert(SegmentDuration data) {
         logger.debug("segment cost prepareBatchInsert, getApplicationId: {}", data.getId());
         H2SqlEntity entity = new H2SqlEntity();
-        Map<String, Object> source = new HashMap<>();
-        source.put(SegmentDurationTable.COLUMN_ID, data.getId());
-        source.put(SegmentDurationTable.COLUMN_SEGMENT_ID, data.getSegmentId());
-        source.put(SegmentDurationTable.COLUMN_APPLICATION_ID, data.getApplicationId());
-        source.put(SegmentDurationTable.COLUMN_SERVICE_NAME, data.getServiceName());
-        source.put(SegmentDurationTable.COLUMN_DURATION, data.getDuration());
-        source.put(SegmentDurationTable.COLUMN_START_TIME, data.getStartTime());
-        source.put(SegmentDurationTable.COLUMN_END_TIME, data.getEndTime());
-        source.put(SegmentDurationTable.COLUMN_IS_ERROR, data.getIsError());
-        source.put(SegmentDurationTable.COLUMN_TIME_BUCKET, data.getTimeBucket());
-        logger.debug("segment cost source: {}", source.toString());
+        Map<String, Object> target = new HashMap<>();
+        target.put(SegmentDurationTable.ID.getName(), data.getId());
+        target.put(SegmentDurationTable.SEGMENT_ID.getName(), data.getSegmentId());
+        target.put(SegmentDurationTable.APPLICATION_ID.getName(), data.getApplicationId());
+        target.put(SegmentDurationTable.SERVICE_NAME.getName(), data.getServiceName());
+        target.put(SegmentDurationTable.DURATION.getName(), data.getDuration());
+        target.put(SegmentDurationTable.START_TIME.getName(), data.getStartTime());
+        target.put(SegmentDurationTable.END_TIME.getName(), data.getEndTime());
+        target.put(SegmentDurationTable.IS_ERROR.getName(), data.getIsError());
+        target.put(SegmentDurationTable.TIME_BUCKET.getName(), data.getTimeBucket());
+        logger.debug("segment cost source: {}", target.toString());
 
-        String sql = SqlBuilder.buildBatchInsertSql(SegmentDurationTable.TABLE, source.keySet());
+        String sql = SqlBuilder.buildBatchInsertSql(SegmentDurationTable.TABLE, target.keySet());
         entity.setSql(sql);
-        entity.setParams(source.values().toArray(new Object[0]));
+        entity.setParams(target.values().toArray(new Object[0]));
         return entity;
     }
 
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/SegmentH2PersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/SegmentH2PersistenceDAO.java
index 701449163..535a6f8e7 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/SegmentH2PersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/SegmentH2PersistenceDAO.java
@@ -46,16 +46,16 @@ public SegmentH2PersistenceDAO(H2Client client) {
     }
 
     @Override public H2SqlEntity prepareBatchInsert(Segment data) {
-        Map<String, Object> source = new HashMap<>();
+        Map<String, Object> target = new HashMap<>();
         H2SqlEntity entity = new H2SqlEntity();
-        source.put(SegmentTable.COLUMN_ID, data.getId());
-        source.put(SegmentTable.COLUMN_DATA_BINARY, data.getDataBinary());
-        source.put(SegmentTable.COLUMN_TIME_BUCKET, data.getTimeBucket());
-        logger.debug("segment source: {}", source.toString());
+        target.put(SegmentTable.ID.getName(), data.getId());
+        target.put(SegmentTable.DATA_BINARY.getName(), data.getDataBinary());
+        target.put(SegmentTable.TIME_BUCKET.getName(), data.getTimeBucket());
+        logger.debug("segment source: {}", target.toString());
 
-        String sql = SqlBuilder.buildBatchInsertSql(SegmentTable.TABLE, source.keySet());
+        String sql = SqlBuilder.buildBatchInsertSql(SegmentTable.TABLE, target.keySet());
         entity.setSql(sql);
-        entity.setParams(source.values().toArray(new Object[0]));
+        entity.setParams(target.values().toArray(new Object[0]));
         return entity;
     }
 
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/acp/AbstractApplicationComponentH2PersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/acp/AbstractApplicationComponentH2PersistenceDAO.java
index a91a38ed4..d3aa80259 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/acp/AbstractApplicationComponentH2PersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/acp/AbstractApplicationComponentH2PersistenceDAO.java
@@ -38,24 +38,24 @@
 
     @Override protected final ApplicationComponent h2DataToStreamData(ResultSet resultSet) throws SQLException {
         ApplicationComponent applicationComponent = new ApplicationComponent();
-        applicationComponent.setId(resultSet.getString(ApplicationComponentTable.COLUMN_ID));
-        applicationComponent.setMetricId(resultSet.getString(ApplicationComponentTable.COLUMN_METRIC_ID));
+        applicationComponent.setId(resultSet.getString(ApplicationComponentTable.ID.getName()));
+        applicationComponent.setMetricId(resultSet.getString(ApplicationComponentTable.METRIC_ID.getName()));
 
-        applicationComponent.setComponentId(resultSet.getInt(ApplicationComponentTable.COLUMN_COMPONENT_ID));
-        applicationComponent.setApplicationId(resultSet.getInt(ApplicationComponentTable.COLUMN_APPLICATION_ID));
-        applicationComponent.setTimeBucket(resultSet.getLong(ApplicationComponentTable.COLUMN_TIME_BUCKET));
+        applicationComponent.setComponentId(resultSet.getInt(ApplicationComponentTable.COMPONENT_ID.getName()));
+        applicationComponent.setApplicationId(resultSet.getInt(ApplicationComponentTable.APPLICATION_ID.getName()));
+        applicationComponent.setTimeBucket(resultSet.getLong(ApplicationComponentTable.TIME_BUCKET.getName()));
         return applicationComponent;
     }
 
     @Override protected final Map<String, Object> streamDataToH2Data(ApplicationComponent streamData) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(ApplicationComponentTable.COLUMN_ID, streamData.getId());
-        source.put(ApplicationComponentTable.COLUMN_METRIC_ID, streamData.getMetricId());
+        Map<String, Object> target = new HashMap<>();
+        target.put(ApplicationComponentTable.ID.getName(), streamData.getId());
+        target.put(ApplicationComponentTable.METRIC_ID.getName(), streamData.getMetricId());
 
-        source.put(ApplicationComponentTable.COLUMN_COMPONENT_ID, streamData.getComponentId());
-        source.put(ApplicationComponentTable.COLUMN_APPLICATION_ID, streamData.getApplicationId());
-        source.put(ApplicationComponentTable.COLUMN_TIME_BUCKET, streamData.getTimeBucket());
+        target.put(ApplicationComponentTable.COMPONENT_ID.getName(), streamData.getComponentId());
+        target.put(ApplicationComponentTable.APPLICATION_ID.getName(), streamData.getApplicationId());
+        target.put(ApplicationComponentTable.TIME_BUCKET.getName(), streamData.getTimeBucket());
 
-        return source;
+        return target;
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/alarm/AbstractApplicationAlarmListH2PersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/alarm/AbstractApplicationAlarmListH2PersistenceDAO.java
index 9d6c95a40..c1735804f 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/alarm/AbstractApplicationAlarmListH2PersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/alarm/AbstractApplicationAlarmListH2PersistenceDAO.java
@@ -32,39 +32,39 @@
  */
 public abstract class AbstractApplicationAlarmListH2PersistenceDAO extends AbstractPersistenceH2DAO<ApplicationAlarmList> {
 
-    public AbstractApplicationAlarmListH2PersistenceDAO(H2Client client) {
+    AbstractApplicationAlarmListH2PersistenceDAO(H2Client client) {
         super(client);
     }
 
     @Override protected final ApplicationAlarmList h2DataToStreamData(ResultSet resultSet) throws SQLException {
         ApplicationAlarmList applicationAlarmList = new ApplicationAlarmList();
-        applicationAlarmList.setId(resultSet.getString(ApplicationAlarmListTable.COLUMN_ID));
-        applicationAlarmList.setMetricId(resultSet.getString(ApplicationAlarmListTable.COLUMN_METRIC_ID));
-        applicationAlarmList.setSourceValue(resultSet.getInt(ApplicationAlarmListTable.COLUMN_SOURCE_VALUE));
+        applicationAlarmList.setId(resultSet.getString(ApplicationAlarmListTable.ID.getName()));
+        applicationAlarmList.setMetricId(resultSet.getString(ApplicationAlarmListTable.METRIC_ID.getName()));
+        applicationAlarmList.setSourceValue(resultSet.getInt(ApplicationAlarmListTable.SOURCE_VALUE.getName()));
 
-        applicationAlarmList.setAlarmType(resultSet.getInt(ApplicationAlarmListTable.COLUMN_ALARM_TYPE));
+        applicationAlarmList.setAlarmType(resultSet.getInt(ApplicationAlarmListTable.ALARM_TYPE.getName()));
 
-        applicationAlarmList.setApplicationId(resultSet.getInt(ApplicationAlarmListTable.COLUMN_APPLICATION_ID));
+        applicationAlarmList.setApplicationId(resultSet.getInt(ApplicationAlarmListTable.APPLICATION_ID.getName()));
 
-        applicationAlarmList.setTimeBucket(resultSet.getLong(ApplicationAlarmListTable.COLUMN_TIME_BUCKET));
-        applicationAlarmList.setAlarmContent(resultSet.getString(ApplicationAlarmListTable.COLUMN_ALARM_CONTENT));
+        applicationAlarmList.setTimeBucket(resultSet.getLong(ApplicationAlarmListTable.TIME_BUCKET.getName()));
+        applicationAlarmList.setAlarmContent(resultSet.getString(ApplicationAlarmListTable.ALARM_CONTENT.getName()));
 
         return applicationAlarmList;
     }
 
     @Override protected final Map<String, Object> streamDataToH2Data(ApplicationAlarmList streamData) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(ApplicationAlarmListTable.COLUMN_ID, streamData.getId());
-        source.put(ApplicationAlarmListTable.COLUMN_METRIC_ID, streamData.getMetricId());
-        source.put(ApplicationAlarmListTable.COLUMN_SOURCE_VALUE, streamData.getSourceValue());
+        Map<String, Object> target = new HashMap<>();
+        target.put(ApplicationAlarmListTable.ID.getName(), streamData.getId());
+        target.put(ApplicationAlarmListTable.METRIC_ID.getName(), streamData.getMetricId());
+        target.put(ApplicationAlarmListTable.SOURCE_VALUE.getName(), streamData.getSourceValue());
 
-        source.put(ApplicationAlarmListTable.COLUMN_ALARM_TYPE, streamData.getAlarmType());
+        target.put(ApplicationAlarmListTable.ALARM_TYPE.getName(), streamData.getAlarmType());
 
-        source.put(ApplicationAlarmListTable.COLUMN_APPLICATION_ID, streamData.getApplicationId());
+        target.put(ApplicationAlarmListTable.APPLICATION_ID.getName(), streamData.getApplicationId());
 
-        source.put(ApplicationAlarmListTable.COLUMN_TIME_BUCKET, streamData.getTimeBucket());
-        source.put(ApplicationAlarmListTable.COLUMN_ALARM_CONTENT, streamData.getAlarmContent());
+        target.put(ApplicationAlarmListTable.TIME_BUCKET.getName(), streamData.getTimeBucket());
+        target.put(ApplicationAlarmListTable.ALARM_CONTENT.getName(), streamData.getAlarmContent());
 
-        return source;
+        return target;
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/alarm/ApplicationAlarmH2PersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/alarm/ApplicationAlarmH2PersistenceDAO.java
index b0d6472cf..34ad12344 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/alarm/ApplicationAlarmH2PersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/alarm/ApplicationAlarmH2PersistenceDAO.java
@@ -44,30 +44,30 @@ public ApplicationAlarmH2PersistenceDAO(H2Client client) {
 
     @Override protected ApplicationAlarm h2DataToStreamData(ResultSet resultSet) throws SQLException {
         ApplicationAlarm applicationAlarm = new ApplicationAlarm();
-        applicationAlarm.setId(resultSet.getString(ApplicationAlarmTable.COLUMN_ID));
-        applicationAlarm.setSourceValue(resultSet.getInt(ApplicationAlarmTable.COLUMN_SOURCE_VALUE));
+        applicationAlarm.setId(resultSet.getString(ApplicationAlarmTable.ID.getName()));
+        applicationAlarm.setSourceValue(resultSet.getInt(ApplicationAlarmTable.SOURCE_VALUE.getName()));
 
-        applicationAlarm.setAlarmType(resultSet.getInt(ApplicationAlarmTable.COLUMN_ALARM_TYPE));
+        applicationAlarm.setAlarmType(resultSet.getInt(ApplicationAlarmTable.ALARM_TYPE.getName()));
 
-        applicationAlarm.setApplicationId(resultSet.getInt(ApplicationAlarmTable.COLUMN_APPLICATION_ID));
+        applicationAlarm.setApplicationId(resultSet.getInt(ApplicationAlarmTable.APPLICATION_ID.getName()));
 
-        applicationAlarm.setLastTimeBucket(resultSet.getLong(ApplicationAlarmTable.COLUMN_LAST_TIME_BUCKET));
-        applicationAlarm.setAlarmContent(resultSet.getString(ApplicationAlarmTable.COLUMN_ALARM_CONTENT));
+        applicationAlarm.setLastTimeBucket(resultSet.getLong(ApplicationAlarmTable.LAST_TIME_BUCKET.getName()));
+        applicationAlarm.setAlarmContent(resultSet.getString(ApplicationAlarmTable.ALARM_CONTENT.getName()));
 
         return applicationAlarm;
     }
 
     @Override protected Map<String, Object> streamDataToH2Data(ApplicationAlarm streamData) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(ApplicationAlarmTable.COLUMN_SOURCE_VALUE, streamData.getSourceValue());
+        Map<String, Object> target = new HashMap<>();
+        target.put(ApplicationAlarmTable.SOURCE_VALUE.getName(), streamData.getSourceValue());
 
-        source.put(ApplicationAlarmTable.COLUMN_ALARM_TYPE, streamData.getAlarmType());
+        target.put(ApplicationAlarmTable.ALARM_TYPE.getName(), streamData.getAlarmType());
 
-        source.put(ApplicationAlarmTable.COLUMN_APPLICATION_ID, streamData.getApplicationId());
+        target.put(ApplicationAlarmTable.APPLICATION_ID.getName(), streamData.getApplicationId());
 
-        source.put(ApplicationAlarmTable.COLUMN_LAST_TIME_BUCKET, streamData.getLastTimeBucket());
-        source.put(ApplicationAlarmTable.COLUMN_ALARM_CONTENT, streamData.getAlarmContent());
+        target.put(ApplicationAlarmTable.LAST_TIME_BUCKET.getName(), streamData.getLastTimeBucket());
+        target.put(ApplicationAlarmTable.ALARM_CONTENT.getName(), streamData.getAlarmContent());
 
-        return source;
+        return target;
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/alarm/ApplicationReferenceAlarmH2PersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/alarm/ApplicationReferenceAlarmH2PersistenceDAO.java
index ac2779ef3..5d4a59b0e 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/alarm/ApplicationReferenceAlarmH2PersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/alarm/ApplicationReferenceAlarmH2PersistenceDAO.java
@@ -44,32 +44,32 @@ public ApplicationReferenceAlarmH2PersistenceDAO(H2Client client) {
 
     @Override protected ApplicationReferenceAlarm h2DataToStreamData(ResultSet resultSet) throws SQLException {
         ApplicationReferenceAlarm applicationReferenceAlarm = new ApplicationReferenceAlarm();
-        applicationReferenceAlarm.setId(resultSet.getString(ApplicationReferenceAlarmTable.COLUMN_ID));
-        applicationReferenceAlarm.setSourceValue(resultSet.getInt(ApplicationReferenceAlarmTable.COLUMN_SOURCE_VALUE));
+        applicationReferenceAlarm.setId(resultSet.getString(ApplicationReferenceAlarmTable.ID.getName()));
+        applicationReferenceAlarm.setSourceValue(resultSet.getInt(ApplicationReferenceAlarmTable.SOURCE_VALUE.getName()));
 
-        applicationReferenceAlarm.setAlarmType(resultSet.getInt(ApplicationReferenceAlarmTable.COLUMN_ALARM_TYPE));
+        applicationReferenceAlarm.setAlarmType(resultSet.getInt(ApplicationReferenceAlarmTable.ALARM_TYPE.getName()));
 
-        applicationReferenceAlarm.setFrontApplicationId(resultSet.getInt(ApplicationReferenceAlarmTable.COLUMN_FRONT_APPLICATION_ID));
-        applicationReferenceAlarm.setBehindApplicationId(resultSet.getInt(ApplicationReferenceAlarmTable.COLUMN_BEHIND_APPLICATION_ID));
+        applicationReferenceAlarm.setFrontApplicationId(resultSet.getInt(ApplicationReferenceAlarmTable.FRONT_APPLICATION_ID.getName()));
+        applicationReferenceAlarm.setBehindApplicationId(resultSet.getInt(ApplicationReferenceAlarmTable.BEHIND_APPLICATION_ID.getName()));
 
-        applicationReferenceAlarm.setLastTimeBucket(resultSet.getLong(ApplicationReferenceAlarmTable.COLUMN_LAST_TIME_BUCKET));
-        applicationReferenceAlarm.setAlarmContent(resultSet.getString(ApplicationReferenceAlarmTable.COLUMN_ALARM_CONTENT));
+        applicationReferenceAlarm.setLastTimeBucket(resultSet.getLong(ApplicationReferenceAlarmTable.LAST_TIME_BUCKET.getName()));
+        applicationReferenceAlarm.setAlarmContent(resultSet.getString(ApplicationReferenceAlarmTable.ALARM_CONTENT.getName()));
 
         return applicationReferenceAlarm;
     }
 
     @Override protected Map<String, Object> streamDataToH2Data(ApplicationReferenceAlarm streamData) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(ApplicationReferenceAlarmTable.COLUMN_SOURCE_VALUE, streamData.getSourceValue());
+        Map<String, Object> target = new HashMap<>();
+        target.put(ApplicationReferenceAlarmTable.SOURCE_VALUE.getName(), streamData.getSourceValue());
 
-        source.put(ApplicationReferenceAlarmTable.COLUMN_ALARM_TYPE, streamData.getAlarmType());
+        target.put(ApplicationReferenceAlarmTable.ALARM_TYPE.getName(), streamData.getAlarmType());
 
-        source.put(ApplicationReferenceAlarmTable.COLUMN_FRONT_APPLICATION_ID, streamData.getFrontApplicationId());
-        source.put(ApplicationReferenceAlarmTable.COLUMN_BEHIND_APPLICATION_ID, streamData.getBehindApplicationId());
+        target.put(ApplicationReferenceAlarmTable.FRONT_APPLICATION_ID.getName(), streamData.getFrontApplicationId());
+        target.put(ApplicationReferenceAlarmTable.BEHIND_APPLICATION_ID.getName(), streamData.getBehindApplicationId());
 
-        source.put(ApplicationReferenceAlarmTable.COLUMN_LAST_TIME_BUCKET, streamData.getLastTimeBucket());
-        source.put(ApplicationReferenceAlarmTable.COLUMN_ALARM_CONTENT, streamData.getAlarmContent());
+        target.put(ApplicationReferenceAlarmTable.LAST_TIME_BUCKET.getName(), streamData.getLastTimeBucket());
+        target.put(ApplicationReferenceAlarmTable.ALARM_CONTENT.getName(), streamData.getAlarmContent());
 
-        return source;
+        return target;
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/alarm/ApplicationReferenceAlarmListH2PersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/alarm/ApplicationReferenceAlarmListH2PersistenceDAO.java
index 8b129cd18..192b70fe5 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/alarm/ApplicationReferenceAlarmListH2PersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/alarm/ApplicationReferenceAlarmListH2PersistenceDAO.java
@@ -44,32 +44,32 @@ public ApplicationReferenceAlarmListH2PersistenceDAO(H2Client client) {
 
     @Override protected ApplicationReferenceAlarmList h2DataToStreamData(ResultSet resultSet) throws SQLException {
         ApplicationReferenceAlarmList applicationReferenceAlarmList = new ApplicationReferenceAlarmList();
-        applicationReferenceAlarmList.setId(resultSet.getString(ApplicationReferenceAlarmListTable.COLUMN_ID));
-        applicationReferenceAlarmList.setSourceValue(resultSet.getInt(ApplicationReferenceAlarmListTable.COLUMN_SOURCE_VALUE));
+        applicationReferenceAlarmList.setId(resultSet.getString(ApplicationReferenceAlarmListTable.ID.getName()));
+        applicationReferenceAlarmList.setSourceValue(resultSet.getInt(ApplicationReferenceAlarmListTable.SOURCE_VALUE.getName()));
 
-        applicationReferenceAlarmList.setAlarmType(resultSet.getInt(ApplicationReferenceAlarmListTable.COLUMN_ALARM_TYPE));
+        applicationReferenceAlarmList.setAlarmType(resultSet.getInt(ApplicationReferenceAlarmListTable.ALARM_TYPE.getName()));
 
-        applicationReferenceAlarmList.setFrontApplicationId(resultSet.getInt(ApplicationReferenceAlarmListTable.COLUMN_FRONT_APPLICATION_ID));
-        applicationReferenceAlarmList.setBehindApplicationId(resultSet.getInt(ApplicationReferenceAlarmListTable.COLUMN_BEHIND_APPLICATION_ID));
+        applicationReferenceAlarmList.setFrontApplicationId(resultSet.getInt(ApplicationReferenceAlarmListTable.FRONT_APPLICATION_ID.getName()));
+        applicationReferenceAlarmList.setBehindApplicationId(resultSet.getInt(ApplicationReferenceAlarmListTable.BEHIND_APPLICATION_ID.getName()));
 
-        applicationReferenceAlarmList.setTimeBucket(resultSet.getLong(ApplicationReferenceAlarmListTable.COLUMN_TIME_BUCKET));
-        applicationReferenceAlarmList.setAlarmContent(resultSet.getString(ApplicationReferenceAlarmListTable.COLUMN_ALARM_CONTENT));
+        applicationReferenceAlarmList.setTimeBucket(resultSet.getLong(ApplicationReferenceAlarmListTable.TIME_BUCKET.getName()));
+        applicationReferenceAlarmList.setAlarmContent(resultSet.getString(ApplicationReferenceAlarmListTable.ALARM_CONTENT.getName()));
 
         return applicationReferenceAlarmList;
     }
 
     @Override protected Map<String, Object> streamDataToH2Data(ApplicationReferenceAlarmList streamData) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(ApplicationReferenceAlarmListTable.COLUMN_SOURCE_VALUE, streamData.getSourceValue());
+        Map<String, Object> target = new HashMap<>();
+        target.put(ApplicationReferenceAlarmListTable.SOURCE_VALUE.getName(), streamData.getSourceValue());
 
-        source.put(ApplicationReferenceAlarmListTable.COLUMN_ALARM_TYPE, streamData.getAlarmType());
+        target.put(ApplicationReferenceAlarmListTable.ALARM_TYPE.getName(), streamData.getAlarmType());
 
-        source.put(ApplicationReferenceAlarmListTable.COLUMN_FRONT_APPLICATION_ID, streamData.getFrontApplicationId());
-        source.put(ApplicationReferenceAlarmListTable.COLUMN_BEHIND_APPLICATION_ID, streamData.getBehindApplicationId());
+        target.put(ApplicationReferenceAlarmListTable.FRONT_APPLICATION_ID.getName(), streamData.getFrontApplicationId());
+        target.put(ApplicationReferenceAlarmListTable.BEHIND_APPLICATION_ID.getName(), streamData.getBehindApplicationId());
 
-        source.put(ApplicationReferenceAlarmListTable.COLUMN_TIME_BUCKET, streamData.getTimeBucket());
-        source.put(ApplicationReferenceAlarmListTable.COLUMN_ALARM_CONTENT, streamData.getAlarmContent());
+        target.put(ApplicationReferenceAlarmListTable.TIME_BUCKET.getName(), streamData.getTimeBucket());
+        target.put(ApplicationReferenceAlarmListTable.ALARM_CONTENT.getName(), streamData.getAlarmContent());
 
-        return source;
+        return target;
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/alarm/InstanceAlarmH2PersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/alarm/InstanceAlarmH2PersistenceDAO.java
index f3c2b23ee..94d2605cd 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/alarm/InstanceAlarmH2PersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/alarm/InstanceAlarmH2PersistenceDAO.java
@@ -44,32 +44,32 @@ public InstanceAlarmH2PersistenceDAO(H2Client client) {
 
     @Override protected InstanceAlarm h2DataToStreamData(ResultSet resultSet) throws SQLException {
         InstanceAlarm instanceAlarm = new InstanceAlarm();
-        instanceAlarm.setId(resultSet.getString(InstanceAlarmTable.COLUMN_ID));
-        instanceAlarm.setSourceValue(resultSet.getInt(InstanceAlarmTable.COLUMN_SOURCE_VALUE));
+        instanceAlarm.setId(resultSet.getString(InstanceAlarmTable.ID.getName()));
+        instanceAlarm.setSourceValue(resultSet.getInt(InstanceAlarmTable.SOURCE_VALUE.getName()));
 
-        instanceAlarm.setAlarmType(resultSet.getInt(InstanceAlarmTable.COLUMN_ALARM_TYPE));
+        instanceAlarm.setAlarmType(resultSet.getInt(InstanceAlarmTable.ALARM_TYPE.getName()));
 
-        instanceAlarm.setApplicationId(resultSet.getInt(InstanceAlarmTable.COLUMN_APPLICATION_ID));
-        instanceAlarm.setInstanceId(resultSet.getInt(InstanceAlarmTable.COLUMN_INSTANCE_ID));
+        instanceAlarm.setApplicationId(resultSet.getInt(InstanceAlarmTable.APPLICATION_ID.getName()));
+        instanceAlarm.setInstanceId(resultSet.getInt(InstanceAlarmTable.INSTANCE_ID.getName()));
 
-        instanceAlarm.setLastTimeBucket(resultSet.getLong(InstanceAlarmTable.COLUMN_LAST_TIME_BUCKET));
-        instanceAlarm.setAlarmContent(resultSet.getString(InstanceAlarmTable.COLUMN_ALARM_CONTENT));
+        instanceAlarm.setLastTimeBucket(resultSet.getLong(InstanceAlarmTable.LAST_TIME_BUCKET.getName()));
+        instanceAlarm.setAlarmContent(resultSet.getString(InstanceAlarmTable.ALARM_CONTENT.getName()));
 
         return instanceAlarm;
     }
 
     @Override protected Map<String, Object> streamDataToH2Data(InstanceAlarm streamData) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(InstanceAlarmTable.COLUMN_SOURCE_VALUE, streamData.getSourceValue());
+        Map<String, Object> target = new HashMap<>();
+        target.put(InstanceAlarmTable.SOURCE_VALUE.getName(), streamData.getSourceValue());
 
-        source.put(InstanceAlarmTable.COLUMN_ALARM_TYPE, streamData.getAlarmType());
+        target.put(InstanceAlarmTable.ALARM_TYPE.getName(), streamData.getAlarmType());
 
-        source.put(InstanceAlarmTable.COLUMN_APPLICATION_ID, streamData.getApplicationId());
-        source.put(InstanceAlarmTable.COLUMN_INSTANCE_ID, streamData.getInstanceId());
+        target.put(InstanceAlarmTable.APPLICATION_ID.getName(), streamData.getApplicationId());
+        target.put(InstanceAlarmTable.INSTANCE_ID.getName(), streamData.getInstanceId());
 
-        source.put(InstanceAlarmTable.COLUMN_LAST_TIME_BUCKET, streamData.getLastTimeBucket());
-        source.put(InstanceAlarmTable.COLUMN_ALARM_CONTENT, streamData.getAlarmContent());
+        target.put(InstanceAlarmTable.LAST_TIME_BUCKET.getName(), streamData.getLastTimeBucket());
+        target.put(InstanceAlarmTable.ALARM_CONTENT.getName(), streamData.getAlarmContent());
 
-        return source;
+        return target;
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/alarm/InstanceAlarmListH2PersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/alarm/InstanceAlarmListH2PersistenceDAO.java
index bd0aee269..ff4afc7e8 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/alarm/InstanceAlarmListH2PersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/alarm/InstanceAlarmListH2PersistenceDAO.java
@@ -44,32 +44,32 @@ public InstanceAlarmListH2PersistenceDAO(H2Client client) {
 
     @Override protected InstanceAlarmList h2DataToStreamData(ResultSet resultSet) throws SQLException {
         InstanceAlarmList instanceAlarmList = new InstanceAlarmList();
-        instanceAlarmList.setId(resultSet.getString(InstanceAlarmListTable.COLUMN_ID));
-        instanceAlarmList.setSourceValue(resultSet.getInt(InstanceAlarmListTable.COLUMN_SOURCE_VALUE));
+        instanceAlarmList.setId(resultSet.getString(InstanceAlarmListTable.ID.getName()));
+        instanceAlarmList.setSourceValue(resultSet.getInt(InstanceAlarmListTable.SOURCE_VALUE.getName()));
 
-        instanceAlarmList.setAlarmType(resultSet.getInt(InstanceAlarmListTable.COLUMN_ALARM_TYPE));
+        instanceAlarmList.setAlarmType(resultSet.getInt(InstanceAlarmListTable.ALARM_TYPE.getName()));
 
-        instanceAlarmList.setApplicationId(resultSet.getInt(InstanceAlarmListTable.COLUMN_APPLICATION_ID));
-        instanceAlarmList.setInstanceId(resultSet.getInt(InstanceAlarmListTable.COLUMN_INSTANCE_ID));
+        instanceAlarmList.setApplicationId(resultSet.getInt(InstanceAlarmListTable.APPLICATION_ID.getName()));
+        instanceAlarmList.setInstanceId(resultSet.getInt(InstanceAlarmListTable.INSTANCE_ID.getName()));
 
-        instanceAlarmList.setTimeBucket(resultSet.getLong(InstanceAlarmListTable.COLUMN_TIME_BUCKET));
-        instanceAlarmList.setAlarmContent(resultSet.getString(InstanceAlarmListTable.COLUMN_ALARM_CONTENT));
+        instanceAlarmList.setTimeBucket(resultSet.getLong(InstanceAlarmListTable.TIME_BUCKET.getName()));
+        instanceAlarmList.setAlarmContent(resultSet.getString(InstanceAlarmListTable.ALARM_CONTENT.getName()));
 
         return instanceAlarmList;
     }
 
     @Override protected Map<String, Object> streamDataToH2Data(InstanceAlarmList streamData) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(InstanceAlarmListTable.COLUMN_SOURCE_VALUE, streamData.getSourceValue());
+        Map<String, Object> target = new HashMap<>();
+        target.put(InstanceAlarmListTable.SOURCE_VALUE.getName(), streamData.getSourceValue());
 
-        source.put(InstanceAlarmListTable.COLUMN_ALARM_TYPE, streamData.getAlarmType());
+        target.put(InstanceAlarmListTable.ALARM_TYPE.getName(), streamData.getAlarmType());
 
-        source.put(InstanceAlarmListTable.COLUMN_APPLICATION_ID, streamData.getApplicationId());
-        source.put(InstanceAlarmListTable.COLUMN_INSTANCE_ID, streamData.getInstanceId());
+        target.put(InstanceAlarmListTable.APPLICATION_ID.getName(), streamData.getApplicationId());
+        target.put(InstanceAlarmListTable.INSTANCE_ID.getName(), streamData.getInstanceId());
 
-        source.put(InstanceAlarmListTable.COLUMN_TIME_BUCKET, streamData.getTimeBucket());
-        source.put(InstanceAlarmListTable.COLUMN_ALARM_CONTENT, streamData.getAlarmContent());
+        target.put(InstanceAlarmListTable.TIME_BUCKET.getName(), streamData.getTimeBucket());
+        target.put(InstanceAlarmListTable.ALARM_CONTENT.getName(), streamData.getAlarmContent());
 
-        return source;
+        return target;
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/alarm/InstanceReferenceAlarmH2PersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/alarm/InstanceReferenceAlarmH2PersistenceDAO.java
index 9b8fe7ecf..8a21c84e1 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/alarm/InstanceReferenceAlarmH2PersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/alarm/InstanceReferenceAlarmH2PersistenceDAO.java
@@ -45,36 +45,36 @@ public InstanceReferenceAlarmH2PersistenceDAO(H2Client client) {
 
     @Override protected InstanceReferenceAlarm h2DataToStreamData(ResultSet resultSet) throws SQLException {
         InstanceReferenceAlarm instanceReferenceAlarm = new InstanceReferenceAlarm();
-        instanceReferenceAlarm.setId(resultSet.getString(ServiceReferenceAlarmTable.COLUMN_ID));
-        instanceReferenceAlarm.setSourceValue(resultSet.getInt(ServiceReferenceAlarmTable.COLUMN_SOURCE_VALUE));
+        instanceReferenceAlarm.setId(resultSet.getString(ServiceReferenceAlarmTable.ID.getName()));
+        instanceReferenceAlarm.setSourceValue(resultSet.getInt(ServiceReferenceAlarmTable.SOURCE_VALUE.getName()));
 
-        instanceReferenceAlarm.setAlarmType(resultSet.getInt(ServiceReferenceAlarmTable.COLUMN_ALARM_TYPE));
+        instanceReferenceAlarm.setAlarmType(resultSet.getInt(ServiceReferenceAlarmTable.ALARM_TYPE.getName()));
 
-        instanceReferenceAlarm.setFrontApplicationId(resultSet.getInt(ServiceReferenceAlarmTable.COLUMN_FRONT_APPLICATION_ID));
-        instanceReferenceAlarm.setFrontInstanceId(resultSet.getInt(ServiceReferenceAlarmTable.COLUMN_FRONT_INSTANCE_ID));
-        instanceReferenceAlarm.setBehindApplicationId(resultSet.getInt(ServiceReferenceAlarmTable.COLUMN_BEHIND_APPLICATION_ID));
-        instanceReferenceAlarm.setBehindInstanceId(resultSet.getInt(ServiceReferenceAlarmTable.COLUMN_BEHIND_INSTANCE_ID));
+        instanceReferenceAlarm.setFrontApplicationId(resultSet.getInt(ServiceReferenceAlarmTable.FRONT_APPLICATION_ID.getName()));
+        instanceReferenceAlarm.setFrontInstanceId(resultSet.getInt(ServiceReferenceAlarmTable.FRONT_INSTANCE_ID.getName()));
+        instanceReferenceAlarm.setBehindApplicationId(resultSet.getInt(ServiceReferenceAlarmTable.BEHIND_APPLICATION_ID.getName()));
+        instanceReferenceAlarm.setBehindInstanceId(resultSet.getInt(ServiceReferenceAlarmTable.BEHIND_INSTANCE_ID.getName()));
 
-        instanceReferenceAlarm.setLastTimeBucket(resultSet.getLong(ServiceReferenceAlarmTable.COLUMN_LAST_TIME_BUCKET));
-        instanceReferenceAlarm.setAlarmContent(resultSet.getString(ServiceReferenceAlarmTable.COLUMN_ALARM_CONTENT));
+        instanceReferenceAlarm.setLastTimeBucket(resultSet.getLong(ServiceReferenceAlarmTable.LAST_TIME_BUCKET.getName()));
+        instanceReferenceAlarm.setAlarmContent(resultSet.getString(ServiceReferenceAlarmTable.ALARM_CONTENT.getName()));
 
         return instanceReferenceAlarm;
     }
 
     @Override protected Map<String, Object> streamDataToH2Data(InstanceReferenceAlarm streamData) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(ServiceReferenceAlarmTable.COLUMN_SOURCE_VALUE, streamData.getSourceValue());
+        Map<String, Object> target = new HashMap<>();
+        target.put(ServiceReferenceAlarmTable.SOURCE_VALUE.getName(), streamData.getSourceValue());
 
-        source.put(ServiceReferenceAlarmTable.COLUMN_ALARM_TYPE, streamData.getAlarmType());
+        target.put(ServiceReferenceAlarmTable.ALARM_TYPE.getName(), streamData.getAlarmType());
 
-        source.put(ServiceReferenceAlarmTable.COLUMN_FRONT_APPLICATION_ID, streamData.getFrontApplicationId());
-        source.put(ServiceReferenceAlarmTable.COLUMN_FRONT_INSTANCE_ID, streamData.getFrontInstanceId());
-        source.put(ServiceReferenceAlarmTable.COLUMN_BEHIND_APPLICATION_ID, streamData.getBehindApplicationId());
-        source.put(ServiceReferenceAlarmTable.COLUMN_BEHIND_INSTANCE_ID, streamData.getBehindInstanceId());
+        target.put(ServiceReferenceAlarmTable.FRONT_APPLICATION_ID.getName(), streamData.getFrontApplicationId());
+        target.put(ServiceReferenceAlarmTable.FRONT_INSTANCE_ID.getName(), streamData.getFrontInstanceId());
+        target.put(ServiceReferenceAlarmTable.BEHIND_APPLICATION_ID.getName(), streamData.getBehindApplicationId());
+        target.put(ServiceReferenceAlarmTable.BEHIND_INSTANCE_ID.getName(), streamData.getBehindInstanceId());
 
-        source.put(ServiceReferenceAlarmTable.COLUMN_LAST_TIME_BUCKET, streamData.getLastTimeBucket());
-        source.put(ServiceReferenceAlarmTable.COLUMN_ALARM_CONTENT, streamData.getAlarmContent());
+        target.put(ServiceReferenceAlarmTable.LAST_TIME_BUCKET.getName(), streamData.getLastTimeBucket());
+        target.put(ServiceReferenceAlarmTable.ALARM_CONTENT.getName(), streamData.getAlarmContent());
 
-        return source;
+        return target;
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/alarm/InstanceReferenceAlarmListH2PersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/alarm/InstanceReferenceAlarmListH2PersistenceDAO.java
index 2f8997c96..728f5689b 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/alarm/InstanceReferenceAlarmListH2PersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/alarm/InstanceReferenceAlarmListH2PersistenceDAO.java
@@ -44,36 +44,36 @@ public InstanceReferenceAlarmListH2PersistenceDAO(H2Client client) {
 
     @Override protected InstanceReferenceAlarmList h2DataToStreamData(ResultSet resultSet) throws SQLException {
         InstanceReferenceAlarmList instanceReferenceAlarmList = new InstanceReferenceAlarmList();
-        instanceReferenceAlarmList.setId(resultSet.getString(InstanceReferenceAlarmListTable.COLUMN_ID));
-        instanceReferenceAlarmList.setSourceValue(resultSet.getInt(InstanceReferenceAlarmListTable.COLUMN_SOURCE_VALUE));
+        instanceReferenceAlarmList.setId(resultSet.getString(InstanceReferenceAlarmListTable.ID.getName()));
+        instanceReferenceAlarmList.setSourceValue(resultSet.getInt(InstanceReferenceAlarmListTable.SOURCE_VALUE.getName()));
 
-        instanceReferenceAlarmList.setAlarmType(resultSet.getInt(InstanceReferenceAlarmListTable.COLUMN_ALARM_TYPE));
+        instanceReferenceAlarmList.setAlarmType(resultSet.getInt(InstanceReferenceAlarmListTable.ALARM_TYPE.getName()));
 
-        instanceReferenceAlarmList.setFrontApplicationId(resultSet.getInt(InstanceReferenceAlarmListTable.COLUMN_FRONT_APPLICATION_ID));
-        instanceReferenceAlarmList.setFrontInstanceId(resultSet.getInt(InstanceReferenceAlarmListTable.COLUMN_FRONT_INSTANCE_ID));
-        instanceReferenceAlarmList.setBehindApplicationId(resultSet.getInt(InstanceReferenceAlarmListTable.COLUMN_BEHIND_APPLICATION_ID));
-        instanceReferenceAlarmList.setBehindInstanceId(resultSet.getInt(InstanceReferenceAlarmListTable.COLUMN_BEHIND_INSTANCE_ID));
+        instanceReferenceAlarmList.setFrontApplicationId(resultSet.getInt(InstanceReferenceAlarmListTable.FRONT_APPLICATION_ID.getName()));
+        instanceReferenceAlarmList.setFrontInstanceId(resultSet.getInt(InstanceReferenceAlarmListTable.FRONT_INSTANCE_ID.getName()));
+        instanceReferenceAlarmList.setBehindApplicationId(resultSet.getInt(InstanceReferenceAlarmListTable.BEHIND_APPLICATION_ID.getName()));
+        instanceReferenceAlarmList.setBehindInstanceId(resultSet.getInt(InstanceReferenceAlarmListTable.BEHIND_INSTANCE_ID.getName()));
 
-        instanceReferenceAlarmList.setTimeBucket(resultSet.getLong(InstanceReferenceAlarmListTable.COLUMN_TIME_BUCKET));
-        instanceReferenceAlarmList.setAlarmContent(resultSet.getString(InstanceReferenceAlarmListTable.COLUMN_ALARM_CONTENT));
+        instanceReferenceAlarmList.setTimeBucket(resultSet.getLong(InstanceReferenceAlarmListTable.TIME_BUCKET.getName()));
+        instanceReferenceAlarmList.setAlarmContent(resultSet.getString(InstanceReferenceAlarmListTable.ALARM_CONTENT.getName()));
 
         return instanceReferenceAlarmList;
     }
 
     @Override protected Map<String, Object> streamDataToH2Data(InstanceReferenceAlarmList streamData) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(InstanceReferenceAlarmListTable.COLUMN_SOURCE_VALUE, streamData.getSourceValue());
+        Map<String, Object> target = new HashMap<>();
+        target.put(InstanceReferenceAlarmListTable.SOURCE_VALUE.getName(), streamData.getSourceValue());
 
-        source.put(InstanceReferenceAlarmListTable.COLUMN_ALARM_TYPE, streamData.getAlarmType());
+        target.put(InstanceReferenceAlarmListTable.ALARM_TYPE.getName(), streamData.getAlarmType());
 
-        source.put(InstanceReferenceAlarmListTable.COLUMN_FRONT_APPLICATION_ID, streamData.getFrontApplicationId());
-        source.put(InstanceReferenceAlarmListTable.COLUMN_FRONT_INSTANCE_ID, streamData.getFrontInstanceId());
-        source.put(InstanceReferenceAlarmListTable.COLUMN_BEHIND_APPLICATION_ID, streamData.getBehindApplicationId());
-        source.put(InstanceReferenceAlarmListTable.COLUMN_BEHIND_INSTANCE_ID, streamData.getBehindInstanceId());
+        target.put(InstanceReferenceAlarmListTable.FRONT_APPLICATION_ID.getName(), streamData.getFrontApplicationId());
+        target.put(InstanceReferenceAlarmListTable.FRONT_INSTANCE_ID.getName(), streamData.getFrontInstanceId());
+        target.put(InstanceReferenceAlarmListTable.BEHIND_APPLICATION_ID.getName(), streamData.getBehindApplicationId());
+        target.put(InstanceReferenceAlarmListTable.BEHIND_INSTANCE_ID.getName(), streamData.getBehindInstanceId());
 
-        source.put(InstanceReferenceAlarmListTable.COLUMN_TIME_BUCKET, streamData.getTimeBucket());
-        source.put(InstanceReferenceAlarmListTable.COLUMN_ALARM_CONTENT, streamData.getAlarmContent());
+        target.put(InstanceReferenceAlarmListTable.TIME_BUCKET.getName(), streamData.getTimeBucket());
+        target.put(InstanceReferenceAlarmListTable.ALARM_CONTENT.getName(), streamData.getAlarmContent());
 
-        return source;
+        return target;
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/alarm/ServiceAlarmH2PersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/alarm/ServiceAlarmH2PersistenceDAO.java
index 135b931f7..d003ed74d 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/alarm/ServiceAlarmH2PersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/alarm/ServiceAlarmH2PersistenceDAO.java
@@ -44,34 +44,34 @@ public ServiceAlarmH2PersistenceDAO(H2Client client) {
 
     @Override protected ServiceAlarm h2DataToStreamData(ResultSet resultSet) throws SQLException {
         ServiceAlarm serviceAlarm = new ServiceAlarm();
-        serviceAlarm.setId(resultSet.getString(ServiceAlarmTable.COLUMN_ID));
-        serviceAlarm.setSourceValue(resultSet.getInt(ServiceAlarmTable.COLUMN_SOURCE_VALUE));
+        serviceAlarm.setId(resultSet.getString(ServiceAlarmTable.ID.getName()));
+        serviceAlarm.setSourceValue(resultSet.getInt(ServiceAlarmTable.SOURCE_VALUE.getName()));
 
-        serviceAlarm.setAlarmType(resultSet.getInt(ServiceAlarmTable.COLUMN_ALARM_TYPE));
+        serviceAlarm.setAlarmType(resultSet.getInt(ServiceAlarmTable.ALARM_TYPE.getName()));
 
-        serviceAlarm.setApplicationId(resultSet.getInt(ServiceAlarmTable.COLUMN_APPLICATION_ID));
-        serviceAlarm.setInstanceId(resultSet.getInt(ServiceAlarmTable.COLUMN_INSTANCE_ID));
-        serviceAlarm.setServiceId(resultSet.getInt(ServiceAlarmTable.COLUMN_SERVICE_ID));
+        serviceAlarm.setApplicationId(resultSet.getInt(ServiceAlarmTable.APPLICATION_ID.getName()));
+        serviceAlarm.setInstanceId(resultSet.getInt(ServiceAlarmTable.INSTANCE_ID.getName()));
+        serviceAlarm.setServiceId(resultSet.getInt(ServiceAlarmTable.SERVICE_ID.getName()));
 
-        serviceAlarm.setLastTimeBucket(resultSet.getLong(ServiceAlarmTable.COLUMN_LAST_TIME_BUCKET));
-        serviceAlarm.setAlarmContent(resultSet.getString(ServiceAlarmTable.COLUMN_ALARM_CONTENT));
+        serviceAlarm.setLastTimeBucket(resultSet.getLong(ServiceAlarmTable.LAST_TIME_BUCKET.getName()));
+        serviceAlarm.setAlarmContent(resultSet.getString(ServiceAlarmTable.ALARM_CONTENT.getName()));
 
         return serviceAlarm;
     }
 
     @Override protected Map<String, Object> streamDataToH2Data(ServiceAlarm streamData) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(ServiceAlarmTable.COLUMN_SOURCE_VALUE, streamData.getSourceValue());
+        Map<String, Object> target = new HashMap<>();
+        target.put(ServiceAlarmTable.SOURCE_VALUE.getName(), streamData.getSourceValue());
 
-        source.put(ServiceAlarmTable.COLUMN_ALARM_TYPE, streamData.getAlarmType());
+        target.put(ServiceAlarmTable.ALARM_TYPE.getName(), streamData.getAlarmType());
 
-        source.put(ServiceAlarmTable.COLUMN_APPLICATION_ID, streamData.getApplicationId());
-        source.put(ServiceAlarmTable.COLUMN_INSTANCE_ID, streamData.getInstanceId());
-        source.put(ServiceAlarmTable.COLUMN_SERVICE_ID, streamData.getServiceId());
+        target.put(ServiceAlarmTable.APPLICATION_ID.getName(), streamData.getApplicationId());
+        target.put(ServiceAlarmTable.INSTANCE_ID.getName(), streamData.getInstanceId());
+        target.put(ServiceAlarmTable.SERVICE_ID.getName(), streamData.getServiceId());
 
-        source.put(ServiceAlarmTable.COLUMN_LAST_TIME_BUCKET, streamData.getLastTimeBucket());
-        source.put(ServiceAlarmTable.COLUMN_ALARM_CONTENT, streamData.getAlarmContent());
+        target.put(ServiceAlarmTable.LAST_TIME_BUCKET.getName(), streamData.getLastTimeBucket());
+        target.put(ServiceAlarmTable.ALARM_CONTENT.getName(), streamData.getAlarmContent());
 
-        return source;
+        return target;
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/alarm/ServiceAlarmListH2PersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/alarm/ServiceAlarmListH2PersistenceDAO.java
index 161d84907..484575c16 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/alarm/ServiceAlarmListH2PersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/alarm/ServiceAlarmListH2PersistenceDAO.java
@@ -44,34 +44,34 @@ public ServiceAlarmListH2PersistenceDAO(H2Client client) {
 
     @Override protected ServiceAlarmList h2DataToStreamData(ResultSet resultSet) throws SQLException {
         ServiceAlarmList serviceAlarmList = new ServiceAlarmList();
-        serviceAlarmList.setId(resultSet.getString(ServiceAlarmListTable.COLUMN_ID));
-        serviceAlarmList.setSourceValue(resultSet.getInt(ServiceAlarmListTable.COLUMN_SOURCE_VALUE));
+        serviceAlarmList.setId(resultSet.getString(ServiceAlarmListTable.ID.getName()));
+        serviceAlarmList.setSourceValue(resultSet.getInt(ServiceAlarmListTable.SOURCE_VALUE.getName()));
 
-        serviceAlarmList.setAlarmType(resultSet.getInt(ServiceAlarmListTable.COLUMN_ALARM_TYPE));
+        serviceAlarmList.setAlarmType(resultSet.getInt(ServiceAlarmListTable.ALARM_TYPE.getName()));
 
-        serviceAlarmList.setApplicationId(resultSet.getInt(ServiceAlarmListTable.COLUMN_APPLICATION_ID));
-        serviceAlarmList.setInstanceId(resultSet.getInt(ServiceAlarmListTable.COLUMN_INSTANCE_ID));
-        serviceAlarmList.setServiceId(resultSet.getInt(ServiceAlarmListTable.COLUMN_SERVICE_ID));
+        serviceAlarmList.setApplicationId(resultSet.getInt(ServiceAlarmListTable.APPLICATION_ID.getName()));
+        serviceAlarmList.setInstanceId(resultSet.getInt(ServiceAlarmListTable.INSTANCE_ID.getName()));
+        serviceAlarmList.setServiceId(resultSet.getInt(ServiceAlarmListTable.SERVICE_ID.getName()));
 
-        serviceAlarmList.setTimeBucket(resultSet.getLong(ServiceAlarmListTable.COLUMN_TIME_BUCKET));
-        serviceAlarmList.setAlarmContent(resultSet.getString(ServiceAlarmListTable.COLUMN_ALARM_CONTENT));
+        serviceAlarmList.setTimeBucket(resultSet.getLong(ServiceAlarmListTable.TIME_BUCKET.getName()));
+        serviceAlarmList.setAlarmContent(resultSet.getString(ServiceAlarmListTable.ALARM_CONTENT.getName()));
 
         return serviceAlarmList;
     }
 
     @Override protected Map<String, Object> streamDataToH2Data(ServiceAlarmList streamData) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(ServiceAlarmListTable.COLUMN_SOURCE_VALUE, streamData.getSourceValue());
+        Map<String, Object> target = new HashMap<>();
+        target.put(ServiceAlarmListTable.SOURCE_VALUE.getName(), streamData.getSourceValue());
 
-        source.put(ServiceAlarmListTable.COLUMN_ALARM_TYPE, streamData.getAlarmType());
+        target.put(ServiceAlarmListTable.ALARM_TYPE.getName(), streamData.getAlarmType());
 
-        source.put(ServiceAlarmListTable.COLUMN_APPLICATION_ID, streamData.getApplicationId());
-        source.put(ServiceAlarmListTable.COLUMN_INSTANCE_ID, streamData.getInstanceId());
-        source.put(ServiceAlarmListTable.COLUMN_SERVICE_ID, streamData.getServiceId());
+        target.put(ServiceAlarmListTable.APPLICATION_ID.getName(), streamData.getApplicationId());
+        target.put(ServiceAlarmListTable.INSTANCE_ID.getName(), streamData.getInstanceId());
+        target.put(ServiceAlarmListTable.SERVICE_ID.getName(), streamData.getServiceId());
 
-        source.put(ServiceAlarmListTable.COLUMN_TIME_BUCKET, streamData.getTimeBucket());
-        source.put(ServiceAlarmListTable.COLUMN_ALARM_CONTENT, streamData.getAlarmContent());
+        target.put(ServiceAlarmListTable.TIME_BUCKET.getName(), streamData.getTimeBucket());
+        target.put(ServiceAlarmListTable.ALARM_CONTENT.getName(), streamData.getAlarmContent());
 
-        return source;
+        return target;
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/alarm/ServiceReferenceAlarmH2PersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/alarm/ServiceReferenceAlarmH2PersistenceDAO.java
index ef9879b56..e0ecbbb6d 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/alarm/ServiceReferenceAlarmH2PersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/alarm/ServiceReferenceAlarmH2PersistenceDAO.java
@@ -44,40 +44,40 @@ public ServiceReferenceAlarmH2PersistenceDAO(H2Client client) {
 
     @Override protected ServiceReferenceAlarm h2DataToStreamData(ResultSet resultSet) throws SQLException {
         ServiceReferenceAlarm serviceReferenceAlarm = new ServiceReferenceAlarm();
-        serviceReferenceAlarm.setId(resultSet.getString(ServiceReferenceAlarmTable.COLUMN_ID));
-        serviceReferenceAlarm.setSourceValue(resultSet.getInt(ServiceReferenceAlarmTable.COLUMN_SOURCE_VALUE));
+        serviceReferenceAlarm.setId(resultSet.getString(ServiceReferenceAlarmTable.ID.getName()));
+        serviceReferenceAlarm.setSourceValue(resultSet.getInt(ServiceReferenceAlarmTable.SOURCE_VALUE.getName()));
 
-        serviceReferenceAlarm.setAlarmType(resultSet.getInt(ServiceReferenceAlarmTable.COLUMN_ALARM_TYPE));
+        serviceReferenceAlarm.setAlarmType(resultSet.getInt(ServiceReferenceAlarmTable.ALARM_TYPE.getName()));
 
-        serviceReferenceAlarm.setFrontApplicationId(resultSet.getInt(ServiceReferenceAlarmTable.COLUMN_FRONT_APPLICATION_ID));
-        serviceReferenceAlarm.setFrontInstanceId(resultSet.getInt(ServiceReferenceAlarmTable.COLUMN_FRONT_INSTANCE_ID));
-        serviceReferenceAlarm.setFrontServiceId(resultSet.getInt(ServiceReferenceAlarmTable.COLUMN_FRONT_SERVICE_ID));
-        serviceReferenceAlarm.setBehindApplicationId(resultSet.getInt(ServiceReferenceAlarmTable.COLUMN_BEHIND_APPLICATION_ID));
-        serviceReferenceAlarm.setBehindInstanceId(resultSet.getInt(ServiceReferenceAlarmTable.COLUMN_BEHIND_INSTANCE_ID));
-        serviceReferenceAlarm.setBehindServiceId(resultSet.getInt(ServiceReferenceAlarmTable.COLUMN_BEHIND_SERVICE_ID));
+        serviceReferenceAlarm.setFrontApplicationId(resultSet.getInt(ServiceReferenceAlarmTable.FRONT_APPLICATION_ID.getName()));
+        serviceReferenceAlarm.setFrontInstanceId(resultSet.getInt(ServiceReferenceAlarmTable.FRONT_INSTANCE_ID.getName()));
+        serviceReferenceAlarm.setFrontServiceId(resultSet.getInt(ServiceReferenceAlarmTable.FRONT_SERVICE_ID.getName()));
+        serviceReferenceAlarm.setBehindApplicationId(resultSet.getInt(ServiceReferenceAlarmTable.BEHIND_APPLICATION_ID.getName()));
+        serviceReferenceAlarm.setBehindInstanceId(resultSet.getInt(ServiceReferenceAlarmTable.BEHIND_INSTANCE_ID.getName()));
+        serviceReferenceAlarm.setBehindServiceId(resultSet.getInt(ServiceReferenceAlarmTable.BEHIND_SERVICE_ID.getName()));
 
-        serviceReferenceAlarm.setLastTimeBucket(resultSet.getLong(ServiceReferenceAlarmTable.COLUMN_LAST_TIME_BUCKET));
-        serviceReferenceAlarm.setAlarmContent(resultSet.getString(ServiceReferenceAlarmTable.COLUMN_ALARM_CONTENT));
+        serviceReferenceAlarm.setLastTimeBucket(resultSet.getLong(ServiceReferenceAlarmTable.LAST_TIME_BUCKET.getName()));
+        serviceReferenceAlarm.setAlarmContent(resultSet.getString(ServiceReferenceAlarmTable.ALARM_CONTENT.getName()));
 
         return serviceReferenceAlarm;
     }
 
     @Override protected Map<String, Object> streamDataToH2Data(ServiceReferenceAlarm streamData) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(ServiceReferenceAlarmTable.COLUMN_SOURCE_VALUE, streamData.getSourceValue());
+        Map<String, Object> target = new HashMap<>();
+        target.put(ServiceReferenceAlarmTable.SOURCE_VALUE.getName(), streamData.getSourceValue());
 
-        source.put(ServiceReferenceAlarmTable.COLUMN_ALARM_TYPE, streamData.getAlarmType());
+        target.put(ServiceReferenceAlarmTable.ALARM_TYPE.getName(), streamData.getAlarmType());
 
-        source.put(ServiceReferenceAlarmTable.COLUMN_FRONT_APPLICATION_ID, streamData.getFrontApplicationId());
-        source.put(ServiceReferenceAlarmTable.COLUMN_FRONT_INSTANCE_ID, streamData.getFrontInstanceId());
-        source.put(ServiceReferenceAlarmTable.COLUMN_FRONT_SERVICE_ID, streamData.getFrontServiceId());
-        source.put(ServiceReferenceAlarmTable.COLUMN_BEHIND_APPLICATION_ID, streamData.getBehindApplicationId());
-        source.put(ServiceReferenceAlarmTable.COLUMN_BEHIND_INSTANCE_ID, streamData.getBehindInstanceId());
-        source.put(ServiceReferenceAlarmTable.COLUMN_BEHIND_SERVICE_ID, streamData.getBehindServiceId());
+        target.put(ServiceReferenceAlarmTable.FRONT_APPLICATION_ID.getName(), streamData.getFrontApplicationId());
+        target.put(ServiceReferenceAlarmTable.FRONT_INSTANCE_ID.getName(), streamData.getFrontInstanceId());
+        target.put(ServiceReferenceAlarmTable.FRONT_SERVICE_ID.getName(), streamData.getFrontServiceId());
+        target.put(ServiceReferenceAlarmTable.BEHIND_APPLICATION_ID.getName(), streamData.getBehindApplicationId());
+        target.put(ServiceReferenceAlarmTable.BEHIND_INSTANCE_ID.getName(), streamData.getBehindInstanceId());
+        target.put(ServiceReferenceAlarmTable.BEHIND_SERVICE_ID.getName(), streamData.getBehindServiceId());
 
-        source.put(ServiceReferenceAlarmTable.COLUMN_LAST_TIME_BUCKET, streamData.getLastTimeBucket());
-        source.put(ServiceReferenceAlarmTable.COLUMN_ALARM_CONTENT, streamData.getAlarmContent());
+        target.put(ServiceReferenceAlarmTable.LAST_TIME_BUCKET.getName(), streamData.getLastTimeBucket());
+        target.put(ServiceReferenceAlarmTable.ALARM_CONTENT.getName(), streamData.getAlarmContent());
 
-        return source;
+        return target;
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/alarm/ServiceReferenceAlarmListH2PersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/alarm/ServiceReferenceAlarmListH2PersistenceDAO.java
index 73c8e093d..f4ba5861d 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/alarm/ServiceReferenceAlarmListH2PersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/alarm/ServiceReferenceAlarmListH2PersistenceDAO.java
@@ -44,40 +44,40 @@ public ServiceReferenceAlarmListH2PersistenceDAO(H2Client client) {
 
     @Override protected ServiceReferenceAlarmList h2DataToStreamData(ResultSet resultSet) throws SQLException {
         ServiceReferenceAlarmList serviceReferenceAlarmList = new ServiceReferenceAlarmList();
-        serviceReferenceAlarmList.setId(resultSet.getString(ServiceReferenceAlarmListTable.COLUMN_ID));
-        serviceReferenceAlarmList.setSourceValue(resultSet.getInt(ServiceReferenceAlarmListTable.COLUMN_SOURCE_VALUE));
+        serviceReferenceAlarmList.setId(resultSet.getString(ServiceReferenceAlarmListTable.ID.getName()));
+        serviceReferenceAlarmList.setSourceValue(resultSet.getInt(ServiceReferenceAlarmListTable.SOURCE_VALUE.getName()));
 
-        serviceReferenceAlarmList.setAlarmType(resultSet.getInt(ServiceReferenceAlarmListTable.COLUMN_ALARM_TYPE));
+        serviceReferenceAlarmList.setAlarmType(resultSet.getInt(ServiceReferenceAlarmListTable.ALARM_TYPE.getName()));
 
-        serviceReferenceAlarmList.setFrontApplicationId(resultSet.getInt(ServiceReferenceAlarmListTable.COLUMN_FRONT_APPLICATION_ID));
-        serviceReferenceAlarmList.setFrontInstanceId(resultSet.getInt(ServiceReferenceAlarmListTable.COLUMN_FRONT_INSTANCE_ID));
-        serviceReferenceAlarmList.setFrontServiceId(resultSet.getInt(ServiceReferenceAlarmListTable.COLUMN_FRONT_SERVICE_ID));
-        serviceReferenceAlarmList.setBehindApplicationId(resultSet.getInt(ServiceReferenceAlarmListTable.COLUMN_BEHIND_APPLICATION_ID));
-        serviceReferenceAlarmList.setBehindInstanceId(resultSet.getInt(ServiceReferenceAlarmListTable.COLUMN_BEHIND_INSTANCE_ID));
-        serviceReferenceAlarmList.setBehindServiceId(resultSet.getInt(ServiceReferenceAlarmListTable.COLUMN_BEHIND_SERVICE_ID));
+        serviceReferenceAlarmList.setFrontApplicationId(resultSet.getInt(ServiceReferenceAlarmListTable.FRONT_APPLICATION_ID.getName()));
+        serviceReferenceAlarmList.setFrontInstanceId(resultSet.getInt(ServiceReferenceAlarmListTable.FRONT_INSTANCE_ID.getName()));
+        serviceReferenceAlarmList.setFrontServiceId(resultSet.getInt(ServiceReferenceAlarmListTable.FRONT_SERVICE_ID.getName()));
+        serviceReferenceAlarmList.setBehindApplicationId(resultSet.getInt(ServiceReferenceAlarmListTable.BEHIND_APPLICATION_ID.getName()));
+        serviceReferenceAlarmList.setBehindInstanceId(resultSet.getInt(ServiceReferenceAlarmListTable.BEHIND_INSTANCE_ID.getName()));
+        serviceReferenceAlarmList.setBehindServiceId(resultSet.getInt(ServiceReferenceAlarmListTable.BEHIND_SERVICE_ID.getName()));
 
-        serviceReferenceAlarmList.setTimeBucket(resultSet.getLong(ServiceReferenceAlarmListTable.COLUMN_TIME_BUCKET));
-        serviceReferenceAlarmList.setAlarmContent(resultSet.getString(ServiceReferenceAlarmListTable.COLUMN_ALARM_CONTENT));
+        serviceReferenceAlarmList.setTimeBucket(resultSet.getLong(ServiceReferenceAlarmListTable.TIME_BUCKET.getName()));
+        serviceReferenceAlarmList.setAlarmContent(resultSet.getString(ServiceReferenceAlarmListTable.ALARM_CONTENT.getName()));
 
         return serviceReferenceAlarmList;
     }
 
     @Override protected Map<String, Object> streamDataToH2Data(ServiceReferenceAlarmList streamData) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(ServiceReferenceAlarmListTable.COLUMN_SOURCE_VALUE, streamData.getSourceValue());
+        Map<String, Object> target = new HashMap<>();
+        target.put(ServiceReferenceAlarmListTable.SOURCE_VALUE.getName(), streamData.getSourceValue());
 
-        source.put(ServiceReferenceAlarmListTable.COLUMN_ALARM_TYPE, streamData.getAlarmType());
+        target.put(ServiceReferenceAlarmListTable.ALARM_TYPE.getName(), streamData.getAlarmType());
 
-        source.put(ServiceReferenceAlarmListTable.COLUMN_FRONT_APPLICATION_ID, streamData.getFrontApplicationId());
-        source.put(ServiceReferenceAlarmListTable.COLUMN_FRONT_INSTANCE_ID, streamData.getFrontInstanceId());
-        source.put(ServiceReferenceAlarmListTable.COLUMN_FRONT_SERVICE_ID, streamData.getFrontServiceId());
-        source.put(ServiceReferenceAlarmListTable.COLUMN_BEHIND_APPLICATION_ID, streamData.getBehindApplicationId());
-        source.put(ServiceReferenceAlarmListTable.COLUMN_BEHIND_INSTANCE_ID, streamData.getBehindInstanceId());
-        source.put(ServiceReferenceAlarmListTable.COLUMN_BEHIND_SERVICE_ID, streamData.getBehindServiceId());
+        target.put(ServiceReferenceAlarmListTable.FRONT_APPLICATION_ID.getName(), streamData.getFrontApplicationId());
+        target.put(ServiceReferenceAlarmListTable.FRONT_INSTANCE_ID.getName(), streamData.getFrontInstanceId());
+        target.put(ServiceReferenceAlarmListTable.FRONT_SERVICE_ID.getName(), streamData.getFrontServiceId());
+        target.put(ServiceReferenceAlarmListTable.BEHIND_APPLICATION_ID.getName(), streamData.getBehindApplicationId());
+        target.put(ServiceReferenceAlarmListTable.BEHIND_INSTANCE_ID.getName(), streamData.getBehindInstanceId());
+        target.put(ServiceReferenceAlarmListTable.BEHIND_SERVICE_ID.getName(), streamData.getBehindServiceId());
 
-        source.put(ServiceReferenceAlarmListTable.COLUMN_TIME_BUCKET, streamData.getTimeBucket());
-        source.put(ServiceReferenceAlarmListTable.COLUMN_ALARM_CONTENT, streamData.getAlarmContent());
+        target.put(ServiceReferenceAlarmListTable.TIME_BUCKET.getName(), streamData.getTimeBucket());
+        target.put(ServiceReferenceAlarmListTable.ALARM_CONTENT.getName(), streamData.getAlarmContent());
 
-        return source;
+        return target;
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/amp/AbstractApplicationMetricH2PersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/amp/AbstractApplicationMetricH2PersistenceDAO.java
index 40823ebaa..fcf3038f3 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/amp/AbstractApplicationMetricH2PersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/amp/AbstractApplicationMetricH2PersistenceDAO.java
@@ -23,6 +23,7 @@
 import java.util.HashMap;
 import java.util.Map;
 import org.apache.skywalking.apm.collector.client.h2.H2Client;
+import org.apache.skywalking.apm.collector.storage.h2.MetricTransformUtil;
 import org.apache.skywalking.apm.collector.storage.h2.base.dao.AbstractPersistenceH2DAO;
 import org.apache.skywalking.apm.collector.storage.table.application.ApplicationMetric;
 import org.apache.skywalking.apm.collector.storage.table.application.ApplicationMetricTable;
@@ -32,72 +33,39 @@
  */
 public abstract class AbstractApplicationMetricH2PersistenceDAO extends AbstractPersistenceH2DAO<ApplicationMetric> {
 
-    public AbstractApplicationMetricH2PersistenceDAO(H2Client client) {
+    AbstractApplicationMetricH2PersistenceDAO(H2Client client) {
         super(client);
     }
 
     @Override protected final ApplicationMetric h2DataToStreamData(ResultSet resultSet) throws SQLException {
         ApplicationMetric applicationMetric = new ApplicationMetric();
-        applicationMetric.setId(resultSet.getString(ApplicationMetricTable.COLUMN_ID));
-        applicationMetric.setMetricId(resultSet.getString(ApplicationMetricTable.COLUMN_METRIC_ID));
+        applicationMetric.setId(resultSet.getString(ApplicationMetricTable.ID.getName()));
+        applicationMetric.setMetricId(resultSet.getString(ApplicationMetricTable.METRIC_ID.getName()));
 
-        applicationMetric.setApplicationId(resultSet.getInt(ApplicationMetricTable.COLUMN_APPLICATION_ID));
-        applicationMetric.setSourceValue(resultSet.getInt(ApplicationMetricTable.COLUMN_SOURCE_VALUE));
+        applicationMetric.setApplicationId(resultSet.getInt(ApplicationMetricTable.APPLICATION_ID.getName()));
 
-        applicationMetric.setTransactionCalls(resultSet.getLong(ApplicationMetricTable.COLUMN_TRANSACTION_CALLS));
-        applicationMetric.setTransactionErrorCalls(resultSet.getLong(ApplicationMetricTable.COLUMN_TRANSACTION_ERROR_CALLS));
-        applicationMetric.setTransactionDurationSum(resultSet.getLong(ApplicationMetricTable.COLUMN_TRANSACTION_DURATION_SUM));
-        applicationMetric.setTransactionErrorDurationSum(resultSet.getLong(ApplicationMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM));
-        applicationMetric.setTransactionAverageDuration(resultSet.getLong(ApplicationMetricTable.COLUMN_TRANSACTION_AVERAGE_DURATION));
+        MetricTransformUtil.INSTANCE.h2DataToStreamData(resultSet, applicationMetric);
 
-        applicationMetric.setBusinessTransactionCalls(resultSet.getLong(ApplicationMetricTable.COLUMN_BUSINESS_TRANSACTION_CALLS));
-        applicationMetric.setBusinessTransactionErrorCalls(resultSet.getLong(ApplicationMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_CALLS));
-        applicationMetric.setBusinessTransactionDurationSum(resultSet.getLong(ApplicationMetricTable.COLUMN_BUSINESS_TRANSACTION_DURATION_SUM));
-        applicationMetric.setBusinessTransactionErrorDurationSum(resultSet.getLong(ApplicationMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_DURATION_SUM));
-        applicationMetric.setBusinessTransactionAverageDuration(resultSet.getLong(ApplicationMetricTable.COLUMN_BUSINESS_TRANSACTION_AVERAGE_DURATION));
-
-        applicationMetric.setMqTransactionCalls(resultSet.getLong(ApplicationMetricTable.COLUMN_MQ_TRANSACTION_CALLS));
-        applicationMetric.setMqTransactionErrorCalls(resultSet.getLong(ApplicationMetricTable.COLUMN_MQ_TRANSACTION_ERROR_CALLS));
-        applicationMetric.setMqTransactionDurationSum(resultSet.getLong(ApplicationMetricTable.COLUMN_MQ_TRANSACTION_DURATION_SUM));
-        applicationMetric.setMqTransactionErrorDurationSum(resultSet.getLong(ApplicationMetricTable.COLUMN_MQ_TRANSACTION_ERROR_DURATION_SUM));
-        applicationMetric.setMqTransactionAverageDuration(resultSet.getLong(ApplicationMetricTable.COLUMN_MQ_TRANSACTION_AVERAGE_DURATION));
-
-        applicationMetric.setSatisfiedCount(resultSet.getLong(ApplicationMetricTable.COLUMN_SATISFIED_COUNT));
-        applicationMetric.setToleratingCount(resultSet.getLong(ApplicationMetricTable.COLUMN_TOLERATING_COUNT));
-        applicationMetric.setFrustratedCount(resultSet.getLong(ApplicationMetricTable.COLUMN_FRUSTRATED_COUNT));
-        applicationMetric.setTimeBucket(resultSet.getLong(ApplicationMetricTable.COLUMN_TIME_BUCKET));
+        applicationMetric.setSatisfiedCount(resultSet.getLong(ApplicationMetricTable.SATISFIED_COUNT.getName()));
+        applicationMetric.setToleratingCount(resultSet.getLong(ApplicationMetricTable.TOLERATING_COUNT.getName()));
+        applicationMetric.setFrustratedCount(resultSet.getLong(ApplicationMetricTable.FRUSTRATED_COUNT.getName()));
 
         return applicationMetric;
     }
 
     @Override protected final Map<String, Object> streamDataToH2Data(ApplicationMetric streamData) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(ApplicationMetricTable.COLUMN_ID, streamData.getId());
-        source.put(ApplicationMetricTable.COLUMN_METRIC_ID, streamData.getMetricId());
-
-        source.put(ApplicationMetricTable.COLUMN_APPLICATION_ID, streamData.getApplicationId());
-        source.put(ApplicationMetricTable.COLUMN_SOURCE_VALUE, streamData.getSourceValue());
-
-        source.put(ApplicationMetricTable.COLUMN_TRANSACTION_CALLS, streamData.getTransactionCalls());
-        source.put(ApplicationMetricTable.COLUMN_TRANSACTION_ERROR_CALLS, streamData.getTransactionErrorCalls());
-        source.put(ApplicationMetricTable.COLUMN_TRANSACTION_DURATION_SUM, streamData.getTransactionDurationSum());
-        source.put(ApplicationMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM, streamData.getTransactionErrorDurationSum());
+        Map<String, Object> target = new HashMap<>();
+        target.put(ApplicationMetricTable.ID.getName(), streamData.getId());
+        target.put(ApplicationMetricTable.METRIC_ID.getName(), streamData.getMetricId());
 
-        source.put(ApplicationMetricTable.COLUMN_BUSINESS_TRANSACTION_CALLS, streamData.getBusinessTransactionCalls());
-        source.put(ApplicationMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_CALLS, streamData.getBusinessTransactionErrorCalls());
-        source.put(ApplicationMetricTable.COLUMN_BUSINESS_TRANSACTION_DURATION_SUM, streamData.getBusinessTransactionDurationSum());
-        source.put(ApplicationMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_DURATION_SUM, streamData.getBusinessTransactionErrorDurationSum());
+        target.put(ApplicationMetricTable.APPLICATION_ID.getName(), streamData.getApplicationId());
 
-        source.put(ApplicationMetricTable.COLUMN_MQ_TRANSACTION_CALLS, streamData.getMqTransactionCalls());
-        source.put(ApplicationMetricTable.COLUMN_MQ_TRANSACTION_ERROR_CALLS, streamData.getMqTransactionErrorCalls());
-        source.put(ApplicationMetricTable.COLUMN_MQ_TRANSACTION_DURATION_SUM, streamData.getMqTransactionDurationSum());
-        source.put(ApplicationMetricTable.COLUMN_MQ_TRANSACTION_ERROR_DURATION_SUM, streamData.getMqTransactionErrorDurationSum());
+        MetricTransformUtil.INSTANCE.streamDataToH2Data(streamData, target);
 
-        source.put(ApplicationMetricTable.COLUMN_SATISFIED_COUNT, streamData.getSatisfiedCount());
-        source.put(ApplicationMetricTable.COLUMN_TOLERATING_COUNT, streamData.getToleratingCount());
-        source.put(ApplicationMetricTable.COLUMN_FRUSTRATED_COUNT, streamData.getFrustratedCount());
-        source.put(ApplicationMetricTable.COLUMN_TIME_BUCKET, streamData.getTimeBucket());
+        target.put(ApplicationMetricTable.SATISFIED_COUNT.getName(), streamData.getSatisfiedCount());
+        target.put(ApplicationMetricTable.TOLERATING_COUNT.getName(), streamData.getToleratingCount());
+        target.put(ApplicationMetricTable.FRUSTRATED_COUNT.getName(), streamData.getFrustratedCount());
 
-        return source;
+        return target;
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ampp/AbstractApplicationMappingH2PersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ampp/AbstractApplicationMappingH2PersistenceDAO.java
index e211331c7..e94c6be1d 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ampp/AbstractApplicationMappingH2PersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ampp/AbstractApplicationMappingH2PersistenceDAO.java
@@ -38,24 +38,24 @@
 
     @Override protected final ApplicationMapping h2DataToStreamData(ResultSet resultSet) throws SQLException {
         ApplicationMapping applicationMapping = new ApplicationMapping();
-        applicationMapping.setId(resultSet.getString(ApplicationMappingTable.COLUMN_ID));
-        applicationMapping.setMetricId(resultSet.getString(ApplicationMappingTable.COLUMN_METRIC_ID));
+        applicationMapping.setId(resultSet.getString(ApplicationMappingTable.ID.getName()));
+        applicationMapping.setMetricId(resultSet.getString(ApplicationMappingTable.METRIC_ID.getName()));
 
-        applicationMapping.setApplicationId(resultSet.getInt(ApplicationMappingTable.COLUMN_APPLICATION_ID));
-        applicationMapping.setMappingApplicationId(resultSet.getInt(ApplicationMappingTable.COLUMN_MAPPING_APPLICATION_ID));
-        applicationMapping.setTimeBucket(resultSet.getLong(ApplicationMappingTable.COLUMN_TIME_BUCKET));
+        applicationMapping.setApplicationId(resultSet.getInt(ApplicationMappingTable.APPLICATION_ID.getName()));
+        applicationMapping.setMappingApplicationId(resultSet.getInt(ApplicationMappingTable.MAPPING_APPLICATION_ID.getName()));
+        applicationMapping.setTimeBucket(resultSet.getLong(ApplicationMappingTable.TIME_BUCKET.getName()));
         return applicationMapping;
     }
 
     @Override protected final Map<String, Object> streamDataToH2Data(ApplicationMapping streamData) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(ApplicationMappingTable.COLUMN_ID, streamData.getId());
-        source.put(ApplicationMappingTable.COLUMN_METRIC_ID, streamData.getMetricId());
+        Map<String, Object> target = new HashMap<>();
+        target.put(ApplicationMappingTable.ID.getName(), streamData.getId());
+        target.put(ApplicationMappingTable.METRIC_ID.getName(), streamData.getMetricId());
 
-        source.put(ApplicationMappingTable.COLUMN_APPLICATION_ID, streamData.getApplicationId());
-        source.put(ApplicationMappingTable.COLUMN_MAPPING_APPLICATION_ID, streamData.getMappingApplicationId());
-        source.put(ApplicationMappingTable.COLUMN_TIME_BUCKET, streamData.getTimeBucket());
+        target.put(ApplicationMappingTable.APPLICATION_ID.getName(), streamData.getApplicationId());
+        target.put(ApplicationMappingTable.MAPPING_APPLICATION_ID.getName(), streamData.getMappingApplicationId());
+        target.put(ApplicationMappingTable.TIME_BUCKET.getName(), streamData.getTimeBucket());
 
-        return source;
+        return target;
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/armp/AbstractApplicationReferenceMetricH2PersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/armp/AbstractApplicationReferenceMetricH2PersistenceDAO.java
index b2f2a7dc3..a63979745 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/armp/AbstractApplicationReferenceMetricH2PersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/armp/AbstractApplicationReferenceMetricH2PersistenceDAO.java
@@ -23,6 +23,7 @@
 import java.util.HashMap;
 import java.util.Map;
 import org.apache.skywalking.apm.collector.client.h2.H2Client;
+import org.apache.skywalking.apm.collector.storage.h2.MetricTransformUtil;
 import org.apache.skywalking.apm.collector.storage.h2.base.dao.AbstractPersistenceH2DAO;
 import org.apache.skywalking.apm.collector.storage.table.application.ApplicationReferenceMetric;
 import org.apache.skywalking.apm.collector.storage.table.application.ApplicationReferenceMetricTable;
@@ -32,78 +33,41 @@
  */
 public abstract class AbstractApplicationReferenceMetricH2PersistenceDAO extends AbstractPersistenceH2DAO<ApplicationReferenceMetric> {
 
-    public AbstractApplicationReferenceMetricH2PersistenceDAO(H2Client client) {
+    AbstractApplicationReferenceMetricH2PersistenceDAO(H2Client client) {
         super(client);
     }
 
     @Override protected final ApplicationReferenceMetric h2DataToStreamData(ResultSet resultSet) throws SQLException {
         ApplicationReferenceMetric applicationReferenceMetric = new ApplicationReferenceMetric();
-        applicationReferenceMetric.setId(resultSet.getString(ApplicationReferenceMetricTable.COLUMN_ID));
-        applicationReferenceMetric.setMetricId(resultSet.getString(ApplicationReferenceMetricTable.COLUMN_METRIC_ID));
+        applicationReferenceMetric.setId(resultSet.getString(ApplicationReferenceMetricTable.ID.getName()));
+        applicationReferenceMetric.setMetricId(resultSet.getString(ApplicationReferenceMetricTable.METRIC_ID.getName()));
 
-        applicationReferenceMetric.setFrontApplicationId(resultSet.getInt(ApplicationReferenceMetricTable.COLUMN_FRONT_APPLICATION_ID));
-        applicationReferenceMetric.setBehindApplicationId(resultSet.getInt(ApplicationReferenceMetricTable.COLUMN_BEHIND_APPLICATION_ID));
-        applicationReferenceMetric.setSourceValue(resultSet.getInt(ApplicationReferenceMetricTable.COLUMN_SOURCE_VALUE));
+        applicationReferenceMetric.setFrontApplicationId(resultSet.getInt(ApplicationReferenceMetricTable.FRONT_APPLICATION_ID.getName()));
+        applicationReferenceMetric.setBehindApplicationId(resultSet.getInt(ApplicationReferenceMetricTable.BEHIND_APPLICATION_ID.getName()));
 
-        applicationReferenceMetric.setTransactionCalls(resultSet.getLong(ApplicationReferenceMetricTable.COLUMN_TRANSACTION_CALLS));
-        applicationReferenceMetric.setTransactionErrorCalls(resultSet.getLong(ApplicationReferenceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS));
-        applicationReferenceMetric.setTransactionDurationSum(resultSet.getLong(ApplicationReferenceMetricTable.COLUMN_TRANSACTION_DURATION_SUM));
-        applicationReferenceMetric.setTransactionErrorDurationSum(resultSet.getLong(ApplicationReferenceMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM));
-        applicationReferenceMetric.setTransactionAverageDuration(resultSet.getLong(ApplicationReferenceMetricTable.COLUMN_TRANSACTION_AVERAGE_DURATION));
+        MetricTransformUtil.INSTANCE.h2DataToStreamData(resultSet, applicationReferenceMetric);
 
-        applicationReferenceMetric.setBusinessTransactionCalls(resultSet.getLong(ApplicationReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_CALLS));
-        applicationReferenceMetric.setBusinessTransactionErrorCalls(resultSet.getLong(ApplicationReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_CALLS));
-        applicationReferenceMetric.setBusinessTransactionDurationSum(resultSet.getLong(ApplicationReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_DURATION_SUM));
-        applicationReferenceMetric.setBusinessTransactionErrorDurationSum(resultSet.getLong(ApplicationReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_DURATION_SUM));
-        applicationReferenceMetric.setBusinessTransactionAverageDuration(resultSet.getLong(ApplicationReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_AVERAGE_DURATION));
+        applicationReferenceMetric.setSatisfiedCount(resultSet.getLong(ApplicationReferenceMetricTable.SATISFIED_COUNT.getName()));
+        applicationReferenceMetric.setToleratingCount(resultSet.getLong(ApplicationReferenceMetricTable.TOLERATING_COUNT.getName()));
+        applicationReferenceMetric.setFrustratedCount(resultSet.getLong(ApplicationReferenceMetricTable.FRUSTRATED_COUNT.getName()));
 
-        applicationReferenceMetric.setMqTransactionCalls(resultSet.getLong(ApplicationReferenceMetricTable.COLUMN_MQ_TRANSACTION_CALLS));
-        applicationReferenceMetric.setMqTransactionErrorCalls(resultSet.getLong(ApplicationReferenceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_CALLS));
-        applicationReferenceMetric.setMqTransactionDurationSum(resultSet.getLong(ApplicationReferenceMetricTable.COLUMN_MQ_TRANSACTION_DURATION_SUM));
-        applicationReferenceMetric.setMqTransactionErrorDurationSum(resultSet.getLong(ApplicationReferenceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_DURATION_SUM));
-        applicationReferenceMetric.setMqTransactionAverageDuration(resultSet.getLong(ApplicationReferenceMetricTable.COLUMN_MQ_TRANSACTION_AVERAGE_DURATION));
-
-        applicationReferenceMetric.setSatisfiedCount(resultSet.getLong(ApplicationReferenceMetricTable.COLUMN_SATISFIED_COUNT));
-        applicationReferenceMetric.setToleratingCount(resultSet.getLong(ApplicationReferenceMetricTable.COLUMN_TOLERATING_COUNT));
-        applicationReferenceMetric.setFrustratedCount(resultSet.getLong(ApplicationReferenceMetricTable.COLUMN_FRUSTRATED_COUNT));
-
-        applicationReferenceMetric.setTimeBucket(resultSet.getLong(ApplicationReferenceMetricTable.COLUMN_TIME_BUCKET));
         return applicationReferenceMetric;
     }
 
     @Override protected final Map<String, Object> streamDataToH2Data(ApplicationReferenceMetric streamData) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(ApplicationReferenceMetricTable.COLUMN_ID, streamData.getId());
-        source.put(ApplicationReferenceMetricTable.COLUMN_METRIC_ID, streamData.getMetricId());
-
-        source.put(ApplicationReferenceMetricTable.COLUMN_FRONT_APPLICATION_ID, streamData.getFrontApplicationId());
-        source.put(ApplicationReferenceMetricTable.COLUMN_BEHIND_APPLICATION_ID, streamData.getBehindApplicationId());
-        source.put(ApplicationReferenceMetricTable.COLUMN_SOURCE_VALUE, streamData.getSourceValue());
-
-        source.put(ApplicationReferenceMetricTable.COLUMN_TRANSACTION_CALLS, streamData.getTransactionCalls());
-        source.put(ApplicationReferenceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS, streamData.getTransactionErrorCalls());
-        source.put(ApplicationReferenceMetricTable.COLUMN_TRANSACTION_DURATION_SUM, streamData.getTransactionDurationSum());
-        source.put(ApplicationReferenceMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM, streamData.getTransactionErrorDurationSum());
-        source.put(ApplicationReferenceMetricTable.COLUMN_TRANSACTION_AVERAGE_DURATION, streamData.getTransactionAverageDuration());
-
-        source.put(ApplicationReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_CALLS, streamData.getBusinessTransactionCalls());
-        source.put(ApplicationReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_CALLS, streamData.getBusinessTransactionErrorCalls());
-        source.put(ApplicationReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_DURATION_SUM, streamData.getBusinessTransactionDurationSum());
-        source.put(ApplicationReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_DURATION_SUM, streamData.getBusinessTransactionErrorDurationSum());
-        source.put(ApplicationReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_AVERAGE_DURATION, streamData.getBusinessTransactionAverageDuration());
+        Map<String, Object> target = new HashMap<>();
+        target.put(ApplicationReferenceMetricTable.ID.getName(), streamData.getId());
+        target.put(ApplicationReferenceMetricTable.METRIC_ID.getName(), streamData.getMetricId());
 
-        source.put(ApplicationReferenceMetricTable.COLUMN_MQ_TRANSACTION_CALLS, streamData.getMqTransactionCalls());
-        source.put(ApplicationReferenceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_CALLS, streamData.getMqTransactionErrorCalls());
-        source.put(ApplicationReferenceMetricTable.COLUMN_MQ_TRANSACTION_DURATION_SUM, streamData.getMqTransactionDurationSum());
-        source.put(ApplicationReferenceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_DURATION_SUM, streamData.getMqTransactionErrorDurationSum());
-        source.put(ApplicationReferenceMetricTable.COLUMN_MQ_TRANSACTION_AVERAGE_DURATION, streamData.getMqTransactionAverageDuration());
+        target.put(ApplicationReferenceMetricTable.FRONT_APPLICATION_ID.getName(), streamData.getFrontApplicationId());
+        target.put(ApplicationReferenceMetricTable.BEHIND_APPLICATION_ID.getName(), streamData.getBehindApplicationId());
 
-        source.put(ApplicationReferenceMetricTable.COLUMN_SATISFIED_COUNT, streamData.getSatisfiedCount());
-        source.put(ApplicationReferenceMetricTable.COLUMN_TOLERATING_COUNT, streamData.getToleratingCount());
-        source.put(ApplicationReferenceMetricTable.COLUMN_FRUSTRATED_COUNT, streamData.getFrustratedCount());
+        MetricTransformUtil.INSTANCE.streamDataToH2Data(streamData, target);
 
-        source.put(ApplicationReferenceMetricTable.COLUMN_TIME_BUCKET, streamData.getTimeBucket());
+        target.put(ApplicationReferenceMetricTable.SATISFIED_COUNT.getName(), streamData.getSatisfiedCount());
+        target.put(ApplicationReferenceMetricTable.TOLERATING_COUNT.getName(), streamData.getToleratingCount());
+        target.put(ApplicationReferenceMetricTable.FRUSTRATED_COUNT.getName(), streamData.getFrustratedCount());
 
-        return source;
+        return target;
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/cache/ApplicationH2CacheDAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/cache/ApplicationH2CacheDAO.java
index 5c606d936..e2f5d5e34 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/cache/ApplicationH2CacheDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/cache/ApplicationH2CacheDAO.java
@@ -48,7 +48,7 @@ public ApplicationH2CacheDAO(H2Client client) {
     public int getApplicationIdByCode(String applicationCode) {
         logger.info("get the application id with application code = {}", applicationCode);
         H2Client client = getClient();
-        String sql = SqlBuilder.buildSql(GET_APPLICATION_ID_SQL, ApplicationTable.COLUMN_APPLICATION_ID, ApplicationTable.TABLE, ApplicationTable.COLUMN_APPLICATION_CODE, ApplicationTable.COLUMN_IS_ADDRESS);
+        String sql = SqlBuilder.buildSql(GET_APPLICATION_ID_SQL, ApplicationTable.APPLICATION_ID.getName(), ApplicationTable.TABLE, ApplicationTable.APPLICATION_CODE.getName(), ApplicationTable.IS_ADDRESS.getName());
 
         Object[] params = new Object[] {applicationCode, false};
         try (ResultSet rs = client.executeQuery(sql, params)) {
@@ -64,7 +64,7 @@ public int getApplicationIdByCode(String applicationCode) {
     @Override public Application getApplication(int applicationId) {
         logger.debug("get application code, applicationId: {}", applicationId);
         H2Client client = getClient();
-        String sql = SqlBuilder.buildSql(GET_APPLICATION_SQL, ApplicationTable.COLUMN_APPLICATION_CODE, ApplicationTable.COLUMN_IS_ADDRESS, ApplicationTable.TABLE, ApplicationTable.COLUMN_APPLICATION_ID);
+        String sql = SqlBuilder.buildSql(GET_APPLICATION_SQL, ApplicationTable.APPLICATION_CODE.getName(), ApplicationTable.IS_ADDRESS.getName(), ApplicationTable.TABLE, ApplicationTable.APPLICATION_ID.getName());
         Object[] params = new Object[] {applicationId};
         try (ResultSet rs = client.executeQuery(sql, params)) {
             if (rs.next()) {
@@ -83,7 +83,7 @@ public int getApplicationIdByCode(String applicationCode) {
     @Override public int getApplicationIdByAddressId(int addressId) {
         logger.info("get the application id with address id = {}", addressId);
         H2Client client = getClient();
-        String sql = SqlBuilder.buildSql(GET_APPLICATION_ID_SQL, ApplicationTable.COLUMN_APPLICATION_ID, ApplicationTable.TABLE, ApplicationTable.COLUMN_ADDRESS_ID, ApplicationTable.COLUMN_IS_ADDRESS);
+        String sql = SqlBuilder.buildSql(GET_APPLICATION_ID_SQL, ApplicationTable.APPLICATION_ID.getName(), ApplicationTable.TABLE, ApplicationTable.ADDRESS_ID.getName(), ApplicationTable.IS_ADDRESS.getName());
 
         Object[] params = new Object[] {addressId, true};
         try (ResultSet rs = client.executeQuery(sql, params)) {
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/cache/InstanceH2CacheDAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/cache/InstanceH2CacheDAO.java
index 67f25ca7c..0c14ec33a 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/cache/InstanceH2CacheDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/cache/InstanceH2CacheDAO.java
@@ -47,11 +47,11 @@ public InstanceH2CacheDAO(H2Client client) {
     @Override public int getApplicationId(int instanceId) {
         logger.info("get the application id by instance id = {}", instanceId);
         H2Client client = getClient();
-        String sql = SqlBuilder.buildSql(GET_APPLICATION_ID_SQL, InstanceTable.COLUMN_APPLICATION_ID, InstanceTable.TABLE, InstanceTable.COLUMN_INSTANCE_ID);
+        String sql = SqlBuilder.buildSql(GET_APPLICATION_ID_SQL, InstanceTable.APPLICATION_ID.getName(), InstanceTable.TABLE, InstanceTable.INSTANCE_ID.getName());
         Object[] params = new Object[] {instanceId};
         try (ResultSet rs = client.executeQuery(sql, params)) {
             if (rs.next()) {
-                return rs.getInt(InstanceTable.COLUMN_APPLICATION_ID);
+                return rs.getInt(InstanceTable.APPLICATION_ID.getName());
             }
         } catch (SQLException | H2ClientException e) {
             logger.error(e.getMessage(), e);
@@ -62,12 +62,12 @@ public InstanceH2CacheDAO(H2Client client) {
     @Override public int getInstanceIdByAgentUUID(int applicationId, String agentUUID) {
         logger.info("get the instance id by application id = {}, agentUUID = {}", applicationId, agentUUID);
         H2Client client = getClient();
-        String sql = SqlBuilder.buildSql(GET_INSTANCE_ID_SQL, InstanceTable.COLUMN_INSTANCE_ID, InstanceTable.TABLE, InstanceTable.COLUMN_APPLICATION_ID,
-            InstanceTable.COLUMN_AGENT_UUID, InstanceTable.COLUMN_IS_ADDRESS);
+        String sql = SqlBuilder.buildSql(GET_INSTANCE_ID_SQL, InstanceTable.INSTANCE_ID.getName(), InstanceTable.TABLE, InstanceTable.APPLICATION_ID.getName(),
+            InstanceTable.AGENT_UUID.getName(), InstanceTable.IS_ADDRESS.getName());
         Object[] params = new Object[] {applicationId, agentUUID, BooleanUtils.FALSE};
         try (ResultSet rs = client.executeQuery(sql, params)) {
             if (rs.next()) {
-                return rs.getInt(InstanceTable.COLUMN_INSTANCE_ID);
+                return rs.getInt(InstanceTable.INSTANCE_ID.getName());
             }
         } catch (SQLException | H2ClientException e) {
             logger.error(e.getMessage(), e);
@@ -78,12 +78,12 @@ public InstanceH2CacheDAO(H2Client client) {
     @Override public int getInstanceIdByAddressId(int applicationId, int addressId) {
         logger.info("get the instance id by application id = {}, address id = {}", applicationId, addressId);
         H2Client client = getClient();
-        String sql = SqlBuilder.buildSql(GET_INSTANCE_ID_SQL, InstanceTable.COLUMN_INSTANCE_ID, InstanceTable.TABLE, InstanceTable.COLUMN_APPLICATION_ID,
-            InstanceTable.COLUMN_ADDRESS_ID, InstanceTable.COLUMN_IS_ADDRESS);
+        String sql = SqlBuilder.buildSql(GET_INSTANCE_ID_SQL, InstanceTable.INSTANCE_ID.getName(), InstanceTable.TABLE, InstanceTable.APPLICATION_ID.getName(),
+            InstanceTable.ADDRESS_ID.getName(), InstanceTable.IS_ADDRESS.getName());
         Object[] params = new Object[] {applicationId, addressId, BooleanUtils.TRUE};
         try (ResultSet rs = client.executeQuery(sql, params)) {
             if (rs.next()) {
-                return rs.getInt(InstanceTable.COLUMN_INSTANCE_ID);
+                return rs.getInt(InstanceTable.INSTANCE_ID.getName());
             }
         } catch (SQLException | H2ClientException e) {
             logger.error(e.getMessage(), e);
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/cache/NetworkAddressH2CacheDAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/cache/NetworkAddressH2CacheDAO.java
index b804c6ef4..a3c829cae 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/cache/NetworkAddressH2CacheDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/cache/NetworkAddressH2CacheDAO.java
@@ -49,7 +49,7 @@ public int getAddressId(String networkAddress) {
         logger.info("get the address id with network address = {}", networkAddress);
         H2Client client = getClient();
 
-        String sql = SqlBuilder.buildSql(GET_ADDRESS_ID_OR_CODE_SQL, NetworkAddressTable.COLUMN_ADDRESS_ID, NetworkAddressTable.TABLE, NetworkAddressTable.COLUMN_NETWORK_ADDRESS);
+        String sql = SqlBuilder.buildSql(GET_ADDRESS_ID_OR_CODE_SQL, NetworkAddressTable.ADDRESS_ID.getName(), NetworkAddressTable.TABLE, NetworkAddressTable.NETWORK_ADDRESS.getName());
 
         Object[] params = new Object[] {networkAddress};
         try (ResultSet rs = client.executeQuery(sql, params)) {
@@ -67,16 +67,16 @@ public int getAddressId(String networkAddress) {
         H2Client client = getClient();
 
         String dynamicSql = "select * from {0} where {1} = ?";
-        String sql = SqlBuilder.buildSql(dynamicSql, NetworkAddressTable.TABLE, NetworkAddressTable.COLUMN_ADDRESS_ID);
+        String sql = SqlBuilder.buildSql(dynamicSql, NetworkAddressTable.TABLE, NetworkAddressTable.ADDRESS_ID.getName());
         Object[] params = new Object[] {addressId};
         try (ResultSet rs = client.executeQuery(sql, params)) {
             if (rs.next()) {
                 NetworkAddress networkAddress = new NetworkAddress();
-                networkAddress.setId(rs.getString(NetworkAddressTable.COLUMN_ID));
-                networkAddress.setAddressId(rs.getInt(NetworkAddressTable.COLUMN_ADDRESS_ID));
-                networkAddress.setNetworkAddress(rs.getString(NetworkAddressTable.COLUMN_NETWORK_ADDRESS));
-                networkAddress.setSpanLayer(rs.getInt(NetworkAddressTable.COLUMN_SPAN_LAYER));
-                networkAddress.setServerType(rs.getInt(NetworkAddressTable.COLUMN_SERVER_TYPE));
+                networkAddress.setId(rs.getString(NetworkAddressTable.ID.getName()));
+                networkAddress.setAddressId(rs.getInt(NetworkAddressTable.ADDRESS_ID.getName()));
+                networkAddress.setNetworkAddress(rs.getString(NetworkAddressTable.NETWORK_ADDRESS.getName()));
+                networkAddress.setSrcSpanLayer(rs.getInt(NetworkAddressTable.SRC_SPAN_LAYER.getName()));
+                networkAddress.setServerType(rs.getInt(NetworkAddressTable.SERVER_TYPE.getName()));
                 return networkAddress;
             }
         } catch (SQLException | H2ClientException e) {
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/cache/ServiceNameH2CacheDAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/cache/ServiceNameH2CacheDAO.java
index 4065b33c9..82870fe34 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/cache/ServiceNameH2CacheDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/cache/ServiceNameH2CacheDAO.java
@@ -46,15 +46,15 @@ public ServiceNameH2CacheDAO(H2Client client) {
 
     @Override public ServiceName get(int serviceId) {
         H2Client client = getClient();
-        String sql = SqlBuilder.buildSql(GET_SERVICE_NAME_SQL, ServiceNameTable.COLUMN_APPLICATION_ID, ServiceNameTable.COLUMN_SERVICE_NAME,
-            ServiceNameTable.TABLE, ServiceNameTable.COLUMN_SERVICE_ID);
+        String sql = SqlBuilder.buildSql(GET_SERVICE_NAME_SQL, ServiceNameTable.APPLICATION_ID.getName(), ServiceNameTable.SERVICE_NAME.getName(),
+            ServiceNameTable.TABLE, ServiceNameTable.SERVICE_ID.getName());
         Object[] params = new Object[] {serviceId};
         try (ResultSet rs = client.executeQuery(sql, params)) {
             if (rs.next()) {
                 ServiceName serviceName = new ServiceName();
                 serviceName.setServiceId(serviceId);
-                serviceName.setApplicationId(rs.getInt(ServiceNameTable.COLUMN_APPLICATION_ID));
-                serviceName.setServiceName(rs.getString(ServiceNameTable.COLUMN_SERVICE_NAME));
+                serviceName.setApplicationId(rs.getInt(ServiceNameTable.APPLICATION_ID.getName()));
+                serviceName.setServiceName(rs.getString(ServiceNameTable.SERVICE_NAME.getName()));
                 return serviceName;
             }
         } catch (SQLException | H2ClientException e) {
@@ -65,13 +65,13 @@ public ServiceNameH2CacheDAO(H2Client client) {
 
     @Override public int getServiceId(int applicationId, int srcSpanType, String serviceName) {
         H2Client client = getClient();
-        String sql = SqlBuilder.buildSql(GET_SERVICE_ID_SQL, ServiceNameTable.COLUMN_SERVICE_ID, ServiceNameTable.TABLE,
-            ServiceNameTable.COLUMN_APPLICATION_ID, ServiceNameTable.COLUMN_SRC_SPAN_TYPE, ServiceNameTable.COLUMN_SERVICE_NAME);
+        String sql = SqlBuilder.buildSql(GET_SERVICE_ID_SQL, ServiceNameTable.SERVICE_ID.getName(), ServiceNameTable.TABLE,
+            ServiceNameTable.APPLICATION_ID.getName(), ServiceNameTable.SRC_SPAN_TYPE.getName(), ServiceNameTable.SERVICE_NAME.getName());
 
         Object[] params = new Object[] {applicationId, srcSpanType, serviceName};
         try (ResultSet rs = client.executeQuery(sql, params)) {
             if (rs.next()) {
-                return rs.getInt(ServiceNameTable.COLUMN_SERVICE_ID);
+                return rs.getInt(ServiceNameTable.SERVICE_ID.getName());
             }
         } catch (SQLException | H2ClientException e) {
             logger.error(e.getMessage(), e);
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/cpu/AbstractCpuMetricH2PersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/cpu/AbstractCpuMetricH2PersistenceDAO.java
index 22002fa1a..7f978a0f9 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/cpu/AbstractCpuMetricH2PersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/cpu/AbstractCpuMetricH2PersistenceDAO.java
@@ -32,34 +32,34 @@
  */
 public abstract class AbstractCpuMetricH2PersistenceDAO extends AbstractPersistenceH2DAO<CpuMetric> {
 
-    public AbstractCpuMetricH2PersistenceDAO(H2Client client) {
+    AbstractCpuMetricH2PersistenceDAO(H2Client client) {
         super(client);
     }
 
     @Override protected final CpuMetric h2DataToStreamData(ResultSet resultSet) throws SQLException {
         CpuMetric cpuMetric = new CpuMetric();
-        cpuMetric.setId(resultSet.getString(CpuMetricTable.COLUMN_ID));
-        cpuMetric.setMetricId(resultSet.getString(CpuMetricTable.COLUMN_METRIC_ID));
+        cpuMetric.setId(resultSet.getString(CpuMetricTable.ID.getName()));
+        cpuMetric.setMetricId(resultSet.getString(CpuMetricTable.METRIC_ID.getName()));
 
-        cpuMetric.setInstanceId(resultSet.getInt(CpuMetricTable.COLUMN_INSTANCE_ID));
+        cpuMetric.setInstanceId(resultSet.getInt(CpuMetricTable.INSTANCE_ID.getName()));
 
-        cpuMetric.setUsagePercent(resultSet.getDouble(CpuMetricTable.COLUMN_USAGE_PERCENT));
-        cpuMetric.setTimes(resultSet.getLong(CpuMetricTable.COLUMN_TIMES));
-        cpuMetric.setTimeBucket(resultSet.getLong(CpuMetricTable.COLUMN_TIME_BUCKET));
+        cpuMetric.setUsagePercent(resultSet.getDouble(CpuMetricTable.USAGE_PERCENT.getName()));
+        cpuMetric.setTimes(resultSet.getLong(CpuMetricTable.TIMES.getName()));
+        cpuMetric.setTimeBucket(resultSet.getLong(CpuMetricTable.TIME_BUCKET.getName()));
 
         return cpuMetric;
     }
 
     @Override protected final Map<String, Object> streamDataToH2Data(CpuMetric streamData) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(CpuMetricTable.COLUMN_ID, streamData.getId());
-        source.put(CpuMetricTable.COLUMN_METRIC_ID, streamData.getMetricId());
+        Map<String, Object> target = new HashMap<>();
+        target.put(CpuMetricTable.ID.getName(), streamData.getId());
+        target.put(CpuMetricTable.METRIC_ID.getName(), streamData.getMetricId());
 
-        source.put(CpuMetricTable.COLUMN_INSTANCE_ID, streamData.getInstanceId());
-        source.put(CpuMetricTable.COLUMN_USAGE_PERCENT, streamData.getUsagePercent());
-        source.put(CpuMetricTable.COLUMN_TIMES, streamData.getTimes());
-        source.put(CpuMetricTable.COLUMN_TIME_BUCKET, streamData.getTimeBucket());
+        target.put(CpuMetricTable.INSTANCE_ID.getName(), streamData.getInstanceId());
+        target.put(CpuMetricTable.USAGE_PERCENT.getName(), streamData.getUsagePercent());
+        target.put(CpuMetricTable.TIMES.getName(), streamData.getTimes());
+        target.put(CpuMetricTable.TIME_BUCKET.getName(), streamData.getTimeBucket());
 
-        return source;
+        return target;
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/gcmp/AbstractGCMetricH2PersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/gcmp/AbstractGCMetricH2PersistenceDAO.java
index cb2afb61f..80635244e 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/gcmp/AbstractGCMetricH2PersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/gcmp/AbstractGCMetricH2PersistenceDAO.java
@@ -32,37 +32,37 @@
  */
 public abstract class AbstractGCMetricH2PersistenceDAO extends AbstractPersistenceH2DAO<GCMetric> {
 
-    public AbstractGCMetricH2PersistenceDAO(H2Client client) {
+    AbstractGCMetricH2PersistenceDAO(H2Client client) {
         super(client);
     }
 
     @Override protected final GCMetric h2DataToStreamData(ResultSet resultSet) throws SQLException {
         GCMetric gcMetric = new GCMetric();
-        gcMetric.setId(resultSet.getString(GCMetricTable.COLUMN_ID));
-        gcMetric.setMetricId(resultSet.getString(GCMetricTable.COLUMN_METRIC_ID));
+        gcMetric.setId(resultSet.getString(GCMetricTable.ID.getName()));
+        gcMetric.setMetricId(resultSet.getString(GCMetricTable.METRIC_ID.getName()));
 
-        gcMetric.setInstanceId(resultSet.getInt(GCMetricTable.COLUMN_INSTANCE_ID));
-        gcMetric.setPhrase(resultSet.getInt(GCMetricTable.COLUMN_PHRASE));
+        gcMetric.setInstanceId(resultSet.getInt(GCMetricTable.INSTANCE_ID.getName()));
+        gcMetric.setPhrase(resultSet.getInt(GCMetricTable.PHRASE.getName()));
 
-        gcMetric.setCount(resultSet.getLong(GCMetricTable.COLUMN_COUNT));
-        gcMetric.setTimes(resultSet.getLong(GCMetricTable.COLUMN_TIMES));
+        gcMetric.setCount(resultSet.getLong(GCMetricTable.COUNT.getName()));
+        gcMetric.setTimes(resultSet.getLong(GCMetricTable.TIMES.getName()));
 
-        gcMetric.setTimeBucket(resultSet.getLong(GCMetricTable.COLUMN_TIME_BUCKET));
+        gcMetric.setTimeBucket(resultSet.getLong(GCMetricTable.TIME_BUCKET.getName()));
 
         return gcMetric;
     }
 
     @Override protected final Map<String, Object> streamDataToH2Data(GCMetric streamData) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(GCMetricTable.COLUMN_ID, streamData.getId());
-        source.put(GCMetricTable.COLUMN_METRIC_ID, streamData.getMetricId());
+        Map<String, Object> target = new HashMap<>();
+        target.put(GCMetricTable.ID.getName(), streamData.getId());
+        target.put(GCMetricTable.METRIC_ID.getName(), streamData.getMetricId());
 
-        source.put(GCMetricTable.COLUMN_INSTANCE_ID, streamData.getInstanceId());
-        source.put(GCMetricTable.COLUMN_PHRASE, streamData.getPhrase());
-        source.put(GCMetricTable.COLUMN_COUNT, streamData.getCount());
-        source.put(GCMetricTable.COLUMN_TIMES, streamData.getTimes());
-        source.put(GCMetricTable.COLUMN_TIME_BUCKET, streamData.getTimeBucket());
+        target.put(GCMetricTable.INSTANCE_ID.getName(), streamData.getInstanceId());
+        target.put(GCMetricTable.PHRASE.getName(), streamData.getPhrase());
+        target.put(GCMetricTable.COUNT.getName(), streamData.getCount());
+        target.put(GCMetricTable.TIMES.getName(), streamData.getTimes());
+        target.put(GCMetricTable.TIME_BUCKET.getName(), streamData.getTimeBucket());
 
-        return source;
+        return target;
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/imp/AbstractInstanceMetricH2PersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/imp/AbstractInstanceMetricH2PersistenceDAO.java
index 133a69121..3e1ed4302 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/imp/AbstractInstanceMetricH2PersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/imp/AbstractInstanceMetricH2PersistenceDAO.java
@@ -23,6 +23,7 @@
 import java.util.HashMap;
 import java.util.Map;
 import org.apache.skywalking.apm.collector.client.h2.H2Client;
+import org.apache.skywalking.apm.collector.storage.h2.MetricTransformUtil;
 import org.apache.skywalking.apm.collector.storage.h2.base.dao.AbstractPersistenceH2DAO;
 import org.apache.skywalking.apm.collector.storage.table.instance.InstanceMetric;
 import org.apache.skywalking.apm.collector.storage.table.instance.InstanceMetricTable;
@@ -32,70 +33,32 @@
  */
 public abstract class AbstractInstanceMetricH2PersistenceDAO extends AbstractPersistenceH2DAO<InstanceMetric> {
 
-    public AbstractInstanceMetricH2PersistenceDAO(H2Client client) {
+    AbstractInstanceMetricH2PersistenceDAO(H2Client client) {
         super(client);
     }
 
     @Override protected final InstanceMetric h2DataToStreamData(ResultSet resultSet) throws SQLException {
         InstanceMetric instanceMetric = new InstanceMetric();
 
-        instanceMetric.setId(resultSet.getString(InstanceMetricTable.COLUMN_ID));
-        instanceMetric.setMetricId(resultSet.getString(InstanceMetricTable.COLUMN_METRIC_ID));
-        instanceMetric.setApplicationId(resultSet.getInt(InstanceMetricTable.COLUMN_APPLICATION_ID));
-        instanceMetric.setInstanceId(resultSet.getInt(InstanceMetricTable.COLUMN_INSTANCE_ID));
-        instanceMetric.setSourceValue(resultSet.getInt(InstanceMetricTable.COLUMN_SOURCE_VALUE));
+        instanceMetric.setId(resultSet.getString(InstanceMetricTable.ID.getName()));
+        instanceMetric.setMetricId(resultSet.getString(InstanceMetricTable.METRIC_ID.getName()));
+        instanceMetric.setApplicationId(resultSet.getInt(InstanceMetricTable.APPLICATION_ID.getName()));
+        instanceMetric.setInstanceId(resultSet.getInt(InstanceMetricTable.INSTANCE_ID.getName()));
 
-        instanceMetric.setTransactionCalls(resultSet.getLong(InstanceMetricTable.COLUMN_TRANSACTION_CALLS));
-        instanceMetric.setTransactionErrorCalls(resultSet.getLong(InstanceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS));
-        instanceMetric.setTransactionDurationSum(resultSet.getLong(InstanceMetricTable.COLUMN_TRANSACTION_DURATION_SUM));
-        instanceMetric.setTransactionErrorDurationSum(resultSet.getLong(InstanceMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM));
-        instanceMetric.setTransactionAverageDuration(resultSet.getLong(InstanceMetricTable.COLUMN_TRANSACTION_AVERAGE_DURATION));
-
-        instanceMetric.setBusinessTransactionCalls(resultSet.getLong(InstanceMetricTable.COLUMN_BUSINESS_TRANSACTION_CALLS));
-        instanceMetric.setBusinessTransactionErrorCalls(resultSet.getLong(InstanceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_CALLS));
-        instanceMetric.setBusinessTransactionDurationSum(resultSet.getLong(InstanceMetricTable.COLUMN_BUSINESS_TRANSACTION_DURATION_SUM));
-        instanceMetric.setBusinessTransactionErrorDurationSum(resultSet.getLong(InstanceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_DURATION_SUM));
-        instanceMetric.setBusinessTransactionAverageDuration(resultSet.getLong(InstanceMetricTable.COLUMN_BUSINESS_TRANSACTION_AVERAGE_DURATION));
-
-        instanceMetric.setMqTransactionCalls(resultSet.getLong(InstanceMetricTable.COLUMN_MQ_TRANSACTION_CALLS));
-        instanceMetric.setMqTransactionErrorCalls(resultSet.getLong(InstanceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_CALLS));
-        instanceMetric.setMqTransactionDurationSum(resultSet.getLong(InstanceMetricTable.COLUMN_MQ_TRANSACTION_DURATION_SUM));
-        instanceMetric.setMqTransactionErrorDurationSum(resultSet.getLong(InstanceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_DURATION_SUM));
-        instanceMetric.setMqTransactionAverageDuration(resultSet.getLong(InstanceMetricTable.COLUMN_MQ_TRANSACTION_AVERAGE_DURATION));
-
-        instanceMetric.setTimeBucket(resultSet.getLong(InstanceMetricTable.COLUMN_TIME_BUCKET));
+        MetricTransformUtil.INSTANCE.h2DataToStreamData(resultSet, instanceMetric);
         return instanceMetric;
     }
 
     @Override protected final Map<String, Object> streamDataToH2Data(InstanceMetric streamData) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(InstanceMetricTable.COLUMN_ID, streamData.getId());
-        source.put(InstanceMetricTable.COLUMN_METRIC_ID, streamData.getMetricId());
-
-        source.put(InstanceMetricTable.COLUMN_APPLICATION_ID, streamData.getApplicationId());
-        source.put(InstanceMetricTable.COLUMN_INSTANCE_ID, streamData.getInstanceId());
-        source.put(InstanceMetricTable.COLUMN_SOURCE_VALUE, streamData.getSourceValue());
-
-        source.put(InstanceMetricTable.COLUMN_TRANSACTION_CALLS, streamData.getTransactionCalls());
-        source.put(InstanceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS, streamData.getTransactionErrorCalls());
-        source.put(InstanceMetricTable.COLUMN_TRANSACTION_DURATION_SUM, streamData.getTransactionDurationSum());
-        source.put(InstanceMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM, streamData.getTransactionErrorDurationSum());
-        source.put(InstanceMetricTable.COLUMN_TRANSACTION_AVERAGE_DURATION, streamData.getTransactionAverageDuration());
-
-        source.put(InstanceMetricTable.COLUMN_BUSINESS_TRANSACTION_CALLS, streamData.getBusinessTransactionCalls());
-        source.put(InstanceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_CALLS, streamData.getBusinessTransactionErrorCalls());
-        source.put(InstanceMetricTable.COLUMN_BUSINESS_TRANSACTION_DURATION_SUM, streamData.getBusinessTransactionDurationSum());
-        source.put(InstanceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_DURATION_SUM, streamData.getBusinessTransactionErrorDurationSum());
-        source.put(InstanceMetricTable.COLUMN_BUSINESS_TRANSACTION_AVERAGE_DURATION, streamData.getBusinessTransactionAverageDuration());
+        Map<String, Object> target = new HashMap<>();
+        target.put(InstanceMetricTable.ID.getName(), streamData.getId());
+        target.put(InstanceMetricTable.METRIC_ID.getName(), streamData.getMetricId());
 
-        source.put(InstanceMetricTable.COLUMN_MQ_TRANSACTION_CALLS, streamData.getMqTransactionCalls());
-        source.put(InstanceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_CALLS, streamData.getMqTransactionErrorCalls());
-        source.put(InstanceMetricTable.COLUMN_MQ_TRANSACTION_DURATION_SUM, streamData.getMqTransactionDurationSum());
-        source.put(InstanceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_DURATION_SUM, streamData.getMqTransactionErrorDurationSum());
-        source.put(InstanceMetricTable.COLUMN_MQ_TRANSACTION_AVERAGE_DURATION, streamData.getMqTransactionAverageDuration());
+        target.put(InstanceMetricTable.APPLICATION_ID.getName(), streamData.getApplicationId());
+        target.put(InstanceMetricTable.INSTANCE_ID.getName(), streamData.getInstanceId());
 
-        source.put(InstanceMetricTable.COLUMN_TIME_BUCKET, streamData.getTimeBucket());
+        MetricTransformUtil.INSTANCE.streamDataToH2Data(streamData, target);
 
-        return source;
+        return target;
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/impp/AbstractInstanceMappingH2PersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/impp/AbstractInstanceMappingH2PersistenceDAO.java
index d4a85a8f4..58bded9f9 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/impp/AbstractInstanceMappingH2PersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/impp/AbstractInstanceMappingH2PersistenceDAO.java
@@ -32,32 +32,32 @@
  */
 public abstract class AbstractInstanceMappingH2PersistenceDAO extends AbstractPersistenceH2DAO<InstanceMapping> {
 
-    public AbstractInstanceMappingH2PersistenceDAO(H2Client client) {
+    AbstractInstanceMappingH2PersistenceDAO(H2Client client) {
         super(client);
     }
 
     @Override protected final InstanceMapping h2DataToStreamData(ResultSet resultSet) throws SQLException {
         InstanceMapping instanceMapping = new InstanceMapping();
-        instanceMapping.setId(resultSet.getString(InstanceMappingTable.COLUMN_ID));
-        instanceMapping.setMetricId(resultSet.getString(InstanceMappingTable.COLUMN_METRIC_ID));
+        instanceMapping.setId(resultSet.getString(InstanceMappingTable.ID.getName()));
+        instanceMapping.setMetricId(resultSet.getString(InstanceMappingTable.METRIC_ID.getName()));
 
-        instanceMapping.setApplicationId(resultSet.getInt(InstanceMappingTable.COLUMN_APPLICATION_ID));
-        instanceMapping.setInstanceId(resultSet.getInt(InstanceMappingTable.COLUMN_INSTANCE_ID));
-        instanceMapping.setAddressId(resultSet.getInt(InstanceMappingTable.COLUMN_ADDRESS_ID));
-        instanceMapping.setTimeBucket(resultSet.getLong(InstanceMappingTable.COLUMN_TIME_BUCKET));
+        instanceMapping.setApplicationId(resultSet.getInt(InstanceMappingTable.APPLICATION_ID.getName()));
+        instanceMapping.setInstanceId(resultSet.getInt(InstanceMappingTable.INSTANCE_ID.getName()));
+        instanceMapping.setAddressId(resultSet.getInt(InstanceMappingTable.ADDRESS_ID.getName()));
+        instanceMapping.setTimeBucket(resultSet.getLong(InstanceMappingTable.TIME_BUCKET.getName()));
         return instanceMapping;
     }
 
     @Override protected final Map<String, Object> streamDataToH2Data(InstanceMapping streamData) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(InstanceMappingTable.COLUMN_ID, streamData.getId());
-        source.put(InstanceMappingTable.COLUMN_METRIC_ID, streamData.getMetricId());
+        Map<String, Object> target = new HashMap<>();
+        target.put(InstanceMappingTable.ID.getName(), streamData.getId());
+        target.put(InstanceMappingTable.METRIC_ID.getName(), streamData.getMetricId());
 
-        source.put(InstanceMappingTable.COLUMN_APPLICATION_ID, streamData.getApplicationId());
-        source.put(InstanceMappingTable.COLUMN_INSTANCE_ID, streamData.getInstanceId());
-        source.put(InstanceMappingTable.COLUMN_ADDRESS_ID, streamData.getAddressId());
-        source.put(InstanceMappingTable.COLUMN_TIME_BUCKET, streamData.getTimeBucket());
+        target.put(InstanceMappingTable.APPLICATION_ID.getName(), streamData.getApplicationId());
+        target.put(InstanceMappingTable.INSTANCE_ID.getName(), streamData.getInstanceId());
+        target.put(InstanceMappingTable.ADDRESS_ID.getName(), streamData.getAddressId());
+        target.put(InstanceMappingTable.TIME_BUCKET.getName(), streamData.getTimeBucket());
 
-        return source;
+        return target;
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/irmp/AbstractInstanceReferenceMetricH2PersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/irmp/AbstractInstanceReferenceMetricH2PersistenceDAO.java
index a801f43a7..dd56e4647 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/irmp/AbstractInstanceReferenceMetricH2PersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/irmp/AbstractInstanceReferenceMetricH2PersistenceDAO.java
@@ -23,6 +23,7 @@
 import java.util.HashMap;
 import java.util.Map;
 import org.apache.skywalking.apm.collector.client.h2.H2Client;
+import org.apache.skywalking.apm.collector.storage.h2.MetricTransformUtil;
 import org.apache.skywalking.apm.collector.storage.h2.base.dao.AbstractPersistenceH2DAO;
 import org.apache.skywalking.apm.collector.storage.table.instance.InstanceReferenceMetric;
 import org.apache.skywalking.apm.collector.storage.table.instance.InstanceReferenceMetricTable;
@@ -32,74 +33,37 @@
  */
 public abstract class AbstractInstanceReferenceMetricH2PersistenceDAO extends AbstractPersistenceH2DAO<InstanceReferenceMetric> {
 
-    public AbstractInstanceReferenceMetricH2PersistenceDAO(H2Client client) {
+    AbstractInstanceReferenceMetricH2PersistenceDAO(H2Client client) {
         super(client);
     }
 
     @Override protected final InstanceReferenceMetric h2DataToStreamData(ResultSet resultSet) throws SQLException {
         InstanceReferenceMetric instanceReferenceMetric = new InstanceReferenceMetric();
-        instanceReferenceMetric.setId(resultSet.getString(InstanceReferenceMetricTable.COLUMN_ID));
-        instanceReferenceMetric.setMetricId(resultSet.getString(InstanceReferenceMetricTable.COLUMN_METRIC_ID));
+        instanceReferenceMetric.setId(resultSet.getString(InstanceReferenceMetricTable.ID.getName()));
+        instanceReferenceMetric.setMetricId(resultSet.getString(InstanceReferenceMetricTable.METRIC_ID.getName()));
 
-        instanceReferenceMetric.setFrontApplicationId(resultSet.getInt(InstanceReferenceMetricTable.COLUMN_FRONT_APPLICATION_ID));
-        instanceReferenceMetric.setBehindApplicationId(resultSet.getInt(InstanceReferenceMetricTable.COLUMN_BEHIND_APPLICATION_ID));
-        instanceReferenceMetric.setFrontInstanceId(resultSet.getInt(InstanceReferenceMetricTable.COLUMN_FRONT_INSTANCE_ID));
-        instanceReferenceMetric.setBehindInstanceId(resultSet.getInt(InstanceReferenceMetricTable.COLUMN_BEHIND_INSTANCE_ID));
-        instanceReferenceMetric.setSourceValue(resultSet.getInt(InstanceReferenceMetricTable.COLUMN_SOURCE_VALUE));
+        instanceReferenceMetric.setFrontApplicationId(resultSet.getInt(InstanceReferenceMetricTable.FRONT_APPLICATION_ID.getName()));
+        instanceReferenceMetric.setBehindApplicationId(resultSet.getInt(InstanceReferenceMetricTable.BEHIND_APPLICATION_ID.getName()));
+        instanceReferenceMetric.setFrontInstanceId(resultSet.getInt(InstanceReferenceMetricTable.FRONT_INSTANCE_ID.getName()));
+        instanceReferenceMetric.setBehindInstanceId(resultSet.getInt(InstanceReferenceMetricTable.BEHIND_INSTANCE_ID.getName()));
 
-        instanceReferenceMetric.setTransactionCalls(resultSet.getLong(InstanceReferenceMetricTable.COLUMN_TRANSACTION_CALLS));
-        instanceReferenceMetric.setTransactionErrorCalls(resultSet.getLong(InstanceReferenceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS));
-        instanceReferenceMetric.setTransactionDurationSum(resultSet.getLong(InstanceReferenceMetricTable.COLUMN_TRANSACTION_DURATION_SUM));
-        instanceReferenceMetric.setTransactionErrorDurationSum(resultSet.getLong(InstanceReferenceMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM));
-        instanceReferenceMetric.setTransactionAverageDuration(resultSet.getLong(InstanceReferenceMetricTable.COLUMN_TRANSACTION_AVERAGE_DURATION));
+        MetricTransformUtil.INSTANCE.h2DataToStreamData(resultSet, instanceReferenceMetric);
 
-        instanceReferenceMetric.setBusinessTransactionCalls(resultSet.getLong(InstanceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_CALLS));
-        instanceReferenceMetric.setBusinessTransactionErrorCalls(resultSet.getLong(InstanceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_CALLS));
-        instanceReferenceMetric.setBusinessTransactionDurationSum(resultSet.getLong(InstanceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_DURATION_SUM));
-        instanceReferenceMetric.setBusinessTransactionErrorDurationSum(resultSet.getLong(InstanceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_DURATION_SUM));
-        instanceReferenceMetric.setBusinessTransactionAverageDuration(resultSet.getLong(InstanceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_AVERAGE_DURATION));
-
-        instanceReferenceMetric.setMqTransactionCalls(resultSet.getLong(InstanceReferenceMetricTable.COLUMN_MQ_TRANSACTION_CALLS));
-        instanceReferenceMetric.setMqTransactionErrorCalls(resultSet.getLong(InstanceReferenceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_CALLS));
-        instanceReferenceMetric.setMqTransactionDurationSum(resultSet.getLong(InstanceReferenceMetricTable.COLUMN_MQ_TRANSACTION_DURATION_SUM));
-        instanceReferenceMetric.setMqTransactionErrorDurationSum(resultSet.getLong(InstanceReferenceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_DURATION_SUM));
-        instanceReferenceMetric.setMqTransactionAverageDuration(resultSet.getLong(InstanceReferenceMetricTable.COLUMN_MQ_TRANSACTION_AVERAGE_DURATION));
-
-        instanceReferenceMetric.setTimeBucket(resultSet.getLong(InstanceReferenceMetricTable.COLUMN_TIME_BUCKET));
         return instanceReferenceMetric;
     }
 
     @Override protected final Map<String, Object> streamDataToH2Data(InstanceReferenceMetric streamData) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(InstanceReferenceMetricTable.COLUMN_ID, streamData.getId());
-        source.put(InstanceReferenceMetricTable.COLUMN_METRIC_ID, streamData.getMetricId());
-
-        source.put(InstanceReferenceMetricTable.COLUMN_FRONT_APPLICATION_ID, streamData.getFrontApplicationId());
-        source.put(InstanceReferenceMetricTable.COLUMN_BEHIND_APPLICATION_ID, streamData.getBehindApplicationId());
-        source.put(InstanceReferenceMetricTable.COLUMN_FRONT_INSTANCE_ID, streamData.getFrontInstanceId());
-        source.put(InstanceReferenceMetricTable.COLUMN_BEHIND_INSTANCE_ID, streamData.getBehindInstanceId());
-        source.put(InstanceReferenceMetricTable.COLUMN_SOURCE_VALUE, streamData.getSourceValue());
-
-        source.put(InstanceReferenceMetricTable.COLUMN_TRANSACTION_CALLS, streamData.getTransactionCalls());
-        source.put(InstanceReferenceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS, streamData.getTransactionErrorCalls());
-        source.put(InstanceReferenceMetricTable.COLUMN_TRANSACTION_DURATION_SUM, streamData.getTransactionDurationSum());
-        source.put(InstanceReferenceMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM, streamData.getTransactionErrorDurationSum());
-        source.put(InstanceReferenceMetricTable.COLUMN_TRANSACTION_AVERAGE_DURATION, streamData.getTransactionAverageDuration());
-
-        source.put(InstanceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_CALLS, streamData.getBusinessTransactionCalls());
-        source.put(InstanceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_CALLS, streamData.getBusinessTransactionErrorCalls());
-        source.put(InstanceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_DURATION_SUM, streamData.getBusinessTransactionDurationSum());
-        source.put(InstanceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_DURATION_SUM, streamData.getBusinessTransactionErrorDurationSum());
-        source.put(InstanceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_AVERAGE_DURATION, streamData.getBusinessTransactionAverageDuration());
+        Map<String, Object> target = new HashMap<>();
+        target.put(InstanceReferenceMetricTable.ID.getName(), streamData.getId());
+        target.put(InstanceReferenceMetricTable.METRIC_ID.getName(), streamData.getMetricId());
 
-        source.put(InstanceReferenceMetricTable.COLUMN_MQ_TRANSACTION_CALLS, streamData.getMqTransactionCalls());
-        source.put(InstanceReferenceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_CALLS, streamData.getMqTransactionErrorCalls());
-        source.put(InstanceReferenceMetricTable.COLUMN_MQ_TRANSACTION_DURATION_SUM, streamData.getMqTransactionDurationSum());
-        source.put(InstanceReferenceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_DURATION_SUM, streamData.getMqTransactionErrorDurationSum());
-        source.put(InstanceReferenceMetricTable.COLUMN_MQ_TRANSACTION_AVERAGE_DURATION, streamData.getMqTransactionAverageDuration());
+        target.put(InstanceReferenceMetricTable.FRONT_APPLICATION_ID.getName(), streamData.getFrontApplicationId());
+        target.put(InstanceReferenceMetricTable.BEHIND_APPLICATION_ID.getName(), streamData.getBehindApplicationId());
+        target.put(InstanceReferenceMetricTable.FRONT_INSTANCE_ID.getName(), streamData.getFrontInstanceId());
+        target.put(InstanceReferenceMetricTable.BEHIND_INSTANCE_ID.getName(), streamData.getBehindInstanceId());
 
-        source.put(InstanceReferenceMetricTable.COLUMN_TIME_BUCKET, streamData.getTimeBucket());
+        MetricTransformUtil.INSTANCE.streamDataToH2Data(streamData, target);
 
-        return source;
+        return target;
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/memory/AbstractMemoryMetricH2PersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/memory/AbstractMemoryMetricH2PersistenceDAO.java
index ddb0d1e49..5fc7a56c3 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/memory/AbstractMemoryMetricH2PersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/memory/AbstractMemoryMetricH2PersistenceDAO.java
@@ -32,42 +32,42 @@
  */
 public abstract class AbstractMemoryMetricH2PersistenceDAO extends AbstractPersistenceH2DAO<MemoryMetric> {
 
-    public AbstractMemoryMetricH2PersistenceDAO(H2Client client) {
+    AbstractMemoryMetricH2PersistenceDAO(H2Client client) {
         super(client);
     }
 
     @Override protected final MemoryMetric h2DataToStreamData(ResultSet resultSet) throws SQLException {
         MemoryMetric memoryMetric = new MemoryMetric();
-        memoryMetric.setId(resultSet.getString(MemoryMetricTable.COLUMN_ID));
-        memoryMetric.setMetricId(resultSet.getString(MemoryMetricTable.COLUMN_METRIC_ID));
+        memoryMetric.setId(resultSet.getString(MemoryMetricTable.ID.getName()));
+        memoryMetric.setMetricId(resultSet.getString(MemoryMetricTable.METRIC_ID.getName()));
 
-        memoryMetric.setInstanceId(resultSet.getInt(MemoryMetricTable.COLUMN_INSTANCE_ID));
-        memoryMetric.setIsHeap(resultSet.getInt(MemoryMetricTable.COLUMN_IS_HEAP));
+        memoryMetric.setInstanceId(resultSet.getInt(MemoryMetricTable.INSTANCE_ID.getName()));
+        memoryMetric.setIsHeap(resultSet.getInt(MemoryMetricTable.IS_HEAP.getName()));
 
-        memoryMetric.setInit(resultSet.getLong(MemoryMetricTable.COLUMN_INIT));
-        memoryMetric.setMax(resultSet.getLong(MemoryMetricTable.COLUMN_MAX));
-        memoryMetric.setUsed(resultSet.getLong(MemoryMetricTable.COLUMN_USED));
-        memoryMetric.setCommitted(resultSet.getLong(MemoryMetricTable.COLUMN_COMMITTED));
-        memoryMetric.setTimes(resultSet.getLong(MemoryMetricTable.COLUMN_TIMES));
+        memoryMetric.setInit(resultSet.getLong(MemoryMetricTable.INIT.getName()));
+        memoryMetric.setMax(resultSet.getLong(MemoryMetricTable.MAX.getName()));
+        memoryMetric.setUsed(resultSet.getLong(MemoryMetricTable.USED.getName()));
+        memoryMetric.setCommitted(resultSet.getLong(MemoryMetricTable.COMMITTED.getName()));
+        memoryMetric.setTimes(resultSet.getLong(MemoryMetricTable.TIMES.getName()));
 
-        memoryMetric.setTimeBucket(resultSet.getLong(MemoryMetricTable.COLUMN_TIME_BUCKET));
+        memoryMetric.setTimeBucket(resultSet.getLong(MemoryMetricTable.TIME_BUCKET.getName()));
         return memoryMetric;
     }
 
     @Override protected final Map<String, Object> streamDataToH2Data(MemoryMetric streamData) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(MemoryMetricTable.COLUMN_ID, streamData.getId());
-        source.put(MemoryMetricTable.COLUMN_METRIC_ID, streamData.getMetricId());
+        Map<String, Object> target = new HashMap<>();
+        target.put(MemoryMetricTable.ID.getName(), streamData.getId());
+        target.put(MemoryMetricTable.METRIC_ID.getName(), streamData.getMetricId());
 
-        source.put(MemoryMetricTable.COLUMN_INSTANCE_ID, streamData.getInstanceId());
-        source.put(MemoryMetricTable.COLUMN_IS_HEAP, streamData.getIsHeap());
-        source.put(MemoryMetricTable.COLUMN_INIT, streamData.getInit());
-        source.put(MemoryMetricTable.COLUMN_MAX, streamData.getMax());
-        source.put(MemoryMetricTable.COLUMN_USED, streamData.getUsed());
-        source.put(MemoryMetricTable.COLUMN_COMMITTED, streamData.getCommitted());
-        source.put(MemoryMetricTable.COLUMN_TIMES, streamData.getTimes());
-        source.put(MemoryMetricTable.COLUMN_TIME_BUCKET, streamData.getTimeBucket());
+        target.put(MemoryMetricTable.INSTANCE_ID.getName(), streamData.getInstanceId());
+        target.put(MemoryMetricTable.IS_HEAP.getName(), streamData.getIsHeap());
+        target.put(MemoryMetricTable.INIT.getName(), streamData.getInit());
+        target.put(MemoryMetricTable.MAX.getName(), streamData.getMax());
+        target.put(MemoryMetricTable.USED.getName(), streamData.getUsed());
+        target.put(MemoryMetricTable.COMMITTED.getName(), streamData.getCommitted());
+        target.put(MemoryMetricTable.TIMES.getName(), streamData.getTimes());
+        target.put(MemoryMetricTable.TIME_BUCKET.getName(), streamData.getTimeBucket());
 
-        return source;
+        return target;
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/mpool/AbstractMemoryPoolMetricH2PersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/mpool/AbstractMemoryPoolMetricH2PersistenceDAO.java
index c402efb44..19e17f732 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/mpool/AbstractMemoryPoolMetricH2PersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/mpool/AbstractMemoryPoolMetricH2PersistenceDAO.java
@@ -32,42 +32,42 @@
  */
 public abstract class AbstractMemoryPoolMetricH2PersistenceDAO extends AbstractPersistenceH2DAO<MemoryPoolMetric> {
 
-    public AbstractMemoryPoolMetricH2PersistenceDAO(H2Client client) {
+    AbstractMemoryPoolMetricH2PersistenceDAO(H2Client client) {
         super(client);
     }
 
     @Override protected final MemoryPoolMetric h2DataToStreamData(ResultSet resultSet) throws SQLException {
         MemoryPoolMetric memoryPoolMetric = new MemoryPoolMetric();
-        memoryPoolMetric.setId(resultSet.getString(MemoryPoolMetricTable.COLUMN_ID));
-        memoryPoolMetric.setMetricId(resultSet.getString(MemoryPoolMetricTable.COLUMN_METRIC_ID));
+        memoryPoolMetric.setId(resultSet.getString(MemoryPoolMetricTable.ID.getName()));
+        memoryPoolMetric.setMetricId(resultSet.getString(MemoryPoolMetricTable.METRIC_ID.getName()));
 
-        memoryPoolMetric.setInstanceId(resultSet.getInt(MemoryPoolMetricTable.COLUMN_INSTANCE_ID));
-        memoryPoolMetric.setPoolType(resultSet.getInt(MemoryPoolMetricTable.COLUMN_POOL_TYPE));
+        memoryPoolMetric.setInstanceId(resultSet.getInt(MemoryPoolMetricTable.INSTANCE_ID.getName()));
+        memoryPoolMetric.setPoolType(resultSet.getInt(MemoryPoolMetricTable.POOL_TYPE.getName()));
 
-        memoryPoolMetric.setInit(resultSet.getLong(MemoryPoolMetricTable.COLUMN_INIT));
-        memoryPoolMetric.setMax(resultSet.getLong(MemoryPoolMetricTable.COLUMN_MAX));
-        memoryPoolMetric.setUsed(resultSet.getLong(MemoryPoolMetricTable.COLUMN_USED));
-        memoryPoolMetric.setCommitted(resultSet.getLong(MemoryPoolMetricTable.COLUMN_COMMITTED));
-        memoryPoolMetric.setTimes(resultSet.getLong(MemoryPoolMetricTable.COLUMN_TIMES));
+        memoryPoolMetric.setInit(resultSet.getLong(MemoryPoolMetricTable.INIT.getName()));
+        memoryPoolMetric.setMax(resultSet.getLong(MemoryPoolMetricTable.MAX.getName()));
+        memoryPoolMetric.setUsed(resultSet.getLong(MemoryPoolMetricTable.USED.getName()));
+        memoryPoolMetric.setCommitted(resultSet.getLong(MemoryPoolMetricTable.COMMITTED.getName()));
+        memoryPoolMetric.setTimes(resultSet.getLong(MemoryPoolMetricTable.TIMES.getName()));
 
-        memoryPoolMetric.setTimeBucket(resultSet.getLong(MemoryPoolMetricTable.COLUMN_TIME_BUCKET));
+        memoryPoolMetric.setTimeBucket(resultSet.getLong(MemoryPoolMetricTable.TIME_BUCKET.getName()));
         return memoryPoolMetric;
     }
 
     @Override protected final Map<String, Object> streamDataToH2Data(MemoryPoolMetric streamData) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(MemoryPoolMetricTable.COLUMN_ID, streamData.getId());
-        source.put(MemoryPoolMetricTable.COLUMN_METRIC_ID, streamData.getMetricId());
+        Map<String, Object> target = new HashMap<>();
+        target.put(MemoryPoolMetricTable.ID.getName(), streamData.getId());
+        target.put(MemoryPoolMetricTable.METRIC_ID.getName(), streamData.getMetricId());
 
-        source.put(MemoryPoolMetricTable.COLUMN_INSTANCE_ID, streamData.getInstanceId());
-        source.put(MemoryPoolMetricTable.COLUMN_POOL_TYPE, streamData.getPoolType());
-        source.put(MemoryPoolMetricTable.COLUMN_INIT, streamData.getInit());
-        source.put(MemoryPoolMetricTable.COLUMN_MAX, streamData.getMax());
-        source.put(MemoryPoolMetricTable.COLUMN_USED, streamData.getUsed());
-        source.put(MemoryPoolMetricTable.COLUMN_COMMITTED, streamData.getCommitted());
-        source.put(MemoryPoolMetricTable.COLUMN_TIMES, streamData.getTimes());
-        source.put(MemoryPoolMetricTable.COLUMN_TIME_BUCKET, streamData.getTimeBucket());
+        target.put(MemoryPoolMetricTable.INSTANCE_ID.getName(), streamData.getInstanceId());
+        target.put(MemoryPoolMetricTable.POOL_TYPE.getName(), streamData.getPoolType());
+        target.put(MemoryPoolMetricTable.INIT.getName(), streamData.getInit());
+        target.put(MemoryPoolMetricTable.MAX.getName(), streamData.getMax());
+        target.put(MemoryPoolMetricTable.USED.getName(), streamData.getUsed());
+        target.put(MemoryPoolMetricTable.COMMITTED.getName(), streamData.getCommitted());
+        target.put(MemoryPoolMetricTable.TIMES.getName(), streamData.getTimes());
+        target.put(MemoryPoolMetricTable.TIME_BUCKET.getName(), streamData.getTimeBucket());
 
-        return source;
+        return target;
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/register/ApplicationRegisterH2DAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/register/ApplicationRegisterH2DAO.java
index 5e00f543b..e408b7432 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/register/ApplicationRegisterH2DAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/register/ApplicationRegisterH2DAO.java
@@ -43,27 +43,27 @@ public ApplicationRegisterH2DAO(H2Client client) {
 
     @Override
     public int getMaxApplicationId() {
-        return getMaxId(ApplicationTable.TABLE, ApplicationTable.COLUMN_APPLICATION_ID);
+        return getMaxId(ApplicationTable.TABLE, ApplicationTable.APPLICATION_ID.getName());
     }
 
     @Override
     public int getMinApplicationId() {
-        return getMinId(ApplicationTable.TABLE, ApplicationTable.COLUMN_APPLICATION_ID);
+        return getMinId(ApplicationTable.TABLE, ApplicationTable.APPLICATION_ID.getName());
     }
 
     @Override
     public void save(Application application) {
         H2Client client = getClient();
 
-        Map<String, Object> source = new HashMap<>();
-        source.put(ApplicationTable.COLUMN_ID, application.getId());
-        source.put(ApplicationTable.COLUMN_APPLICATION_CODE, application.getApplicationCode());
-        source.put(ApplicationTable.COLUMN_APPLICATION_ID, application.getApplicationId());
-        source.put(ApplicationTable.COLUMN_ADDRESS_ID, application.getAddressId());
-        source.put(ApplicationTable.COLUMN_IS_ADDRESS, application.getIsAddress());
+        Map<String, Object> target = new HashMap<>();
+        target.put(ApplicationTable.ID.getName(), application.getId());
+        target.put(ApplicationTable.APPLICATION_CODE.getName(), application.getApplicationCode());
+        target.put(ApplicationTable.APPLICATION_ID.getName(), application.getApplicationId());
+        target.put(ApplicationTable.ADDRESS_ID.getName(), application.getAddressId());
+        target.put(ApplicationTable.IS_ADDRESS.getName(), application.getIsAddress());
 
-        String sql = SqlBuilder.buildBatchInsertSql(ApplicationTable.TABLE, source.keySet());
-        Object[] params = source.values().toArray(new Object[0]);
+        String sql = SqlBuilder.buildBatchInsertSql(ApplicationTable.TABLE, target.keySet());
+        Object[] params = target.values().toArray(new Object[0]);
         try {
             client.execute(sql, params);
         } catch (H2ClientException e) {
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/register/InstanceRegisterH2DAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/register/InstanceRegisterH2DAO.java
index fb5b33fc4..14c9db0c7 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/register/InstanceRegisterH2DAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/register/InstanceRegisterH2DAO.java
@@ -45,29 +45,29 @@ public InstanceRegisterH2DAO(H2Client client) {
     private static final String UPDATE_HEARTBEAT_TIME_SQL = "update {0} set {1} = ? where {2} = ?";
 
     @Override public int getMaxInstanceId() {
-        return getMaxId(InstanceTable.TABLE, InstanceTable.COLUMN_INSTANCE_ID);
+        return getMaxId(InstanceTable.TABLE, InstanceTable.INSTANCE_ID.getName());
     }
 
     @Override public int getMinInstanceId() {
-        return getMinId(InstanceTable.TABLE, InstanceTable.COLUMN_INSTANCE_ID);
+        return getMinId(InstanceTable.TABLE, InstanceTable.INSTANCE_ID.getName());
     }
 
     @Override public void save(Instance instance) {
         H2Client client = getClient();
-        Map<String, Object> source = new HashMap<>();
-        source.put(InstanceTable.COLUMN_ID, instance.getId());
-        source.put(InstanceTable.COLUMN_INSTANCE_ID, instance.getInstanceId());
-        source.put(InstanceTable.COLUMN_APPLICATION_ID, instance.getApplicationId());
-        source.put(InstanceTable.COLUMN_APPLICATION_CODE, instance.getApplicationCode());
-        source.put(InstanceTable.COLUMN_AGENT_UUID, instance.getAgentUUID());
-        source.put(InstanceTable.COLUMN_REGISTER_TIME, TimeBucketUtils.INSTANCE.getSecondTimeBucket(instance.getRegisterTime()));
-        source.put(InstanceTable.COLUMN_HEARTBEAT_TIME, TimeBucketUtils.INSTANCE.getSecondTimeBucket(instance.getHeartBeatTime()));
-        source.put(InstanceTable.COLUMN_OS_INFO, instance.getOsInfo());
-        source.put(InstanceTable.COLUMN_ADDRESS_ID, instance.getAddressId());
-        source.put(InstanceTable.COLUMN_IS_ADDRESS, instance.getIsAddress());
+        Map<String, Object> target = new HashMap<>();
+        target.put(InstanceTable.ID.getName(), instance.getId());
+        target.put(InstanceTable.INSTANCE_ID.getName(), instance.getInstanceId());
+        target.put(InstanceTable.APPLICATION_ID.getName(), instance.getApplicationId());
+        target.put(InstanceTable.APPLICATION_CODE.getName(), instance.getApplicationCode());
+        target.put(InstanceTable.AGENT_UUID.getName(), instance.getAgentUUID());
+        target.put(InstanceTable.REGISTER_TIME.getName(), TimeBucketUtils.INSTANCE.getSecondTimeBucket(instance.getRegisterTime()));
+        target.put(InstanceTable.HEARTBEAT_TIME.getName(), TimeBucketUtils.INSTANCE.getSecondTimeBucket(instance.getHeartBeatTime()));
+        target.put(InstanceTable.OS_INFO.getName(), instance.getOsInfo());
+        target.put(InstanceTable.ADDRESS_ID.getName(), instance.getAddressId());
+        target.put(InstanceTable.IS_ADDRESS.getName(), instance.getIsAddress());
 
-        String sql = SqlBuilder.buildBatchInsertSql(InstanceTable.TABLE, source.keySet());
-        Object[] params = source.values().toArray(new Object[0]);
+        String sql = SqlBuilder.buildBatchInsertSql(InstanceTable.TABLE, target.keySet());
+        Object[] params = target.values().toArray(new Object[0]);
         try {
             client.execute(sql, params);
         } catch (H2ClientException e) {
@@ -77,8 +77,8 @@ public InstanceRegisterH2DAO(H2Client client) {
 
     @Override public void updateHeartbeatTime(int instanceId, long heartbeatTime) {
         H2Client client = getClient();
-        String sql = SqlBuilder.buildSql(UPDATE_HEARTBEAT_TIME_SQL, InstanceTable.TABLE, InstanceTable.COLUMN_HEARTBEAT_TIME,
-            InstanceTable.COLUMN_ID);
+        String sql = SqlBuilder.buildSql(UPDATE_HEARTBEAT_TIME_SQL, InstanceTable.TABLE, InstanceTable.HEARTBEAT_TIME.getName(),
+            InstanceTable.ID.getName());
         Object[] params = new Object[] {TimeBucketUtils.INSTANCE.getSecondTimeBucket(heartbeatTime), instanceId};
         try {
             client.execute(sql, params);
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/register/NetworkAddressRegisterH2DAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/register/NetworkAddressRegisterH2DAO.java
index 1722d06ba..15e8a3750 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/register/NetworkAddressRegisterH2DAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/register/NetworkAddressRegisterH2DAO.java
@@ -44,27 +44,27 @@ public NetworkAddressRegisterH2DAO(H2Client client) {
 
     @Override
     public int getMaxNetworkAddressId() {
-        return getMaxId(NetworkAddressTable.TABLE, NetworkAddressTable.COLUMN_ADDRESS_ID);
+        return getMaxId(NetworkAddressTable.TABLE, NetworkAddressTable.ADDRESS_ID.getName());
     }
 
     @Override
     public int getMinNetworkAddressId() {
-        return getMinId(NetworkAddressTable.TABLE, NetworkAddressTable.COLUMN_ADDRESS_ID);
+        return getMinId(NetworkAddressTable.TABLE, NetworkAddressTable.ADDRESS_ID.getName());
     }
 
     @Override
     public void save(NetworkAddress networkAddress) {
         H2Client client = getClient();
 
-        Map<String, Object> source = new HashMap<>();
-        source.put(NetworkAddressTable.COLUMN_ID, networkAddress.getId());
-        source.put(NetworkAddressTable.COLUMN_NETWORK_ADDRESS, networkAddress.getNetworkAddress());
-        source.put(NetworkAddressTable.COLUMN_ADDRESS_ID, networkAddress.getAddressId());
-        source.put(NetworkAddressTable.COLUMN_SPAN_LAYER, networkAddress.getSpanLayer());
-        source.put(NetworkAddressTable.COLUMN_SERVER_TYPE, networkAddress.getServerType());
+        Map<String, Object> target = new HashMap<>();
+        target.put(NetworkAddressTable.ID.getName(), networkAddress.getId());
+        target.put(NetworkAddressTable.NETWORK_ADDRESS.getName(), networkAddress.getNetworkAddress());
+        target.put(NetworkAddressTable.ADDRESS_ID.getName(), networkAddress.getAddressId());
+        target.put(NetworkAddressTable.SRC_SPAN_LAYER.getName(), networkAddress.getSrcSpanLayer());
+        target.put(NetworkAddressTable.SERVER_TYPE.getName(), networkAddress.getServerType());
 
-        String sql = SqlBuilder.buildBatchInsertSql(NetworkAddressTable.TABLE, source.keySet());
-        Object[] params = source.values().toArray(new Object[0]);
+        String sql = SqlBuilder.buildBatchInsertSql(NetworkAddressTable.TABLE, target.keySet());
+        Object[] params = target.values().toArray(new Object[0]);
         try {
             client.execute(sql, params);
         } catch (H2ClientException e) {
@@ -76,10 +76,10 @@ public void save(NetworkAddress networkAddress) {
         H2Client client = getClient();
 
         Map<String, Object> source = new HashMap<>();
-        source.put(NetworkAddressTable.COLUMN_SPAN_LAYER, spanLayer);
-        source.put(NetworkAddressTable.COLUMN_SERVER_TYPE, serverType);
+        source.put(NetworkAddressTable.SRC_SPAN_LAYER.getName(), spanLayer);
+        source.put(NetworkAddressTable.SERVER_TYPE.getName(), serverType);
 
-        String sql = SqlBuilder.buildBatchUpdateSql(InstanceTable.TABLE, source.keySet(), InstanceTable.COLUMN_INSTANCE_ID);
+        String sql = SqlBuilder.buildBatchUpdateSql(InstanceTable.TABLE, source.keySet(), InstanceTable.INSTANCE_ID.getName());
         Object[] params = source.values().toArray(new Object[] {id});
 
         try {
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/register/ServiceNameRegisterH2DAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/register/ServiceNameRegisterH2DAO.java
index f77487410..8b047d0c0 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/register/ServiceNameRegisterH2DAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/register/ServiceNameRegisterH2DAO.java
@@ -43,27 +43,27 @@ public ServiceNameRegisterH2DAO(H2Client client) {
 
     @Override
     public int getMaxServiceId() {
-        return getMaxId(ServiceNameTable.TABLE, ServiceNameTable.COLUMN_SERVICE_ID);
+        return getMaxId(ServiceNameTable.TABLE, ServiceNameTable.SERVICE_ID.getName());
     }
 
     @Override
     public int getMinServiceId() {
-        return getMinId(ServiceNameTable.TABLE, ServiceNameTable.COLUMN_SERVICE_ID);
+        return getMinId(ServiceNameTable.TABLE, ServiceNameTable.SERVICE_ID.getName());
     }
 
     @Override
     public void save(ServiceName serviceName) {
         logger.debug("save service name register info, application getApplicationId: {}, service name: {}", serviceName.getId(), serviceName.getServiceName());
         H2Client client = getClient();
-        Map<String, Object> source = new HashMap<>();
-        source.put(ServiceNameTable.COLUMN_ID, serviceName.getId());
-        source.put(ServiceNameTable.COLUMN_SERVICE_ID, serviceName.getServiceId());
-        source.put(ServiceNameTable.COLUMN_APPLICATION_ID, serviceName.getApplicationId());
-        source.put(ServiceNameTable.COLUMN_SERVICE_NAME, serviceName.getServiceName());
-        source.put(ServiceNameTable.COLUMN_SRC_SPAN_TYPE, serviceName.getSrcSpanType());
+        Map<String, Object> target = new HashMap<>();
+        target.put(ServiceNameTable.ID.getName(), serviceName.getId());
+        target.put(ServiceNameTable.SERVICE_ID.getName(), serviceName.getServiceId());
+        target.put(ServiceNameTable.APPLICATION_ID.getName(), serviceName.getApplicationId());
+        target.put(ServiceNameTable.SERVICE_NAME.getName(), serviceName.getServiceName());
+        target.put(ServiceNameTable.SRC_SPAN_TYPE.getName(), serviceName.getSrcSpanType());
 
-        String sql = SqlBuilder.buildBatchInsertSql(ServiceNameTable.TABLE, source.keySet());
-        Object[] params = source.values().toArray(new Object[0]);
+        String sql = SqlBuilder.buildBatchInsertSql(ServiceNameTable.TABLE, target.keySet());
+        Object[] params = target.values().toArray(new Object[0]);
         try {
             client.execute(sql, params);
         } catch (H2ClientException e) {
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/smp/AbstractServiceMetricH2PersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/smp/AbstractServiceMetricH2PersistenceDAO.java
index 1538e6c44..ec0726dca 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/smp/AbstractServiceMetricH2PersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/smp/AbstractServiceMetricH2PersistenceDAO.java
@@ -23,6 +23,7 @@
 import java.util.HashMap;
 import java.util.Map;
 import org.apache.skywalking.apm.collector.client.h2.H2Client;
+import org.apache.skywalking.apm.collector.storage.h2.MetricTransformUtil;
 import org.apache.skywalking.apm.collector.storage.h2.base.dao.AbstractPersistenceH2DAO;
 import org.apache.skywalking.apm.collector.storage.table.service.ServiceMetric;
 import org.apache.skywalking.apm.collector.storage.table.service.ServiceMetricTable;
@@ -32,69 +33,35 @@
  */
 public abstract class AbstractServiceMetricH2PersistenceDAO extends AbstractPersistenceH2DAO<ServiceMetric> {
 
-    public AbstractServiceMetricH2PersistenceDAO(H2Client client) {
+    AbstractServiceMetricH2PersistenceDAO(H2Client client) {
         super(client);
     }
 
     @Override protected final ServiceMetric h2DataToStreamData(ResultSet resultSet) throws SQLException {
         ServiceMetric serviceMetric = new ServiceMetric();
-        serviceMetric.setId(resultSet.getString(ServiceMetricTable.COLUMN_ID));
-        serviceMetric.setMetricId(resultSet.getString(ServiceMetricTable.COLUMN_METRIC_ID));
+        serviceMetric.setId(resultSet.getString(ServiceMetricTable.ID.getName()));
+        serviceMetric.setMetricId(resultSet.getString(ServiceMetricTable.METRIC_ID.getName()));
 
-        serviceMetric.setApplicationId(resultSet.getInt(ServiceMetricTable.COLUMN_APPLICATION_ID));
-        serviceMetric.setInstanceId(resultSet.getInt(ServiceMetricTable.COLUMN_INSTANCE_ID));
-        serviceMetric.setServiceId(resultSet.getInt(ServiceMetricTable.COLUMN_SERVICE_ID));
-        serviceMetric.setSourceValue(resultSet.getInt(ServiceMetricTable.COLUMN_SOURCE_VALUE));
+        serviceMetric.setApplicationId(resultSet.getInt(ServiceMetricTable.APPLICATION_ID.getName()));
+        serviceMetric.setInstanceId(resultSet.getInt(ServiceMetricTable.INSTANCE_ID.getName()));
+        serviceMetric.setServiceId(resultSet.getInt(ServiceMetricTable.SERVICE_ID.getName()));
 
-        serviceMetric.setTransactionCalls(resultSet.getLong(ServiceMetricTable.COLUMN_TRANSACTION_CALLS));
-        serviceMetric.setTransactionErrorCalls(resultSet.getLong(ServiceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS));
-        serviceMetric.setTransactionDurationSum(resultSet.getLong(ServiceMetricTable.COLUMN_TRANSACTION_DURATION_SUM));
-        serviceMetric.setTransactionErrorDurationSum(resultSet.getLong(ServiceMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM));
-        serviceMetric.setTransactionAverageDuration(resultSet.getLong(ServiceMetricTable.COLUMN_TRANSACTION_AVERAGE_DURATION));
+        MetricTransformUtil.INSTANCE.h2DataToStreamData(resultSet, serviceMetric);
 
-        serviceMetric.setBusinessTransactionCalls(resultSet.getLong(ServiceMetricTable.COLUMN_BUSINESS_TRANSACTION_CALLS));
-        serviceMetric.setBusinessTransactionErrorCalls(resultSet.getLong(ServiceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_CALLS));
-        serviceMetric.setBusinessTransactionDurationSum(resultSet.getLong(ServiceMetricTable.COLUMN_BUSINESS_TRANSACTION_DURATION_SUM));
-        serviceMetric.setBusinessTransactionErrorDurationSum(resultSet.getLong(ServiceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_DURATION_SUM));
-        serviceMetric.setBusinessTransactionAverageDuration(resultSet.getLong(ServiceMetricTable.COLUMN_BUSINESS_TRANSACTION_AVERAGE_DURATION));
-
-        serviceMetric.setMqTransactionCalls(resultSet.getLong(ServiceMetricTable.COLUMN_MQ_TRANSACTION_CALLS));
-        serviceMetric.setMqTransactionErrorCalls(resultSet.getLong(ServiceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_CALLS));
-        serviceMetric.setMqTransactionDurationSum(resultSet.getLong(ServiceMetricTable.COLUMN_MQ_TRANSACTION_DURATION_SUM));
-        serviceMetric.setMqTransactionErrorDurationSum(resultSet.getLong(ServiceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_DURATION_SUM));
-        serviceMetric.setMqTransactionAverageDuration(resultSet.getLong(ServiceMetricTable.COLUMN_MQ_TRANSACTION_AVERAGE_DURATION));
-
-        serviceMetric.setTimeBucket(resultSet.getLong(ServiceMetricTable.COLUMN_TIME_BUCKET));
         return serviceMetric;
     }
 
     @Override protected final Map<String, Object> streamDataToH2Data(ServiceMetric streamData) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(ServiceMetricTable.COLUMN_ID, streamData.getId());
-        source.put(ServiceMetricTable.COLUMN_METRIC_ID, streamData.getMetricId());
-
-        source.put(ServiceMetricTable.COLUMN_APPLICATION_ID, streamData.getApplicationId());
-        source.put(ServiceMetricTable.COLUMN_INSTANCE_ID, streamData.getInstanceId());
-        source.put(ServiceMetricTable.COLUMN_SERVICE_ID, streamData.getServiceId());
-        source.put(ServiceMetricTable.COLUMN_SOURCE_VALUE, streamData.getSourceValue());
-
-        source.put(ServiceMetricTable.COLUMN_TRANSACTION_CALLS, streamData.getTransactionCalls());
-        source.put(ServiceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS, streamData.getTransactionErrorCalls());
-        source.put(ServiceMetricTable.COLUMN_TRANSACTION_DURATION_SUM, streamData.getTransactionDurationSum());
-        source.put(ServiceMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM, streamData.getTransactionErrorDurationSum());
-
-        source.put(ServiceMetricTable.COLUMN_BUSINESS_TRANSACTION_CALLS, streamData.getBusinessTransactionCalls());
-        source.put(ServiceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_CALLS, streamData.getBusinessTransactionErrorCalls());
-        source.put(ServiceMetricTable.COLUMN_BUSINESS_TRANSACTION_DURATION_SUM, streamData.getBusinessTransactionDurationSum());
-        source.put(ServiceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_DURATION_SUM, streamData.getBusinessTransactionErrorDurationSum());
+        Map<String, Object> target = new HashMap<>();
+        target.put(ServiceMetricTable.ID.getName(), streamData.getId());
+        target.put(ServiceMetricTable.METRIC_ID.getName(), streamData.getMetricId());
 
-        source.put(ServiceMetricTable.COLUMN_MQ_TRANSACTION_CALLS, streamData.getMqTransactionCalls());
-        source.put(ServiceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_CALLS, streamData.getMqTransactionErrorCalls());
-        source.put(ServiceMetricTable.COLUMN_MQ_TRANSACTION_DURATION_SUM, streamData.getMqTransactionDurationSum());
-        source.put(ServiceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_DURATION_SUM, streamData.getMqTransactionErrorDurationSum());
+        target.put(ServiceMetricTable.APPLICATION_ID.getName(), streamData.getApplicationId());
+        target.put(ServiceMetricTable.INSTANCE_ID.getName(), streamData.getInstanceId());
+        target.put(ServiceMetricTable.SERVICE_ID.getName(), streamData.getServiceId());
 
-        source.put(ServiceMetricTable.COLUMN_TIME_BUCKET, streamData.getTimeBucket());
+        MetricTransformUtil.INSTANCE.streamDataToH2Data(streamData, target);
 
-        return source;
+        return target;
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/srmp/AbstractServiceReferenceMetricH2PersistenceDAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/srmp/AbstractServiceReferenceMetricH2PersistenceDAO.java
index daefd30e2..f559aed07 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/srmp/AbstractServiceReferenceMetricH2PersistenceDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/srmp/AbstractServiceReferenceMetricH2PersistenceDAO.java
@@ -23,6 +23,7 @@
 import java.util.HashMap;
 import java.util.Map;
 import org.apache.skywalking.apm.collector.client.h2.H2Client;
+import org.apache.skywalking.apm.collector.storage.h2.MetricTransformUtil;
 import org.apache.skywalking.apm.collector.storage.h2.base.dao.AbstractPersistenceH2DAO;
 import org.apache.skywalking.apm.collector.storage.table.service.ServiceReferenceMetric;
 import org.apache.skywalking.apm.collector.storage.table.service.ServiceReferenceMetricTable;
@@ -38,69 +39,35 @@
 
     @Override protected final ServiceReferenceMetric h2DataToStreamData(ResultSet resultSet) throws SQLException {
         ServiceReferenceMetric serviceReferenceMetric = new ServiceReferenceMetric();
-        serviceReferenceMetric.setId(resultSet.getString(ServiceReferenceMetricTable.COLUMN_ID));
-        serviceReferenceMetric.setMetricId(resultSet.getString(ServiceReferenceMetricTable.COLUMN_METRIC_ID));
+        serviceReferenceMetric.setId(resultSet.getString(ServiceReferenceMetricTable.ID.getName()));
+        serviceReferenceMetric.setMetricId(resultSet.getString(ServiceReferenceMetricTable.METRIC_ID.getName()));
 
-        serviceReferenceMetric.setFrontApplicationId(resultSet.getInt(ServiceReferenceMetricTable.COLUMN_FRONT_APPLICATION_ID));
-        serviceReferenceMetric.setBehindApplicationId(resultSet.getInt(ServiceReferenceMetricTable.COLUMN_BEHIND_APPLICATION_ID));
-        serviceReferenceMetric.setFrontInstanceId(resultSet.getInt(ServiceReferenceMetricTable.COLUMN_FRONT_INSTANCE_ID));
-        serviceReferenceMetric.setBehindInstanceId(resultSet.getInt(ServiceReferenceMetricTable.COLUMN_BEHIND_INSTANCE_ID));
-        serviceReferenceMetric.setFrontServiceId(resultSet.getInt(ServiceReferenceMetricTable.COLUMN_FRONT_SERVICE_ID));
-        serviceReferenceMetric.setBehindServiceId(resultSet.getInt(ServiceReferenceMetricTable.COLUMN_BEHIND_SERVICE_ID));
-        serviceReferenceMetric.setSourceValue(resultSet.getInt(ServiceReferenceMetricTable.COLUMN_SOURCE_VALUE));
+        serviceReferenceMetric.setFrontApplicationId(resultSet.getInt(ServiceReferenceMetricTable.FRONT_APPLICATION_ID.getName()));
+        serviceReferenceMetric.setBehindApplicationId(resultSet.getInt(ServiceReferenceMetricTable.BEHIND_APPLICATION_ID.getName()));
+        serviceReferenceMetric.setFrontInstanceId(resultSet.getInt(ServiceReferenceMetricTable.FRONT_INSTANCE_ID.getName()));
+        serviceReferenceMetric.setBehindInstanceId(resultSet.getInt(ServiceReferenceMetricTable.BEHIND_INSTANCE_ID.getName()));
+        serviceReferenceMetric.setFrontServiceId(resultSet.getInt(ServiceReferenceMetricTable.FRONT_SERVICE_ID.getName()));
+        serviceReferenceMetric.setBehindServiceId(resultSet.getInt(ServiceReferenceMetricTable.BEHIND_SERVICE_ID.getName()));
 
-        serviceReferenceMetric.setTransactionCalls(resultSet.getLong(ServiceReferenceMetricTable.COLUMN_TRANSACTION_CALLS));
-        serviceReferenceMetric.setTransactionErrorCalls(resultSet.getLong(ServiceReferenceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS));
-        serviceReferenceMetric.setTransactionDurationSum(resultSet.getLong(ServiceReferenceMetricTable.COLUMN_TRANSACTION_DURATION_SUM));
-        serviceReferenceMetric.setTransactionErrorDurationSum(resultSet.getLong(ServiceReferenceMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM));
-        serviceReferenceMetric.setTransactionAverageDuration(resultSet.getLong(ServiceReferenceMetricTable.COLUMN_TRANSACTION_AVERAGE_DURATION));
+        MetricTransformUtil.INSTANCE.h2DataToStreamData(resultSet, serviceReferenceMetric);
 
-        serviceReferenceMetric.setBusinessTransactionCalls(resultSet.getLong(ServiceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_CALLS));
-        serviceReferenceMetric.setBusinessTransactionErrorCalls(resultSet.getLong(ServiceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_CALLS));
-        serviceReferenceMetric.setBusinessTransactionDurationSum(resultSet.getLong(ServiceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_DURATION_SUM));
-        serviceReferenceMetric.setBusinessTransactionErrorDurationSum(resultSet.getLong(ServiceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_DURATION_SUM));
-        serviceReferenceMetric.setBusinessTransactionAverageDuration(resultSet.getLong(ServiceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_AVERAGE_DURATION));
-
-        serviceReferenceMetric.setMqTransactionCalls(resultSet.getLong(ServiceReferenceMetricTable.COLUMN_MQ_TRANSACTION_CALLS));
-        serviceReferenceMetric.setMqTransactionErrorCalls(resultSet.getLong(ServiceReferenceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_CALLS));
-        serviceReferenceMetric.setMqTransactionDurationSum(resultSet.getLong(ServiceReferenceMetricTable.COLUMN_MQ_TRANSACTION_DURATION_SUM));
-        serviceReferenceMetric.setMqTransactionErrorDurationSum(resultSet.getLong(ServiceReferenceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_DURATION_SUM));
-        serviceReferenceMetric.setMqTransactionAverageDuration(resultSet.getLong(ServiceReferenceMetricTable.COLUMN_MQ_TRANSACTION_AVERAGE_DURATION));
-
-        serviceReferenceMetric.setTimeBucket(resultSet.getLong(ServiceReferenceMetricTable.COLUMN_TIME_BUCKET));
         return serviceReferenceMetric;
     }
 
     @Override protected final Map<String, Object> streamDataToH2Data(ServiceReferenceMetric streamData) {
-        Map<String, Object> source = new HashMap<>();
-        source.put(ServiceReferenceMetricTable.COLUMN_ID, streamData.getId());
-        source.put(ServiceReferenceMetricTable.COLUMN_METRIC_ID, streamData.getMetricId());
-
-        source.put(ServiceReferenceMetricTable.COLUMN_FRONT_APPLICATION_ID, streamData.getFrontApplicationId());
-        source.put(ServiceReferenceMetricTable.COLUMN_BEHIND_APPLICATION_ID, streamData.getBehindApplicationId());
-        source.put(ServiceReferenceMetricTable.COLUMN_FRONT_INSTANCE_ID, streamData.getFrontInstanceId());
-        source.put(ServiceReferenceMetricTable.COLUMN_BEHIND_INSTANCE_ID, streamData.getBehindInstanceId());
-        source.put(ServiceReferenceMetricTable.COLUMN_FRONT_SERVICE_ID, streamData.getFrontServiceId());
-        source.put(ServiceReferenceMetricTable.COLUMN_BEHIND_SERVICE_ID, streamData.getBehindServiceId());
-        source.put(ServiceReferenceMetricTable.COLUMN_SOURCE_VALUE, streamData.getSourceValue());
-
-        source.put(ServiceReferenceMetricTable.COLUMN_TRANSACTION_CALLS, streamData.getTransactionCalls());
-        source.put(ServiceReferenceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS, streamData.getTransactionErrorCalls());
-        source.put(ServiceReferenceMetricTable.COLUMN_TRANSACTION_DURATION_SUM, streamData.getTransactionDurationSum());
-        source.put(ServiceReferenceMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM, streamData.getTransactionErrorDurationSum());
-
-        source.put(ServiceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_CALLS, streamData.getBusinessTransactionCalls());
-        source.put(ServiceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_CALLS, streamData.getBusinessTransactionErrorCalls());
-        source.put(ServiceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_DURATION_SUM, streamData.getBusinessTransactionDurationSum());
-        source.put(ServiceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_DURATION_SUM, streamData.getBusinessTransactionErrorDurationSum());
+        Map<String, Object> target = new HashMap<>();
+        target.put(ServiceReferenceMetricTable.ID.getName(), streamData.getId());
+        target.put(ServiceReferenceMetricTable.METRIC_ID.getName(), streamData.getMetricId());
 
-        source.put(ServiceReferenceMetricTable.COLUMN_MQ_TRANSACTION_CALLS, streamData.getMqTransactionCalls());
-        source.put(ServiceReferenceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_CALLS, streamData.getMqTransactionErrorCalls());
-        source.put(ServiceReferenceMetricTable.COLUMN_MQ_TRANSACTION_DURATION_SUM, streamData.getMqTransactionDurationSum());
-        source.put(ServiceReferenceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_DURATION_SUM, streamData.getMqTransactionErrorDurationSum());
+        target.put(ServiceReferenceMetricTable.FRONT_APPLICATION_ID.getName(), streamData.getFrontApplicationId());
+        target.put(ServiceReferenceMetricTable.BEHIND_APPLICATION_ID.getName(), streamData.getBehindApplicationId());
+        target.put(ServiceReferenceMetricTable.FRONT_INSTANCE_ID.getName(), streamData.getFrontInstanceId());
+        target.put(ServiceReferenceMetricTable.BEHIND_INSTANCE_ID.getName(), streamData.getBehindInstanceId());
+        target.put(ServiceReferenceMetricTable.FRONT_SERVICE_ID.getName(), streamData.getFrontServiceId());
+        target.put(ServiceReferenceMetricTable.BEHIND_SERVICE_ID.getName(), streamData.getBehindServiceId());
 
-        source.put(ServiceReferenceMetricTable.COLUMN_TIME_BUCKET, streamData.getTimeBucket());
+        MetricTransformUtil.INSTANCE.streamDataToH2Data(streamData, target);
 
-        return source;
+        return target;
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/ApplicationComponentH2UIDAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/ApplicationComponentH2UIDAO.java
index cb78c9241..885cfea95 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/ApplicationComponentH2UIDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/ApplicationComponentH2UIDAO.java
@@ -51,14 +51,14 @@ public ApplicationComponentH2UIDAO(H2Client client) {
         String tableName = TimePyramidTableNameBuilder.build(step, ApplicationComponentTable.TABLE);
 
         List<ApplicationComponent> applicationComponents = new LinkedList<>();
-        String sql = SqlBuilder.buildSql(AGGREGATE_COMPONENT_SQL, ApplicationComponentTable.COLUMN_COMPONENT_ID, ApplicationComponentTable.COLUMN_APPLICATION_ID,
-            tableName, ApplicationComponentTable.COLUMN_TIME_BUCKET);
+        String sql = SqlBuilder.buildSql(AGGREGATE_COMPONENT_SQL, ApplicationComponentTable.COMPONENT_ID.getName(), ApplicationComponentTable.APPLICATION_ID.getName(),
+            tableName, ApplicationComponentTable.TIME_BUCKET.getName());
 
         Object[] params = new Object[] {startTimeBucket, endTimeBucket};
         try (ResultSet rs = client.executeQuery(sql, params)) {
             while (rs.next()) {
-                int applicationId = rs.getInt(ApplicationComponentTable.COLUMN_APPLICATION_ID);
-                int componentId = rs.getInt(ApplicationComponentTable.COLUMN_COMPONENT_ID);
+                int applicationId = rs.getInt(ApplicationComponentTable.APPLICATION_ID.getName());
+                int componentId = rs.getInt(ApplicationComponentTable.COMPONENT_ID.getName());
 
                 ApplicationComponent applicationComponent = new ApplicationComponent();
                 applicationComponent.setComponentId(componentId);
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/ApplicationMappingH2UIDAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/ApplicationMappingH2UIDAO.java
index c92ba6aa5..7dbc2d015 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/ApplicationMappingH2UIDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/ApplicationMappingH2UIDAO.java
@@ -49,15 +49,15 @@ public ApplicationMappingH2UIDAO(H2Client client) {
         String tableName = TimePyramidTableNameBuilder.build(step, ApplicationMappingTable.TABLE);
 
         H2Client client = getClient();
-        String sql = SqlBuilder.buildSql(APPLICATION_MAPPING_SQL, ApplicationMappingTable.COLUMN_APPLICATION_ID,
-            ApplicationMappingTable.COLUMN_MAPPING_APPLICATION_ID, tableName, ApplicationMappingTable.COLUMN_TIME_BUCKET);
+        String sql = SqlBuilder.buildSql(APPLICATION_MAPPING_SQL, ApplicationMappingTable.APPLICATION_ID.getName(),
+            ApplicationMappingTable.MAPPING_APPLICATION_ID.getName(), tableName, ApplicationMappingTable.TIME_BUCKET.getName());
 
         List<ApplicationMapping> applicationMappings = new LinkedList<>();
         Object[] params = new Object[] {startTimeBucket, endTimeBucket};
         try (ResultSet rs = client.executeQuery(sql, params)) {
             while (rs.next()) {
-                int applicationId = rs.getInt(ApplicationMappingTable.COLUMN_APPLICATION_ID);
-                int addressId = rs.getInt(ApplicationMappingTable.COLUMN_MAPPING_APPLICATION_ID);
+                int applicationId = rs.getInt(ApplicationMappingTable.APPLICATION_ID.getName());
+                int addressId = rs.getInt(ApplicationMappingTable.MAPPING_APPLICATION_ID.getName());
 
                 ApplicationMapping applicationMapping = new ApplicationMapping();
                 applicationMapping.setApplicationId(applicationId);
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/ApplicationMetricH2UIDAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/ApplicationMetricH2UIDAO.java
index 7d7a216bb..4dac872e3 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/ApplicationMetricH2UIDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/ApplicationMetricH2UIDAO.java
@@ -25,16 +25,12 @@
 import org.apache.skywalking.apm.collector.storage.table.MetricSource;
 import org.apache.skywalking.apm.collector.storage.ui.common.Step;
 import org.apache.skywalking.apm.collector.storage.ui.overview.ApplicationTPS;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /**
  * @author peng-yongsheng
  */
 public class ApplicationMetricH2UIDAO extends H2DAO implements IApplicationMetricUIDAO {
 
-    private final Logger logger = LoggerFactory.getLogger(ApplicationMetricH2UIDAO.class);
-
     public ApplicationMetricH2UIDAO(H2Client client) {
         super(client);
     }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/ApplicationReferenceMetricH2UIDAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/ApplicationReferenceMetricH2UIDAO.java
index f4866ecf7..97c3755ef 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/ApplicationReferenceMetricH2UIDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/ApplicationReferenceMetricH2UIDAO.java
@@ -24,15 +24,12 @@
 import org.apache.skywalking.apm.collector.storage.h2.base.dao.H2DAO;
 import org.apache.skywalking.apm.collector.storage.table.MetricSource;
 import org.apache.skywalking.apm.collector.storage.ui.common.Step;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /**
  * @author peng-yongsheng, clevertension
  */
 public class ApplicationReferenceMetricH2UIDAO extends H2DAO implements IApplicationReferenceMetricUIDAO {
 
-    private final Logger logger = LoggerFactory.getLogger(ApplicationReferenceMetricH2UIDAO.class);
     private static final String APPLICATION_REFERENCE_SQL = "select {8}, {9}, sum({0}) as {0}, sum({1}) as {1}, sum({2}) as {2}, " +
         "sum({3}) as {3}, sum({4}) as {4}, sum({5}) as {5} from {6} where {7} >= ? and {7} <= ? group by {8}, {9} limit 100";
 
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/CpuMetricH2UIDAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/CpuMetricH2UIDAO.java
index a044f4a0d..df506c4ad 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/CpuMetricH2UIDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/CpuMetricH2UIDAO.java
@@ -49,7 +49,7 @@ public CpuMetricH2UIDAO(H2Client client) {
     @Override public List<Integer> getCPUTrend(int instanceId, Step step, List<DurationPoint> durationPoints) {
         H2Client client = getClient();
         String tableName = TimePyramidTableNameBuilder.build(step, CpuMetricTable.TABLE);
-        String sql = SqlBuilder.buildSql(GET_CPU_METRIC_SQL, tableName, CpuMetricTable.COLUMN_ID);
+        String sql = SqlBuilder.buildSql(GET_CPU_METRIC_SQL, tableName, CpuMetricTable.ID.getName());
 
         List<Integer> cpuTrends = new LinkedList<>();
         durationPoints.forEach(durationPoint -> {
@@ -57,8 +57,8 @@ public CpuMetricH2UIDAO(H2Client client) {
 
             try (ResultSet rs = client.executeQuery(sql, new String[] {id})) {
                 if (rs.next()) {
-                    double cpuUsed = rs.getDouble(CpuMetricTable.COLUMN_USAGE_PERCENT);
-                    long times = rs.getLong(CpuMetricTable.COLUMN_TIMES);
+                    double cpuUsed = rs.getDouble(CpuMetricTable.USAGE_PERCENT.getName());
+                    long times = rs.getLong(CpuMetricTable.TIMES.getName());
                     cpuTrends.add((int)((cpuUsed / times) * 100));
                 } else {
                     cpuTrends.add(0);
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/GCMetricH2UIDAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/GCMetricH2UIDAO.java
index e15363a88..e3aa9dfef 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/GCMetricH2UIDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/GCMetricH2UIDAO.java
@@ -60,15 +60,15 @@ public GCMetricH2UIDAO(H2Client client) {
         String tableName = TimePyramidTableNameBuilder.build(step, GCMetricTable.TABLE);
 
         H2Client client = getClient();
-        String sql = SqlBuilder.buildSql(GET_GC_METRIC_SQL, tableName, GCMetricTable.COLUMN_ID);
+        String sql = SqlBuilder.buildSql(GET_GC_METRIC_SQL, tableName, GCMetricTable.ID.getName());
 
         List<Integer> gcTrends = new LinkedList<>();
         durationPoints.forEach(durationPoint -> {
             String id = durationPoint.getPoint() + Const.ID_SPLIT + instanceId + Const.ID_SPLIT + gcPhrase;
             try (ResultSet rs = client.executeQuery(sql, new String[] {id})) {
                 if (rs.next()) {
-                    long count = rs.getLong(GCMetricTable.COLUMN_COUNT);
-                    long times = rs.getLong(GCMetricTable.COLUMN_TIMES);
+                    long count = rs.getLong(GCMetricTable.COUNT.getName());
+                    long times = rs.getLong(GCMetricTable.TIMES.getName());
                     gcTrends.add((int)(count / times));
                 } else {
                     gcTrends.add(0);
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/GlobalTraceH2UIDAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/GlobalTraceH2UIDAO.java
index c1cb1e56c..5f9e52399 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/GlobalTraceH2UIDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/GlobalTraceH2UIDAO.java
@@ -49,12 +49,12 @@ public GlobalTraceH2UIDAO(H2Client client) {
     @Override public List<String> getGlobalTraceId(String segmentId) {
         List<String> globalTraceIds = new ArrayList<>();
         H2Client client = getClient();
-        String sql = SqlBuilder.buildSql(GET_GLOBAL_TRACE_ID_SQL, GlobalTraceTable.COLUMN_GLOBAL_TRACE_ID,
-            GlobalTraceTable.TABLE, GlobalTraceTable.COLUMN_SEGMENT_ID);
+        String sql = SqlBuilder.buildSql(GET_GLOBAL_TRACE_ID_SQL, GlobalTraceTable.TRACE_ID.getName(),
+            GlobalTraceTable.TABLE, GlobalTraceTable.SEGMENT_ID.getName());
         Object[] params = new Object[] {segmentId};
         try (ResultSet rs = client.executeQuery(sql, params)) {
             while (rs.next()) {
-                String globalTraceId = rs.getString(GlobalTraceTable.COLUMN_GLOBAL_TRACE_ID);
+                String globalTraceId = rs.getString(GlobalTraceTable.TRACE_ID.getName());
                 logger.debug("segmentId: {}, global trace id: {}", segmentId, globalTraceId);
                 globalTraceIds.add(globalTraceId);
             }
@@ -67,12 +67,12 @@ public GlobalTraceH2UIDAO(H2Client client) {
     @Override public List<String> getSegmentIds(String globalTraceId) {
         List<String> segmentIds = new ArrayList<>();
         H2Client client = getClient();
-        String sql = SqlBuilder.buildSql(GET_SEGMENT_IDS_SQL, GlobalTraceTable.COLUMN_SEGMENT_ID,
-            GlobalTraceTable.TABLE, GlobalTraceTable.COLUMN_GLOBAL_TRACE_ID);
+        String sql = SqlBuilder.buildSql(GET_SEGMENT_IDS_SQL, GlobalTraceTable.SEGMENT_ID.getName(),
+            GlobalTraceTable.TABLE, GlobalTraceTable.TRACE_ID);
         Object[] params = new Object[] {globalTraceId};
         try (ResultSet rs = client.executeQuery(sql, params)) {
             while (rs.next()) {
-                String segmentId = rs.getString(GlobalTraceTable.COLUMN_SEGMENT_ID);
+                String segmentId = rs.getString(GlobalTraceTable.SEGMENT_ID.getName());
                 logger.debug("segmentId: {}, global trace id: {}", segmentId, globalTraceId);
                 segmentIds.add(segmentId);
             }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/InstanceH2UIDAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/InstanceH2UIDAO.java
index cd283ad4d..614cf9b3d 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/InstanceH2UIDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/InstanceH2UIDAO.java
@@ -57,7 +57,7 @@ public Long lastHeartBeatTime() {
         H2Client client = getClient();
         long fiveMinuteBefore = System.currentTimeMillis() - 5 * 60 * 1000;
         fiveMinuteBefore = TimeBucketUtils.INSTANCE.getSecondTimeBucket(fiveMinuteBefore);
-        String sql = SqlBuilder.buildSql(GET_LAST_HEARTBEAT_TIME_SQL, InstanceTable.COLUMN_HEARTBEAT_TIME, InstanceTable.TABLE, InstanceTable.COLUMN_HEARTBEAT_TIME);
+        String sql = SqlBuilder.buildSql(GET_LAST_HEARTBEAT_TIME_SQL, InstanceTable.HEARTBEAT_TIME.getName(), InstanceTable.TABLE, InstanceTable.HEARTBEAT_TIME.getName());
         Object[] params = new Object[] {fiveMinuteBefore};
         try (ResultSet rs = client.executeQuery(sql, params)) {
             if (rs.next()) {
@@ -74,8 +74,8 @@ public Long instanceLastHeartBeatTime(long applicationInstanceId) {
         H2Client client = getClient();
         long fiveMinuteBefore = System.currentTimeMillis() - 5 * 60 * 1000;
         fiveMinuteBefore = TimeBucketUtils.INSTANCE.getSecondTimeBucket(fiveMinuteBefore);
-        String sql = SqlBuilder.buildSql(GET_INST_LAST_HEARTBEAT_TIME_SQL, InstanceTable.COLUMN_HEARTBEAT_TIME, InstanceTable.TABLE,
-            InstanceTable.COLUMN_HEARTBEAT_TIME, InstanceTable.COLUMN_INSTANCE_ID);
+        String sql = SqlBuilder.buildSql(GET_INST_LAST_HEARTBEAT_TIME_SQL, InstanceTable.HEARTBEAT_TIME.getName(), InstanceTable.TABLE,
+            InstanceTable.HEARTBEAT_TIME.getName(), InstanceTable.INSTANCE_ID.getName());
         Object[] params = new Object[] {fiveMinuteBefore, applicationInstanceId};
         try (ResultSet rs = client.executeQuery(sql, params)) {
             if (rs.next()) {
@@ -92,12 +92,12 @@ public Long instanceLastHeartBeatTime(long applicationInstanceId) {
         int... applicationIds) {
         H2Client client = getClient();
         List<Application> applications = new LinkedList<>();
-        String sql = SqlBuilder.buildSql(GET_APPLICATIONS_SQL, InstanceTable.COLUMN_INSTANCE_ID,
-            InstanceTable.TABLE, InstanceTable.COLUMN_HEARTBEAT_TIME, InstanceTable.COLUMN_APPLICATION_ID);
+        String sql = SqlBuilder.buildSql(GET_APPLICATIONS_SQL, InstanceTable.INSTANCE_ID.getName(),
+            InstanceTable.TABLE, InstanceTable.HEARTBEAT_TIME.getName(), InstanceTable.APPLICATION_ID.getName());
         Object[] params = new Object[] {startSecondTimeBucket};
         try (ResultSet rs = client.executeQuery(sql, params)) {
             while (rs.next()) {
-                Integer applicationId = rs.getInt(InstanceTable.COLUMN_APPLICATION_ID);
+                Integer applicationId = rs.getInt(InstanceTable.APPLICATION_ID.getName());
                 logger.debug("applicationId: {}", applicationId);
                 Application application = new Application();
                 application.setId(applicationId);
@@ -113,17 +113,17 @@ public Long instanceLastHeartBeatTime(long applicationInstanceId) {
     @Override
     public Instance getInstance(int instanceId) {
         H2Client client = getClient();
-        String sql = SqlBuilder.buildSql(GET_INSTANCE_SQL, InstanceTable.TABLE, InstanceTable.COLUMN_INSTANCE_ID);
+        String sql = SqlBuilder.buildSql(GET_INSTANCE_SQL, InstanceTable.TABLE, InstanceTable.INSTANCE_ID.getName());
         Object[] params = new Object[] {instanceId};
         try (ResultSet rs = client.executeQuery(sql, params)) {
             if (rs.next()) {
                 Instance instance = new Instance();
-                instance.setId(rs.getString(InstanceTable.COLUMN_ID));
-                instance.setApplicationId(rs.getInt(InstanceTable.COLUMN_APPLICATION_ID));
-                instance.setAgentUUID(rs.getString(InstanceTable.COLUMN_AGENT_UUID));
-                instance.setRegisterTime(rs.getLong(InstanceTable.COLUMN_REGISTER_TIME));
-                instance.setHeartBeatTime(rs.getLong(InstanceTable.COLUMN_HEARTBEAT_TIME));
-                instance.setOsInfo(rs.getString(InstanceTable.COLUMN_OS_INFO));
+                instance.setId(rs.getString(InstanceTable.ID.getName()));
+                instance.setApplicationId(rs.getInt(InstanceTable.APPLICATION_ID.getName()));
+                instance.setAgentUUID(rs.getString(InstanceTable.AGENT_UUID.getName()));
+                instance.setRegisterTime(rs.getLong(InstanceTable.REGISTER_TIME.getName()));
+                instance.setHeartBeatTime(rs.getLong(InstanceTable.HEARTBEAT_TIME.getName()));
+                instance.setOsInfo(rs.getString(InstanceTable.OS_INFO.getName()));
                 return instance;
             }
         } catch (SQLException | H2ClientException e) {
@@ -136,7 +136,7 @@ public Instance getInstance(int instanceId) {
     public List<AppServerInfo> searchServer(String keyword, long startSecondTimeBucket, long endSecondTimeBucket) {
         logger.debug("get instances info, keyword: {}, start: {}, end: {}", keyword, startSecondTimeBucket, endSecondTimeBucket);
         String dynamicSql = "select * from {0} where {1} like ? and (({2} >= ? and {2} <= ?) or ({3} >= ? and {3} <= ?)) and {4} = ?";
-        String sql = SqlBuilder.buildSql(dynamicSql, InstanceTable.TABLE, InstanceTable.COLUMN_OS_INFO, InstanceTable.COLUMN_REGISTER_TIME, InstanceTable.COLUMN_HEARTBEAT_TIME, InstanceTable.COLUMN_IS_ADDRESS);
+        String sql = SqlBuilder.buildSql(dynamicSql, InstanceTable.TABLE, InstanceTable.OS_INFO.getName(), InstanceTable.REGISTER_TIME.getName(), InstanceTable.HEARTBEAT_TIME.getName(), InstanceTable.IS_ADDRESS.getName());
         Object[] params = new Object[] {keyword, startSecondTimeBucket, endSecondTimeBucket, startSecondTimeBucket, endSecondTimeBucket, BooleanUtils.FALSE};
         return buildAppServerInfo(sql, params);
     }
@@ -145,7 +145,7 @@ public Instance getInstance(int instanceId) {
     public List<AppServerInfo> getAllServer(int applicationId, long startSecondTimeBucket, long endSecondTimeBucket) {
         logger.debug("get instances info, applicationId: {}, startSecondTimeBucket: {}, endSecondTimeBucket: {}", applicationId, startSecondTimeBucket, endSecondTimeBucket);
         String dynamicSql = "select * from {0} where {1} = ? and (({2} >= ? and {2} <= ?) or ({3} >= ? and {3} <= ?)) and {4} = ?";
-        String sql = SqlBuilder.buildSql(dynamicSql, InstanceTable.TABLE, InstanceTable.COLUMN_APPLICATION_ID, InstanceTable.COLUMN_REGISTER_TIME, InstanceTable.COLUMN_HEARTBEAT_TIME, InstanceTable.COLUMN_IS_ADDRESS);
+        String sql = SqlBuilder.buildSql(dynamicSql, InstanceTable.TABLE, InstanceTable.APPLICATION_ID.getName(), InstanceTable.REGISTER_TIME.getName(), InstanceTable.HEARTBEAT_TIME.getName(), InstanceTable.IS_ADDRESS.getName());
         Object[] params = new Object[] {applicationId, startSecondTimeBucket, endSecondTimeBucket, startSecondTimeBucket, endSecondTimeBucket, BooleanUtils.FALSE};
         return buildAppServerInfo(sql, params);
     }
@@ -157,8 +157,8 @@ public Instance getInstance(int instanceId) {
         try (ResultSet rs = client.executeQuery(sql, params)) {
             while (rs.next()) {
                 AppServerInfo appServerInfo = new AppServerInfo();
-                appServerInfo.setId(rs.getInt(InstanceTable.COLUMN_INSTANCE_ID));
-                appServerInfo.setOsInfo(rs.getString(InstanceTable.COLUMN_OS_INFO));
+                appServerInfo.setId(rs.getInt(InstanceTable.INSTANCE_ID.getName()));
+                appServerInfo.setOsInfo(rs.getString(InstanceTable.OS_INFO.getName()));
                 appServerInfos.add(appServerInfo);
             }
         } catch (SQLException | H2ClientException e) {
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/InstanceMetricH2UIDAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/InstanceMetricH2UIDAO.java
index 102f01ed0..a2913a12d 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/InstanceMetricH2UIDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/InstanceMetricH2UIDAO.java
@@ -58,14 +58,14 @@ public InstanceMetricH2UIDAO(H2Client client) {
         H2Client client = getClient();
         String tableName = TimePyramidTableNameBuilder.build(step, InstanceMetricTable.TABLE);
 
-        String sql = SqlBuilder.buildSql(GET_TPS_METRIC_SQL, tableName, InstanceMetricTable.COLUMN_ID);
+        String sql = SqlBuilder.buildSql(GET_TPS_METRIC_SQL, tableName, InstanceMetricTable.ID.getName());
 
         List<Integer> throughputTrend = new LinkedList<>();
         durationPoints.forEach(durationPoint -> {
             String id = durationPoint.getPoint() + Const.ID_SPLIT + instanceId + Const.ID_SPLIT + MetricSource.Callee.getValue();
             try (ResultSet rs = client.executeQuery(sql, new Object[] {id})) {
                 if (rs.next()) {
-                    long callTimes = rs.getLong(InstanceMetricTable.COLUMN_TRANSACTION_CALLS);
+                    long callTimes = rs.getLong(InstanceMetricTable.TRANSACTION_CALLS.getName());
                     throughputTrend.add((int)(callTimes / durationPoint.getSecondsBetween()));
                 } else {
                     throughputTrend.add(0);
@@ -82,15 +82,15 @@ public InstanceMetricH2UIDAO(H2Client client) {
         H2Client client = getClient();
 
         String tableName = TimePyramidTableNameBuilder.build(step, InstanceMetricTable.TABLE);
-        String sql = SqlBuilder.buildSql(GET_TPS_METRIC_SQL, tableName, InstanceMetricTable.COLUMN_ID);
+        String sql = SqlBuilder.buildSql(GET_TPS_METRIC_SQL, tableName, InstanceMetricTable.ID.getName());
 
         List<Integer> responseTimeTrends = new LinkedList<>();
         durationPoints.forEach(durationPoint -> {
             String id = durationPoint.getPoint() + Const.ID_SPLIT + instanceId + Const.ID_SPLIT + MetricSource.Callee.getValue();
             try (ResultSet rs = client.executeQuery(sql, new Object[] {id})) {
                 if (rs.next()) {
-                    long callTimes = rs.getLong(InstanceMetricTable.COLUMN_TRANSACTION_CALLS);
-                    long durationSum = rs.getLong(InstanceMetricTable.COLUMN_TRANSACTION_DURATION_SUM);
+                    long callTimes = rs.getLong(InstanceMetricTable.TRANSACTION_CALLS.getName());
+                    long durationSum = rs.getLong(InstanceMetricTable.TRANSACTION_DURATION_SUM.getName());
                     responseTimeTrends.add((int) (durationSum / callTimes));
                 } else {
                     responseTimeTrends.add(0);
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/MemoryMetricH2UIDAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/MemoryMetricH2UIDAO.java
index 9f5508bfe..d15573822 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/MemoryMetricH2UIDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/MemoryMetricH2UIDAO.java
@@ -60,16 +60,16 @@ private Trend getMemoryTrend(int instanceId, Step step, List<DurationPoint> dura
         String tableName = TimePyramidTableNameBuilder.build(step, MemoryMetricTable.TABLE);
 
         H2Client client = getClient();
-        String sql = SqlBuilder.buildSql(GET_MEMORY_METRIC_SQL, tableName, MemoryMetricTable.COLUMN_ID);
+        String sql = SqlBuilder.buildSql(GET_MEMORY_METRIC_SQL, tableName, MemoryMetricTable.ID.getName());
 
         Trend trend = new Trend();
         durationPoints.forEach(durationPoint -> {
             String id = durationPoint.getPoint() + Const.ID_SPLIT + instanceId + Const.ID_SPLIT + BooleanUtils.booleanToValue(isHeap);
             try (ResultSet rs = client.executeQuery(sql, new String[] {id})) {
                 if (rs.next()) {
-                    long max = rs.getLong(MemoryMetricTable.COLUMN_MAX);
-                    long used = rs.getLong(MemoryMetricTable.COLUMN_USED);
-                    long times = rs.getLong(MemoryMetricTable.COLUMN_TIMES);
+                    long max = rs.getLong(MemoryMetricTable.MAX.getName());
+                    long used = rs.getLong(MemoryMetricTable.USED.getName());
+                    long times = rs.getLong(MemoryMetricTable.TIMES.getName());
                     trend.getMetrics().add((int)(used / times));
 
                     if (max < 0) {
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/MemoryPoolMetricH2UIDAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/MemoryPoolMetricH2UIDAO.java
deleted file mode 100644
index a95ef0ea4..000000000
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/MemoryPoolMetricH2UIDAO.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.skywalking.apm.collector.storage.h2.dao.ui;
-
-import com.google.gson.JsonArray;
-import com.google.gson.JsonObject;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.List;
-import org.apache.skywalking.apm.collector.client.h2.H2Client;
-import org.apache.skywalking.apm.collector.client.h2.H2ClientException;
-import org.apache.skywalking.apm.collector.core.util.Const;
-import org.apache.skywalking.apm.collector.storage.base.sql.SqlBuilder;
-import org.apache.skywalking.apm.collector.storage.dao.ui.IMemoryPoolMetricUIDAO;
-import org.apache.skywalking.apm.collector.storage.h2.base.dao.H2DAO;
-import org.apache.skywalking.apm.collector.storage.table.jvm.MemoryPoolMetricTable;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * @author clevertension
- */
-public class MemoryPoolMetricH2UIDAO extends H2DAO implements IMemoryPoolMetricUIDAO {
-
-    private static final Logger logger = LoggerFactory.getLogger(MemoryPoolMetricH2UIDAO.class);
-    private static final String GET_MEMORY_POOL_METRIC_SQL = "select * from {0} where {1} = ?";
-
-    public MemoryPoolMetricH2UIDAO(H2Client client) {
-        super(client);
-    }
-
-    @Override public JsonObject getMetric(int instanceId, long timeBucket, int poolType) {
-        H2Client client = getClient();
-        String id = timeBucket + Const.ID_SPLIT + instanceId + Const.ID_SPLIT + poolType;
-        String sql = SqlBuilder.buildSql(GET_MEMORY_POOL_METRIC_SQL, MemoryPoolMetricTable.TABLE, MemoryPoolMetricTable.COLUMN_ID);
-        Object[] params = new Object[] {id};
-        JsonObject metric = new JsonObject();
-        try (ResultSet rs = client.executeQuery(sql, params)) {
-            if (rs.next()) {
-                metric.addProperty("max", rs.getInt(MemoryPoolMetricTable.COLUMN_MAX));
-                metric.addProperty("init", rs.getInt(MemoryPoolMetricTable.COLUMN_INIT));
-                metric.addProperty("used", rs.getInt(MemoryPoolMetricTable.COLUMN_USED));
-            } else {
-                metric.addProperty("max", 0);
-                metric.addProperty("init", 0);
-                metric.addProperty("used", 0);
-            }
-        } catch (SQLException | H2ClientException e) {
-            logger.error(e.getMessage(), e);
-        }
-        return metric;
-    }
-
-    @Override public JsonObject getMetric(int instanceId, long startTimeBucket, long endTimeBucket, int poolType) {
-        H2Client client = getClient();
-        String sql = SqlBuilder.buildSql(GET_MEMORY_POOL_METRIC_SQL, MemoryPoolMetricTable.TABLE, MemoryPoolMetricTable.COLUMN_ID);
-        List<String> idList = new ArrayList<>();
-        long timeBucket = startTimeBucket;
-        do {
-//            timeBucket = TimeBucketUtils.INSTANCE.addSecondForSecondTimeBucket(TimeBucketUtils.TimeBucketType.SECOND, timeBucket, 1);
-            String id = timeBucket + Const.ID_SPLIT + instanceId + Const.ID_SPLIT + poolType;
-            idList.add(id);
-        }
-        while (timeBucket <= endTimeBucket);
-
-        JsonObject metric = new JsonObject();
-        JsonArray usedMetric = new JsonArray();
-
-        idList.forEach(id -> {
-            try (ResultSet rs = client.executeQuery(sql, new String[] {id})) {
-                if (rs.next()) {
-                    metric.addProperty("max", rs.getLong(MemoryPoolMetricTable.COLUMN_MAX));
-                    metric.addProperty("init", rs.getLong(MemoryPoolMetricTable.COLUMN_INIT));
-                    usedMetric.add(rs.getLong(MemoryPoolMetricTable.COLUMN_USED));
-                } else {
-                    metric.addProperty("max", 0);
-                    metric.addProperty("init", 0);
-                    usedMetric.add(0);
-                }
-            } catch (SQLException | H2ClientException e) {
-                logger.error(e.getMessage(), e);
-            }
-        });
-
-        metric.add("used", usedMetric);
-        return metric;
-    }
-}
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/NetworkAddressH2UIDAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/NetworkAddressH2UIDAO.java
index 09b865e1a..23a9c9fd4 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/NetworkAddressH2UIDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/NetworkAddressH2UIDAO.java
@@ -44,7 +44,7 @@ public NetworkAddressH2UIDAO(H2Client client) {
 
     @Override public int getNumOfSpanLayer(int spanLayer) {
         String dynamicSql = "select count({0}) as cnt from {1} where {2} = ?";
-        String sql = SqlBuilder.buildSql(dynamicSql, NetworkAddressTable.COLUMN_NETWORK_ADDRESS, NetworkAddressTable.TABLE, NetworkAddressTable.COLUMN_SPAN_LAYER);
+        String sql = SqlBuilder.buildSql(dynamicSql, NetworkAddressTable.NETWORK_ADDRESS.getName(), NetworkAddressTable.TABLE, NetworkAddressTable.SRC_SPAN_LAYER.getName());
         Object[] params = new Object[] {spanLayer};
 
         try (ResultSet rs = getClient().executeQuery(sql, params)) {
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/SegmentDurationH2UIDAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/SegmentDurationH2UIDAO.java
index b47fd6617..4cc9e366b 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/SegmentDurationH2UIDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/SegmentDurationH2UIDAO.java
@@ -54,7 +54,7 @@ public TraceBrief loadTop(long startSecondTimeBucket, long endSecondTimeBucket,
         List<Object> params = new ArrayList<>();
         List<Object> columns = new ArrayList<>();
         columns.add(SegmentDurationTable.TABLE);
-        columns.add(SegmentDurationTable.COLUMN_TIME_BUCKET);
+        columns.add(SegmentDurationTable.TIME_BUCKET.getName());
         params.add(startSecondTimeBucket);
         params.add(endSecondTimeBucket);
         int paramIndex = 1;
@@ -63,32 +63,32 @@ public TraceBrief loadTop(long startSecondTimeBucket, long endSecondTimeBucket,
                 paramIndex++;
                 sql = sql + " and {" + paramIndex + "} >= ?";
                 params.add(minDuration);
-                columns.add(SegmentDurationTable.COLUMN_DURATION);
+                columns.add(SegmentDurationTable.DURATION.getName());
             }
             if (maxDuration != -1) {
                 paramIndex++;
                 sql = sql + " and {" + paramIndex + "} <= ?";
                 params.add(maxDuration);
-                columns.add(SegmentDurationTable.COLUMN_DURATION);
+                columns.add(SegmentDurationTable.DURATION.getName());
             }
         }
         if (StringUtils.isNotEmpty(operationName)) {
             paramIndex++;
             sql = sql + " and {" + paramIndex + "} = ?";
             params.add(operationName);
-            columns.add(SegmentDurationTable.COLUMN_SERVICE_NAME);
+            columns.add(SegmentDurationTable.SERVICE_NAME.getName());
         }
         if (StringUtils.isNotEmpty(segmentIds)) {
             paramIndex++;
             sql = sql + " and {" + paramIndex + "} = ?";
             params.add(segmentIds);
-            columns.add(SegmentDurationTable.COLUMN_TRACE_ID);
+            columns.add(SegmentDurationTable.TRACE_ID.getName());
         }
         if (applicationId != 0) {
             paramIndex++;
             sql = sql + " and {" + paramIndex + "} = ?";
             params.add(applicationId);
-            columns.add(SegmentDurationTable.COLUMN_APPLICATION_ID);
+            columns.add(SegmentDurationTable.APPLICATION_ID.getName());
         }
 
         sql = sql + " limit " + from + "," + limit;
@@ -101,11 +101,11 @@ public TraceBrief loadTop(long startSecondTimeBucket, long endSecondTimeBucket,
         try (ResultSet rs = client.executeQuery(sql, p)) {
             while (rs.next()) {
                 BasicTrace basicTrace = new BasicTrace();
-                basicTrace.setSegmentId(rs.getString(SegmentDurationTable.COLUMN_SEGMENT_ID));
-                basicTrace.setDuration(rs.getInt(SegmentDurationTable.COLUMN_DURATION));
-                basicTrace.setStart(rs.getLong(SegmentDurationTable.COLUMN_START_TIME));
-                basicTrace.setOperationName(rs.getString(SegmentDurationTable.COLUMN_SERVICE_NAME));
-                basicTrace.setError(BooleanUtils.valueToBoolean(rs.getInt(SegmentDurationTable.COLUMN_IS_ERROR)));
+                basicTrace.setSegmentId(rs.getString(SegmentDurationTable.SEGMENT_ID.getName()));
+                basicTrace.setDuration(rs.getInt(SegmentDurationTable.DURATION.getName()));
+                basicTrace.setStart(rs.getLong(SegmentDurationTable.START_TIME.getName()));
+                basicTrace.setOperationName(rs.getString(SegmentDurationTable.SERVICE_NAME.getName()));
+                basicTrace.setError(BooleanUtils.valueToBoolean(rs.getInt(SegmentDurationTable.IS_ERROR.getName())));
                 traceBrief.getTraces().add(basicTrace);
                 cnt++;
             }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/SegmentH2UIDAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/SegmentH2UIDAO.java
index be52519bb..33d44eea9 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/SegmentH2UIDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/SegmentH2UIDAO.java
@@ -45,12 +45,12 @@ public SegmentH2UIDAO(H2Client client) {
 
     @Override public TraceSegmentObject load(String segmentId) {
         H2Client client = getClient();
-        String sql = SqlBuilder.buildSql(GET_SEGMENT_SQL, SegmentTable.COLUMN_DATA_BINARY,
-            SegmentTable.TABLE, SegmentTable.COLUMN_ID);
+        String sql = SqlBuilder.buildSql(GET_SEGMENT_SQL, SegmentTable.DATA_BINARY.getName(),
+            SegmentTable.TABLE, SegmentTable.ID.getName());
         Object[] params = new Object[] {segmentId};
         try (ResultSet rs = client.executeQuery(sql, params)) {
             if (rs.next()) {
-                byte[] dataBinary = rs.getBytes(SegmentTable.COLUMN_DATA_BINARY);
+                byte[] dataBinary = rs.getBytes(SegmentTable.DATA_BINARY.getName());
                 try {
                     return TraceSegmentObject.parseFrom(dataBinary);
                 } catch (InvalidProtocolBufferException e) {
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/ServiceMetricH2UIDAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/ServiceMetricH2UIDAO.java
index 724c62961..0359221b8 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/ServiceMetricH2UIDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/ServiceMetricH2UIDAO.java
@@ -56,7 +56,7 @@ public ServiceMetricH2UIDAO(H2Client client) {
 
         H2Client client = getClient();
         String dynamicSql = "select * from {0} where {1} = ?";
-        String sql = SqlBuilder.buildSql(dynamicSql, tableName, ServiceMetricTable.COLUMN_ID);
+        String sql = SqlBuilder.buildSql(dynamicSql, tableName, ServiceMetricTable.ID.getName());
 
         List<Integer> trends = new LinkedList<>();
         durationPoints.forEach(durationPoint -> {
@@ -64,8 +64,8 @@ public ServiceMetricH2UIDAO(H2Client client) {
 
             try (ResultSet rs = client.executeQuery(sql, new String[] {id})) {
                 if (rs.next()) {
-                    long calls = rs.getLong(ServiceMetricTable.COLUMN_TRANSACTION_CALLS);
-                    long durationSum = rs.getLong(ServiceMetricTable.COLUMN_TRANSACTION_DURATION_SUM);
+                    long calls = rs.getLong(ServiceMetricTable.TRANSACTION_CALLS.getName());
+                    long durationSum = rs.getLong(ServiceMetricTable.TRANSACTION_DURATION_SUM.getName());
                     trends.add((int) (durationSum / calls));
                 } else {
                     trends.add(0);
@@ -87,7 +87,7 @@ public ServiceMetricH2UIDAO(H2Client client) {
 
         H2Client client = getClient();
         String dynamicSql = "select * from {0} where {1} = ?";
-        String sql = SqlBuilder.buildSql(dynamicSql, tableName, ServiceMetricTable.COLUMN_ID);
+        String sql = SqlBuilder.buildSql(dynamicSql, tableName, ServiceMetricTable.ID);
 
         List<Integer> trends = new LinkedList<>();
         durationPoints.forEach(durationPoint -> {
@@ -95,8 +95,8 @@ public ServiceMetricH2UIDAO(H2Client client) {
 
             try (ResultSet rs = client.executeQuery(sql, new String[] {id})) {
                 if (rs.next()) {
-                    long calls = rs.getLong(ServiceMetricTable.COLUMN_TRANSACTION_CALLS);
-                    long errorCalls = rs.getLong(ServiceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS);
+                    long calls = rs.getLong(ServiceMetricTable.TRANSACTION_CALLS.getName());
+                    long errorCalls = rs.getLong(ServiceMetricTable.TRANSACTION_ERROR_CALLS.getName());
                     trends.add((int)(((calls - errorCalls) / calls)) * 10000);
                 } else {
                     trends.add(10000);
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/ServiceNameServiceH2UIDAO.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/ServiceNameServiceH2UIDAO.java
index 7bc2471dc..b41d4cb68 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/ServiceNameServiceH2UIDAO.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/dao/ui/ServiceNameServiceH2UIDAO.java
@@ -46,7 +46,7 @@ public ServiceNameServiceH2UIDAO(H2Client client) {
 
     @Override public int getCount() {
         String dynamicSql = "select count({0}) as cnt from {1} where {2} = ?";
-        String sql = SqlBuilder.buildSql(dynamicSql, ServiceNameTable.COLUMN_SERVICE_ID, ServiceNameTable.TABLE, ServiceNameTable.COLUMN_SRC_SPAN_TYPE);
+        String sql = SqlBuilder.buildSql(dynamicSql, ServiceNameTable.SERVICE_ID.getName(), ServiceNameTable.TABLE, ServiceNameTable.SRC_SPAN_TYPE.getName());
         Object[] params = new Object[] {SpanType.Entry_VALUE};
 
         try (ResultSet rs = getClient().executeQuery(sql, params)) {
@@ -61,15 +61,15 @@ public ServiceNameServiceH2UIDAO(H2Client client) {
 
     @Override public List<ServiceInfo> searchService(String keyword, int topN) {
         String dynamicSql = "select {0},{1} from {2} where {3} like ? and {4} = ? limit ?";
-        String sql = SqlBuilder.buildSql(dynamicSql, ServiceNameTable.COLUMN_SERVICE_ID, ServiceNameTable.COLUMN_SERVICE_NAME, ServiceNameTable.TABLE, ServiceNameTable.COLUMN_SERVICE_NAME, ServiceNameTable.COLUMN_SRC_SPAN_TYPE);
+        String sql = SqlBuilder.buildSql(dynamicSql, ServiceNameTable.SERVICE_ID.getName(), ServiceNameTable.SERVICE_NAME.getName(), ServiceNameTable.TABLE, ServiceNameTable.SERVICE_NAME.getName(), ServiceNameTable.SRC_SPAN_TYPE.getName());
         Object[] params = new Object[] {keyword, SpanType.Entry_VALUE, topN};
 
         List<ServiceInfo> serviceInfos = new LinkedList<>();
         try (ResultSet rs = getClient().executeQuery(sql, params)) {
             while (rs.next()) {
                 ServiceInfo serviceInfo = new ServiceInfo();
-                serviceInfo.setId(rs.getInt(ServiceNameTable.COLUMN_SERVICE_ID));
-                serviceInfo.setName(rs.getString(ServiceNameTable.COLUMN_SERVICE_NAME));
+                serviceInfo.setId(rs.getInt(ServiceNameTable.SERVICE_ID.getName()));
+                serviceInfo.setName(rs.getString(ServiceNameTable.SERVICE_NAME.getName()));
                 serviceInfos.add(serviceInfo);
             }
         } catch (SQLException | H2ClientException e) {
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/GlobalTraceH2TableDefine.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/GlobalTraceH2TableDefine.java
index db18ee65b..4b3eee57b 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/GlobalTraceH2TableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/GlobalTraceH2TableDefine.java
@@ -32,9 +32,9 @@ public GlobalTraceH2TableDefine() {
     }
 
     @Override public void initialize() {
-        addColumn(new H2ColumnDefine(GlobalTraceTable.COLUMN_ID, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(GlobalTraceTable.COLUMN_SEGMENT_ID, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(GlobalTraceTable.COLUMN_GLOBAL_TRACE_ID, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(GlobalTraceTable.COLUMN_TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(GlobalTraceTable.ID, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(GlobalTraceTable.SEGMENT_ID, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(GlobalTraceTable.TRACE_ID, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(GlobalTraceTable.TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/SegmentDurationH2TableDefine.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/SegmentDurationH2TableDefine.java
index 1cf32d312..37df0d108 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/SegmentDurationH2TableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/SegmentDurationH2TableDefine.java
@@ -32,15 +32,15 @@ public SegmentDurationH2TableDefine() {
     }
 
     @Override public void initialize() {
-        addColumn(new H2ColumnDefine(SegmentDurationTable.COLUMN_ID, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(SegmentDurationTable.COLUMN_SEGMENT_ID, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(SegmentDurationTable.COLUMN_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(SegmentDurationTable.COLUMN_SERVICE_NAME, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(SegmentDurationTable.COLUMN_TRACE_ID, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(SegmentDurationTable.COLUMN_DURATION, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(SegmentDurationTable.COLUMN_START_TIME, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(SegmentDurationTable.COLUMN_END_TIME, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(SegmentDurationTable.COLUMN_IS_ERROR, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(SegmentDurationTable.COLUMN_TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(SegmentDurationTable.ID, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(SegmentDurationTable.SEGMENT_ID, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(SegmentDurationTable.APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(SegmentDurationTable.SERVICE_NAME, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(SegmentDurationTable.TRACE_ID, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(SegmentDurationTable.DURATION, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(SegmentDurationTable.START_TIME, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(SegmentDurationTable.END_TIME, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(SegmentDurationTable.IS_ERROR, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(SegmentDurationTable.TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/SegmentH2TableDefine.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/SegmentH2TableDefine.java
index 52f8b5892..8fbb08f43 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/SegmentH2TableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/SegmentH2TableDefine.java
@@ -32,8 +32,8 @@ public SegmentH2TableDefine() {
     }
 
     @Override public void initialize() {
-        addColumn(new H2ColumnDefine(SegmentTable.COLUMN_ID, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(SegmentTable.COLUMN_DATA_BINARY, H2ColumnDefine.Type.BINARY.name()));
-        addColumn(new H2ColumnDefine(SegmentTable.COLUMN_TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(SegmentTable.ID, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(SegmentTable.DATA_BINARY, H2ColumnDefine.Type.BINARY.name()));
+        addColumn(new H2ColumnDefine(SegmentTable.TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/acp/AbstractApplicationComponentH2TableDefine.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/acp/AbstractApplicationComponentH2TableDefine.java
index b4405dd12..70cff26b5 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/acp/AbstractApplicationComponentH2TableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/acp/AbstractApplicationComponentH2TableDefine.java
@@ -32,10 +32,10 @@
     }
 
     @Override public final void initialize() {
-        addColumn(new H2ColumnDefine(ApplicationComponentTable.COLUMN_ID, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(ApplicationComponentTable.COLUMN_METRIC_ID, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(ApplicationComponentTable.COLUMN_COMPONENT_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(ApplicationComponentTable.COLUMN_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(ApplicationComponentTable.COLUMN_TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ApplicationComponentTable.ID, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(ApplicationComponentTable.METRIC_ID, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(ApplicationComponentTable.COMPONENT_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ApplicationComponentTable.APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ApplicationComponentTable.TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/alarm/AbstractApplicationAlarmListH2TableDefine.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/alarm/AbstractApplicationAlarmListH2TableDefine.java
index 65bc8902d..9a096525a 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/alarm/AbstractApplicationAlarmListH2TableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/alarm/AbstractApplicationAlarmListH2TableDefine.java
@@ -32,14 +32,14 @@
     }
 
     @Override public void initialize() {
-        addColumn(new H2ColumnDefine(ApplicationAlarmListTable.COLUMN_ID, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(ApplicationAlarmListTable.COLUMN_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ApplicationAlarmListTable.ID, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(ApplicationAlarmListTable.APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
 
-        addColumn(new H2ColumnDefine(ApplicationAlarmListTable.COLUMN_SOURCE_VALUE, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(ApplicationAlarmListTable.COLUMN_ALARM_TYPE, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ApplicationAlarmListTable.SOURCE_VALUE, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ApplicationAlarmListTable.ALARM_TYPE, H2ColumnDefine.Type.Int.name()));
 
-        addColumn(new H2ColumnDefine(ApplicationAlarmListTable.COLUMN_ALARM_CONTENT, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(ApplicationAlarmListTable.ALARM_CONTENT, H2ColumnDefine.Type.Varchar.name()));
 
-        addColumn(new H2ColumnDefine(ApplicationAlarmListTable.COLUMN_TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ApplicationAlarmListTable.TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/alarm/ApplicationAlarmH2TableDefine.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/alarm/ApplicationAlarmH2TableDefine.java
index 5ff834768..3337b011f 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/alarm/ApplicationAlarmH2TableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/alarm/ApplicationAlarmH2TableDefine.java
@@ -32,14 +32,14 @@ public ApplicationAlarmH2TableDefine() {
     }
 
     @Override public void initialize() {
-        addColumn(new H2ColumnDefine(ApplicationAlarmTable.COLUMN_ID, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(ApplicationAlarmTable.COLUMN_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ApplicationAlarmTable.ID, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(ApplicationAlarmTable.APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
 
-        addColumn(new H2ColumnDefine(ApplicationAlarmTable.COLUMN_SOURCE_VALUE, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(ApplicationAlarmTable.COLUMN_ALARM_TYPE, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ApplicationAlarmTable.SOURCE_VALUE, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ApplicationAlarmTable.ALARM_TYPE, H2ColumnDefine.Type.Int.name()));
 
-        addColumn(new H2ColumnDefine(ApplicationAlarmTable.COLUMN_ALARM_CONTENT, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(ApplicationAlarmTable.ALARM_CONTENT, H2ColumnDefine.Type.Varchar.name()));
 
-        addColumn(new H2ColumnDefine(ApplicationAlarmTable.COLUMN_LAST_TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ApplicationAlarmTable.LAST_TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/alarm/ApplicationReferenceAlarmH2TableDefine.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/alarm/ApplicationReferenceAlarmH2TableDefine.java
index ceef29ce5..6ecbfc70f 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/alarm/ApplicationReferenceAlarmH2TableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/alarm/ApplicationReferenceAlarmH2TableDefine.java
@@ -32,15 +32,15 @@ public ApplicationReferenceAlarmH2TableDefine() {
     }
 
     @Override public void initialize() {
-        addColumn(new H2ColumnDefine(ApplicationReferenceAlarmTable.COLUMN_ID, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(ApplicationReferenceAlarmTable.COLUMN_FRONT_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(ApplicationReferenceAlarmTable.COLUMN_BEHIND_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ApplicationReferenceAlarmTable.ID, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(ApplicationReferenceAlarmTable.FRONT_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ApplicationReferenceAlarmTable.BEHIND_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
 
-        addColumn(new H2ColumnDefine(ApplicationReferenceAlarmTable.COLUMN_SOURCE_VALUE, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(ApplicationReferenceAlarmTable.COLUMN_ALARM_TYPE, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ApplicationReferenceAlarmTable.SOURCE_VALUE, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ApplicationReferenceAlarmTable.ALARM_TYPE, H2ColumnDefine.Type.Int.name()));
 
-        addColumn(new H2ColumnDefine(ApplicationReferenceAlarmTable.COLUMN_ALARM_CONTENT, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(ApplicationReferenceAlarmTable.ALARM_CONTENT, H2ColumnDefine.Type.Varchar.name()));
 
-        addColumn(new H2ColumnDefine(ApplicationReferenceAlarmTable.COLUMN_LAST_TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ApplicationReferenceAlarmTable.LAST_TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/alarm/ApplicationReferenceAlarmListH2TableDefine.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/alarm/ApplicationReferenceAlarmListH2TableDefine.java
index 7148d0e34..908916e58 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/alarm/ApplicationReferenceAlarmListH2TableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/alarm/ApplicationReferenceAlarmListH2TableDefine.java
@@ -32,15 +32,15 @@ public ApplicationReferenceAlarmListH2TableDefine() {
     }
 
     @Override public void initialize() {
-        addColumn(new H2ColumnDefine(ApplicationReferenceAlarmListTable.COLUMN_ID, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(ApplicationReferenceAlarmListTable.COLUMN_FRONT_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(ApplicationReferenceAlarmListTable.COLUMN_BEHIND_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ApplicationReferenceAlarmListTable.ID, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(ApplicationReferenceAlarmListTable.FRONT_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ApplicationReferenceAlarmListTable.BEHIND_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
 
-        addColumn(new H2ColumnDefine(ApplicationReferenceAlarmListTable.COLUMN_SOURCE_VALUE, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(ApplicationReferenceAlarmListTable.COLUMN_ALARM_TYPE, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ApplicationReferenceAlarmListTable.SOURCE_VALUE, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ApplicationReferenceAlarmListTable.ALARM_TYPE, H2ColumnDefine.Type.Int.name()));
 
-        addColumn(new H2ColumnDefine(ApplicationReferenceAlarmListTable.COLUMN_ALARM_CONTENT, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(ApplicationReferenceAlarmListTable.ALARM_CONTENT, H2ColumnDefine.Type.Varchar.name()));
 
-        addColumn(new H2ColumnDefine(ApplicationReferenceAlarmListTable.COLUMN_TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ApplicationReferenceAlarmListTable.TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/alarm/InstanceAlarmH2TableDefine.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/alarm/InstanceAlarmH2TableDefine.java
index 8d6e7e112..926e49024 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/alarm/InstanceAlarmH2TableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/alarm/InstanceAlarmH2TableDefine.java
@@ -32,15 +32,15 @@ public InstanceAlarmH2TableDefine() {
     }
 
     @Override public void initialize() {
-        addColumn(new H2ColumnDefine(InstanceAlarmTable.COLUMN_ID, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(InstanceAlarmTable.COLUMN_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(InstanceAlarmTable.COLUMN_INSTANCE_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(InstanceAlarmTable.ID, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(InstanceAlarmTable.APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(InstanceAlarmTable.INSTANCE_ID, H2ColumnDefine.Type.Int.name()));
 
-        addColumn(new H2ColumnDefine(InstanceAlarmTable.COLUMN_SOURCE_VALUE, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(InstanceAlarmTable.COLUMN_ALARM_TYPE, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(InstanceAlarmTable.SOURCE_VALUE, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(InstanceAlarmTable.ALARM_TYPE, H2ColumnDefine.Type.Int.name()));
 
-        addColumn(new H2ColumnDefine(InstanceAlarmTable.COLUMN_ALARM_CONTENT, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(InstanceAlarmTable.ALARM_CONTENT, H2ColumnDefine.Type.Varchar.name()));
 
-        addColumn(new H2ColumnDefine(InstanceAlarmTable.COLUMN_LAST_TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(InstanceAlarmTable.LAST_TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/alarm/InstanceAlarmListH2TableDefine.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/alarm/InstanceAlarmListH2TableDefine.java
index e677f4df9..6e0b73270 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/alarm/InstanceAlarmListH2TableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/alarm/InstanceAlarmListH2TableDefine.java
@@ -32,15 +32,15 @@ public InstanceAlarmListH2TableDefine() {
     }
 
     @Override public void initialize() {
-        addColumn(new H2ColumnDefine(InstanceAlarmListTable.COLUMN_ID, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(InstanceAlarmListTable.COLUMN_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(InstanceAlarmListTable.COLUMN_INSTANCE_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(InstanceAlarmListTable.ID, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(InstanceAlarmListTable.APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(InstanceAlarmListTable.INSTANCE_ID, H2ColumnDefine.Type.Int.name()));
 
-        addColumn(new H2ColumnDefine(InstanceAlarmListTable.COLUMN_SOURCE_VALUE, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(InstanceAlarmListTable.COLUMN_ALARM_TYPE, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(InstanceAlarmListTable.SOURCE_VALUE, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(InstanceAlarmListTable.ALARM_TYPE, H2ColumnDefine.Type.Int.name()));
 
-        addColumn(new H2ColumnDefine(InstanceAlarmListTable.COLUMN_ALARM_CONTENT, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(InstanceAlarmListTable.ALARM_CONTENT, H2ColumnDefine.Type.Varchar.name()));
 
-        addColumn(new H2ColumnDefine(InstanceAlarmListTable.COLUMN_TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(InstanceAlarmListTable.TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/alarm/InstanceReferenceAlarmH2TableDefine.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/alarm/InstanceReferenceAlarmH2TableDefine.java
index 5a1008765..a0a1d0720 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/alarm/InstanceReferenceAlarmH2TableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/alarm/InstanceReferenceAlarmH2TableDefine.java
@@ -32,17 +32,17 @@ public InstanceReferenceAlarmH2TableDefine() {
     }
 
     @Override public void initialize() {
-        addColumn(new H2ColumnDefine(InstanceReferenceAlarmTable.COLUMN_ID, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(InstanceReferenceAlarmTable.COLUMN_FRONT_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(InstanceReferenceAlarmTable.COLUMN_BEHIND_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(InstanceReferenceAlarmTable.COLUMN_FRONT_INSTANCE_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(InstanceReferenceAlarmTable.COLUMN_BEHIND_INSTANCE_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(InstanceReferenceAlarmTable.ID, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(InstanceReferenceAlarmTable.FRONT_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(InstanceReferenceAlarmTable.BEHIND_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(InstanceReferenceAlarmTable.FRONT_INSTANCE_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(InstanceReferenceAlarmTable.BEHIND_INSTANCE_ID, H2ColumnDefine.Type.Int.name()));
 
-        addColumn(new H2ColumnDefine(InstanceReferenceAlarmTable.COLUMN_SOURCE_VALUE, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(InstanceReferenceAlarmTable.COLUMN_ALARM_TYPE, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(InstanceReferenceAlarmTable.SOURCE_VALUE, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(InstanceReferenceAlarmTable.ALARM_TYPE, H2ColumnDefine.Type.Int.name()));
 
-        addColumn(new H2ColumnDefine(InstanceReferenceAlarmTable.COLUMN_ALARM_CONTENT, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(InstanceReferenceAlarmTable.ALARM_CONTENT, H2ColumnDefine.Type.Varchar.name()));
 
-        addColumn(new H2ColumnDefine(InstanceReferenceAlarmTable.COLUMN_LAST_TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(InstanceReferenceAlarmTable.LAST_TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/alarm/InstanceReferenceAlarmListH2TableDefine.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/alarm/InstanceReferenceAlarmListH2TableDefine.java
index d75fad873..8ef836a6f 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/alarm/InstanceReferenceAlarmListH2TableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/alarm/InstanceReferenceAlarmListH2TableDefine.java
@@ -32,17 +32,17 @@ public InstanceReferenceAlarmListH2TableDefine() {
     }
 
     @Override public void initialize() {
-        addColumn(new H2ColumnDefine(InstanceReferenceAlarmListTable.COLUMN_ID, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(InstanceReferenceAlarmListTable.COLUMN_FRONT_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(InstanceReferenceAlarmListTable.COLUMN_BEHIND_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(InstanceReferenceAlarmListTable.COLUMN_FRONT_INSTANCE_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(InstanceReferenceAlarmListTable.COLUMN_BEHIND_INSTANCE_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(InstanceReferenceAlarmListTable.ID, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(InstanceReferenceAlarmListTable.FRONT_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(InstanceReferenceAlarmListTable.BEHIND_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(InstanceReferenceAlarmListTable.FRONT_INSTANCE_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(InstanceReferenceAlarmListTable.BEHIND_INSTANCE_ID, H2ColumnDefine.Type.Int.name()));
 
-        addColumn(new H2ColumnDefine(InstanceReferenceAlarmListTable.COLUMN_SOURCE_VALUE, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(InstanceReferenceAlarmListTable.COLUMN_ALARM_TYPE, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(InstanceReferenceAlarmListTable.SOURCE_VALUE, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(InstanceReferenceAlarmListTable.ALARM_TYPE, H2ColumnDefine.Type.Int.name()));
 
-        addColumn(new H2ColumnDefine(InstanceReferenceAlarmListTable.COLUMN_ALARM_CONTENT, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(InstanceReferenceAlarmListTable.ALARM_CONTENT, H2ColumnDefine.Type.Varchar.name()));
 
-        addColumn(new H2ColumnDefine(InstanceReferenceAlarmListTable.COLUMN_TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(InstanceReferenceAlarmListTable.TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/alarm/ServiceAlarmH2TableDefine.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/alarm/ServiceAlarmH2TableDefine.java
index 71a4206f4..554268351 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/alarm/ServiceAlarmH2TableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/alarm/ServiceAlarmH2TableDefine.java
@@ -32,16 +32,16 @@ public ServiceAlarmH2TableDefine() {
     }
 
     @Override public void initialize() {
-        addColumn(new H2ColumnDefine(ServiceAlarmTable.COLUMN_ID, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(ServiceAlarmTable.COLUMN_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(ServiceAlarmTable.COLUMN_INSTANCE_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(ServiceAlarmTable.COLUMN_SERVICE_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ServiceAlarmTable.ID, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(ServiceAlarmTable.APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ServiceAlarmTable.INSTANCE_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ServiceAlarmTable.SERVICE_ID, H2ColumnDefine.Type.Int.name()));
 
-        addColumn(new H2ColumnDefine(ServiceAlarmTable.COLUMN_SOURCE_VALUE, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(ServiceAlarmTable.COLUMN_ALARM_TYPE, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ServiceAlarmTable.SOURCE_VALUE, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ServiceAlarmTable.ALARM_TYPE, H2ColumnDefine.Type.Int.name()));
 
-        addColumn(new H2ColumnDefine(ServiceAlarmTable.COLUMN_ALARM_CONTENT, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(ServiceAlarmTable.ALARM_CONTENT, H2ColumnDefine.Type.Varchar.name()));
 
-        addColumn(new H2ColumnDefine(ServiceAlarmTable.COLUMN_LAST_TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ServiceAlarmTable.LAST_TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/alarm/ServiceAlarmListH2TableDefine.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/alarm/ServiceAlarmListH2TableDefine.java
index 5df00786b..3f5979cc8 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/alarm/ServiceAlarmListH2TableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/alarm/ServiceAlarmListH2TableDefine.java
@@ -32,16 +32,16 @@ public ServiceAlarmListH2TableDefine() {
     }
 
     @Override public void initialize() {
-        addColumn(new H2ColumnDefine(ServiceAlarmListTable.COLUMN_ID, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(ServiceAlarmListTable.COLUMN_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(ServiceAlarmListTable.COLUMN_INSTANCE_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(ServiceAlarmListTable.COLUMN_SERVICE_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ServiceAlarmListTable.ID, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(ServiceAlarmListTable.APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ServiceAlarmListTable.INSTANCE_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ServiceAlarmListTable.SERVICE_ID, H2ColumnDefine.Type.Int.name()));
 
-        addColumn(new H2ColumnDefine(ServiceAlarmListTable.COLUMN_SOURCE_VALUE, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(ServiceAlarmListTable.COLUMN_ALARM_TYPE, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ServiceAlarmListTable.SOURCE_VALUE, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ServiceAlarmListTable.ALARM_TYPE, H2ColumnDefine.Type.Int.name()));
 
-        addColumn(new H2ColumnDefine(ServiceAlarmListTable.COLUMN_ALARM_CONTENT, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(ServiceAlarmListTable.ALARM_CONTENT, H2ColumnDefine.Type.Varchar.name()));
 
-        addColumn(new H2ColumnDefine(ServiceAlarmListTable.COLUMN_TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ServiceAlarmListTable.TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/alarm/ServiceReferenceAlarmH2TableDefine.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/alarm/ServiceReferenceAlarmH2TableDefine.java
index f6b14e66c..c8b6290e2 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/alarm/ServiceReferenceAlarmH2TableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/alarm/ServiceReferenceAlarmH2TableDefine.java
@@ -32,19 +32,19 @@ public ServiceReferenceAlarmH2TableDefine() {
     }
 
     @Override public void initialize() {
-        addColumn(new H2ColumnDefine(ServiceReferenceAlarmTable.COLUMN_ID, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(ServiceReferenceAlarmTable.COLUMN_FRONT_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(ServiceReferenceAlarmTable.COLUMN_BEHIND_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(ServiceReferenceAlarmTable.COLUMN_FRONT_INSTANCE_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(ServiceReferenceAlarmTable.COLUMN_BEHIND_INSTANCE_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(ServiceReferenceAlarmTable.COLUMN_FRONT_SERVICE_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(ServiceReferenceAlarmTable.COLUMN_BEHIND_SERVICE_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ServiceReferenceAlarmTable.ID, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(ServiceReferenceAlarmTable.FRONT_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ServiceReferenceAlarmTable.BEHIND_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ServiceReferenceAlarmTable.FRONT_INSTANCE_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ServiceReferenceAlarmTable.BEHIND_INSTANCE_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ServiceReferenceAlarmTable.FRONT_SERVICE_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ServiceReferenceAlarmTable.BEHIND_SERVICE_ID, H2ColumnDefine.Type.Int.name()));
 
-        addColumn(new H2ColumnDefine(ServiceReferenceAlarmTable.COLUMN_SOURCE_VALUE, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(ServiceReferenceAlarmTable.COLUMN_ALARM_TYPE, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ServiceReferenceAlarmTable.SOURCE_VALUE, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ServiceReferenceAlarmTable.ALARM_TYPE, H2ColumnDefine.Type.Int.name()));
 
-        addColumn(new H2ColumnDefine(ServiceReferenceAlarmTable.COLUMN_ALARM_CONTENT, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(ServiceReferenceAlarmTable.ALARM_CONTENT, H2ColumnDefine.Type.Varchar.name()));
 
-        addColumn(new H2ColumnDefine(ServiceReferenceAlarmTable.COLUMN_LAST_TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ServiceReferenceAlarmTable.LAST_TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/alarm/ServiceReferenceAlarmListH2TableDefine.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/alarm/ServiceReferenceAlarmListH2TableDefine.java
index 79f4d6902..dbf774507 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/alarm/ServiceReferenceAlarmListH2TableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/alarm/ServiceReferenceAlarmListH2TableDefine.java
@@ -32,19 +32,19 @@ public ServiceReferenceAlarmListH2TableDefine() {
     }
 
     @Override public void initialize() {
-        addColumn(new H2ColumnDefine(ServiceReferenceAlarmListTable.COLUMN_ID, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(ServiceReferenceAlarmListTable.COLUMN_FRONT_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(ServiceReferenceAlarmListTable.COLUMN_BEHIND_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(ServiceReferenceAlarmListTable.COLUMN_FRONT_INSTANCE_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(ServiceReferenceAlarmListTable.COLUMN_BEHIND_INSTANCE_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(ServiceReferenceAlarmListTable.COLUMN_FRONT_SERVICE_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(ServiceReferenceAlarmListTable.COLUMN_BEHIND_SERVICE_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ServiceReferenceAlarmListTable.ID, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(ServiceReferenceAlarmListTable.FRONT_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ServiceReferenceAlarmListTable.BEHIND_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ServiceReferenceAlarmListTable.FRONT_INSTANCE_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ServiceReferenceAlarmListTable.BEHIND_INSTANCE_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ServiceReferenceAlarmListTable.FRONT_SERVICE_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ServiceReferenceAlarmListTable.BEHIND_SERVICE_ID, H2ColumnDefine.Type.Int.name()));
 
-        addColumn(new H2ColumnDefine(ServiceReferenceAlarmListTable.COLUMN_SOURCE_VALUE, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(ServiceReferenceAlarmListTable.COLUMN_ALARM_TYPE, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ServiceReferenceAlarmListTable.SOURCE_VALUE, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ServiceReferenceAlarmListTable.ALARM_TYPE, H2ColumnDefine.Type.Int.name()));
 
-        addColumn(new H2ColumnDefine(ServiceReferenceAlarmListTable.COLUMN_ALARM_CONTENT, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(ServiceReferenceAlarmListTable.ALARM_CONTENT, H2ColumnDefine.Type.Varchar.name()));
 
-        addColumn(new H2ColumnDefine(ServiceReferenceAlarmListTable.COLUMN_TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ServiceReferenceAlarmListTable.TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/amp/AbstractApplicationMetricH2TableDefine.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/amp/AbstractApplicationMetricH2TableDefine.java
index cdf71f1a5..24782620c 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/amp/AbstractApplicationMetricH2TableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/amp/AbstractApplicationMetricH2TableDefine.java
@@ -27,38 +27,38 @@
  */
 public abstract class AbstractApplicationMetricH2TableDefine extends H2TableDefine {
 
-    public AbstractApplicationMetricH2TableDefine(String name) {
+    AbstractApplicationMetricH2TableDefine(String name) {
         super(name);
     }
 
     @Override public final void initialize() {
-        addColumn(new H2ColumnDefine(ApplicationMetricTable.COLUMN_ID, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(ApplicationMetricTable.COLUMN_METRIC_ID, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(ApplicationMetricTable.COLUMN_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(ApplicationMetricTable.COLUMN_SOURCE_VALUE, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ApplicationMetricTable.ID, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(ApplicationMetricTable.METRIC_ID, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(ApplicationMetricTable.APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ApplicationMetricTable.SOURCE_VALUE, H2ColumnDefine.Type.Int.name()));
 
-        addColumn(new H2ColumnDefine(ApplicationMetricTable.COLUMN_TRANSACTION_CALLS, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ApplicationMetricTable.COLUMN_TRANSACTION_ERROR_CALLS, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ApplicationMetricTable.COLUMN_TRANSACTION_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ApplicationMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ApplicationMetricTable.COLUMN_TRANSACTION_AVERAGE_DURATION, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ApplicationMetricTable.TRANSACTION_CALLS, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ApplicationMetricTable.TRANSACTION_ERROR_CALLS, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ApplicationMetricTable.TRANSACTION_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ApplicationMetricTable.TRANSACTION_ERROR_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ApplicationMetricTable.TRANSACTION_AVERAGE_DURATION, H2ColumnDefine.Type.Bigint.name()));
 
-        addColumn(new H2ColumnDefine(ApplicationMetricTable.COLUMN_BUSINESS_TRANSACTION_CALLS, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ApplicationMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_CALLS, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ApplicationMetricTable.COLUMN_BUSINESS_TRANSACTION_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ApplicationMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ApplicationMetricTable.COLUMN_BUSINESS_TRANSACTION_AVERAGE_DURATION, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ApplicationMetricTable.BUSINESS_TRANSACTION_CALLS, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ApplicationMetricTable.BUSINESS_TRANSACTION_ERROR_CALLS, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ApplicationMetricTable.BUSINESS_TRANSACTION_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ApplicationMetricTable.BUSINESS_TRANSACTION_ERROR_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ApplicationMetricTable.BUSINESS_TRANSACTION_AVERAGE_DURATION, H2ColumnDefine.Type.Bigint.name()));
 
-        addColumn(new H2ColumnDefine(ApplicationMetricTable.COLUMN_MQ_TRANSACTION_CALLS, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ApplicationMetricTable.COLUMN_MQ_TRANSACTION_ERROR_CALLS, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ApplicationMetricTable.COLUMN_MQ_TRANSACTION_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ApplicationMetricTable.COLUMN_MQ_TRANSACTION_ERROR_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ApplicationMetricTable.COLUMN_MQ_TRANSACTION_AVERAGE_DURATION, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ApplicationMetricTable.MQ_TRANSACTION_CALLS, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ApplicationMetricTable.MQ_TRANSACTION_ERROR_CALLS, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ApplicationMetricTable.MQ_TRANSACTION_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ApplicationMetricTable.MQ_TRANSACTION_ERROR_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ApplicationMetricTable.MQ_TRANSACTION_AVERAGE_DURATION, H2ColumnDefine.Type.Bigint.name()));
 
-        addColumn(new H2ColumnDefine(ApplicationMetricTable.COLUMN_SATISFIED_COUNT, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ApplicationMetricTable.COLUMN_TOLERATING_COUNT, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ApplicationMetricTable.COLUMN_FRUSTRATED_COUNT, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ApplicationMetricTable.SATISFIED_COUNT, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ApplicationMetricTable.TOLERATING_COUNT, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ApplicationMetricTable.FRUSTRATED_COUNT, H2ColumnDefine.Type.Bigint.name()));
 
-        addColumn(new H2ColumnDefine(ApplicationMetricTable.COLUMN_TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ApplicationMetricTable.TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/ampp/AbstractApplicationMappingH2TableDefine.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/ampp/AbstractApplicationMappingH2TableDefine.java
index 2d3149934..164c16c95 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/ampp/AbstractApplicationMappingH2TableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/ampp/AbstractApplicationMappingH2TableDefine.java
@@ -27,15 +27,15 @@
  */
 public abstract class AbstractApplicationMappingH2TableDefine extends H2TableDefine {
 
-    public AbstractApplicationMappingH2TableDefine(String name) {
+    AbstractApplicationMappingH2TableDefine(String name) {
         super(name);
     }
 
     @Override public final void initialize() {
-        addColumn(new H2ColumnDefine(ApplicationMappingTable.COLUMN_ID, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(ApplicationMappingTable.COLUMN_METRIC_ID, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(ApplicationMappingTable.COLUMN_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(ApplicationMappingTable.COLUMN_MAPPING_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(ApplicationMappingTable.COLUMN_TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ApplicationMappingTable.ID, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(ApplicationMappingTable.METRIC_ID, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(ApplicationMappingTable.APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ApplicationMappingTable.MAPPING_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ApplicationMappingTable.TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/armp/AbstractApplicationReferenceMetricH2TableDefine.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/armp/AbstractApplicationReferenceMetricH2TableDefine.java
index 735692a0f..37b023f23 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/armp/AbstractApplicationReferenceMetricH2TableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/armp/AbstractApplicationReferenceMetricH2TableDefine.java
@@ -32,33 +32,33 @@
     }
 
     @Override public final void initialize() {
-        addColumn(new H2ColumnDefine(ApplicationReferenceMetricTable.COLUMN_ID, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(ApplicationReferenceMetricTable.COLUMN_METRIC_ID, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(ApplicationReferenceMetricTable.COLUMN_FRONT_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(ApplicationReferenceMetricTable.COLUMN_BEHIND_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(ApplicationReferenceMetricTable.COLUMN_SOURCE_VALUE, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ApplicationReferenceMetricTable.ID, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(ApplicationReferenceMetricTable.METRIC_ID, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(ApplicationReferenceMetricTable.FRONT_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ApplicationReferenceMetricTable.BEHIND_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ApplicationReferenceMetricTable.SOURCE_VALUE, H2ColumnDefine.Type.Int.name()));
 
-        addColumn(new H2ColumnDefine(ApplicationReferenceMetricTable.COLUMN_TRANSACTION_CALLS, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ApplicationReferenceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ApplicationReferenceMetricTable.COLUMN_TRANSACTION_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ApplicationReferenceMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ApplicationReferenceMetricTable.COLUMN_TRANSACTION_AVERAGE_DURATION, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ApplicationReferenceMetricTable.TRANSACTION_CALLS, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ApplicationReferenceMetricTable.TRANSACTION_ERROR_CALLS, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ApplicationReferenceMetricTable.TRANSACTION_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ApplicationReferenceMetricTable.TRANSACTION_ERROR_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ApplicationReferenceMetricTable.TRANSACTION_AVERAGE_DURATION, H2ColumnDefine.Type.Bigint.name()));
 
-        addColumn(new H2ColumnDefine(ApplicationReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_CALLS, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ApplicationReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_CALLS, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ApplicationReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ApplicationReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ApplicationReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_AVERAGE_DURATION, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ApplicationReferenceMetricTable.BUSINESS_TRANSACTION_CALLS, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ApplicationReferenceMetricTable.BUSINESS_TRANSACTION_ERROR_CALLS, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ApplicationReferenceMetricTable.BUSINESS_TRANSACTION_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ApplicationReferenceMetricTable.BUSINESS_TRANSACTION_ERROR_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ApplicationReferenceMetricTable.BUSINESS_TRANSACTION_AVERAGE_DURATION, H2ColumnDefine.Type.Bigint.name()));
 
-        addColumn(new H2ColumnDefine(ApplicationReferenceMetricTable.COLUMN_MQ_TRANSACTION_CALLS, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ApplicationReferenceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_CALLS, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ApplicationReferenceMetricTable.COLUMN_MQ_TRANSACTION_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ApplicationReferenceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ApplicationReferenceMetricTable.COLUMN_MQ_TRANSACTION_AVERAGE_DURATION, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ApplicationReferenceMetricTable.MQ_TRANSACTION_CALLS, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ApplicationReferenceMetricTable.MQ_TRANSACTION_ERROR_CALLS, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ApplicationReferenceMetricTable.MQ_TRANSACTION_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ApplicationReferenceMetricTable.MQ_TRANSACTION_ERROR_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ApplicationReferenceMetricTable.MQ_TRANSACTION_AVERAGE_DURATION, H2ColumnDefine.Type.Bigint.name()));
 
-        addColumn(new H2ColumnDefine(ApplicationReferenceMetricTable.COLUMN_SATISFIED_COUNT, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ApplicationReferenceMetricTable.COLUMN_TOLERATING_COUNT, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ApplicationReferenceMetricTable.COLUMN_FRUSTRATED_COUNT, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ApplicationReferenceMetricTable.COLUMN_TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ApplicationReferenceMetricTable.SATISFIED_COUNT, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ApplicationReferenceMetricTable.TOLERATING_COUNT, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ApplicationReferenceMetricTable.FRUSTRATED_COUNT, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ApplicationReferenceMetricTable.TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/cpu/AbstractCpuMetricH2TableDefine.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/cpu/AbstractCpuMetricH2TableDefine.java
index 72d8b11dd..f482fbed6 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/cpu/AbstractCpuMetricH2TableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/cpu/AbstractCpuMetricH2TableDefine.java
@@ -32,11 +32,11 @@
     }
 
     @Override public final void initialize() {
-        addColumn(new H2ColumnDefine(CpuMetricTable.COLUMN_ID, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(CpuMetricTable.COLUMN_METRIC_ID, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(CpuMetricTable.COLUMN_INSTANCE_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(CpuMetricTable.COLUMN_USAGE_PERCENT, H2ColumnDefine.Type.Double.name()));
-        addColumn(new H2ColumnDefine(CpuMetricTable.COLUMN_TIMES, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(CpuMetricTable.COLUMN_TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(CpuMetricTable.ID, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(CpuMetricTable.METRIC_ID, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(CpuMetricTable.INSTANCE_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(CpuMetricTable.USAGE_PERCENT, H2ColumnDefine.Type.Double.name()));
+        addColumn(new H2ColumnDefine(CpuMetricTable.TIMES, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(CpuMetricTable.TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/gc/AbstractGCMetricH2TableDefine.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/gc/AbstractGCMetricH2TableDefine.java
index aa8a932aa..a9655b5cb 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/gc/AbstractGCMetricH2TableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/gc/AbstractGCMetricH2TableDefine.java
@@ -27,17 +27,17 @@
  */
 public abstract class AbstractGCMetricH2TableDefine extends H2TableDefine {
 
-    public AbstractGCMetricH2TableDefine(String name) {
+    AbstractGCMetricH2TableDefine(String name) {
         super(name);
     }
 
     @Override public final void initialize() {
-        addColumn(new H2ColumnDefine(GCMetricTable.COLUMN_ID, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(GCMetricTable.COLUMN_METRIC_ID, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(GCMetricTable.COLUMN_INSTANCE_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(GCMetricTable.COLUMN_PHRASE, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(GCMetricTable.COLUMN_COUNT, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(GCMetricTable.COLUMN_TIMES, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(GCMetricTable.COLUMN_TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(GCMetricTable.ID, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(GCMetricTable.METRIC_ID, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(GCMetricTable.INSTANCE_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(GCMetricTable.PHRASE, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(GCMetricTable.COUNT, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(GCMetricTable.TIMES, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(GCMetricTable.TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/imp/AbstractInstanceMetricH2TableDefine.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/imp/AbstractInstanceMetricH2TableDefine.java
index 226f6bf7e..62e41208a 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/imp/AbstractInstanceMetricH2TableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/imp/AbstractInstanceMetricH2TableDefine.java
@@ -32,30 +32,30 @@
     }
 
     @Override public final void initialize() {
-        addColumn(new H2ColumnDefine(InstanceMetricTable.COLUMN_ID, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(InstanceMetricTable.COLUMN_METRIC_ID, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(InstanceMetricTable.COLUMN_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(InstanceMetricTable.COLUMN_INSTANCE_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(InstanceMetricTable.COLUMN_SOURCE_VALUE, H2ColumnDefine.Type.Int.name()));
-
-        addColumn(new H2ColumnDefine(InstanceMetricTable.COLUMN_TRANSACTION_CALLS, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(InstanceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(InstanceMetricTable.COLUMN_TRANSACTION_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(InstanceMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(InstanceMetricTable.COLUMN_TRANSACTION_AVERAGE_DURATION, H2ColumnDefine.Type.Bigint.name()));
-
-        addColumn(new H2ColumnDefine(InstanceMetricTable.COLUMN_BUSINESS_TRANSACTION_CALLS, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(InstanceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_CALLS, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(InstanceMetricTable.COLUMN_BUSINESS_TRANSACTION_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(InstanceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(InstanceMetricTable.COLUMN_BUSINESS_TRANSACTION_AVERAGE_DURATION, H2ColumnDefine.Type.Bigint.name()));
-
-        addColumn(new H2ColumnDefine(InstanceMetricTable.COLUMN_MQ_TRANSACTION_CALLS, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(InstanceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_CALLS, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(InstanceMetricTable.COLUMN_MQ_TRANSACTION_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(InstanceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(InstanceMetricTable.COLUMN_MQ_TRANSACTION_AVERAGE_DURATION, H2ColumnDefine.Type.Bigint.name()));
-
-        addColumn(new H2ColumnDefine(InstanceMetricTable.COLUMN_TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(InstanceMetricTable.ID, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(InstanceMetricTable.METRIC_ID, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(InstanceMetricTable.APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(InstanceMetricTable.INSTANCE_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(InstanceMetricTable.SOURCE_VALUE, H2ColumnDefine.Type.Int.name()));
+
+        addColumn(new H2ColumnDefine(InstanceMetricTable.TRANSACTION_CALLS, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(InstanceMetricTable.TRANSACTION_ERROR_CALLS, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(InstanceMetricTable.TRANSACTION_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(InstanceMetricTable.TRANSACTION_ERROR_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(InstanceMetricTable.TRANSACTION_AVERAGE_DURATION, H2ColumnDefine.Type.Bigint.name()));
+
+        addColumn(new H2ColumnDefine(InstanceMetricTable.BUSINESS_TRANSACTION_CALLS, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(InstanceMetricTable.BUSINESS_TRANSACTION_ERROR_CALLS, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(InstanceMetricTable.BUSINESS_TRANSACTION_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(InstanceMetricTable.BUSINESS_TRANSACTION_ERROR_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(InstanceMetricTable.BUSINESS_TRANSACTION_AVERAGE_DURATION, H2ColumnDefine.Type.Bigint.name()));
+
+        addColumn(new H2ColumnDefine(InstanceMetricTable.MQ_TRANSACTION_CALLS, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(InstanceMetricTable.MQ_TRANSACTION_ERROR_CALLS, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(InstanceMetricTable.MQ_TRANSACTION_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(InstanceMetricTable.MQ_TRANSACTION_ERROR_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(InstanceMetricTable.MQ_TRANSACTION_AVERAGE_DURATION, H2ColumnDefine.Type.Bigint.name()));
+
+        addColumn(new H2ColumnDefine(InstanceMetricTable.TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/impp/AbstractInstanceMappingH2TableDefine.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/impp/AbstractInstanceMappingH2TableDefine.java
index 051e0eae8..02e7ecee6 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/impp/AbstractInstanceMappingH2TableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/impp/AbstractInstanceMappingH2TableDefine.java
@@ -32,11 +32,11 @@
     }
 
     @Override public final void initialize() {
-        addColumn(new H2ColumnDefine(InstanceMappingTable.COLUMN_ID, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(InstanceMappingTable.COLUMN_METRIC_ID, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(InstanceMappingTable.COLUMN_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(InstanceMappingTable.COLUMN_INSTANCE_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(InstanceMappingTable.COLUMN_ADDRESS_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(InstanceMappingTable.COLUMN_TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(InstanceMappingTable.ID, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(InstanceMappingTable.METRIC_ID, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(InstanceMappingTable.APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(InstanceMappingTable.INSTANCE_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(InstanceMappingTable.ADDRESS_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(InstanceMappingTable.TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/irmp/AbstractInstanceReferenceMetricH2TableDefine.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/irmp/AbstractInstanceReferenceMetricH2TableDefine.java
index 8f22a33c1..710260618 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/irmp/AbstractInstanceReferenceMetricH2TableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/irmp/AbstractInstanceReferenceMetricH2TableDefine.java
@@ -32,32 +32,32 @@
     }
 
     @Override public final void initialize() {
-        addColumn(new H2ColumnDefine(InstanceReferenceMetricTable.COLUMN_ID, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(InstanceReferenceMetricTable.COLUMN_METRIC_ID, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(InstanceReferenceMetricTable.COLUMN_FRONT_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(InstanceReferenceMetricTable.COLUMN_FRONT_INSTANCE_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(InstanceReferenceMetricTable.COLUMN_BEHIND_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(InstanceReferenceMetricTable.COLUMN_BEHIND_INSTANCE_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(InstanceReferenceMetricTable.COLUMN_SOURCE_VALUE, H2ColumnDefine.Type.Int.name()));
-
-        addColumn(new H2ColumnDefine(InstanceReferenceMetricTable.COLUMN_TRANSACTION_CALLS, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(InstanceReferenceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(InstanceReferenceMetricTable.COLUMN_TRANSACTION_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(InstanceReferenceMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(InstanceReferenceMetricTable.COLUMN_TRANSACTION_AVERAGE_DURATION, H2ColumnDefine.Type.Bigint.name()));
-
-        addColumn(new H2ColumnDefine(InstanceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_CALLS, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(InstanceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_CALLS, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(InstanceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(InstanceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(InstanceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_AVERAGE_DURATION, H2ColumnDefine.Type.Bigint.name()));
-
-        addColumn(new H2ColumnDefine(InstanceReferenceMetricTable.COLUMN_MQ_TRANSACTION_CALLS, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(InstanceReferenceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_CALLS, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(InstanceReferenceMetricTable.COLUMN_MQ_TRANSACTION_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(InstanceReferenceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(InstanceReferenceMetricTable.COLUMN_MQ_TRANSACTION_AVERAGE_DURATION, H2ColumnDefine.Type.Bigint.name()));
-
-        addColumn(new H2ColumnDefine(InstanceReferenceMetricTable.COLUMN_TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(InstanceReferenceMetricTable.ID, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(InstanceReferenceMetricTable.METRIC_ID, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(InstanceReferenceMetricTable.FRONT_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(InstanceReferenceMetricTable.FRONT_INSTANCE_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(InstanceReferenceMetricTable.BEHIND_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(InstanceReferenceMetricTable.BEHIND_INSTANCE_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(InstanceReferenceMetricTable.SOURCE_VALUE, H2ColumnDefine.Type.Int.name()));
+
+        addColumn(new H2ColumnDefine(InstanceReferenceMetricTable.TRANSACTION_CALLS, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(InstanceReferenceMetricTable.TRANSACTION_ERROR_CALLS, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(InstanceReferenceMetricTable.TRANSACTION_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(InstanceReferenceMetricTable.TRANSACTION_ERROR_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(InstanceReferenceMetricTable.TRANSACTION_AVERAGE_DURATION, H2ColumnDefine.Type.Bigint.name()));
+
+        addColumn(new H2ColumnDefine(InstanceReferenceMetricTable.BUSINESS_TRANSACTION_CALLS, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(InstanceReferenceMetricTable.BUSINESS_TRANSACTION_ERROR_CALLS, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(InstanceReferenceMetricTable.BUSINESS_TRANSACTION_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(InstanceReferenceMetricTable.BUSINESS_TRANSACTION_ERROR_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(InstanceReferenceMetricTable.BUSINESS_TRANSACTION_AVERAGE_DURATION, H2ColumnDefine.Type.Bigint.name()));
+
+        addColumn(new H2ColumnDefine(InstanceReferenceMetricTable.MQ_TRANSACTION_CALLS, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(InstanceReferenceMetricTable.MQ_TRANSACTION_ERROR_CALLS, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(InstanceReferenceMetricTable.MQ_TRANSACTION_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(InstanceReferenceMetricTable.MQ_TRANSACTION_ERROR_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(InstanceReferenceMetricTable.MQ_TRANSACTION_AVERAGE_DURATION, H2ColumnDefine.Type.Bigint.name()));
+
+        addColumn(new H2ColumnDefine(InstanceReferenceMetricTable.TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/memory/AbstractMemoryMetricH2TableDefine.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/memory/AbstractMemoryMetricH2TableDefine.java
index d836756ba..9ef936fc6 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/memory/AbstractMemoryMetricH2TableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/memory/AbstractMemoryMetricH2TableDefine.java
@@ -32,15 +32,15 @@
     }
 
     @Override public final void initialize() {
-        addColumn(new H2ColumnDefine(MemoryMetricTable.COLUMN_ID, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(MemoryMetricTable.COLUMN_METRIC_ID, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(MemoryMetricTable.COLUMN_INSTANCE_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(MemoryMetricTable.COLUMN_IS_HEAP, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(MemoryMetricTable.COLUMN_INIT, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(MemoryMetricTable.COLUMN_MAX, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(MemoryMetricTable.COLUMN_USED, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(MemoryMetricTable.COLUMN_COMMITTED, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(MemoryMetricTable.COLUMN_TIMES, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(MemoryMetricTable.COLUMN_TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(MemoryMetricTable.ID, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(MemoryMetricTable.METRIC_ID, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(MemoryMetricTable.INSTANCE_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(MemoryMetricTable.IS_HEAP, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(MemoryMetricTable.INIT, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(MemoryMetricTable.MAX, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(MemoryMetricTable.USED, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(MemoryMetricTable.COMMITTED, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(MemoryMetricTable.TIMES, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(MemoryMetricTable.TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/mpool/AbstractMemoryPoolMetricH2TableDefine.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/mpool/AbstractMemoryPoolMetricH2TableDefine.java
index 99e7fa508..b094f9bb9 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/mpool/AbstractMemoryPoolMetricH2TableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/mpool/AbstractMemoryPoolMetricH2TableDefine.java
@@ -27,20 +27,20 @@
  */
 public abstract class AbstractMemoryPoolMetricH2TableDefine extends H2TableDefine {
 
-    public AbstractMemoryPoolMetricH2TableDefine(String name) {
+    AbstractMemoryPoolMetricH2TableDefine(String name) {
         super(name);
     }
 
     @Override public final void initialize() {
-        addColumn(new H2ColumnDefine(MemoryPoolMetricTable.COLUMN_ID, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(MemoryPoolMetricTable.COLUMN_METRIC_ID, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(MemoryPoolMetricTable.COLUMN_INSTANCE_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(MemoryPoolMetricTable.COLUMN_POOL_TYPE, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(MemoryPoolMetricTable.COLUMN_INIT, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(MemoryPoolMetricTable.COLUMN_MAX, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(MemoryPoolMetricTable.COLUMN_USED, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(MemoryPoolMetricTable.COLUMN_COMMITTED, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(MemoryPoolMetricTable.COLUMN_TIMES, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(MemoryPoolMetricTable.COLUMN_TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(MemoryPoolMetricTable.ID, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(MemoryPoolMetricTable.METRIC_ID, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(MemoryPoolMetricTable.INSTANCE_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(MemoryPoolMetricTable.POOL_TYPE, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(MemoryPoolMetricTable.INIT, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(MemoryPoolMetricTable.MAX, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(MemoryPoolMetricTable.USED, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(MemoryPoolMetricTable.COMMITTED, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(MemoryPoolMetricTable.TIMES, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(MemoryPoolMetricTable.TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/register/ApplicationH2TableDefine.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/register/ApplicationH2TableDefine.java
index c4bd87319..bd47a3749 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/register/ApplicationH2TableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/register/ApplicationH2TableDefine.java
@@ -32,11 +32,10 @@ public ApplicationH2TableDefine() {
     }
 
     @Override public void initialize() {
-        addColumn(new H2ColumnDefine(ApplicationTable.COLUMN_ID, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(ApplicationTable.COLUMN_APPLICATION_CODE, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(ApplicationTable.COLUMN_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(ApplicationTable.COLUMN_LAYER, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(ApplicationTable.COLUMN_ADDRESS_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(ApplicationTable.COLUMN_IS_ADDRESS, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ApplicationTable.ID, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(ApplicationTable.APPLICATION_CODE, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(ApplicationTable.APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ApplicationTable.ADDRESS_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ApplicationTable.IS_ADDRESS, H2ColumnDefine.Type.Int.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/register/InstanceH2TableDefine.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/register/InstanceH2TableDefine.java
index 54789fa01..9c89c665a 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/register/InstanceH2TableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/register/InstanceH2TableDefine.java
@@ -32,15 +32,15 @@ public InstanceH2TableDefine() {
     }
 
     @Override public void initialize() {
-        addColumn(new H2ColumnDefine(InstanceTable.COLUMN_ID, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(InstanceTable.COLUMN_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(InstanceTable.COLUMN_APPLICATION_CODE, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(InstanceTable.COLUMN_AGENT_UUID, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(InstanceTable.COLUMN_REGISTER_TIME, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(InstanceTable.COLUMN_INSTANCE_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(InstanceTable.COLUMN_HEARTBEAT_TIME, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(InstanceTable.COLUMN_OS_INFO, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(InstanceTable.COLUMN_ADDRESS_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(InstanceTable.COLUMN_IS_ADDRESS, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(InstanceTable.ID, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(InstanceTable.APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(InstanceTable.APPLICATION_CODE, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(InstanceTable.AGENT_UUID, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(InstanceTable.REGISTER_TIME, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(InstanceTable.INSTANCE_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(InstanceTable.HEARTBEAT_TIME, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(InstanceTable.OS_INFO, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(InstanceTable.ADDRESS_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(InstanceTable.IS_ADDRESS, H2ColumnDefine.Type.Int.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/register/NetworkAddressH2TableDefine.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/register/NetworkAddressH2TableDefine.java
index 0b21be38d..bd2817864 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/register/NetworkAddressH2TableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/register/NetworkAddressH2TableDefine.java
@@ -32,10 +32,10 @@ public NetworkAddressH2TableDefine() {
     }
 
     @Override public void initialize() {
-        addColumn(new H2ColumnDefine(NetworkAddressTable.COLUMN_ID, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(NetworkAddressTable.COLUMN_NETWORK_ADDRESS, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(NetworkAddressTable.COLUMN_SPAN_LAYER, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(NetworkAddressTable.COLUMN_SERVER_TYPE, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(NetworkAddressTable.COLUMN_ADDRESS_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(NetworkAddressTable.ID, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(NetworkAddressTable.NETWORK_ADDRESS, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(NetworkAddressTable.SRC_SPAN_LAYER, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(NetworkAddressTable.SERVER_TYPE, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(NetworkAddressTable.ADDRESS_ID, H2ColumnDefine.Type.Int.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/register/ServiceNameH2TableDefine.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/register/ServiceNameH2TableDefine.java
index 743df3157..eaae57d3b 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/register/ServiceNameH2TableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/register/ServiceNameH2TableDefine.java
@@ -32,10 +32,10 @@ public ServiceNameH2TableDefine() {
     }
 
     @Override public void initialize() {
-        addColumn(new H2ColumnDefine(ServiceNameTable.COLUMN_ID, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(ServiceNameTable.COLUMN_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(ServiceNameTable.COLUMN_SERVICE_NAME, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(ServiceNameTable.COLUMN_SERVICE_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(ServiceNameTable.COLUMN_SRC_SPAN_TYPE, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ServiceNameTable.ID, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(ServiceNameTable.APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ServiceNameTable.SERVICE_NAME, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(ServiceNameTable.SERVICE_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ServiceNameTable.SRC_SPAN_TYPE, H2ColumnDefine.Type.Int.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/smp/AbstractServiceMetricH2TableDefine.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/smp/AbstractServiceMetricH2TableDefine.java
index e3f107865..73e5f4823 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/smp/AbstractServiceMetricH2TableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/smp/AbstractServiceMetricH2TableDefine.java
@@ -32,31 +32,31 @@
     }
 
     @Override public final void initialize() {
-        addColumn(new H2ColumnDefine(ServiceMetricTable.COLUMN_ID, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(ServiceMetricTable.COLUMN_METRIC_ID, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(ServiceMetricTable.COLUMN_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(ServiceMetricTable.COLUMN_INSTANCE_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(ServiceMetricTable.COLUMN_SERVICE_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(ServiceMetricTable.COLUMN_SOURCE_VALUE, H2ColumnDefine.Type.Int.name()));
-
-        addColumn(new H2ColumnDefine(ServiceMetricTable.COLUMN_TRANSACTION_CALLS, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ServiceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ServiceMetricTable.COLUMN_TRANSACTION_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ServiceMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ServiceMetricTable.COLUMN_TRANSACTION_AVERAGE_DURATION, H2ColumnDefine.Type.Bigint.name()));
-
-        addColumn(new H2ColumnDefine(ServiceMetricTable.COLUMN_BUSINESS_TRANSACTION_CALLS, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ServiceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_CALLS, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ServiceMetricTable.COLUMN_BUSINESS_TRANSACTION_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ServiceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ServiceMetricTable.COLUMN_BUSINESS_TRANSACTION_AVERAGE_DURATION, H2ColumnDefine.Type.Bigint.name()));
-
-        addColumn(new H2ColumnDefine(ServiceMetricTable.COLUMN_MQ_TRANSACTION_CALLS, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ServiceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_CALLS, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ServiceMetricTable.COLUMN_MQ_TRANSACTION_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ServiceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ServiceMetricTable.COLUMN_MQ_TRANSACTION_AVERAGE_DURATION, H2ColumnDefine.Type.Bigint.name()));
-
-        addColumn(new H2ColumnDefine(ServiceMetricTable.COLUMN_TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ServiceMetricTable.ID, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(ServiceMetricTable.METRIC_ID, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(ServiceMetricTable.APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ServiceMetricTable.INSTANCE_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ServiceMetricTable.SERVICE_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ServiceMetricTable.SOURCE_VALUE, H2ColumnDefine.Type.Int.name()));
+
+        addColumn(new H2ColumnDefine(ServiceMetricTable.TRANSACTION_CALLS, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ServiceMetricTable.TRANSACTION_ERROR_CALLS, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ServiceMetricTable.TRANSACTION_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ServiceMetricTable.TRANSACTION_ERROR_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ServiceMetricTable.TRANSACTION_AVERAGE_DURATION, H2ColumnDefine.Type.Bigint.name()));
+
+        addColumn(new H2ColumnDefine(ServiceMetricTable.BUSINESS_TRANSACTION_CALLS, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ServiceMetricTable.BUSINESS_TRANSACTION_ERROR_CALLS, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ServiceMetricTable.BUSINESS_TRANSACTION_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ServiceMetricTable.BUSINESS_TRANSACTION_ERROR_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ServiceMetricTable.BUSINESS_TRANSACTION_AVERAGE_DURATION, H2ColumnDefine.Type.Bigint.name()));
+
+        addColumn(new H2ColumnDefine(ServiceMetricTable.MQ_TRANSACTION_CALLS, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ServiceMetricTable.MQ_TRANSACTION_ERROR_CALLS, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ServiceMetricTable.MQ_TRANSACTION_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ServiceMetricTable.MQ_TRANSACTION_ERROR_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ServiceMetricTable.MQ_TRANSACTION_AVERAGE_DURATION, H2ColumnDefine.Type.Bigint.name()));
+
+        addColumn(new H2ColumnDefine(ServiceMetricTable.TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
     }
 }
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/srmp/AbstractServiceReferenceMetricH2TableDefine.java b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/srmp/AbstractServiceReferenceMetricH2TableDefine.java
index df2eb88a4..999c5f30c 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/srmp/AbstractServiceReferenceMetricH2TableDefine.java
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/src/main/java/org/apache/skywalking/apm/collector/storage/h2/define/srmp/AbstractServiceReferenceMetricH2TableDefine.java
@@ -27,40 +27,40 @@
  */
 public abstract class AbstractServiceReferenceMetricH2TableDefine extends H2TableDefine {
 
-    public AbstractServiceReferenceMetricH2TableDefine(String name) {
+    AbstractServiceReferenceMetricH2TableDefine(String name) {
         super(name);
     }
 
     @Override public final void initialize() {
-        addColumn(new H2ColumnDefine(ServiceReferenceMetricTable.COLUMN_ID, H2ColumnDefine.Type.Varchar.name()));
-        addColumn(new H2ColumnDefine(ServiceReferenceMetricTable.COLUMN_METRIC_ID, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(ServiceReferenceMetricTable.ID, H2ColumnDefine.Type.Varchar.name()));
+        addColumn(new H2ColumnDefine(ServiceReferenceMetricTable.METRIC_ID, H2ColumnDefine.Type.Varchar.name()));
 
-        addColumn(new H2ColumnDefine(ServiceReferenceMetricTable.COLUMN_FRONT_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(ServiceReferenceMetricTable.COLUMN_FRONT_INSTANCE_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(ServiceReferenceMetricTable.COLUMN_FRONT_SERVICE_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(ServiceReferenceMetricTable.COLUMN_BEHIND_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(ServiceReferenceMetricTable.COLUMN_BEHIND_INSTANCE_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(ServiceReferenceMetricTable.COLUMN_BEHIND_SERVICE_ID, H2ColumnDefine.Type.Int.name()));
-        addColumn(new H2ColumnDefine(ServiceReferenceMetricTable.COLUMN_SOURCE_VALUE, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ServiceReferenceMetricTable.FRONT_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ServiceReferenceMetricTable.FRONT_INSTANCE_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ServiceReferenceMetricTable.FRONT_SERVICE_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ServiceReferenceMetricTable.BEHIND_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ServiceReferenceMetricTable.BEHIND_INSTANCE_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ServiceReferenceMetricTable.BEHIND_SERVICE_ID, H2ColumnDefine.Type.Int.name()));
+        addColumn(new H2ColumnDefine(ServiceReferenceMetricTable.SOURCE_VALUE, H2ColumnDefine.Type.Int.name()));
 
-        addColumn(new H2ColumnDefine(ServiceReferenceMetricTable.COLUMN_TRANSACTION_CALLS, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ServiceReferenceMetricTable.COLUMN_TRANSACTION_ERROR_CALLS, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ServiceReferenceMetricTable.COLUMN_TRANSACTION_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ServiceReferenceMetricTable.COLUMN_TRANSACTION_ERROR_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ServiceReferenceMetricTable.COLUMN_TRANSACTION_AVERAGE_DURATION, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ServiceReferenceMetricTable.TRANSACTION_CALLS, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ServiceReferenceMetricTable.TRANSACTION_ERROR_CALLS, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ServiceReferenceMetricTable.TRANSACTION_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ServiceReferenceMetricTable.TRANSACTION_ERROR_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ServiceReferenceMetricTable.TRANSACTION_AVERAGE_DURATION, H2ColumnDefine.Type.Bigint.name()));
 
-        addColumn(new H2ColumnDefine(ServiceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_CALLS, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ServiceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_CALLS, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ServiceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ServiceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_ERROR_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ServiceReferenceMetricTable.COLUMN_BUSINESS_TRANSACTION_AVERAGE_DURATION, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ServiceReferenceMetricTable.BUSINESS_TRANSACTION_CALLS, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ServiceReferenceMetricTable.BUSINESS_TRANSACTION_ERROR_CALLS, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ServiceReferenceMetricTable.BUSINESS_TRANSACTION_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ServiceReferenceMetricTable.BUSINESS_TRANSACTION_ERROR_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ServiceReferenceMetricTable.BUSINESS_TRANSACTION_AVERAGE_DURATION, H2ColumnDefine.Type.Bigint.name()));
 
-        addColumn(new H2ColumnDefine(ServiceReferenceMetricTable.COLUMN_MQ_TRANSACTION_CALLS, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ServiceReferenceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_CALLS, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ServiceReferenceMetricTable.COLUMN_MQ_TRANSACTION_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ServiceReferenceMetricTable.COLUMN_MQ_TRANSACTION_ERROR_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
-        addColumn(new H2ColumnDefine(ServiceReferenceMetricTable.COLUMN_MQ_TRANSACTION_AVERAGE_DURATION, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ServiceReferenceMetricTable.MQ_TRANSACTION_CALLS, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ServiceReferenceMetricTable.MQ_TRANSACTION_ERROR_CALLS, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ServiceReferenceMetricTable.MQ_TRANSACTION_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ServiceReferenceMetricTable.MQ_TRANSACTION_ERROR_DURATION_SUM, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ServiceReferenceMetricTable.MQ_TRANSACTION_AVERAGE_DURATION, H2ColumnDefine.Type.Bigint.name()));
 
-        addColumn(new H2ColumnDefine(ServiceReferenceMetricTable.COLUMN_TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
+        addColumn(new H2ColumnDefine(ServiceReferenceMetricTable.TIME_BUCKET, H2ColumnDefine.Type.Bigint.name()));
     }
 }


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services