diff --git a/ambari-metrics-timelineservice/conf/unix/ambari-metrics-collector b/ambari-metrics-timelineservice/conf/unix/ambari-metrics-collector
index 58984a1..ce75742 100644
--- a/ambari-metrics-timelineservice/conf/unix/ambari-metrics-collector
+++ b/ambari-metrics-timelineservice/conf/unix/ambari-metrics-collector
@@ -32,8 +32,8 @@
 
 HBASE_CMD=${HBASE_DIR}/bin/hbase
 
-METRIC_TABLES=(METRIC_AGGREGATE_DAILY METRIC_AGGREGATE_HOURLY METRIC_AGGREGATE_MINUTE METRIC_AGGREGATE METRIC_RECORD METRIC_RECORD_DAILY METRIC_RECORD_HOURLY METRIC_RECORD_MINUTE)
-METRIC_FIFO_COMPACTION_TABLES=(METRIC_AGGREGATE METRIC_RECORD METRIC_RECORD_MINUTE)
+METRIC_TABLES=(METRIC_AGGREGATE_DAILY_UUID METRIC_AGGREGATE_HOURLY_UUID METRIC_AGGREGATE_MINUTE_UUID METRIC_AGGREGATE_UUID METRIC_RECORD_UUID METRIC_RECORD_DAILY_UUID METRIC_RECORD_HOURLY_UUID METRIC_RECORD_MINUTE_UUID)
+METRIC_FIFO_COMPACTION_TABLES=(METRIC_AGGREGATE_UUID METRIC_RECORD_UUID METRIC_RECORD_MINUTE_UUID)
 METRIC_COLLECTOR=ambari-metrics-collector
 
 NORMALIZER_ENABLED_STUB_FILE=/var/run/ambari-metrics-collector/normalizer_enabled
diff --git a/ambari-metrics-timelineservice/src/main/java/org/apache/ambari/metrics/core/timeline/query/PhoenixTransactSQL.java b/ambari-metrics-timelineservice/src/main/java/org/apache/ambari/metrics/core/timeline/query/PhoenixTransactSQL.java
index eda6842..f76933a 100644
--- a/ambari-metrics-timelineservice/src/main/java/org/apache/ambari/metrics/core/timeline/query/PhoenixTransactSQL.java
+++ b/ambari-metrics-timelineservice/src/main/java/org/apache/ambari/metrics/core/timeline/query/PhoenixTransactSQL.java
@@ -44,7 +44,7 @@
    * Create table to store individual metric records.
    */
   public static final String CREATE_METRICS_TABLE_SQL = "CREATE TABLE IF NOT " +
-    "EXISTS METRIC_RECORD (UUID BINARY(32) NOT NULL, " +
+    "EXISTS METRIC_RECORD_UUID (UUID BINARY(32) NOT NULL, " +
     "SERVER_TIME BIGINT NOT NULL, " +
     "METRIC_SUM DOUBLE, " +
     "METRIC_COUNT UNSIGNED_INT, " +
@@ -140,7 +140,7 @@
 
   //////// METATDATA TABLES ////////
   public static final String CREATE_METRICS_METADATA_TABLE_SQL =
-    "CREATE TABLE IF NOT EXISTS METRICS_METADATA " +
+    "CREATE TABLE IF NOT EXISTS METRICS_METADATA_UUID " +
       "(METRIC_NAME VARCHAR, " +
       "APP_ID VARCHAR, " +
       "INSTANCE_ID VARCHAR, " +
@@ -154,7 +154,7 @@
       "DATA_BLOCK_ENCODING='%s', COMPRESSION='%s'";
 
   public static final String CREATE_HOSTED_APPS_METADATA_TABLE_SQL =
-    "CREATE TABLE IF NOT EXISTS HOSTED_APPS_METADATA " +
+    "CREATE TABLE IF NOT EXISTS HOSTED_APPS_METADATA_UUID " +
       "(HOSTNAME VARCHAR, UUID BINARY(16), APP_IDS VARCHAR, " +
       "CONSTRAINT pk PRIMARY KEY (HOSTNAME))" +
       "DATA_BLOCK_ENCODING='%s', COMPRESSION='%s'";
@@ -166,7 +166,7 @@
       "DATA_BLOCK_ENCODING='%s', COMPRESSION='%s'";
 
   public static final String ALTER_METRICS_METADATA_TABLE =
-    "ALTER TABLE METRICS_METADATA ADD IF NOT EXISTS IS_WHITELISTED BOOLEAN";
+    "ALTER TABLE METRICS_METADATA_UUID ADD IF NOT EXISTS IS_WHITELISTED BOOLEAN";
 
   ////////////////////////////////
 
