A Clojure binding for Apache Accumulo.
(def db {:user "user" :password "password" :mock? true})
(def auths "A,B,C")
(with-connector db
(with-authorizations auths
(create-table "demo")
(write "demo"
[(doto (org.apache.accumulo.core.data.Mutation. "r1")
(.put "" "" (as-visibility "A") "Hello!"))
(doto (org.apache.accumulo.core.data.Mutation. "r2")
(.put "" "" (as-visibility "D") "Hidden")
(.put "" "" (as-visibility "B") "Goodbye!"))])
(doseq [[k v] (scan "demo" [(org.apache.accumulo.core.data.Range.)])]
(prn (str (.getRow k)) (str (.getColumnVisibility k)) (str v)))))
An API simplification! Elimination of DSSR's! In all seriousness, we expect that the 0.2 series will maintain many of the concepts in 0.1, but will break the API. In particular,
- pass connectors or connector descriptions into functions directly
- eliminate the
with-connector
andwith-authorizations
macros - provide functions to simplify the keys/value pairs passed into scanners
- give callers control over the lifetimes of their
BatchScanner
andBatchWriter
- provide an abstractions for
Range
,Key
, andMutation
so they don't have to be explicitly constructed
Want to run Clojure tablet-server-side in Accumulo by passing Clojure into scan iterators as iterator options? See clojure-accumulo-iterators.
Copyright 2011-2014 Charles Simpson
Release under the MIT license.