GithubHelp home page GithubHelp logo

furcypin / flamy Goto Github PK

View Code? Open in Web Editor NEW

This project forked from flaminem/flamy

3.0 1.0 0.0 1.32 MB

the database manager for Apache Hive

License: Apache License 2.0

Scala 99.89% Shell 0.11%

flamy's Introduction

FLAMY

the database manager for Apache Hive

Build Status Docs

Flamy is a tool to help organizing, validating and running SQL queries and manage their dependencies.

By analyzing queries, Flamy can find dependencies between tables, draw the dependency graph, and run the queries in the right order. It is also a great tool to quickly validate your hive queries without having to actually run them.

It is currently compatible with Hive and Spark-SQL, and is especially helpful when using Hive on Amazon's EMR.

Documentation

See the documentation for installation, configuration, usage instructions, and a tutorial.

Features

Flamy helps SQL developers to:

  • easily and rapidly check the integrity of their queries, even against an evolving database
  • better visualize and understand the workflows they created
  • easily deploy and execute them on multiple environments
  • efficiently gather metadata from the Metastore

10_run (you can click the image to get a video with better resolution)

Installation

To install flamy, you can either download a pre-packaged version or build it from source.

Dependencies :

Printing dependency graphs requires the program dot that can be found in the following packages:

Debian-based

apt-get install graphviz libgraphviz-dev

Mac OS X

Install brew if not already installed

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null

Install graphviz

brew install graphviz

Download a pre-packaged version :

Download and untar the .tgz from this url:

wget 'https://oss.sonatype.org/service/local/artifact/maven/content?r=snapshots&g=com.flaminem&a=flamy&p=tgz&v=LATEST' | gunzip | tar -x

You still need to install the program dot as explained above to be able to display graphs.

or Build from source

Compilation requires sbt to compile.

git clone [email protected]:flaminem/flamy.git
cd flamy
sbt clean stage

The packaging directory will be found at target/universal/stage, with the executable at target/universal/stage/bin/flamy and the configuration file at target/universal/stage/conf/flamy.properties but bear in mind that recompiling the project will regenerate the target/universal/stage/ folder. You can use the --config-file to point the configuration file to an alternate location.

Starting a shell

Once packaged, you can start a shell with

target/universal/stage/bin/flamy shell

Once in the shell, the help command will list all the available commands and their options, and the show conf command will help you troubleshoot any configuration issue.

(Optional) Running unit tests :

Use the following command. In case you encounter PermGenSpace or Metaspace errors, increase the memory allocated to sbt.

sbt test

(Optional) Running integration tests :

Use the following command. In case you encounter PermGenSpace or Metaspace errors, increase the memory allocated to sbt.

sbt "project integration_tests" it:test

Extra java options :

When running flamy, you can add extra java options to your environment, for example :

export FLAMY_EXTRA_JAVA_OPTIONS="-Xmx512m"

Contact

flamy's People

Contributors

furcypin avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.