@@ -253,12 +253,12 @@
     "(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
 
   public static final String UPSERT_METADATA_SQL =
-    "UPSERT INTO METRICS_METADATA (METRIC_NAME, APP_ID, INSTANCE_ID, UUID, UNITS, TYPE, " +
+    "UPSERT INTO METRICS_METADATA_UUID (METRIC_NAME, APP_ID, INSTANCE_ID, UUID, UNITS, TYPE, " +
       "START_TIME, SUPPORTS_AGGREGATION, IS_WHITELISTED) " +
       "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)";
 
   public static final String UPSERT_HOSTED_APPS_METADATA_SQL =
-    "UPSERT INTO HOSTED_APPS_METADATA (HOSTNAME, UUID, APP_IDS) VALUES (?, ?, ?)";
+    "UPSERT INTO HOSTED_APPS_METADATA_UUID (HOSTNAME, UUID, APP_IDS) VALUES (?, ?, ?)";
 
   public static final String UPSERT_INSTANCE_HOST_METADATA_SQL =
     "UPSERT INTO INSTANCE_HOST_METADATA (INSTANCE_ID, HOSTNAME) VALUES (?, ?)";
@@ -364,10 +364,10 @@
 
   public static final String GET_METRIC_METADATA_SQL = "SELECT " +
     "METRIC_NAME, APP_ID, INSTANCE_ID, UUID, UNITS, TYPE, START_TIME, " +
-    "SUPPORTS_AGGREGATION, IS_WHITELISTED FROM METRICS_METADATA";
+    "SUPPORTS_AGGREGATION, IS_WHITELISTED FROM METRICS_METADATA_UUID";
 
   public static final String GET_HOSTED_APPS_METADATA_SQL = "SELECT " +
-    "HOSTNAME, UUID, APP_IDS FROM HOSTED_APPS_METADATA";
+    "HOSTNAME, UUID, APP_IDS FROM HOSTED_APPS_METADATA_UUID";
 
   public static final String GET_INSTANCE_HOST_METADATA_SQL = "SELECT " +
     "INSTANCE_ID, HOSTNAME FROM INSTANCE_HOST_METADATA";
@@ -423,26 +423,43 @@
     "MAX(METRIC_MAX), MIN(METRIC_MIN) FROM %s WHERE METRIC_NAME LIKE %s AND SERVER_TIME > %s AND " +
     "SERVER_TIME <= %s GROUP BY METRIC_NAME, APP_ID, INSTANCE_ID, UNITS";
 
-  public static final String METRICS_RECORD_TABLE_NAME = "METRIC_RECORD";
-
   public static final String CONTAINER_METRICS_TABLE_NAME = "CONTAINER_METRICS";
 
-  public static final String METRICS_AGGREGATE_MINUTE_TABLE_NAME =
+  public static final String METRICS_RECORD_V1_TABLE_NAME = "METRIC_RECORD";
+
+  public static final String METRICS_AGGREGATE_MINUTE_V1_TABLE_NAME =
     "METRIC_RECORD_MINUTE";
-  public static final String METRICS_AGGREGATE_HOURLY_TABLE_NAME =
+  public static final String METRICS_AGGREGATE_HOURLY_V1_TABLE_NAME =
     "METRIC_RECORD_HOURLY";
-  public static final String METRICS_AGGREGATE_DAILY_TABLE_NAME =
+  public static final String METRICS_AGGREGATE_DAILY_V1_TABLE_NAME =
     "METRIC_RECORD_DAILY";
-  public static final String METRICS_CLUSTER_AGGREGATE_TABLE_NAME =
+  public static final String METRICS_CLUSTER_AGGREGATE_V1_TABLE_NAME =
     "METRIC_AGGREGATE";
-  public static final String METRICS_CLUSTER_AGGREGATE_MINUTE_TABLE_NAME =
+  public static final String METRICS_CLUSTER_AGGREGATE_MINUTE_V1_TABLE_NAME =
     "METRIC_AGGREGATE_MINUTE";
-  public static final String METRICS_CLUSTER_AGGREGATE_HOURLY_TABLE_NAME =
+  public static final String METRICS_CLUSTER_AGGREGATE_HOURLY_V1_TABLE_NAME =
     "METRIC_AGGREGATE_HOURLY";
-  public static final String METRICS_CLUSTER_AGGREGATE_DAILY_TABLE_NAME =
+  public static final String METRICS_CLUSTER_AGGREGATE_DAILY_V1_TABLE_NAME =
     "METRIC_AGGREGATE_DAILY";
 
