本文整理汇总了Java中org.apache.tajo.catalog.TableDesc.getStats方法的典型用法代码示例。如果您正苦于以下问题:Java TableDesc.getStats方法的具体用法?Java TableDesc.getStats怎么用?Java TableDesc.getStats使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.apache.tajo.catalog.TableDesc
的用法示例。
在下文中一共展示了TableDesc.getStats方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: verifyResultStats
import org.apache.tajo.catalog.TableDesc; //导入方法依赖的package包/类
private void verifyResultStats(Optional<TajoResultSetBase[]> existing, long numRows) throws Exception {
assertTrue(existing.isPresent());
// Get TableStats using TajoResultSetBase.
TajoResultSetBase[] resultSet = existing.get();
QueryId qid = resultSet[0].getQueryId();
QueryInfo queryInfo = testingCluster.getMaster().getContext().getQueryJobManager().getFinishedQuery(qid);
TableDesc desc = queryInfo.getResultDesc();
TableStats stats = desc.getStats();
// Compare specified number of rows to the number of rows in TableStats.
assertEquals(numRows, stats.getNumRows().longValue());
// Compare the volume number of directRaw to the number of rows in TableStats.
FileSystem fs = FileSystem.get(conf);
Path path = new Path(desc.getUri());
assertTrue(fs.exists(path));
ContentSummary summary = fs.getContentSummary(path);
assertEquals(summary.getLength(), stats.getNumBytes().longValue());
closeResultSets(resultSet);
}
示例2: getQuerySuccessMessage
import org.apache.tajo.catalog.TableDesc; //导入方法依赖的package包/类
private String getQuerySuccessMessage(TableDesc tableDesc, float responseTime, int totalPrintedRows, String postfix,
boolean endOfTuple) {
TableStats stat = tableDesc.getStats();
String volume = stat == null ? (endOfTuple ? "0 B" : "unknown bytes") :
FileUtil.humanReadableByteCount(stat.getNumBytes(), false);
long resultRows = stat == null ? TajoConstants.UNKNOWN_ROW_NUMBER : stat.getNumRows();
String displayRowNum;
if (resultRows == TajoConstants.UNKNOWN_ROW_NUMBER) {
if (endOfTuple) {
displayRowNum = totalPrintedRows + " rows";
} else {
displayRowNum = "unknown row number";
}
} else {
displayRowNum = resultRows + " rows";
}
return "(" + displayRowNum + ", " + getResponseTimeReadable(responseTime) + ", " + volume + " " + postfix + ")";
}
示例3: MakeResultText
import org.apache.tajo.catalog.TableDesc; //导入方法依赖的package包/类
private void MakeResultText(ResultSet res, TableDesc desc) throws SQLException {
ResultSetMetaData rsmd = res.getMetaData();
resultRows = desc.getStats() == null ? 0 : desc.getStats().getNumRows();
if (resultRows <= 0) {
resultRows = 1000;
}
LOG.info("Tajo Query Result: " + desc.getUri() + "\n");
int numOfColumns = rsmd.getColumnCount();
for(int i = 0; i < numOfColumns; i++) {
columnNames.add(rsmd.getColumnName(i + 1));
}
queryResult = new ArrayList<>();
int currentResultSize = 0;
int rowCount = 0;
while (res.next()) {
if(rowCount > rowLimit || currentResultSize > sizeLimit) {
break;
}
List<Object> row = new ArrayList<>();
for(int i = 0; i < numOfColumns; i++) {
String columnValue = String.valueOf(res.getObject(i + 1));
try {
currentResultSize += columnValue.getBytes(Bytes.UTF8_ENCODING).length;
} catch (Exception e) {
}
row.add(columnValue);
}
queryResult.add(row);
rowCount++;
}
}
示例4: getTableVolume
import org.apache.tajo.catalog.TableDesc; //导入方法依赖的package包/类
private long getTableVolume(TableDesc table, Optional<EvalNode> filter) {
try {
if (table.getStats() != null) {
return storage.getTableVolumn(table, filter);
}
} catch (UnsupportedException t) {
LOG.warn(table.getName() + " does not support Tablespace::getTableVolume()");
}
// By default, return -1;
return -1;
}
示例5: SeqScanInfo
import org.apache.tajo.catalog.TableDesc; //导入方法依赖的package包/类
public SeqScanInfo(TableDesc tableDesc) {
this(tableDesc.getStats());
this.setTableDesc(tableDesc);
}
示例6: toFormattedString
import org.apache.tajo.catalog.TableDesc; //导入方法依赖的package包/类
protected String toFormattedString(TableDesc desc) {
StringBuilder sb = new StringBuilder();
sb.append("\ntable name: ").append(desc.getName()).append("\n");
sb.append("table uri: ").append(desc.getUri()).append("\n");
sb.append("store type: ").append(desc.getMeta().getDataFormat()).append("\n");
if (desc.getStats() != null) {
long row = desc.getStats().getNumRows();
String rowText = row == TajoConstants.UNKNOWN_ROW_NUMBER ? "unknown" : row + "";
sb.append("number of rows: ").append(rowText).append("\n");
sb.append("volume: ").append(
FileUtil.humanReadableByteCount(desc.getStats().getNumBytes(),
true)).append("\n");
}
sb.append("Options:\n");
for(Map.Entry<String, String> entry : desc.getMeta().toMap().entrySet()){
/*
* Checks whether the character is ASCII 7 bit printable.
* For example, a printable unicode '\u007c' become the character ‘|’.
*
* Control-chars : ctrl-a(\u0001), tab(\u0009) ..
* Printable-chars : '|'(\u007c), ','(\u002c) ..
* */
String value = entry.getValue();
String unescaped = StringEscapeUtils.unescapeJava(value);
if (unescaped.length() == 1 && CharUtils.isAsciiPrintable(unescaped.charAt(0))) {
value = unescaped;
}
sb.append("\t").append("'").append(entry.getKey()).append("'").append("=")
.append("'").append(value).append("'").append("\n");
}
sb.append("\n");
sb.append("schema: \n");
for(int i = 0; i < desc.getSchema().size(); i++) {
Column col = desc.getSchema().getColumn(i);
sb.append(col.getSimpleName()).append("\t").append(col.getTypeDesc());
sb.append("\n");
}
sb.append("\n");
if (desc.getPartitionMethod() != null) {
PartitionMethodDesc partition = desc.getPartitionMethod();
sb.append("Partitions: \n");
sb.append("type:").append(partition.getPartitionType().name()).append("\n");
sb.append("columns:").append(":");
sb.append(StringUtils.join(partition.getExpressionSchema().toArray()));
}
return sb.toString();
}
示例7: printResult
import org.apache.tajo.catalog.TableDesc; //导入方法依赖的package包/类
@Override
public void printResult(PrintWriter sout, InputStream sin, TableDesc tableDesc,
float responseTime, ResultSet res) throws Exception {
long resultRows = tableDesc.getStats() == null ? -1 : tableDesc.getStats().getNumRows();
if (resultRows == -1) {
resultRows = Integer.MAX_VALUE;
}
if (res == null) {
sout.println(getQuerySuccessMessage(tableDesc, responseTime, 0, "inserted", true));
return;
}
ResultSetMetaData rsmd = res.getMetaData();
int numOfColumns = rsmd.getColumnCount();
for (int i = 1; i <= numOfColumns; i++) {
if (i > 1) sout.print(", ");
String columnName = rsmd.getColumnName(i);
sout.print(columnName);
}
sout.println("\n-------------------------------");
int numOfPrintedRows = 0;
int totalPrintedRows = 0;
boolean endOfTuple = true;
while (res.next()) {
for (int i = 1; i <= numOfColumns; i++) {
if (i > 1) sout.print(", ");
String columnValue = res.getString(i);
if(res.wasNull()){
sout.print(nullChar);
} else {
sout.print(columnValue);
}
}
sout.println();
sout.flush();
numOfPrintedRows++;
totalPrintedRows++;
if (printPause && printPauseRecords > 0 && totalPrintedRows < resultRows && numOfPrintedRows >= printPauseRecords) {
if (resultRows < Integer.MAX_VALUE) {
sout.print("(" + totalPrintedRows + "/" + resultRows + " rows, continue... 'q' is quit)");
} else {
sout.print("(" + totalPrintedRows + " rows, continue... 'q' is quit)");
}
sout.flush();
if (sin != null) {
if (sin.read() == QUIT_COMMAND) {
endOfTuple = false;
sout.println();
break;
}
}
numOfPrintedRows = 0;
sout.println();
}
}
sout.println(getQuerySuccessMessage(tableDesc, responseTime, totalPrintedRows, "selected", endOfTuple));
sout.flush();
}
示例8: toFormattedString
import org.apache.tajo.catalog.TableDesc; //导入方法依赖的package包/类
protected String toFormattedString(TableDesc desc) {
StringBuilder sb = new StringBuilder();
sb.append("\ntable name: ").append(desc.getName()).append("\n");
sb.append("table path: ").append(desc.getPath()).append("\n");
sb.append("store type: ").append(desc.getMeta().getStoreType()).append("\n");
if (desc.getStats() != null) {
sb.append("number of rows: ").append(desc.getStats().getNumRows()).append("\n");
sb.append("volume: ").append(
FileUtil.humanReadableByteCount(desc.getStats().getNumBytes(),
true)).append("\n");
}
sb.append("Options: \n");
for(Map.Entry<String, String> entry : desc.getMeta().toMap().entrySet()){
sb.append("\t").append("'").append(entry.getKey()).append("'").append("=")
.append("'").append(entry.getValue()).append("'").append("\n");
}
sb.append("\n");
sb.append("schema: \n");
for(int i = 0; i < desc.getSchema().size(); i++) {
Column col = desc.getSchema().getColumn(i);
sb.append(col.getSimpleName()).append("\t").append(col.getDataType().getType());
if (col.getDataType().hasLength()) {
sb.append("(").append(col.getDataType().getLength()).append(")");
}
sb.append("\n");
}
sb.append("\n");
if (desc.getPartitionMethod() != null) {
PartitionMethodDesc partition = desc.getPartitionMethod();
sb.append("Partitions: \n");
sb.append("type:").append(partition.getPartitionType().name()).append("\n");
sb.append("columns:").append(":");
sb.append(TUtil.arrayToString(partition.getExpressionSchema().toArray()));
}
return sb.toString();
}