Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ufukomer/bloomery

Web UI for Impala
https://github.com/ufukomer/bloomery

impala node-impala react redux thrift web-ui

Last synced: 7 days ago
JSON representation

Web UI for Impala

Awesome Lists containing this project

README

        

# Bloomery

Bloomery is an open source query execution tool for [Impala](http://impala.io/). It uses [node-impala](https://github.com/ufukomer/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.

* [Features](#features)
* [Architecture](#architecture)
* [Requirements](#requirements)
* [Installation](#installation)

![Bloomery UI](screenshots/bloomery.png)

## 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](screenshots/architecture.jpg)

## Requirements

* Node.js
* Impala

## Installation

1. Install dependencies

```
$ npm install
```

2. Build Bloomery

```
$ npm run build
```

3. Start server

```
$ npm run serve
```

## License

Apache License, Version 2.0