-  public static final Pattern PHOENIX_TABLES_REGEX_PATTERN = Pattern.compile("METRIC_");
+  public static final String METRICS_RECORD_TABLE_NAME = "METRIC_RECORD_UUID";
+
+  public static final String METRICS_AGGREGATE_MINUTE_TABLE_NAME =
+    "METRIC_RECORD_MINUTE_UUID";
+  public static final String METRICS_AGGREGATE_HOURLY_TABLE_NAME =
+    "METRIC_RECORD_HOURLY_UUID";
+  public static final String METRICS_AGGREGATE_DAILY_TABLE_NAME =
+    "METRIC_RECORD_DAILY_UUID";
+  public static final String METRICS_CLUSTER_AGGREGATE_TABLE_NAME =
+    "METRIC_AGGREGATE_UUID";
+  public static final String METRICS_CLUSTER_AGGREGATE_MINUTE_TABLE_NAME =
+    "METRIC_AGGREGATE_MINUTE_UUID";
+  public static final String METRICS_CLUSTER_AGGREGATE_HOURLY_TABLE_NAME =
+    "METRIC_AGGREGATE_HOURLY_UUID";
+  public static final String METRICS_CLUSTER_AGGREGATE_DAILY_TABLE_NAME =
+    "METRIC_AGGREGATE_DAILY_UUID";
+
+  public static final Pattern PHOENIX_TABLES_REGEX_PATTERN = Pattern.compile("METRIC_.*_UUID");
 
   public static final String[] PHOENIX_TABLES = {
     METRICS_RECORD_TABLE_NAME,
diff --git a/ambari-metrics-timelineservice/src/test/java/org/apache/ambari/metrics/core/timeline/AbstractMiniHBaseClusterTest.java b/ambari-metrics-timelineservice/src/test/java/org/apache/ambari/metrics/core/timeline/AbstractMiniHBaseClusterTest.java
index d8b7bbf..258054c 100644
--- a/ambari-metrics-timelineservice/src/test/java/org/apache/ambari/metrics/core/timeline/AbstractMiniHBaseClusterTest.java
+++ b/ambari-metrics-timelineservice/src/test/java/org/apache/ambari/metrics/core/timeline/AbstractMiniHBaseClusterTest.java
@@ -121,16 +121,16 @@
       conn = getConnection(getUrl());
       stmt = conn.createStatement();
 
-      deleteTableIgnoringExceptions(stmt, "METRIC_AGGREGATE");
-      deleteTableIgnoringExceptions(stmt, "METRIC_AGGREGATE_MINUTE");
-      deleteTableIgnoringExceptions(stmt, "METRIC_AGGREGATE_HOURLY");
-      deleteTableIgnoringExceptions(stmt, "METRIC_AGGREGATE_DAILY");
-      deleteTableIgnoringExceptions(stmt, "METRIC_RECORD");
-      deleteTableIgnoringExceptions(stmt, "METRIC_RECORD_MINUTE");
-      deleteTableIgnoringExceptions(stmt, "METRIC_RECORD_HOURLY");
-      deleteTableIgnoringExceptions(stmt, "METRIC_RECORD_DAILY");
-      deleteTableIgnoringExceptions(stmt, "METRICS_METADATA");
-      deleteTableIgnoringExceptions(stmt, "HOSTED_APPS_METADATA");
+      deleteTableIgnoringExceptions(stmt, "METRIC_AGGREGATE_UUID");
+      deleteTableIgnoringExceptions(stmt, "METRIC_AGGREGATE_MINUTE_UUID");
+      deleteTableIgnoringExceptions(stmt, "METRIC_AGGREGATE_HOURLY_UUID");
+      deleteTableIgnoringExceptions(stmt, "METRIC_AGGREGATE_DAILY_UUID");
+      deleteTableIgnoringExceptions(stmt, "METRIC_RECORD_UUID");
+      deleteTableIgnoringExceptions(stmt, "METRIC_RECORD_MINUTE_UUID");
+      deleteTableIgnoringExceptions(stmt, "METRIC_RECORD_HOURLY_UUID");
+      deleteTableIgnoringExceptions(stmt, "METRIC_RECORD_DAILY_UUID");
+      deleteTableIgnoringExceptions(stmt, "METRICS_METADATA_UUID");
+      deleteTableIgnoringExceptions(stmt, "HOSTED_APPS_METADATA_UUID");
 
       conn.commit();
     } catch (Exception e) {
diff --git a/ambari-metrics-timelineservice/src/test/java/org/apache/ambari/metrics/core/timeline/ITPhoenixHBaseAccessor.java b/ambari-metrics-timelineservice/src/test/java/org/apache/ambari/metrics/core/timeline/ITPhoenixHBaseAccessor.java
index c3a26c1..65b5a1b 100644
--- a/ambari-metrics-timelineservice/src/test/java/org/apache/ambari/metrics/core/timeline/ITPhoenixHBaseAccessor.java
+++ b/ambari-metrics-timelineservice/src/test/java/org/apache/ambari/metrics/core/timeline/ITPhoenixHBaseAccessor.java
@@ -409,7 +409,7 @@
 
     Assert.assertFalse("Normalizer disabled.", normalizerEnabled);
     Assert.assertTrue("Durability Set.", tableDurabilitySet);
-    Assert.assertEquals("FIFO compaction policy is set for METRIC_RECORD.", FIFO_COMPACTION_POLICY_CLASS, precisionTableCompactionPolicy);
+    Assert.assertEquals("FIFO compaction policy is set for METRIC_RECORD_UUID.", FIFO_COMPACTION_POLICY_CLASS, precisionTableCompactionPolicy);
     Assert.assertEquals("FIFO compaction policy is set for aggregate tables", DATE_TIERED_COMPACTION_POLICY, aggregateTableCompactionPolicy);
     Assert.assertEquals("Precision TTL value as expected.", 86400, precisionTtl);
 
@@ -441,7 +441,7 @@
     metric.setExitCode(0);
     List<ContainerMetric> list = Arrays.asList(metric);
     hdb.insertContainerMetrics(list);
-    PreparedStatement stmt = conn.prepareStatement("SELECT * FROM CONTAINER_METRICS");
+    PreparedStatement stmt = conn.prepareStatement("SELECT * FROM CONTAINER_METRICS_UUID");
     ResultSet set = stmt.executeQuery();
     // check each filed is set properly when read back.
     boolean foundRecord = false;
diff --git a/ambari-metrics-timelineservice/src/test/java/org/apache/ambari/metrics/core/timeline/TestPhoenixTransactSQL.java b/ambari-metrics-timelineservice/src/test/java/org/apache/ambari/metrics/core/timeline/TestPhoenixTransactSQL.java
index cacdbcd..3960751 100644
--- a/ambari-metrics-timelineservice/src/test/java/org/apache/ambari/metrics/core/timeline/TestPhoenixTransactSQL.java
+++ b/ambari-metrics-timelineservice/src/test/java/org/apache/ambari/metrics/core/timeline/TestPhoenixTransactSQL.java
@@ -154,7 +154,7 @@
     replay(connection, preparedStatement);
     PhoenixTransactSQL.prepareGetAggregateSqlStmt(connection, condition);
     String stmt = stmtCapture.getValue();
-    Assert.assertTrue(stmt.contains("FROM METRIC_AGGREGATE"));
+    Assert.assertTrue(stmt.contains("FROM METRIC_AGGREGATE_MINUTE_UUID"));
     verify(connection, preparedStatement);
   }
 
