Skip to content

ufukomer/bloomery

Repository files navigation

Bloomery

Bloomery is an open source query execution tool for Impala. It uses node-impala which provides communication between Impala and Node client using the Beeswax Service. Bloomery has ability to show tables of database, columns of tables, saved queries, recent queries and so on.

Bloomery UI

Features

Bloomery has the following features:

  • Syntax highlighting: On the web ui, the editor immediately highlights the sql keywords (e.g select, from, as, where, group, etc.) after the user types it.
  • Autocomplete: While user typing any of the sql keywords, the editor’s suggestion dropdown pops up.
  • Saved queries: It is possible to save any query using save query section.
  • Query history: Application saves the all recent queries.
  • Show query results: Shows all results under the results tab.
  • Remote connection: User can change connection settings for the purpose of connecting server from different machine either with different Host IP or Port Number.
  • Show tables: On top left side of the application it shows all tables of database.
  • Show columns: On the bottom left side of the application it shows table columns with their type property.

Architecture

Bloomery communicates with node-impala using Express Rest API. Express Rest API maps URLs with node-impala’s connect and query methods. Then the actions like executeQuery, showTables, showColumns sends query with request parameters to Rest API then Express forwards that query to node-impala which handles and returns results using Thrift. Eventually, Express puts this results to response body which we present to users inside the table under results tab of ui menu.

Bloomery Architecture

Requirements

  • Node.js
  • Impala

Installation

  1. Install dependencies
$ npm install
  1. Build Bloomery
$ npm run build
  1. Start server
$ npm run serve

License

Apache License, Version 2.0