Data abstraction over Apache Accumulo
The Cellmate API lets you build domain objects and DAO layers over a simple and concise API, while avoiding the internals of the raw Accumulo API. The net result is less biolerplate code and a strong decoupling between your domain objects and Accumulo operations.
Users can focus on their business logic and solving problems, and less on the Accumulo API details of setting up scans, connections, authorizations, filters, and other requirements. All of that is handled for you by Cellmate.
What is Cellmate?
The core library contains a number of discrete components that help abstract Accumulo operations.
- Cells that typically mark a single string or byte value with some meaningful label (usually the qualifier from the Key/Value pair). Users can use one of the prebuilt cell types, or implement their own with annotations.
- CellGroup collections that mark cells with a tag (usually the rowId from the Key/Value pair).
- Parameters that let users define required scan/write options for Accumulo scan and writes (user, password, start-key, end-key, iterators, etc).
- Reader to take parameters and return scanned cell groups.
- CellTransformer functions that tells the reader how to take Key/Value pairs and build cells and cell groups from the scan results.
- Extractor that supports dereferencing data in cells based on filter patterns or direct lookup on known labels.
- Writer to take cell groups and write Mutations back to Accumulo. (Note: At this time, this has functionally has not be tested.)
What this API provides
- Reader implementations Accumulo that enable rapid development of read/write applications and filtered queries.
- Various prebuilt cell classes for use over Accumulo that cover many use cases.
- Several Accumulo cell transformer classes that cover many common use cases.
- Writer implementations for Accumulo that automatically handle persisting any custom cell type.
- Cell extractors that assist with parsing cells and cell groups for use with your higher-level domain objects.
- Annotations and interfaces to help build custom cells, transformers or reader/writer implementations.
Licensed AS-IS under Apache License 2.0