本文整理汇总了Java中org.apache.kylin.rest.response.SQLResponse.setTotalScanCount方法的典型用法代码示例。如果您正苦于以下问题:Java SQLResponse.setTotalScanCount方法的具体用法?Java SQLResponse.setTotalScanCount怎么用?Java SQLResponse.setTotalScanCount使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.apache.kylin.rest.response.SQLResponse
的用法示例。
在下文中一共展示了SQLResponse.setTotalScanCount方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: buildSqlResponse
import org.apache.kylin.rest.response.SQLResponse; //导入方法依赖的package包/类
private SQLResponse buildSqlResponse(Boolean isPushDown, List<List<String>> results,
List<SelectedColumnMeta> columnMetas) {
boolean isPartialResult = false;
StringBuilder cubeSb = new StringBuilder();
StringBuilder logSb = new StringBuilder("Processed rows for each storageContext: ");
if (OLAPContext.getThreadLocalContexts() != null) { // contexts can be null in case of 'explain plan for'
for (OLAPContext ctx : OLAPContext.getThreadLocalContexts()) {
if (ctx.realization != null) {
isPartialResult |= ctx.storageContext.isPartialResultReturned();
if (cubeSb.length() > 0) {
cubeSb.append(",");
}
cubeSb.append(ctx.realization.getCanonicalName());
logSb.append(ctx.storageContext.getProcessedRowCount()).append(" ");
}
}
}
logger.info(logSb.toString());
SQLResponse response = new SQLResponse(columnMetas, results, cubeSb.toString(), 0, false, null, isPartialResult,
isPushDown);
response.setTotalScanCount(QueryContext.current().getScannedRows());
response.setTotalScanBytes(QueryContext.current().getScannedBytes());
return response;
}
示例2: testQueryMetrics
import org.apache.kylin.rest.response.SQLResponse; //导入方法依赖的package包/类
@Test
public void testQueryMetrics() throws Exception {
System.setProperty("kylin.server.query-metrics-enabled", "true");
QueryMetricsFacade.init();
SQLRequest sqlRequest = new SQLRequest();
sqlRequest.setSql("select * from TEST_KYLIN_FACT");
sqlRequest.setProject("default");
SQLResponse sqlResponse = new SQLResponse();
sqlResponse.setDuration(10);
sqlResponse.setCube("test_cube");
sqlResponse.setIsException(false);
sqlResponse.setTotalScanCount(100);
List<String> list1 = new ArrayList<>();
list1.add("111");
list1.add("112");
List<String> list2 = new ArrayList<>();
list2.add("111");
list2.add("112");
List<List<String>> results = new ArrayList<>();
results.add(list1);
results.add(list2);
sqlResponse.setResults(results);
sqlResponse.setStorageCacheUsed(true);
QueryMetricsFacade.updateMetrics(sqlRequest, sqlResponse);
Thread.sleep(2000);
Assert.assertEquals(1L, mBeanServer.getAttribute(objectName, "QueryCount"));
Assert.assertEquals(1L, mBeanServer.getAttribute(objectName, "QuerySuccessCount"));
Assert.assertEquals(0L, mBeanServer.getAttribute(objectName, "QueryFailCount"));
Assert.assertEquals(1L, mBeanServer.getAttribute(objectName, "CacheHitCount"));
Assert.assertEquals(1L, mBeanServer.getAttribute(objectName, "ScanRowCountNumOps"));
Assert.assertEquals(100.0, mBeanServer.getAttribute(objectName, "ScanRowCountAvgTime"));
Assert.assertEquals(100.0, mBeanServer.getAttribute(objectName, "ScanRowCountMaxTime"));
Assert.assertEquals(100.0, mBeanServer.getAttribute(objectName, "ScanRowCountMinTime"));
Assert.assertEquals(1L, mBeanServer.getAttribute(objectName, "ResultRowCountNumOps"));
Assert.assertEquals(2.0, mBeanServer.getAttribute(objectName, "ResultRowCountMaxTime"));
Assert.assertEquals(2.0, mBeanServer.getAttribute(objectName, "ResultRowCountAvgTime"));
Assert.assertEquals(2.0, mBeanServer.getAttribute(objectName, "ResultRowCountMinTime"));
Assert.assertEquals(1L, mBeanServer.getAttribute(objectName, "QueryLatencyNumOps"));
Assert.assertEquals(10.0, mBeanServer.getAttribute(objectName, "QueryLatencyMaxTime"));
Assert.assertEquals(10.0, mBeanServer.getAttribute(objectName, "QueryLatencyAvgTime"));
Assert.assertEquals(10.0, mBeanServer.getAttribute(objectName, "QueryLatencyMinTime"));
SQLResponse sqlResponse2 = new SQLResponse();
sqlResponse2.setDuration(10);
sqlResponse2.setCube("test_cube");
sqlResponse2.setIsException(true);
QueryMetricsFacade.updateMetrics(sqlRequest, sqlResponse2);
Thread.sleep(2000);
Assert.assertEquals(2L, mBeanServer.getAttribute(objectName, "QueryCount"));
Assert.assertEquals(1L, mBeanServer.getAttribute(objectName, "QuerySuccessCount"));
Assert.assertEquals(1L, mBeanServer.getAttribute(objectName, "QueryFailCount"));
System.clearProperty("kylin.server.query-metrics-enabled");
}
示例3: testQueryStatisticsResult
import org.apache.kylin.rest.response.SQLResponse; //导入方法依赖的package包/类
@Test
public void testQueryStatisticsResult() throws Exception {
System.setProperty("kylin.metrics.reporter-query-enabled", "true");
QueryMetricsFacade.init();
SQLRequest sqlRequest = new SQLRequest();
sqlRequest.setSql("select * from TEST_KYLIN_FACT");
sqlRequest.setProject("default");
SQLResponse sqlResponse = new SQLResponse();
sqlResponse.setDuration(10);
sqlResponse.setCube("test_cube");
sqlResponse.setIsException(false);
sqlResponse.setTotalScanCount(100);
List<String> list1 = new ArrayList<>();
list1.add("111");
list1.add("112");
List<String> list2 = new ArrayList<>();
list2.add("111");
list2.add("112");
List<List<String>> results = new ArrayList<>();
results.add(list1);
results.add(list2);
sqlResponse.setResults(results);
sqlResponse.setStorageCacheUsed(true);
QueryContext context = QueryContext.current();
int ctxId = 0;
context.addContext(ctxId, "OLAP", true);
context.addRPCStatistics(ctxId, "sandbox", "test_cube", "20100101000000_20150101000000", 3L, 3L, 3L, null, 80L,
0L, 2L, 2L, 0L, 30L);
sqlResponse.setCubeSegmentStatisticsList(context.getCubeSegmentStatisticsResultList());
QueryMetricsFacade.updateMetrics(sqlRequest, sqlResponse);
Thread.sleep(2000);
System.clearProperty("kylin.server.query-metrics-enabled");
System.out.println("------------testQueryStatisticsResult done------------");
}
示例4: testQueryMetrics
import org.apache.kylin.rest.response.SQLResponse; //导入方法依赖的package包/类
@Test
public void testQueryMetrics() throws Exception {
System.setProperty("kylin.server.query-metrics2-enabled", "true");
QueryMetrics2Facade.init();
SQLRequest sqlRequest = new SQLRequest();
sqlRequest.setSql("select * from TEST_KYLIN_FACT");
sqlRequest.setProject("default");
SQLResponse sqlResponse = new SQLResponse();
sqlResponse.setDuration(10);
sqlResponse.setCube("test_cube");
sqlResponse.setIsException(false);
sqlResponse.setTotalScanCount(100);
List<String> list1 = new ArrayList<>();
list1.add("111");
list1.add("112");
List<String> list2 = new ArrayList<>();
list2.add("111");
list2.add("112");
List<List<String>> results = new ArrayList<>();
results.add(list1);
results.add(list2);
sqlResponse.setResults(results);
sqlResponse.setStorageCacheUsed(true);
Metrics metrics = MetricsFactory.getInstance();
QueryMetrics2Facade.updateMetrics(sqlRequest, sqlResponse);
String prefix = buildCubeMetricPrefix(sqlRequest.getProject(), sqlResponse.getCube().replace("=", "->"));
Thread.sleep(2000);
Assert.assertEquals(1L,
metrics.getCounter(MetricsNameBuilder.buildMetricName(prefix, MetricsConstant.QUERY_COUNT)).getCount());
Assert.assertEquals(1L,
metrics.getCounter(MetricsNameBuilder.buildMetricName(prefix, MetricsConstant.QUERY_SUCCESS_COUNT))
.getCount());
Assert.assertEquals(0L, metrics
.getCounter(MetricsNameBuilder.buildMetricName(prefix, MetricsConstant.QUERY_FAIL_COUNT)).getCount());
Assert.assertEquals(1L, metrics
.getCounter(MetricsNameBuilder.buildMetricName(prefix, MetricsConstant.QUERY_CACHE_COUNT)).getCount());
//
Snapshot queryScanSnapshot = metrics
.getHistogram(MetricsNameBuilder.buildMetricName(prefix, MetricsConstant.QUERY_SCAN_ROWCOUNT))
.getSnapshot();
Assert.assertEquals(100.0, queryScanSnapshot.getMean(), 0);
Assert.assertEquals(100.0, queryScanSnapshot.getMax(), 0);
Assert.assertEquals(100.0, queryScanSnapshot.getMin(), 0);
Snapshot queryResultSnapshot = metrics
.getHistogram(MetricsNameBuilder.buildMetricName(prefix, MetricsConstant.QUERY_RESULT_ROWCOUNT))
.getSnapshot();
Assert.assertEquals(2.0, queryResultSnapshot.getMean(), 0);
Assert.assertEquals(2.0, queryResultSnapshot.getMax(), 0);
Assert.assertEquals(2.0, queryResultSnapshot.getMin(), 0);
Snapshot queryLatencySnapshot = metrics
.getTimer(MetricsNameBuilder.buildMetricName(prefix, MetricsConstant.QUERY_DURATION)).getSnapshot();
Assert.assertEquals(TimeUnit.MILLISECONDS.toNanos(10), queryLatencySnapshot.getMean(), 0);
Assert.assertEquals(TimeUnit.MILLISECONDS.toNanos(10), queryLatencySnapshot.getMax(), 0);
Assert.assertEquals(TimeUnit.MILLISECONDS.toNanos(10), queryLatencySnapshot.getMin(), 0);
SQLResponse sqlResponse2 = new SQLResponse();
sqlResponse2.setDuration(10);
sqlResponse2.setCube("test_cube");
sqlResponse2.setIsException(true);
QueryMetrics2Facade.updateMetrics(sqlRequest, sqlResponse2);
prefix = buildCubeMetricPrefix(sqlRequest.getProject(), sqlResponse.getCube().replace("=", "->"));
Assert.assertEquals(2L,
metrics.getCounter(MetricsNameBuilder.buildMetricName(prefix, MetricsConstant.QUERY_COUNT)).getCount());
Assert.assertEquals(1L,
metrics.getCounter(MetricsNameBuilder.buildMetricName(prefix, MetricsConstant.QUERY_SUCCESS_COUNT))
.getCount());
Assert.assertEquals(1L, metrics
.getCounter(MetricsNameBuilder.buildMetricName(prefix, MetricsConstant.QUERY_FAIL_COUNT)).getCount());
}
示例5: execute
import org.apache.kylin.rest.response.SQLResponse; //导入方法依赖的package包/类
/**
* @param sql
* @param sqlRequest
* @return
* @throws Exception
*/
private SQLResponse execute(String sql, SQLRequest sqlRequest) throws Exception {
Connection conn = null;
Statement stat = null;
ResultSet resultSet = null;
List<List<String>> results = new LinkedList<List<String>>();
List<SelectedColumnMeta> columnMetas = new LinkedList<SelectedColumnMeta>();
try {
conn = getOLAPDataSource(sqlRequest.getProject()).getConnection();
if (sqlRequest instanceof PrepareSqlRequest) {
PreparedStatement preparedState = conn.prepareStatement(sql);
for (int i = 0; i < ((PrepareSqlRequest) sqlRequest).getParams().length; i++) {
setParam(preparedState, i + 1, ((PrepareSqlRequest) sqlRequest).getParams()[i]);
}
resultSet = preparedState.executeQuery();
} else {
stat = conn.createStatement();
resultSet = stat.executeQuery(sql);
}
ResultSetMetaData metaData = resultSet.getMetaData();
int columnCount = metaData.getColumnCount();
// Fill in selected column meta
for (int i = 1; i <= columnCount; ++i) {
columnMetas.add(new SelectedColumnMeta(metaData.isAutoIncrement(i), metaData.isCaseSensitive(i), metaData.isSearchable(i), metaData.isCurrency(i), metaData.isNullable(i), metaData.isSigned(i), metaData.getColumnDisplaySize(i), metaData.getColumnLabel(i), metaData.getColumnName(i), metaData.getSchemaName(i), metaData.getCatalogName(i), metaData.getTableName(i), metaData.getPrecision(i), metaData.getScale(i), metaData.getColumnType(i), metaData.getColumnTypeName(i), metaData.isReadOnly(i), metaData.isWritable(i), metaData.isDefinitelyWritable(i)));
}
List<String> oneRow = new LinkedList<String>();
// fill in results
while (resultSet.next()) {
for (int i = 0; i < columnCount; i++) {
oneRow.add((resultSet.getString(i + 1)));
}
results.add(new LinkedList<String>(oneRow));
oneRow.clear();
}
} finally {
close(resultSet, stat, conn);
}
boolean isPartialResult = false;
String cube = "";
long totalScanCount = 0;
if (OLAPContext.getThreadLocalContexts() != null) { // contexts can be null in case of 'explain plan for'
for (OLAPContext ctx : OLAPContext.getThreadLocalContexts()) {
isPartialResult |= ctx.storageContext.isPartialResultReturned();
cube = ctx.realization.getName();
totalScanCount += ctx.storageContext.getTotalScanCount();
}
}
SQLResponse response = new SQLResponse(columnMetas, results, cube, 0, false, null, isPartialResult);
response.setTotalScanCount(totalScanCount);
return response;
}