airpal

Web UI for PrestoDB.

  • 所有者: airbnb/airpal
  • 平台:
  • 許可證: Apache License 2.0
  • 分類:
  • 主題:
  • 喜歡:
    0
      比較:

Github星跟蹤圖

Airpal

Airpal is a web-based, query execution tool which leverages Facebook's PrestoDB
to make authoring queries and retrieving results simple for users.
Airpal provides the ability to find tables, see metadata, browse sample rows,
write and edit queries, then submit queries all in a web interface. Once
queries are running, users can track query progress and when finished,
get the results back through the browser as a CSV (download it or share it
with friends). The results of a query can be used to generate a new Hive table
for subsequent analysis, and Airpal maintains a searchable history of all
queries run within the tool.

Airpal UI

Features

  • Optional Access Control
  • Syntax highlighting
  • Results exported to a CSV for download or a Hive table
  • Query history for self and others
  • Saved queries
  • Table finder to search for appropriate tables
  • Table explorer to visualize schema of table and first 1000 rows

Requirements

  • Java 7 or higher
  • MySQL database
  • Presto 0.77 or higher
  • S3 bucket (to store CSVs)
  • Gradle 2.2 or higher

Steps to launch

  1. Build Airpal

    We'll be using Gradle to build the back-end Java code
    and a Node.js-based build pipeline (Browserify
    and Gulp) to build the front-end Javascript code.

    If you have node and npm installed locally, and wish to use
    them, simply run:

    ./gradlew clean shadowJar -Dairpal.useLocalNode
    

    Otherwise, node and npm will be automatically downloaded for you
    by running:

    ./gradlew clean shadowJar
    

    Specify Presto version by -Dairpal.prestoVersion:

    ./gradlew -Dairpal.prestoVersion=0.145 clean shadowJar
    
  2. Create a MySQL database for Airpal. We recommend you call it airpal and will assume that for future steps.

  3. Create a reference.yml file to store your configuration options.

    Start by copying over the example configuration, reference.example.yml.

    cp reference.example.yml reference.yml
    

    Then edit it to specify your MySQL credentials, and your S3 credentials if
    using S3 as a storage layer (Airpal defaults to local file storage, for
    demonstration purposes).

  4. Migrate your database.

    java -Duser.timezone=UTC \
         -cp build/libs/airpal-*-all.jar com.airbnb.airpal.AirpalApplication db migrate reference.yml
    
  5. Run Airpal.

    java -server \
         -Duser.timezone=UTC \
         -cp build/libs/airpal-*-all.jar com.airbnb.airpal.AirpalApplication server reference.yml
    
  6. Visit Airpal.
    Assuming you used the default settings in reference.yml you can
    now open http://localhost:8081 to use Airpal. Note that you might
    have to change the host, depending on where you deployed it.

Note: To override the configuration specified in reference.yml, you may
specify certain settings on the command line in the traditional Dropwizard
fashion
,
like so:

java -Ddw.prestoCoordinator=http://presto-coordinator-url.com \
     -Ddw.s3AccessKey=$ACCESS_KEY \
     -Ddw.s3SecretKey=$SECRET_KEY \
     -Ddw.s3Bucket=airpal \
     -Ddw.dataSourceFactory.url=jdbc:mysql://127.0.0.1:3306/airpal \
     -Ddw.dataSourceFactory.user=airpal \
     -Ddw.dataSourceFactory.password=$YOUR_PASSWORD \
     -Duser.timezone=UTC \
     -cp build/libs/airpal-*-all.jar db migrate reference.yml

Compatibility Chart

Airpal Version, Presto Versions Tested
---------------, -----------------------
0.1, 0.77, 0.87, 0.145

In the Wild

Organizations and projects using airpal can list themselves here.

Contributors

主要指標

概覽
名稱與所有者airbnb/airpal
主編程語言Java
編程語言Java (語言數: 6)
平台
許可證Apache License 2.0
所有者活动
創建於2014-05-05 18:51:30
推送於2021-05-20 15:39:40
最后一次提交2021-05-20 08:39:40
發布數0
用户参与
星數2.8k
關注者數221
派生數455
提交數448
已啟用問題?
問題數107
打開的問題數79
拉請求數108
打開的拉請求數8
關閉的拉請求數13
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?