In meinem Fall verwende ich rowfilter, um bestimmte Rowkeys in HBase zu suchen. Ich möchte eine Fuzzy-Abfrage durchführen, also benutze ich Scan und Zeilenfilter anstelle von 'Get'. Wenn ich zum Beispiel zehn Millionen Rowkeys in HBase gespeichert habe, dauert es sehr lange, bis die Ergebnisse gescannt sind. Wie kann ich die Leistung der rowfilter Abfrage verbessern?Wie verbessert man die Leistung von RowFilter in HBase?
try {
for (String uid : uidsArr) {
Scan scan = new Scan();
Filter filter1 = new RowFilter(CompareFilter.CompareOp.EQUAL, new SubstringComparator(uid));
scan.setFilter(filter1);
scan.setMaxVersions(versions);
ResultScanner scanner1 = table.getScanner(scan);
Cell[] cells;
for (Result res : scanner1) {
cells = res.rawCells();
list.addAll(getHBaseTableDataListFromCells(cells));
}
}
return list;
} catch (Exception e) {
e.printStackTrace();
}