@@ -183,7 +183,7 @@
     replay(connection, preparedStatement);
     PhoenixTransactSQL.prepareGetAggregateSqlStmt(connection, condition);
     String stmt = stmtCapture.getValue();
-    Assert.assertTrue(stmt.contains("FROM METRIC_AGGREGATE"));
+    Assert.assertTrue(stmt.contains("FROM METRIC_AGGREGATE_UUID"));
     Assert.assertEquals(Precision.SECONDS, condition.getPrecision());
     verify(connection, preparedStatement);
 
@@ -201,7 +201,7 @@
     replay(connection, preparedStatement);
     PhoenixTransactSQL.prepareGetAggregateSqlStmt(connection, condition);
     stmt = stmtCapture.getValue();
-    Assert.assertTrue(stmt.contains("FROM METRIC_AGGREGATE"));
+    Assert.assertTrue(stmt.contains("FROM METRIC_AGGREGATE_MINUTE_UUID"));
     Assert.assertEquals(Precision.MINUTES, condition.getPrecision());
     verify(connection, preparedStatement);
 
@@ -219,7 +219,7 @@
     replay(connection, preparedStatement);
     PhoenixTransactSQL.prepareGetAggregateSqlStmt(connection, condition);
     stmt = stmtCapture.getValue();
-    Assert.assertTrue(stmt.contains("FROM METRIC_AGGREGATE_HOURLY"));
+    Assert.assertTrue(stmt.contains("FROM METRIC_AGGREGATE_HOURLY_UUID"));
     Assert.assertEquals(Precision.HOURS, condition.getPrecision());
     verify(connection, preparedStatement);
 
@@ -237,7 +237,7 @@
     replay(connection, preparedStatement);
     PhoenixTransactSQL.prepareGetAggregateSqlStmt(connection, condition);
     stmt = stmtCapture.getValue();
-    Assert.assertTrue(stmt.contains("FROM METRIC_AGGREGATE_DAILY"));
+    Assert.assertTrue(stmt.contains("FROM METRIC_AGGREGATE_DAILY_UUID"));
     Assert.assertEquals(Precision.DAYS, condition.getPrecision());
     verify(connection, preparedStatement);
   }
@@ -256,7 +256,7 @@
     replay(connection, preparedStatement);
     PhoenixTransactSQL.prepareGetAggregateSqlStmt(connection, condition);
     String stmt = stmtCapture.getValue();
-    Assert.assertTrue(stmt.contains("FROM METRIC_AGGREGATE_HOURLY"));
+    Assert.assertTrue(stmt.contains("FROM METRIC_AGGREGATE_HOURLY_UUID"));
     verify(connection, preparedStatement);
   }
 
@@ -274,7 +274,7 @@
     replay(connection, preparedStatement);
     PhoenixTransactSQL.prepareGetMetricsSqlStmt(connection, condition);
     String stmt = stmtCapture.getValue();
-    Assert.assertTrue(stmt.contains("FROM METRIC_RECORD_MINUTE"));
+    Assert.assertTrue(stmt.contains("FROM METRIC_RECORD_MINUTE_UUID"));
     verify(connection, preparedStatement);
   }
 
@@ -301,7 +301,7 @@
     replay(connection, preparedStatement);
     PhoenixTransactSQL.prepareGetMetricsSqlStmt(connection, condition);
     String stmt = stmtCapture.getValue();
-    Assert.assertTrue(stmt.contains("FROM METRIC_RECORD"));
+    Assert.assertTrue(stmt.contains("FROM METRIC_RECORD_UUID"));
     Assert.assertEquals(Precision.SECONDS, condition.getPrecision());
     verify(connection, preparedStatement);
     reset(connection, preparedStatement);
@@ -320,7 +320,7 @@
     replay(connection, preparedStatement);
     PhoenixTransactSQL.prepareGetMetricsSqlStmt(connection, condition);
     stmt = stmtCapture.getValue();
-    Assert.assertTrue(stmt.contains("FROM METRIC_RECORD"));
+    Assert.assertTrue(stmt.contains("FROM METRIC_RECORD_UUID"));
     Assert.assertEquals(Precision.SECONDS, condition.getPrecision());
     verify(connection, preparedStatement);
 
@@ -338,7 +338,7 @@
     replay(connection, preparedStatement);
     PhoenixTransactSQL.prepareGetMetricsSqlStmt(connection, condition);
     stmt = stmtCapture.getValue();
-    Assert.assertTrue(stmt.contains("FROM METRIC_RECORD_MINUTE"));
+    Assert.assertTrue(stmt.contains("FROM METRIC_RECORD_MINUTE_UUID"));
     Assert.assertEquals(Precision.MINUTES, condition.getPrecision());
     verify(connection, preparedStatement);
 
@@ -355,7 +355,7 @@
     replay(connection, preparedStatement);
     PhoenixTransactSQL.prepareGetMetricsSqlStmt(connection, condition);
     stmt = stmtCapture.getValue();
-    Assert.assertTrue(stmt.contains("FROM METRIC_RECORD_HOURLY"));
+    Assert.assertTrue(stmt.contains("FROM METRIC_RECORD_HOURLY_UUID"));
     Assert.assertEquals(Precision.HOURS, condition.getPrecision());
     verify(connection, preparedStatement);
 
@@ -372,7 +372,7 @@
     replay(connection, preparedStatement);
     PhoenixTransactSQL.prepareGetMetricsSqlStmt(connection, condition);
     stmt = stmtCapture.getValue();
-    Assert.assertTrue(stmt.contains("FROM METRIC_RECORD_DAILY"));
+    Assert.assertTrue(stmt.contains("FROM METRIC_RECORD_DAILY_UUID"));
     Assert.assertEquals(Precision.DAYS, condition.getPrecision());
     verify(connection, preparedStatement);
 
@@ -398,7 +398,7 @@
     replay(connection, preparedStatement, parameterMetaData);
     PhoenixTransactSQL.prepareGetLatestMetricSqlStmt(connection, condition);
     String stmt = stmtCapture.getValue();
-    Assert.assertTrue(stmt.contains("FROM METRIC_RECORD"));
+    Assert.assertTrue(stmt.contains("FROM METRIC_RECORD_UUID"));
     Assert.assertTrue(stmt.contains("JOIN"));
     verify(connection, preparedStatement, parameterMetaData);
   }
