protected MetricsTable getOrCreateResolutionMetricsTable(String v3TableName, TableProperties.Builder props,
int resolution) {
try {
String v2TableName = cConf.get(Constants.Metrics.METRICS_TABLE_PREFIX,
Constants.Metrics.DEFAULT_METRIC_TABLE_PREFIX + ".ts." + resolution);
DatasetId v2TableId = NamespaceId.SYSTEM.dataset(v2TableName);
MetricsTable v2Table = dsFramework.getDataset(v2TableId, ImmutableMap.of(), null);
props.add(HBaseTableAdmin.PROPERTY_SPLITS,
GSON.toJson(getV3MetricsTableSplits(cConf.getInt(Constants.Metrics.METRICS_HBASE_TABLE_SPLITS))));
props.add(Constants.Metrics.METRICS_HBASE_TABLE_SPLITS,
cConf.getInt(Constants.Metrics.METRICS_HBASE_TABLE_SPLITS));
DatasetId v3TableId = NamespaceId.SYSTEM.dataset(v3TableName);
MetricsTable v3Table = DatasetsUtil.getOrCreateDataset(dsFramework, v3TableId, MetricsTable.class.getName(),
props.build(), null);
if (v2Table != null) {
return new CombinedHBaseMetricsTable(v2Table, v3Table, resolution, cConf, dsFramework);
}
return v3Table;
} catch (Exception e) {
throw Throwables.propagate(e);
}
}