GetHBase

Description:

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.

Tags:

hbase, get, ingest

Properties:

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 NameAPI NameDefault ValueAllowable ValuesDescription
HBase Client ServiceHBase Client ServiceController Service API:
HBaseClientService
Implementation: HBase_2_ClientService
Specifies the Controller Service to use for accessing HBase.
Distributed Cache ServiceDistributed Cache ServiceController Service API:
DistributedMapCacheClient
Implementations: CassandraDistributedMapCache
SimpleRedisDistributedMapCacheClientService
CouchbaseMapCacheClient
HBase_2_ClientMapCacheService
DistributedMapCacheClientService
RedisDistributedMapCacheClientService
HazelcastMapCacheClient
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 NameTable NameThe name of the HBase Table to put data into
Supports Expression Language: true (will be evaluated using variable registry only)
ColumnsColumnsA 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)
Authorizationshbase-fetch-row-authorizationsThe 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 ExpressionFilter ExpressionAn 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 RangeInitial Time RangeNone
  • None
  • Current Time
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 SetCharacter SetUTF-8Specifies which character set is used to encode the data in HBase
Supports Expression Language: true (will be evaluated using variable registry only)

Relationships:

NameDescription
successAll FlowFiles are routed to this relationship

Reads Attributes:

None specified.

Writes Attributes:

NameDescription
hbase.tableThe name of the HBase table that the data was pulled from
mime.typeSet to application/json to indicate that output is JSON

State management:

ScopeDescription
CLUSTERAfter 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.

Restricted:

This component is not restricted.

Input requirement:

This component does not allow an incoming relationship.

System Resource Considerations:

None specified.