您的位置:首页 > 大数据

Hbase中Filter的使用

2016-01-07 10:40 344 查看
/**
* 组装查询条件成hbase 过滤器
*/
public static Filter getOrderQueryFilter(QueryCondition qc) {
// MUST_PASS_ALL(条件 AND) MUST_PASS_ONE(条件OR)
Filter filter = null;
List<Filter> filters = new ArrayList<Filter>();

if (qc != null && qc.getPay_time_start() != null && !qc.getPay_time_start().equals("")) {
Filter filter_payTime_start = HBaseUtil.getSingleColumnValueFilter("infor", "pay_time",
CompareOp.GREATER_OR_EQUAL, qc.getPay_time_start()); // 订单支付开始时间
filters.add(filter_payTime_start);
}
if (qc != null && qc.getPay_time_end() != null && !qc.getPay_time_end().equals("")) {
Filter filter_payTime_end = HBaseUtil.getSingleColumnValueFilter("infor", "pay_time",
CompareOp.LESS_OR_EQUAL, qc.getPay_time_end()); // 订单支付结束时间
filters.add(filter_payTime_end);
}
if (qc != null && qc.getOrder_belong() != null && !qc.getOrder_belong().equals("")) {
Filter filter_order_belong = HBaseUtil.getSingleColumnValueFilter("infor", "order_belong", CompareOp.EQUAL,
qc.getOrder_belong()); // 订单归属
filters.add(filter_order_belong);
}

// 组合订单状态所得到的过滤器[查询多种状态使用]
if (qc != null && qc.getOrder_status() != null && !qc.getOrder_status().equals("")) {
Filter orderStatusFilter = null;
List<Filter> orderStatusFilters = new ArrayList<Filter>();
Filter columnValueFilter;

for(String order_status : qc.getOrder_status().split(",")){
columnValueFilter = HBaseUtil.getSingleColumnValueFilter("state", "html_order_status",
CompareOp.EQUAL, order_status);
orderStatusFilters.add(columnValueFilter);
}
orderStatusFilter = new FilterList(Operator.MUST_PASS_ONE, orderStatusFilters);
filters.add(orderStatusFilter);
}
//组合供应商名称所得到的过滤器
if (qc != null && qc.getMerchant_name() != null && !qc.getMerchant_name().equals("")) {
Filter merchantNameFilter = HBaseUtil.getSingleColumnValueFilter("infor", "merchant_name",
CompareOp.EQUAL, qc.getMerchant_name());
filters.add(merchantNameFilter);
}

//组合仓库代码所得到的过滤器
if (qc != null && qc.getOpencity_sn() != null && !qc.getOpencity_sn().equals("")) {
Filter opencitySnFilter = HBaseUtil.getSingleColumnValueFilter("storage", "opencity_sn",
CompareOp.EQUAL, qc.getOpencity_sn());
filters.add(opencitySnFilter);
}

// 总的过滤器
filter = new FilterList(Operator.MUST_PASS_ALL, filters);

return filter;
}

/**
* 组装查询条件成hbase 过滤器
*/
public static Filter getOrderQueryFilter(QueryCondition qc) {
// MUST_PASS_ALL(条件 AND) MUST_PASS_ONE(条件OR)
Filter filter = null;
List<Filter> filters = new ArrayList<Filter>();

if (qc != null && qc.getPay_time_start() != null && !qc.getPay_time_start().equals("")) {
Filter filter_payTime_start = HBaseUtil.getSingleColumnValueFilter("infor", "pay_time",
CompareOp.GREATER_OR_EQUAL, qc.getPay_time_start()); // 订单支付开始时间
filters.add(filter_payTime_start);
}
if (qc != null && qc.getPay_time_end() != null && !qc.getPay_time_end().equals("")) {
Filter filter_payTime_end = HBaseUtil.getSingleColumnValueFilter("infor", "pay_time",
CompareOp.LESS_OR_EQUAL, qc.getPay_time_end()); // 订单支付结束时间
filters.add(filter_payTime_end);
}
if (qc != null && qc.getOrder_belong() != null && !qc.getOrder_belong().equals("")) {
Filter filter_order_belong = HBaseUtil.getSingleColumnValueFilter("infor", "order_belong", CompareOp.EQUAL,
qc.getOrder_belong()); // 订单归属
filters.add(filter_order_belong);
}

// 组合订单状态所得到的过滤器[查询多种状态使用]
if (qc != null && qc.getOrder_status() != null && !qc.getOrder_status().equals("")) {
Filter orderStatusFilter = null;
List<Filter> orderStatusFilters = new ArrayList<Filter>();
Filter columnValueFilter;

for(String order_status : qc.getOrder_status().split(",")){
columnValueFilter = HBaseUtil.getSingleColumnValueFilter("state", "html_order_status",
CompareOp.EQUAL, order_status);
orderStatusFilters.add(columnValueFilter);
}
orderStatusFilter = new FilterList(Operator.MUST_PASS_ONE, orderStatusFilters);
filters.add(orderStatusFilter);
}
//组合供应商名称所得到的过滤器
if (qc != null && qc.getMerchant_name() != null && !qc.getMerchant_name().equals("")) {
Filter merchantNameFilter = HBaseUtil.getSingleColumnValueFilter("infor", "merchant_name",
CompareOp.EQUAL, qc.getMerchant_name());
filters.add(merchantNameFilter);
}

//组合仓库代码所得到的过滤器
if (qc != null && qc.getOpencity_sn() != null && !qc.getOpencity_sn().equals("")) {
Filter opencitySnFilter = HBaseUtil.getSingleColumnValueFilter("storage", "opencity_sn",
CompareOp.EQUAL, qc.getOpencity_sn());
filters.add(opencitySnFilter);
}

// 总的过滤器
filter = new FilterList(Operator.MUST_PASS_ALL, filters);

return filter;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  filter hbase 大数据