This Processor polls HBase for any records in the specified table. The processor keeps track of the timestamp of the cells that it receives, so that as new records are pushed to HBase, they will automatically be pulled. Each record is output in JSON format, as {"row": "<row key>", "cells": { "<column 1 family>:<column 1 qualifier>": "<cell 1 value>", "<column 2 family>:<column 2 qualifier>": "<cell 2 value>", ... }}. For each record received, a Provenance RECEIVE event is emitted with the format hbase://<table name>/<row key>, where <row key> is the UTF-8 encoded value of the row's key.
hbase, get, ingest
In the list below, the names of required properties appear in bold. Any other properties (not in bold) are considered optional. The table also indicates any default values, and whether a property supports the NiFi Expression Language.
Display Name | API Name | Default Value | Allowable Values | Description |
---|---|---|---|---|
HBase Client Service | HBase Client Service | Controller Service API: HBaseClientService Implementations: HBase_2_ClientService HBase_1_1_2_ClientService | Specifies the Controller Service to use for accessing HBase. | |
Distributed Cache Service | Distributed Cache Service | Controller Service API: DistributedMapCacheClient Implementations: SimpleRedisDistributedMapCacheClientService HBase_2_ClientMapCacheService HazelcastMapCacheClient DistributedMapCacheClientService RedisDistributedMapCacheClientService CouchbaseMapCacheClient CassandraDistributedMapCache HBase_1_1_2_ClientMapCacheService | Specifies the Controller Service that should be used to maintain state about what has been pulled from HBase so that if a new node begins pulling data, it won't duplicate all of the work that has been done. | |
Table Name | Table Name | The name of the HBase Table to put data into Supports Expression Language: true (will be evaluated using variable registry only) | ||
Columns | Columns | A comma-separated list of "<colFamily>:<colQualifier>" pairs to return when scanning. To return all columns for a given family, leave off the qualifier such as "<colFamily1>,<colFamily2>". Supports Expression Language: true (will be evaluated using variable registry only) | ||
Authorizations | hbase-fetch-row-authorizations | The list of authorizations to pass to the scanner. This will be ignored if cell visibility labels are not in use. Supports Expression Language: true (will be evaluated using variable registry only) | ||
Filter Expression | Filter Expression | An HBase filter expression that will be applied to the scan. This property can not be used when also using the Columns property. Supports Expression Language: true (will be evaluated using variable registry only) | ||
Initial Time Range | Initial Time Range | None |
| The time range to use on the first scan of a table. None will pull the entire table on the first scan, Current Time will pull entries from that point forward. |
Character Set | Character Set | UTF-8 | Specifies which character set is used to encode the data in HBase Supports Expression Language: true (will be evaluated using variable registry only) |
Name | Description |
---|---|
success | All FlowFiles are routed to this relationship |
Name | Description |
---|---|
hbase.table | The name of the HBase table that the data was pulled from |
mime.type | Set to application/json to indicate that output is JSON |
Scope | Description |
---|---|
CLUSTER | After performing a fetching from HBase, stores a timestamp of the last-modified cell that was found. In addition, it stores the ID of the row(s) and the value of each cell that has that timestamp as its modification date. This is stored across the cluster and allows the next fetch to avoid duplicating data, even if this Processor is run on Primary Node only and the Primary Node changes. |