@@ -441,7 +441,7 @@
     replay(connection, preparedStatement);
     PhoenixTransactSQL.prepareGetMetricsSqlStmt(connection, condition);
     String stmt = stmtCapture.getValue();
-    Assert.assertTrue(stmt.contains("FROM METRIC_RECORD_HOURLY"));
+    Assert.assertTrue(stmt.contains("FROM METRIC_RECORD_HOURLY_UUID"));
     verify(connection, preparedStatement);
   }
 
@@ -476,7 +476,7 @@
     replay(connection, preparedStatement);
     PhoenixTransactSQL.prepareGetMetricsSqlStmt(connection, condition);
     String stmt = stmtCapture.getValue();
-    Assert.assertTrue(stmt.contains("FROM METRIC_RECORD"));
+    Assert.assertTrue(stmt.contains("FROM METRIC_RECORD_UUID"));
     verify(connection, preparedStatement);
 
     //Check without passing precision. Should be OK!
@@ -492,7 +492,7 @@
     replay(connection, preparedStatement);
     PhoenixTransactSQL.prepareGetMetricsSqlStmt(connection, condition);
     stmt = stmtCapture.getValue();
-    Assert.assertTrue(stmt.contains("FROM METRIC_RECORD"));
+    Assert.assertTrue(stmt.contains("FROM METRIC_RECORD_UUID"));
     verify(connection, preparedStatement);
 
     //Check with more hosts and lesser metrics for 1 day data = 11520 points Should be OK!
@@ -518,7 +518,7 @@
     replay(connection, preparedStatement);
     PhoenixTransactSQL.prepareGetMetricsSqlStmt(connection, condition);
     stmt = stmtCapture.getValue();
-    Assert.assertTrue(stmt.contains("FROM METRIC_RECORD_MINUTE"));
+    Assert.assertTrue(stmt.contains("FROM METRIC_RECORD_MINUTE_UUID"));
     verify(connection, preparedStatement);
 
     //Check with 20 metrics, NO hosts and 1 day data = 5760 points. Should be OK!
@@ -540,7 +540,7 @@
     replay(connection, preparedStatement);
     PhoenixTransactSQL.prepareGetAggregateSqlStmt(connection, condition);
     stmt = stmtCapture.getValue();
-    Assert.assertTrue(stmt.contains("FROM METRIC_AGGREGATE_MINUTE"));
+    Assert.assertTrue(stmt.contains("FROM METRIC_AGGREGATE_MINUTE_UUID"));
     verify(connection, preparedStatement);
 
     //Check with 5 hosts and 10 metrics for 1 hour data = 18000 points. Should throw out Exception!
@@ -584,7 +584,7 @@
 
     String conditionClause = condition.getConditionClause().toString();
     String expectedClause = " UUID IN (" +
-      "SELECT UUID FROM METRIC_RECORD WHERE " +
+      "SELECT UUID FROM METRIC_RECORD_UUID WHERE " +
       "(UUID IN (?, ?)) AND " +
       "SERVER_TIME >= ? AND SERVER_TIME < ? " +
       "GROUP BY UUID ORDER BY MAX(METRIC_MAX) DESC LIMIT 2) AND SERVER_TIME >= ? AND SERVER_TIME < ?";
@@ -602,7 +602,7 @@
 
     String conditionClause = condition.getConditionClause().toString();
     String expectedClause = " UUID IN (" +
-      "SELECT UUID FROM METRIC_RECORD WHERE " +
+      "SELECT UUID FROM METRIC_RECORD_UUID WHERE " +
       "(UUID IN (?, ?, ?)) AND " +
       "SERVER_TIME >= ? AND SERVER_TIME < ? " +
       "GROUP BY UUID ORDER BY MAX(METRIC_MAX) DESC LIMIT 2) AND SERVER_TIME >= ? AND SERVER_TIME < ?";
diff --git a/ambari-metrics-timelineservice/src/test/java/org/apache/ambari/metrics/core/timeline/aggregators/DownSamplerTest.java b/ambari-metrics-timelineservice/src/test/java/org/apache/ambari/metrics/core/timeline/aggregators/DownSamplerTest.java
index f45731d..6f54a38 100644
--- a/ambari-metrics-timelineservice/src/test/java/org/apache/ambari/metrics/core/timeline/aggregators/DownSamplerTest.java
+++ b/ambari-metrics-timelineservice/src/test/java/org/apache/ambari/metrics/core/timeline/aggregators/DownSamplerTest.java
@@ -68,15 +68,15 @@
     Map<String, String> conf = configuration.getValByRegex(DownSamplerUtils.downSamplerConfigPrefix);
 
     TopNDownSampler topNDownSampler = TopNDownSampler.fromConfig(conf);
