【问题标题】:How to "findAllBy{Column}" with HbaseTemplate?如何使用 HbaseTemplate “findAllBy{Column}”?
【发布时间】:2019-01-21 00:27:02
【问题描述】:

我一直在使用 Spring 和 HBase 等技术开发我的第一个 RESTful 服务器。

Message下面是我服务器的核心模型;

@AllArgsConstructor
@Getter
public class Message {

    private final String from;

    private final String to;

    private final long when;

}

我的服务器应该在 HBase 中保存和查找消息。

我已经研究并阅读了这份文档:https://docs.spring.io/spring-hadoop/docs/2.5.0.RELEASE/reference/html/springandhadoop-hbase.html#data-access-object-dao-support

但是,这还不够。本教程未公开如何按特定列查找。

能否提供一个代码 sn-p,根据以下查询从 HBase 检索消息?

SELECT from, to, when FROM Message WHERE to = {userId} OR from = {userId}

【问题讨论】:

    标签: java hadoop spring-data hbase spring-data-hadoop


    【解决方案1】:

    下面有一个基于列的查询示例:

    Scan scan = new Scan();
    scan.addColumn(HbaseJsonEventSerializer.COLUMFAMILY_FILTERS_BYTES,
                    Bytes.toBytes(columnName));
            Filter filter = new SingleColumnValueFilter(HbaseJsonEventSerializer.COLUMFAMILY_FILTERS_BYTES,
                    Bytes.toBytes(columnName), CompareOp.EQUAL, Bytes.toBytes(columnValue));
            scan.setFilter(filter);
    
            List<String> rows  =
            hbaseTemplate.find("searchclicks", scan, new RowMapper<String>() {
                @Override
                public String mapRow(Result result, int rowNum) throws Exception {
                    byte[] value = result.getValue(
                            HbaseJsonEventSerializer.COLUMFAMILY_FILTERS_BYTES,
                            Bytes.toBytes(columnName));
                    if (value != null) {
                        String facetValue = new String(value);
                        LOG.debug("Facet field: {} and Facet Value: {}",
                                new Object[] { columnName, facetValue });
                    }
                    return facetValue;
                }
            });
    

    您可以参考这里以获取更多示例:
    https://www.programcreek.com/java-api-examples/?code=jaibeermalik/searchanalytics-bigdata/searchanalytics-bigdata-master/src/main/java/org/jai/hbase/HbaseServiceImpl.java

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-13
      • 1970-01-01
      • 2023-04-03
      • 2011-11-07
      • 2019-08-09
      • 1970-01-01
      • 2018-11-13
      相关资源
      最近更新 更多