Skip to content

PrestoDB connector for Hazelcast. Run SQL on an in-memory data grid.

License

Notifications You must be signed in to change notification settings

ajermakovics/presto-hazelcast

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

presto-hazelcast

PrestoDb connector for Hazelcast.

Presto is an open source distributed SQL query engine for running interactive analytic queries against data sources of all sizes ranging from gigabytes to petabytes.

This is an experiment in using PrestoDb to run SQL queries on top of Hazelcast. It starts a PrestoDb server and an embedded Hazelcast instance. The connector is used to query maps as if they were tables. Objects in maps are treated as rows.

Usage

  1. Start the server using gradle (2+). This will start the server on port 8383:
  • gradle runServer
  1. Download presto client and run it using:
  • ./presto --server localhost:8383 --catalog hazelcast --schema maps
  1. Run some SQL queries
  • SHOW TABLES;
  • SELECT active, SUM(sales) FROM employees GROUP BY active;
  • Joins:
  • SELECT departments.name, SUM(sales) FROM departments INNER JOIN employees ON id = department GROUP BY departments.name;

The server comes with some example data in table emplyees. You can connect to the embedded Hazelcast instance (port 5701) using a client and put some more data in.

Config

Config is in src/main/resources

Run from IDE

Main class: main.HazelcastPresto
Wroking dir: src/main/resources
JVM Args: -ea -Xmx1G -Dconfig=config.properties -Dlog.levels-file=log.properties

The code for the connector itself is in the plugin package.

TODOs

Lots of things to improve:

  • use map key as an id
  • make distributed and partiton aware
  • result paging
  • make configurable
  • ...

About

PrestoDB connector for Hazelcast. Run SQL on an in-memory data grid.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published