https://github.com/phstudy/postgresql-zetasketch
ZetaSketch HLL++ functions for PostgreSQL
https://github.com/phstudy/postgresql-zetasketch
bigquery hll java postgresql postgresql-extension zetasketch
Last synced: 20 days ago
JSON representation
ZetaSketch HLL++ functions for PostgreSQL
- Host: GitHub
- URL: https://github.com/phstudy/postgresql-zetasketch
- Owner: phstudy
- Created: 2020-01-20T08:48:00.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2020-02-14T07:36:15.000Z (over 6 years ago)
- Last Synced: 2025-01-21T02:41:37.280Z (over 1 year ago)
- Topics: bigquery, hll, java, postgresql, postgresql-extension, zetasketch
- Language: Java
- Homepage:
- Size: 9.77 KB
- Stars: 4
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# PostgreSQL-ZetaSketch
PostgreSQL-ZetaSketch brings [Google BigQuery HLL++ compatible functions](https://cloud.google.com/bigquery/docs/reference/standard-sql/hll_functions) to PostgreSQL.
## Run in [Docker](https://hub.docker.com/r/study/postgresql-zetasketch)
```bash
docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d study/postgresql-zetasketch
```
## Test HLL++ functions in Docker
### Example
```bash
docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d study/postgresql-zetasketch
docker exec -it some-postgres psql -U postgres
postgres=# SELECT HLL_COUNT.MERGE(respondents_hll) AS num_respondents, flavor
FROM (
SELECT
HLL_COUNT.INIT(respondent) AS respondents_hll,
flavor,
country
FROM (
SELECT * FROM (
VALUES (1, 'Vanilla', 'CH'),
(1, 'Chocolate', 'CH'),
(2, 'Chocolate', 'US'),
(2, 'Strawberry', 'US')) AS t(respondent, flavor, country)) as foo
GROUP BY flavor, country) as bar
GROUP BY flavor;
```
### Result
```
num_respondents | flavor
-----------------+------------
1 | Strawberry
1 | Vanilla
2 | Chocolate
(3 rows)
```
## How to build
### Install dependencies
```bash
$ git clone https://github.com/tada/pljava.git
$ cd pljava
$ git checkout tags/V1_5_5
$ mvn -Pwnosign clean install
$ cd ..
```
### Build postgresql-zetasketch jar
```
$ git clone https://github.com/phstudy/postgresql-zetasketch.git
$ mvn -f postgresql-zetasketch/pom.xml clean package
```