/tiny-presto

Lightweight Presto pluster for verifying query result consistency

Primary LanguageRubyApache License 2.0Apache-2.0

tiny-presto Actions Status Gem Gem

Tiny Presto cluster to check the compatibility of query result by using the specific Presto version.

Install

$ gem install tiny-presto

Prerequisites

tiny-presto uses Docker to run single node Presto cluster. Please ensure to install the Docker engine properly in advance.

See Docker Engine overview

Usage

You can run the query easily as follows.

rows = TinyPresto.run('show schemas')
# => [["default"], ["information_schema"]]

As tiny-presto uses the memory connector as default, it is also possible to create a table.

TinyPresto.run("create table ctas1 as select * from (values (1, 'a'), (2, 'b')) t(c1, c2)")
rows = TinyPresto.run("select * from ctas1")
# => [[1, 'a'], [2, 'b']]

To check the result consistency, verify method is available.

result = TinyPresto.verify('show schemas', [["default"], ["information_schema"]])
# result is true if the returned value by the query matched with the given expected result.

To ensure to delete the tiny-presto cluster, make sure to call ensure_stop before exiting.

TinyPresto.ensure_stop