如何找出 Accumulo 中条目的数量或 table 的大小?
How to find out the number of entries or size of table in the Accumulo?
我已将数据插入accumulo。但是我怎么知道 table 的确切计数?
是否有任何方法或 API 来读取条目数的累积 table 大小?
您需要以编程方式进行吗?如果没有,您可以通过多种方式执行此操作。最简单的方法是转到端口 50095
上的 Accumulo 监控页面。如果您没有大量数据,您可以从命令行简单地执行
accumulo shell -u username -p password -e "scan -t foo -np" | wc -l
首先,Accumulo 在主动摄取期间不知道 table 的确切大小——这将是一个近似值。我认为不存在任何 public API 方法来获取此信息,尽管您可以调用一些内部方法。像下面这样的东西应该可以工作:
ClientContext context = new ClientContext(instance, credentials, clientConfiguration);
MasterClientService.Iface client = null;
MasterMonitorInfo mmi = null;
while (null == mmi) {
try {
client = MasterClient.getConnection(context);
if (client != null) {
mmi = client.getMasterStats(Tracer.traceInfo(), context.rpcCreds())
}
} finally {
if (null != client) {
MasterClient.close(client);
}
}
}
for (Entry<String,TableInfo> table : mmi.getTableMap().entrySet()) {
System.out.println(table.getKey() + "=>" + (table.getValue().recs + table.getValue().recsInMemory));
}
这类似于 Accumulo 监视器获取这些值的方式。因为这些是内部 APIs,所以它们使用起来有点粗糙,并且可能会在不同版本之间发生变化。如果您希望看到这些 API 通过普通实例或连接器方法公开,请在 project's JIRA 实例上提出问题!
我已将数据插入accumulo。但是我怎么知道 table 的确切计数? 是否有任何方法或 API 来读取条目数的累积 table 大小?
您需要以编程方式进行吗?如果没有,您可以通过多种方式执行此操作。最简单的方法是转到端口 50095
上的 Accumulo 监控页面。如果您没有大量数据,您可以从命令行简单地执行
accumulo shell -u username -p password -e "scan -t foo -np" | wc -l
首先,Accumulo 在主动摄取期间不知道 table 的确切大小——这将是一个近似值。我认为不存在任何 public API 方法来获取此信息,尽管您可以调用一些内部方法。像下面这样的东西应该可以工作:
ClientContext context = new ClientContext(instance, credentials, clientConfiguration);
MasterClientService.Iface client = null;
MasterMonitorInfo mmi = null;
while (null == mmi) {
try {
client = MasterClient.getConnection(context);
if (client != null) {
mmi = client.getMasterStats(Tracer.traceInfo(), context.rpcCreds())
}
} finally {
if (null != client) {
MasterClient.close(client);
}
}
}
for (Entry<String,TableInfo> table : mmi.getTableMap().entrySet()) {
System.out.println(table.getKey() + "=>" + (table.getValue().recs + table.getValue().recsInMemory));
}
这类似于 Accumulo 监视器获取这些值的方式。因为这些是内部 APIs,所以它们使用起来有点粗糙,并且可能会在不同版本之间发生变化。如果您希望看到这些 API 通过普通实例或连接器方法公开,请在 project's JIRA 实例上提出问题!