-    List<String> stmts = topNDownSampler.prepareDownSamplingStatement(14000000l, 14100000l, "METRIC_RECORD");
+    List<String> stmts = topNDownSampler.prepareDownSamplingStatement(14000000l, 14100000l, "METRIC_RECORD_UUID");
     Assert.assertEquals(stmts.size(),2);
     Assert.assertTrue(stmts.contains("SELECT METRIC_NAME, HOSTNAME, APP_ID, INSTANCE_ID, 14100000 AS SERVER_TIME, UNITS, " +
-      "MAX(METRIC_MAX), 1, MAX(METRIC_MAX), MAX(METRIC_MAX) FROM METRIC_RECORD WHERE " +
+      "MAX(METRIC_MAX), 1, MAX(METRIC_MAX), MAX(METRIC_MAX) FROM METRIC_RECORD_UUID WHERE " +
       "METRIC_NAME LIKE 'pattern1' AND SERVER_TIME > 14000000 AND SERVER_TIME <= 14100000 " +
       "GROUP BY METRIC_NAME, HOSTNAME, APP_ID, INSTANCE_ID, UNITS ORDER BY MAX(METRIC_MAX) DESC LIMIT 3"));
 
     Assert.assertTrue(stmts.contains("SELECT METRIC_NAME, HOSTNAME, APP_ID, INSTANCE_ID, 14100000 AS SERVER_TIME, UNITS, " +
-      "MAX(METRIC_MAX), 1, MAX(METRIC_MAX), MAX(METRIC_MAX) FROM METRIC_RECORD WHERE " +
+      "MAX(METRIC_MAX), 1, MAX(METRIC_MAX), MAX(METRIC_MAX) FROM METRIC_RECORD_UUID WHERE " +
       "METRIC_NAME LIKE 'pattern2' AND SERVER_TIME > 14000000 AND SERVER_TIME <= 14100000 " +
       "GROUP BY METRIC_NAME, HOSTNAME, APP_ID, INSTANCE_ID, UNITS ORDER BY MAX(METRIC_MAX) DESC LIMIT 3"));
 
@@ -86,11 +86,11 @@
     configuration.setIfUnset("timeline.metrics.downsampler.topn.function", "sum");
     conf = configuration.getValByRegex(DownSamplerUtils.downSamplerConfigPrefix);
     topNDownSampler = TopNDownSampler.fromConfig(conf);
-    stmts = topNDownSampler.prepareDownSamplingStatement(14000000l, 14100000l, "METRIC_AGGREGATE_MINUTE");
+    stmts = topNDownSampler.prepareDownSamplingStatement(14000000l, 14100000l, "METRIC_AGGREGATE_MINUTE_UUID");
     Assert.assertEquals(stmts.size(),1);
 
     Assert.assertTrue(stmts.contains("SELECT METRIC_NAME, APP_ID, INSTANCE_ID, 14100000 AS SERVER_TIME, UNITS, " +
-      "SUM(METRIC_SUM), 1, SUM(METRIC_SUM), SUM(METRIC_SUM) FROM METRIC_AGGREGATE_MINUTE WHERE " +
+      "SUM(METRIC_SUM), 1, SUM(METRIC_SUM), SUM(METRIC_SUM) FROM METRIC_AGGREGATE_MINUTE_UUID WHERE " +
       "METRIC_NAME LIKE 'pattern1' AND SERVER_TIME > 14000000 AND SERVER_TIME <= 14100000 " +
       "GROUP BY METRIC_NAME, APP_ID, INSTANCE_ID, UNITS ORDER BY SUM(METRIC_SUM) DESC LIMIT 4"));
   }
@@ -103,15 +103,15 @@
     Map<String, String> conf = configuration.getValByRegex(DownSamplerUtils.downSamplerConfigPrefix);
 
     EventMetricDownSampler eventMetricDownSampler = EventMetricDownSampler.fromConfig(conf);
