создать таблицу HBase с ключом Row, если комбинация даты и другого столбца (с учетом уникального идентификатора) - PullRequest
0 голосов
/ 01 мая 2020

Я новичок ie в HBase, может кто-нибудь помочь мне в создании таблицы с помощью Rowkey с (строка даты, строка req_id) Лей говорит, что семейство столбцов содержит обработанную логическую строку tbl_guid, какова моя цель этой таблицы в основном, я получу записи от тех, кто получит req_id и вставит tbl_guid и обработает как false, затем позже, когда-нибудь позже, я обновлю эти записи на основе req_id и сделаю обработанный как true для соответствующего tbl_guid. считать, строка должна выглядеть как

While inserting 
R1-> t1:false,t2:false,
After update 
R1-> t1:true,t2:true

1 Ответ

0 голосов
/ 02 мая 2020

Вам придется использовать RowFilter с регулярным выражением. Ниже приведен фрагмент Java, который получает только те ключи строк, которые соответствуют моему входу. В этом случае структура ключа строки состоит из 5 цифр, за которыми следует строка. Вы можете изменить шаблон регулярного выражения в соответствии с вашими требованиями.

String name = String.format("^\\d{5}%s$", INPUT);

RegexStringComparator keyRegEx = new RegexStringComparator(name);
RowFilter rowFilter = new RowFilter(CompareOp.EQUAL, keyRegEx);
Scan rowScan = new Scan();
rowScan.setFilter(rowFilter);

List<String> children = getHbaseTemplate().find(TABLE_NAME,
                            rowScan, new ResultsExtractor<List>String>>() {
    @Override
    public List<String> extractData(ResultScanner rs)
            throws Exception {
        List<String> children = new ArrayList<String>();

        Result result = rs.next();

        String key = Bytes.toString(result.getRow());

        children.add(key);
    }
}

Тем не менее, дизайн ключа строки в Hbase является важным аспектом, который необходимо учитывать. Вы не должны создавать ключ строки, который вы не можете легко получить, особенно ключи строки с добавленной к ним датой. Вы можете добавить дату или метку времени в конце строк, чтобы вы могли использовать встроенные PrefixFilter или фильтры с STARTROW и ENDROW для эффективного получения результатов.

...