Algebird's HyperLogLog support for Facebook Presto (prestodb.io).
There are two types of functions, aggregation and scalar.
merge(<hll: HLL>) -> HLL
hll_create(<element:VARCHAR>, <bits: BIGINT>) -> HLL
cardinality(<hll: HLL>) -> BIGINT
As this is a Presto plugin it relies on presto-spi. This means you will have to build Presto first and this project expects to find Presto as a parent project.
/presto/
/presto/presto-main
/presto/presto-hyperloglog
Then run mvn clean install in /presto. Once that has finished run mvn clean install in /presto/presto-hyperloglog.
Finally add the plugin to /presto/presto-main/etc/config.properties.
The uber jar is now built by maven.
mkdir /usr/lib/presto/plugin/presto-hyperloglog
cd /usr/lib/presto/plugin/presto-hyperloglog
sudo wget https://github.com/vitillo/presto-hyperloglog/raw/master/target/presto-hyperloglog-$PRESTO_VERSION-jar-with-dependencies.jar