gpt4 book ai didi

java - 使用hbase作为键值存储,需要使用java提取值

转载 作者:行者123 更新时间:2023-12-01 11:47:45 25 4
gpt4 key购买 nike

我正在使用 Hbase 作为键值存储,其中我们有一个具有单个值的列族。 java 过滤器在不到一秒的时间内获取行,但在尝试检索该值时需要 15 秒。如果有人可以研究它并给我指点,那将非常有帮助。这是代码:-

        Scan scan1 = new Scan();
scan1.addColumn(Bytes.toBytes("column_family"), Bytes.toBytes("column_name"));
Filter filter1 = new RowFilter(CompareFilter.CompareOp.EQUAL,
new BinaryComparator(Bytes.toBytes("hashvalue")));
scan1.setFilter(filter1);
long startTime = System.nanoTime();
ResultScanner scanner1 = table.getScanner(scan1);
System.out.println(scanner1.next().getColumnLatestCell(Bytes.toBytes("column_family"), Bytes.toBytes("column_name")));
long endTime = System.nanoTime();
double seconds = (double)(endTime - startTime) / 1000000000.0;
System.out.println("Scan with row key using scan: " + seconds);
scanner1.close();

最佳答案

如果您知道 key 的确切值,则无需进行扫描,您可以执行 Get相反,这应该是非常高效的。

Result result = table.get(Bytes.toBytes("hashvalue")) 

触发时耗时过长的原因next是因为每次调用nextRPC单独调用(访问 HBase ),您可以使用 setCaching在单次访问 HBase 中获取一定数量的行.

关于java - 使用hbase作为键值存储,需要使用java提取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29023491/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com