Accumulo is designed to support building applications that support huge numbers of simultaneous users, handling a large number of write, update, and read requests by providing highly scalable, low-latency, random access to data in tables. These tables can be designed to support Internet applications that serve data to and receive data from millions of users around the world. In addition, Accumulo provides capabilities well suited to keeping a large amount of data organized for the purposes of analysis, and for delivering analytical results to many users of varying access levels.
The Java client API is the primary method of getting data into and out of Accumulo tables. Applications can be written in Java or other JVM-based languages using the provided client library or in non-JVM–based languages by using the Thrift proxy.
Applications typically need to perform three tasks: getting data into Accumulo, applying any necessary transformations to existing data to map to the Accumulo data model, and performing scans against Accumulo tables to satisfy user requests.
Many Accumulo clients are deployed as part of a web application, allowing users to perform interactive requests for information stored in Accumulo tables, although this is certainly not a requirement. Some clients provide access to information in Accumulo to other services.
When you design an application on the Accumulo API, you should consider a few questions that will assist in determining how to write ...