-    List<String> stmts = eventMetricDownSampler.prepareDownSamplingStatement(14000000l, 14100000l, "METRIC_RECORD");
+    List<String> stmts = eventMetricDownSampler.prepareDownSamplingStatement(14000000l, 14100000l, "METRIC_RECORD_UUID");
     Assert.assertEquals(stmts.size(),2);
 
     Assert.assertTrue(stmts.get(0).equals("SELECT METRIC_NAME, HOSTNAME, APP_ID, INSTANCE_ID, 14100000 AS SERVER_TIME, " +
-      "UNITS, SUM(METRIC_SUM), SUM(METRIC_COUNT), MAX(METRIC_MAX), MIN(METRIC_MIN) FROM METRIC_RECORD WHERE METRIC_NAME " +
+      "UNITS, SUM(METRIC_SUM), SUM(METRIC_COUNT), MAX(METRIC_MAX), MIN(METRIC_MIN) FROM METRIC_RECORD_UUID WHERE METRIC_NAME " +
       "LIKE 'pattern1' AND SERVER_TIME > 14000000 AND SERVER_TIME <= 14100000 GROUP BY METRIC_NAME, HOSTNAME, APP_ID, INSTANCE_ID, UNITS"));
 
     Assert.assertTrue(stmts.get(1).equals("SELECT METRIC_NAME, HOSTNAME, APP_ID, INSTANCE_ID, 14100000 AS SERVER_TIME, " +
-      "UNITS, SUM(METRIC_SUM), SUM(METRIC_COUNT), MAX(METRIC_MAX), MIN(METRIC_MIN) FROM METRIC_RECORD WHERE METRIC_NAME " +
+      "UNITS, SUM(METRIC_SUM), SUM(METRIC_COUNT), MAX(METRIC_MAX), MIN(METRIC_MIN) FROM METRIC_RECORD_UUID WHERE METRIC_NAME " +
       "LIKE 'pattern2' AND SERVER_TIME > 14000000 AND SERVER_TIME <= 14100000 GROUP BY METRIC_NAME, HOSTNAME, APP_ID, INSTANCE_ID, UNITS"));
   }
 }
diff --git a/ambari-metrics-timelineservice/src/test/java/org/apache/ambari/metrics/core/timeline/aggregators/ITClusterAggregator.java b/ambari-metrics-timelineservice/src/test/java/org/apache/ambari/metrics/core/timeline/aggregators/ITClusterAggregator.java
index aac70ab..1a7d432 100644
--- a/ambari-metrics-timelineservice/src/test/java/org/apache/ambari/metrics/core/timeline/aggregators/ITClusterAggregator.java
+++ b/ambari-metrics-timelineservice/src/test/java/org/apache/ambari/metrics/core/timeline/aggregators/ITClusterAggregator.java
@@ -291,7 +291,7 @@
     agg.doWork(startTime, ctime + hour + 1000);
 
     // THEN
-    ResultSet rs = executeQuery("SELECT * FROM METRIC_AGGREGATE_DAILY");
+    ResultSet rs = executeQuery("SELECT * FROM METRIC_AGGREGATE_DAILY_UUID");
     int count = 0;
     while (rs.next()) {
       TimelineMetric metric = metadataManager.getMetricFromUuid(rs.getBytes("UUID"));
@@ -353,7 +353,7 @@
     hdb.saveClusterAggregateRecords(records);
     agg.doWork(oldCtime, ctime + second);
 
-    ResultSet rs = executeQuery("SELECT * FROM METRIC_AGGREGATE_MINUTE");
+    ResultSet rs = executeQuery("SELECT * FROM METRIC_AGGREGATE_MINUTE_UUID");
     int count = 0;
     long diff = 0 ;
     while (rs.next()) {
@@ -412,7 +412,7 @@
     agg.doWork(startTime, ctime + minute);
 
     // THEN
-    ResultSet rs = executeQuery("SELECT * FROM METRIC_AGGREGATE_HOURLY");
+    ResultSet rs = executeQuery("SELECT * FROM METRIC_AGGREGATE_HOURLY_UUID");
     int count = 0;
     while (rs.next()) {
       TimelineMetric metric = metadataManager.getMetricFromUuid(rs.getBytes("UUID"));
@@ -471,7 +471,7 @@
     agg.doWork(startTime, ctime + minute);
 
     // THEN
-    ResultSet rs = executeQuery("SELECT * FROM METRIC_AGGREGATE_HOURLY");
+    ResultSet rs = executeQuery("SELECT * FROM METRIC_AGGREGATE_HOURLY_UUID");
     int count = 0;
     while (rs.next()) {
       TimelineMetric metric = metadataManager.getMetricFromUuid(rs.getBytes("UUID"));
@@ -681,7 +681,7 @@
     agg.doWork(startTime, ctime + minute);
 
     // THEN
-    ResultSet rs = executeQuery("SELECT * FROM METRIC_AGGREGATE_HOURLY");
+    ResultSet rs = executeQuery("SELECT * FROM METRIC_AGGREGATE_HOURLY_UUID");
     int count = 0;
     while (rs.next()) {
       TimelineMetric metric = metadataManager.getMetricFromUuid(rs.getBytes("UUID"));
