Andrew Psaltis created NIFI-2620:
------------------------------------
Summary: Add ability to write Row Identifier as binary in hbase
using the PutHbaseCell
Key: NIFI-2620
URL: https://issues.apache.org/jira/browse/NIFI-2620
Project: Apache NiFi
Issue Type: Improvement
Affects Versions: 0.6.1, 0.7.0, 1.0.0
Reporter: Andrew Psaltis
Assignee: Andrew Psaltis
Today the PutHBaseCell processor makes the assumption that all row keys are
text. However, this does not work when the row key in the HBase table is
binary.
If the row key is specified in the binary string format, such as:
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x
00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x
00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x
00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x
00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
\x00\x00\x00\x00\x00\x00\x00\x01\x01\x00\x
00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x
00\x00\x00\x00\x00\x00\x01\x00\x00\x01\x00
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x
00\x00\x01\x00\x00\x01\x00\x00\x00\x00\x01
\x01\x01\x00\x01\x00\x01\x01\x01\x00\x00\x
00\x00\x00\x00\x01\x01\x01\x01\x00\x00\x00
\x00\x00\x00\x01\x01\x00\x01\x00\x01\x00\x
00\x01\x01\x01\x01\x00\x00\x01\x01\x01\x00
\x01\x00\x00
Which is the textual representation that the HBase CLI would return, NiFi calls
getBytes on that string. Appropriately HBase will encode the '\' with the hex
code: x5C, resulting in an output string that looks like:
x5Cx00\x5Cx00\ ...........
To address this the proposed solution would be to:
* Add "toBytesBinary" method to HBaseClientService similar to the ones
already added [1].
* Update the PutFlowFile and PutColumn to pass around mostly byte[] and not
strings that they do today.
For this JIRA only support for Text and Binary will be added for the RowKey
[1]
https://github.com/apache/nifi/blob/master/nifi-nar-bundles/nifi-standard-services/nifi-hbase_1_1_2-client-service-bundle/nifi-hbase_1_1_2-client-service/src/main/java/org/apache/nifi/hbase/HBase_1_1_2_ClientService.java#L427
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)