So yeah... no documentation for the HBase REST API in regards to what should a filter look like...
So I installed Eclipse, got the library, and took some time to find some of the (seemingly) most useful filters you could use. I'm very green at anything regarding HBase, and I hope this will help anyone trying to get started with it.
What I discovered is that basically, attributes of the filter object follow the same naming than in the documentation. For this reason, I have made the link clickable and direct them to the HBase Class documentation attached to it; check for the instantiation argument names, and you will have your attribute list (more or less).
Don't forget, values are encoded.
- HBase REST Filter (SingleColumnValueFilter)
- HBase Intra-row scanning
- HBase Book / Chapter on Client Filter
{
"type": "ColumnPrefixFilter",
"value": "cHJlZml4"
}
{
"type": "ColumnRangeFilter",
"minColumn": "Zmx1ZmZ5",
"minColumnInclusive": true,
"maxColumn": "Zmx1ZmZ6",
"maxColumnInclusive": false
}
Could not generate an example, but I guess it should be pretty simple to test if it works just by intuitively plugging variables a certain way...
null
{
"type": "FamilyFilter",
"op": "EQUAL",
"comparator": {
"type": "BinaryComparator",
"value": "dGVzdHJvdw\u003d\u003d"
}
}
{
"type": "FilterList",
"op": "MUST_PASS_ALL",
"filters": [
{
"type": "RowFilter",
"op": "EQUAL",
"comparator": {
"type": "BinaryComparator",
"value": "dGVzdHJvdw\u003d\u003d"
}
},
{
"type": "ColumnRangeFilter",
"minColumn": "Zmx1ZmZ5",
"minColumnInclusive": true,
"maxColumn": "Zmx1ZmZ6",
"maxColumnInclusive": false
}
]
}
{
"type": "FirstKeyOnlyFilter"
}
{
"type": "InclusiveStopFilter",
"value": "cm93a2V5"
}
{
"type": "MultipleColumnPrefixFilter",
"prefixes": [
"YWxwaGE\u003d",
"YnJhdm8\u003d",
"Y2hhcmxpZQ\u003d\u003d"
]
}
{
"type": "PageFilter",
"value": "10"
}
{
"type": "PrefixFilter",
"value": "cm93cHJlZml4"
}
{
"type": "QualifierFilter",
"op": "GREATER",
"comparator": {
"type": "BinaryComparator",
"value": "cXVhbGlmaWVycHJlZml4"
}
}
{
"type": "RowFilter",
"op": "EQUAL",
"comparator": {
"type": "BinaryComparator",
"value": "dGVzdHJvdw\u003d\u003d"
}
}
{
"type": "SingleColumnValueFilter",
"op": "EQUAL",
"family": "ZmFtaWx5",
"qualifier": "Y29sMQ\u003d\u003d",
"latestVersion": true,
"comparator": {
"type": "BinaryComparator",
"value": "MQ\u003d\u003d"
}
}
{
"type": "TimestampsFilter",
"timestamps": [
"1351586939"
]
}
I use FirstKeyOnlyFilter and KeyOnlyFilter respectively in HBase 1.2 (CDH 5.16), but it did not work and return "503 Service Unavailable".
Does anybody has any idea?
The following is request and response:
The log of HBase REST Server: