Web UI for PrestoDB.

Overview

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

Comments
  • Support for Presto 0.145 (work in progress)

    Support for Presto 0.145 (work in progress)

    Opening this PR per request in Issue https://github.com/airbnb/airpal/issues/145#issuecomment-220160512. Unfortunately I don't have time to work further on this, so hopefully someone can take this and run with it.

    Please note that all caveats mentioned in that thread still apply (see my comment here https://github.com/airbnb/airpal/issues/145#issuecomment-216400626). This PR represents a work in progress. It compiles, and launches. However, I was unable to test functionality end to end. I'm not confident that things all work.

    Two main risk points I'm less confident with my changes:

    • The main thing that is likely broken is the Column type field mapping. The API isn't well documented and I just took a guess at what was needed (I didn't have a Hive cluster handy to compare output of SHOW COLUMNS FOR). This impacts the column cache (HiveColumn). When querying a table I do get an exception related to this, but I don't have the time to debug further at the moment.
    • Shiro -- Several APIs changed and while I think I've migrated the code to match the original intent (basically its about how principals and subjects are injected), I haven't checked/tested it in any way
    opened by gwittel 25
  • API endpoints

    API endpoints

    Hi @andykram,

    Currently we need to call the API twice if we want both the column names and the column data. What's the reason behind this? Speed?

    Cheers

    enhancement 
    opened by stefanvermaas 20
  • airpal doesn't work with presto-0.150

    airpal doesn't work with presto-0.150

    follow guide https://github.com/airbnb/airpal, but always meet below errors. ERROR [2016-09-05 06:50:57,942] com.airbnb.airpal.resources.sse.SSEEventSourceServlet: Could not serialize JobEvent as JSON ! java.lang.IllegalArgumentException: ParameterKind is [LONG] but expected [NAMED_TYPE]

    opened by qli-aa 13
  • Presto 0.93 and 0.96 compilation errors

    Presto 0.93 and 0.96 compilation errors

    If I do not specify any prestoVersion it works just fine. When I do specify (I've just tried with 0.93 and 0.96) I get compilation errors.

    See: https://gist.github.com/mfirry/492a502fa4b1a4246bfe

    java version "1.8.0_25" Java(TM) SE Runtime Environment (build 1.8.0_25-b17) Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)

    opened by mfirry 13
  • gulp-notify: [Compile Error] not implemented

    gulp-notify: [Compile Error] not implemented

    I just cloned the repo and tried to build it but I get a weird gulp-notify 'not implemented' error.

    ∙ ./gradlew -Dairpal.prestoVersion=0.93 clean shadowJar -Dairpal.useLocalNode                                                                                  17:30  marco@mymachine
    :cleanAssets UP-TO-DATE
    :clean
    :nodeSetup SKIPPED
    :installAssets
    :buildAssets
    [17:31:13] Using gulpfile ~/playground/airpal/src/main/resources/assets/gulpfile.js
    [17:31:13] Starting 'browserify'...
    [17:31:13] Bundling app.js...
    [17:31:13] Bundling plugin.js...
    [17:31:13] gulp-notify: [Compile Error] not implemented
    [17:31:13] gulp-notify: [Compile Error] not implemented
    [17:31:13] Bundled app.js in 21 ms
    [17:31:13] Bundled plugin.js in 22 ms
    [17:31:13] Finished 'browserify' after 136 ms
    

    My setup is:

    ∙ node -v                                                                                                                                                      17:31  marco@mymachine
    v0.12.0
    ~
    ∙ gulp -v                                                                                                                                                      17:31  marco@mymachine
    [17:31:23] CLI version 3.8.11
    
    opened by mfirry 13
  • Adds alt

    Adds alt

    Ok this is good to go although I'd love for one of you guys to take it for a spin since my IntelliJ isn't working. I had to hack around it to make it work locally for me, no errors here.

    @hshoff @spikebrehm @andykram

    I've es6'd a bunch of things. Altified the flux. And have a negative differential.

    opened by goatslacker 8
  • Data Preview not working

    Data Preview not working

    I have some ideas to make it easier to start (I waste my time on it):

    • add prestoCatalog in example
    • add git clone [email protected]:airbnb/airpal.git in readme steps
    • make prestoCoordinator: http://localhost:8080 by default
    • add export NODE_ENV='development'
    • make "browser-sync": "~2.6.5" in src/main/resources/assets/package.json
    • add prebuild package (if possible)
    • add precompiled javascript (if possible)

    screen shot 2015-05-22 at 15 05 55

    I have more questions:

    1. What is partitions for?
    2. Can we preview sql query result? (I can download, but can not see in browser)
    3. Can we use only one schema from catalog? (tables list is too big)
    4. Why do you choose java? Stack trace is so hard to read
    opened by Paxa 7
  • S3 cse encryption and compression

    S3 cse encryption and compression

    This change adds support for gzip compression on data stored in S3 to reduce storage size.

    This change also adds support for S3 encryption materials provider implementations when dealing with data in S3. This allows for client-managed encryption keys which are still transparently used when viewing/downloading output files stored in S3.

    opened by natesammons-nasdaq 5
  • I always get

    I always get "Catalog hive does not exist"

    [SOLVED]

    I have run everything but I am not sure why I can't query and it always return "Catalog hive does not exist". What am i missing here?

    Thanks.


    In presto-server-0.96/etc/catalog dir, I created a connector named "hive.properties". zzzz

    opened by warrenca 5
  • [api] API updates

    [api] API updates

    This PR cleans up some interfaces and adds the following new API endpoints:

    • /api/queries
    • /api/user
    • /api/users/:id/permissions
    • /api/users/:id/queries

    More details on the new endpoints are in #11

    /cc @stefanvermaas `

    opened by andykram 5
  • Add “In the Wild” section.

    Add “In the Wild” section.

    The idea is that companies and/or projects can list themselves here, just like https://github.com/airbnb/javascript#in-the-wild and https://github.com/airbnb/aerosolve/pull/103.

    It's in a separate file so that PRs to it don't have to touch the main README.

    opened by ljharb 4
  • Unable to install Airapal using the command

    Unable to install Airapal using the command

    Hi , I am getting these issue while installing the Airpal, Help me understand the issue . Does this only work for Linux or mac . ? I have used the command in Windows . Any suggestion is appreciated ,

    command : gradlew -Dairpal.prestoVersion=0.85 clean shadowJar

    C:\Users\user\Desktop\ProjectNewCastle\test\airpal>gradlew -Dairpal.prestoVersion=0.85 clean shadowJar Download https://repo1.maven.org/maven2/com/facebook/presto/presto-client/0.85/presto-client-0.85.pom Download https://repo1.maven.org/maven2/com/facebook/presto/presto-root/0.85/presto-root-0.85.pom Download https://repo1.maven.org/maven2/io/airlift/airbase/28/airbase-28.pom Download https://repo1.maven.org/maven2/com/facebook/presto/presto-spi/0.85/presto-spi-0.85.pom Download https://repo1.maven.org/maven2/com/facebook/presto/presto-main/0.85/presto-main-0.85.pom Download https://repo1.maven.org/maven2/com/facebook/presto/presto-parser/0.85/presto-parser-0.85.pom Download https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-annotations/2.4.2/jackson-annotations-2.4.2.pom Download https://repo1.maven.org/maven2/io/airlift/http-client/0.97/http-client-0.97.pom Download https://repo1.maven.org/maven2/io/airlift/airlift/0.97/airlift-0.97.pom Download https://repo1.maven.org/maven2/io/airlift/json/0.97/json-0.97.pom Download https://repo1.maven.org/maven2/io/airlift/slice/0.6/slice-0.6.pom Download https://repo1.maven.org/maven2/io/airlift/airbase/21/airbase-21.pom Download https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/2.4.2/jackson-core-2.4.2.pom Download https://repo1.maven.org/maven2/org/jruby/joni/joni/2.0.0/joni-2.0.0.pom Download https://repo1.maven.org/maven2/org/jruby/jcodings/jcodings/1.0.8/jcodings-1.0.8.pom Download https://repo1.maven.org/maven2/io/airlift/bootstrap/0.97/bootstrap-0.97.pom Download https://repo1.maven.org/maven2/io/airlift/concurrent/0.97/concurrent-0.97.pom Download https://repo1.maven.org/maven2/io/airlift/node/0.97/node-0.97.pom Download https://repo1.maven.org/maven2/io/airlift/configuration/0.97/configuration-0.97.pom Download https://repo1.maven.org/maven2/io/airlift/discovery/0.97/discovery-0.97.pom Download https://repo1.maven.org/maven2/io/airlift/event/0.97/event-0.97.pom Download https://repo1.maven.org/maven2/io/airlift/floatingdecimal/0.2/floatingdecimal-0.2.pom Download https://repo1.maven.org/maven2/io/airlift/airbase/27/airbase-27.pom Download https://repo1.maven.org/maven2/io/airlift/http-server/0.97/http-server-0.97.pom Download https://repo1.maven.org/maven2/io/airlift/jaxrs/0.97/jaxrs-0.97.pom Download https://repo1.maven.org/maven2/io/airlift/jmx/0.97/jmx-0.97.pom Download https://repo1.maven.org/maven2/io/airlift/jmx-http/0.97/jmx-http-0.97.pom Download https://repo1.maven.org/maven2/io/airlift/log/0.97/log-0.97.pom Download https://repo1.maven.org/maven2/io/airlift/log-manager/0.97/log-manager-0.97.pom Download https://repo1.maven.org/maven2/io/airlift/resolver/resolver/1.1/resolver-1.1.pom Download https://repo1.maven.org/maven2/io/airlift/resolver/resolver-root/1.1/resolver-root-1.1.pom Download https://repo1.maven.org/maven2/io/airlift/airbase/5/airbase-5.pom Download https://repo1.maven.org/maven2/io/airlift/stats/0.97/stats-0.97.pom Download https://repo1.maven.org/maven2/io/airlift/trace-token/0.97/trace-token-0.97.pom Download https://repo1.maven.org/maven2/io/airlift/units/0.97/units-0.97.pom Download https://repo1.maven.org/maven2/io/airlift/discovery/discovery-server/1.20/discovery-server-1.20.pom Download https://repo1.maven.org/maven2/io/airlift/discovery/discovery-root/1.20/discovery-root-1.20.pom Download https://repo1.maven.org/maven2/io/airlift/airbase/24/airbase-24.pom Download https://repo1.maven.org/maven2/joda-time/joda-time/2.4/joda-time-2.4.pom Download https://repo1.maven.org/maven2/org/weakref/jmxutils/1.18/jmxutils-1.18.pom Download https://repo1.maven.org/maven2/com/google/inject/guice/3.0/guice-3.0.pom Download https://repo1.maven.org/maven2/com/google/inject/guice-parent/3.0/guice-parent-3.0.pom Download https://repo1.maven.org/maven2/com/google/inject/extensions/guice-multibindings/3.0/guice-multibindings-3.0.pom Download https://repo1.maven.org/maven2/com/google/inject/extensions/extensions-parent/3.0/extensions-parent-3.0.pom Download https://repo1.maven.org/maven2/org/ow2/asm/asm-all/4.1/asm-all-4.1.pom Download https://repo1.maven.org/maven2/org/ow2/asm/asm-parent/4.1/asm-parent-4.1.pom Download https://repo1.maven.org/maven2/org/antlr/antlr-runtime/3.4/antlr-runtime-3.4.pom Download https://repo1.maven.org/maven2/org/antlr/antlr-master/3.4/antlr-master-3.4.pom Download https://repo1.maven.org/maven2/org/glassfish/jersey/core/jersey-common/2.12/jersey-common-2.12.pom Download https://repo1.maven.org/maven2/org/glassfish/jersey/project/2.12/project-2.12.pom Download https://repo1.maven.org/maven2/org/glassfish/hk2/hk2-bom/2.3.0-b10/hk2-bom-2.3.0-b10.pom Download https://repo1.maven.org/maven2/org/glassfish/jersey/containers/jersey-container-servlet-core/2.12/jersey-container-servlet-core-2.12.pom Download https://repo1.maven.org/maven2/org/glassfish/jersey/containers/project/2.12/project-2.12.pom Download https://repo1.maven.org/maven2/com/fasterxml/jackson/dataformat/jackson-dataformat-smile/2.4.2/jackson-dataformat-smile-2.4.2.pom Download https://repo1.maven.org/maven2/io/airlift/jmx-http-rpc/0.93/jmx-http-rpc-0.93.pom Download https://repo1.maven.org/maven2/io/airlift/airlift/0.93/airlift-0.93.pom Download https://repo1.maven.org/maven2/org/sonatype/sisu/inject/cglib/2.2.1-v20090111/cglib-2.2.1-v20090111.pom Download https://repo1.maven.org/maven2/asm/asm/3.1/asm-3.1.pom Download https://repo1.maven.org/maven2/asm/asm-parent/3.1/asm-parent-3.1.pom Download https://repo1.maven.org/maven2/com/facebook/presto/presto-client/0.85/presto-client-0.85.jar Download https://repo1.maven.org/maven2/com/facebook/presto/presto-spi/0.85/presto-spi-0.85.jar Download https://repo1.maven.org/maven2/com/facebook/presto/presto-main/0.85/presto-main-0.85.jar Download https://repo1.maven.org/maven2/com/facebook/presto/presto-parser/0.85/presto-parser-0.85.jar Download https://repo1.maven.org/maven2/io/airlift/http-client/0.97/http-client-0.97.jar Download https://repo1.maven.org/maven2/io/airlift/json/0.97/json-0.97.jar Download https://repo1.maven.org/maven2/io/airlift/slice/0.6/slice-0.6.jar Download https://repo1.maven.org/maven2/org/jruby/joni/joni/2.0.0/joni-2.0.0.jar Download https://repo1.maven.org/maven2/org/jruby/jcodings/jcodings/1.0.8/jcodings-1.0.8.jar Download https://repo1.maven.org/maven2/io/airlift/bootstrap/0.97/bootstrap-0.97.jar Download https://repo1.maven.org/maven2/io/airlift/concurrent/0.97/concurrent-0.97.jar Download https://repo1.maven.org/maven2/io/airlift/node/0.97/node-0.97.jar Download https://repo1.maven.org/maven2/io/airlift/configuration/0.97/configuration-0.97.jar Download https://repo1.maven.org/maven2/io/airlift/discovery/0.97/discovery-0.97.jar Download https://repo1.maven.org/maven2/io/airlift/event/0.97/event-0.97.jar Download https://repo1.maven.org/maven2/io/airlift/floatingdecimal/0.2/floatingdecimal-0.2.jar Download https://repo1.maven.org/maven2/io/airlift/http-server/0.97/http-server-0.97.jar Download https://repo1.maven.org/maven2/io/airlift/jaxrs/0.97/jaxrs-0.97.jar Download https://repo1.maven.org/maven2/io/airlift/jmx/0.97/jmx-0.97.jar Download https://repo1.maven.org/maven2/io/airlift/jmx-http/0.97/jmx-http-0.97.jar Download https://repo1.maven.org/maven2/io/airlift/log/0.97/log-0.97.jar Download https://repo1.maven.org/maven2/io/airlift/log-manager/0.97/log-manager-0.97.jar Download https://repo1.maven.org/maven2/io/airlift/resolver/resolver/1.1/resolver-1.1.jar Download https://repo1.maven.org/maven2/io/airlift/stats/0.97/stats-0.97.jar Download https://repo1.maven.org/maven2/io/airlift/trace-token/0.97/trace-token-0.97.jar Download https://repo1.maven.org/maven2/io/airlift/units/0.97/units-0.97.jar Download https://repo1.maven.org/maven2/io/airlift/discovery/discovery-server/1.20/discovery-server-1.20.jar Download https://repo1.maven.org/maven2/org/weakref/jmxutils/1.18/jmxutils-1.18.jar Download https://repo1.maven.org/maven2/com/google/inject/guice/3.0/guice-3.0.jar Download https://repo1.maven.org/maven2/com/google/inject/extensions/guice-multibindings/3.0/guice-multibindings-3.0.jar Download https://repo1.maven.org/maven2/org/ow2/asm/asm-all/4.1/asm-all-4.1.jar Download https://repo1.maven.org/maven2/org/antlr/antlr-runtime/3.4/antlr-runtime-3.4.jar Download https://repo1.maven.org/maven2/com/fasterxml/jackson/dataformat/jackson-dataformat-smile/2.4.2/jackson-dataformat-smile-2.4.2.jar Download https://repo1.maven.org/maven2/io/airlift/jmx-http-rpc/0.93/jmx-http-rpc-0.93.jar Download https://repo1.maven.org/maven2/org/sonatype/sisu/inject/cglib/2.2.1-v20090111/cglib-2.2.1-v20090111.jar Download https://repo1.maven.org/maven2/asm/asm/3.1/asm-3.1.jar :cleanAssets UP-TO-DATE :clean UP-TO-DATE :nodeSetup UP-TO-DATE :installAssets [email protected] node_modules\moment WARN unmet dependency C:\Users\user\Desktop\ProjectNewCastle\test\airpal\src\main\resources\assets\node_modules\browser-sync\node_modules\easy-extender requires lodash@'^4.17.10' but will load npm WARN unmet dependency C:\Users\user\Desktop\ProjectNewCastle\test\airpal\src\main\resources\assets\node_modules\lodash, npm WARN unmet dependency which is version 2.4.2 npm WARN unmet dependency C:\Users\user\Desktop\ProjectNewCastle\test\airpal\src\main\resources\assets\node_modules\react\node_modules\envify\node_modules\jstransform\node_modules\commoner\node_modules\recast requires source-map@'~0.5.0' but will load npm WARN unmet dependency C:\Users\user\Desktop\ProjectNewCastle\test\airpal\src\main\resources\assets\node_modules\react\node_modules\envify\node_modules\jstransform\node_modules\source-map, npm WARN unmet dependency which is version 0.4.4 npm WARN unmet dependency C:\Users\user\Desktop\ProjectNewCastle\test\airpal\src\main\resources\assets\node_modules\babelify\node_modules\babel-core\node_modules\regenerator-babel\node_modules\commoner\node_modules\recast requires source-map@'~0.5.0' but will load npm WARN unmet dependency C:\Users\user\Desktop\ProjectNewCastle\test\airpal\src\main\resources\assets\node_modules\babelify\node_modules\babel-core\node_modules\source-map, npm WARN unmet dependency which is version 0.4.4 npm WARN unmet dependency C:\Users\user\Desktop\ProjectNewCastle\test\airpal\src\main\resources\assets\node_modules\browserify\node_modules\crypto-browserify\node_modules\browserify-sign requires readable-stream@'^3.6.0' but will load npm WARN unmet dependency C:\Users\user\Desktop\ProjectNewCastle\test\airpal\src\main\resources\assets\node_modules\browserify\node_modules\readable-stream, npm WARN unmet dependency which is version 2.3.7 npm WARN unmet dependency C:\Users\user\Desktop\ProjectNewCastle\test\airpal\src\main\resources\assets\node_modules\browserify\node_modules\crypto-browserify\node_modules\create-hash\node_modules\md5.js\node_modules\hash-base requires readable-stream@'^3.6.0' but will load npm WARN unmet dependency C:\Users\user\Desktop\ProjectNewCastle\test\airpal\src\main\resources\assets\node_modules\browserify\node_modules\readable-stream, npm WARN unmet dependency which is version 2.3.7 npm WARN unmet dependency C:\Users\user\Desktop\ProjectNewCastle\test\airpal\src\main\resources\assets\node_modules\browserify\node_modules\crypto-browserify\node_modules\create-hash\node_modules\md5.js\node_modules\hash-base requires safe-buffer@'^5.2.0' but will load npm WARN unmet dependency undefined, npm WARN unmet dependency which is version undefined npm WARN unmet dependency C:\Users\user\Desktop\ProjectNewCastle\test\airpal\src\main\resources\assets\node_modules\browserify\node_modules\crypto-browserify\node_modules\browserify-cipher\node_modules\evp_bytestokey\node_modules\md5.js requires safe-buffer@'^5.1.2' but will load npm WARN unmet dependency undefined, npm WARN unmet dependency which is version undefined npm WARN unmet dependency C:\Users\user\Desktop\ProjectNewCastle\test\airpal\src\main\resources\assets\node_modules\browserify\node_modules\crypto-browserify\node_modules\browserify-cipher\node_modules\browserify-des\node_modules\cipher-base requires safe-buffer@'^5.0.1' but will load npm WARN unmet dependency undefined, npm WARN unmet dependency which is version undefined npm WARN unmet dependency C:\Users\user\Desktop\ProjectNewCastle\test\airpal\src\main\resources\assets\node_modules\browserify\node_modules\crypto-browserify\node_modules\browserify-sign\node_modules\parse-asn1 requires safe-buffer@'^5.1.1' but will load npm WARN unmet dependency undefined, npm WARN unmet dependency which is version undefined npm WARN unmet dependency C:\Users\user\Desktop\ProjectNewCastle\test\airpal\src\main\resources\assets\node_modules\browserify\node_modules\crypto-browserify\node_modules\browserify-sign\node_modules\parse-asn1\node_modules\evp_bytestokey requires safe-buffer@'^5.1.1' but will load npm WARN unmet dependency undefined, npm WARN unmet dependency which is version undefined npm WARN unmet dependency C:\Users\user\Desktop\ProjectNewCastle\test\airpal\src\main\resources\assets\node_modules\browserify\node_modules\crypto-browserify\node_modules\public-encrypt\node_modules\parse-asn1 requires safe-buffer@'^5.1.1' but will load npm WARN unmet dependency undefined, npm WARN unmet dependency which is version undefined npm WARN unmet dependency C:\Users\user\Desktop\ProjectNewCastle\test\airpal\src\main\resources\assets\node_modules\browserify\node_modules\insert-module-globals\node_modules\combine-source-map\node_modules\inline-source-map requires source-map@'~0.5.3' but will load npm WARN unmet dependency undefined, npm WARN unmet dependency which is version undefined npm WARN unmet dependency C:\Users\user\Desktop\ProjectNewCastle\test\airpal\src\main\resources\assets\node_modules\gulp\node_modules\liftoff\node_modules\findup-sync\node_modules\micromatch\node_modules\snapdragon\node_modules\base\node_modules\cache-base\node_modules\has-val ue\node_modules\has-values\node_modules\is-number requires kind-of@'^3.0.2' but will load npm WARN unmet dependency C:\Users\user\Desktop\ProjectNewCastle\test\airpal\src\main\resources\assets\node_modules\gulp\node_modules\liftoff\node_modules\findup-sync\node_modules\micromatch\node_modules\snapdragon\node_modules\base\node_modules\cache-base\node_modules\has-value\node_modules\has-values\node_modules\kind-of, npm WARN unmet dependency which is version 4.0.0 npm WARN unmet dependency C:\Users\user\Desktop\ProjectNewCastle\test\airpal\src\main\resources\assets\node_modules\gulp\node_modules\liftoff\node_modules\findup-sync\node_modules\micromatch\node_modules\snapdragon\node_modules\base\node_modules\class-utils\node_modules\define-property\node_modules\is-descriptor\node_modules\is-data-descriptor requires kind-of@'^3.0.2' but will load npm WARN unmet dependency C:\Users\user\Desktop\ProjectNewCastle\test\airpal\src\main\resources\assets\node_modules\gulp\node_modules\liftoff\node_modules\findup-sync\node_modules\micromatch\node_modules\snapdragon\node_modules\base\node_modules\class-utils\node_modules\define-property\node_modules\is-descriptor\node_modules\kind-of, npm WARN unmet dependency which is version 5.1.0 npm WARN unmet dependency C:\Users\user\Desktop\ProjectNewCastle\test\airpal\src\main\resources\assets\node_modules\gulp\node_modules\liftoff\node_modules\findup-sync\node_modules\micromatch\node_modules\snapdragon\node_modules\base\node_modules\class-utils\node_modules\static-extend\node_modules\object-copy requires kind-of@'^3.0.3' but will load npm WARN unmet dependency C:\Users\user\Desktop\ProjectNewCastle\test\airpal\src\main\resources\assets\node_modules\gulp\node_modules\liftoff\node_modules\findup-sync\node_modules\micromatch\node_modules\kind-of, npm WARN unmet dependency which is version 6.0.3 npm WARN unmet dependency C:\Users\user\Desktop\ProjectNewCastle\test\airpal\src\main\resources\assets\node_modules\gulp\node_modules\liftoff\node_modules\findup-sync\node_modules\micromatch\node_modu les\snapdragon\node_modules\define-property\node_modules\is-descriptor\node_modules\is-data-descriptor requires kind-of@'^3.0.2' but will load npm WARN unmet dependency C:\Users\user\Desktop\ProjectNewCastle\test\airpal\src\main\resources\assets\node_modules\gulp\node_modules\liftoff\node_modules\findup-sync\node_modules\micromatch\node_modules\snapdragon\node_modules\define-property\node_modules\is-descriptor\node_modules\kind-of, npm WARN unmet dependency which is version 5.1.0 npm WARN unmet dependency C:\Users\user\Desktop\ProjectNewCastle\test\airpal\src\main\resources\assets\node_modules\watchify\node_modules\chokidar\node_modules\readdirp\node_modules\micromatch\node_modules\snapdragon\node_modules\base\node_modules\cache-base\node_modules\to-object-path requires kind-of@'^3.0.2' but will load npm WARN unmet dependency C:\Users\user\Desktop\ProjectNewCastle\test\airpal\src\main\resources\assets\node_modules\watchify\node_modules\chokidar\node_modules\readdirp\node_modules\micromatch\node_modules\kind-of, npm WARN unmet dependency which is version 6.0.3 npm WARN unmet dependency C:\Users\user\Desktop\ProjectNewCastle\test\airpal\src\main\resources\assets\node_modules\watchify\node_modules\chokidar\node_modules\readdirp\node_modules\micromatch\node_modules\snapdragon\node_modules\base\node_modules\cache-base\node_modules\has-value\node_modules\has-values\node_modules\is-number requires kind-of@'^3.0.2' but will load npm WARN unmet dependency C:\Users\user\Desktop\ProjectNewCastle\test\airpal\src\main\resources\assets\node_modules\watchify\node_modules\chokidar\node_modules\readdirp\node_modules\micromatch\node_modules\snapdragon\node_modules\base\node_modules\cache-base\node_modules\has-value\node_modules\has-values\node_modules\kind-of, npm WARN unmet dependency which is version 4.0.0 npm WARN unmet dependency C:\Users\user\Desktop\ProjectNewCastle\test\airpal\src\main\resources\assets\node_modules\watchify\node_modules\chokidar\node_modules\readdirp\node_modules\micromatch\node_modules\snapdragon\node_modu les\base\node_modules\class-utils\node_modules\define-property\node_modules\is-descriptor\node_modules\is-accessor-descriptor requires kind-of@'^3.0.2' but will load npm WARN unmet dependency C:\Users\user\Desktop\ProjectNewCastle\test\airpal\src\main\resources\assets\node_modules\watchify\node_modules\chokidar\node_modules\readdirp\node_modules\micromatch\node_modules\snapdragon\node_modules\base\node_modules\class-utils\node_modules\define-property\node_modules\is-descriptor\node_modules\kind-of, npm WARN unmet dependency which is version 5.1.0 npm WARN unmet dependency C:\Users\user\Desktop\ProjectNewCastle\test\airpal\src\main\resources\assets\node_modules\watchify\node_modules\chokidar\node_modules\readdirp\node_modules\micromatch\node_modules\snapdragon\node_modules\base\node_modules\class-utils\node_modules\define-property\node_modules\is-descriptor\node_modules\is-data-descriptor requires kind-of@'^3.0.2' but will load npm WARN unmet dependency C:\Users\user\Desktop\ProjectNewCastle\test\airpal\src\main\resources\assets\node_modules\watchify\node_modules\chokidar\node_modules\readdirp\node_modules\micromatch\node_modules\snapdragon\node_modules\base\node_modules\class-utils\node_modules\define-property\node_modules\is-descriptor\node_modules\kind-of, npm WARN unmet dependency which is version 5.1.0 npm WARN unmet dependency C:\Users\user\Desktop\ProjectNewCastle\test\airpal\src\main\resources\assets\node_modules\watchify\node_modules\chokidar\node_modules\readdirp\node_modules\micromatch\node_modules\snapdragon\node_modules\base\node_modules\class-utils\node_modules\static-extend\node_modules\object-copy requires kind-of@'^3.0.3' but will load npm WARN unmet dependency C:\Users\user\Desktop\ProjectNewCastle\test\airpal\src\main\resources\assets\node_modules\watchify\node_modules\chokidar\node_modules\readdirp\node_modules\micromatch\node_modules\kind-of, npm WARN unmet dependency which is version 6.0.3 npm WARN unmet dependency C:\Users\user\Desktop\ProjectNewCastle\test\airpal\src\main\resources\assets\n ode_modules\watchify\node_modules\chokidar\node_modules\readdirp\node_modules\micromatch\node_modules\snapdragon\node_modules\define-property\node_modules\is-descriptor\node_modules\is-accessor-descriptor requires kind-of@'^3.0.2' but will load npm WARN unmet dependency C:\Users\user\Desktop\ProjectNewCastle\test\airpal\src\main\resources\assets\node_modules\watchify\node_modules\chokidar\node_modules\readdirp\node_modules\micromatch\node_modules\snapdragon\node_modules\define-property\node_modules\is-descriptor\node_modules\kind-of, npm WARN unmet dependency which is version 5.1.0 npm WARN unmet dependency C:\Users\user\Desktop\ProjectNewCastle\test\airpal\src\main\resources\assets\node_modules\watchify\node_modules\chokidar\node_modules\readdirp\node_modules\micromatch\node_modules\snapdragon\node_modules\define-property\node_modules\is-descriptor\node_modules\is-data-descriptor requires kind-of@'^3.0.2' but will load npm WARN unmet dependency C:\Users\user\Desktop\ProjectNewCastle\test\airpal\src\main\resources\assets\node_modules\watchify\node_modules\chokidar\node_modules\readdirp\node_modules\micromatch\node_modules\snapdragon\node_modules\define-property\node_modules\is-descriptor\node_modules\kind-of, npm WARN unmet dependency which is version 5.1.0 npm WARN unmet dependency C:\Users\user\Desktop\ProjectNewCastle\test\airpal\src\main\resources\assets\node_modules\watchify\node_modules\chokidar\node_modules\readdirp\node_modules\micromatch\node_modules\extglob\node_modules\expand-brackets\node_modules\define-property\node_modules\is-descriptor\node_modules\is-accessor-descriptor requires kind-of@'^3.0.2' but will load npm WARN unmet dependency C:\Users\user\Desktop\ProjectNewCastle\test\airpal\src\main\resources\assets\node_modules\watchify\node_modules\chokidar\node_modules\readdirp\node_modules\micromatch\node_modules\extglob\node_modules\expand-brackets\node_modules\define-property\node_modules\is-descriptor\node_modules\kind-of, npm WARN unmet dependency which is version 5.1.0 npm WARN unmet dependency C:\Users\user\Desktop\ProjectNewCastle\test\airpal\src\main\resources\assets\node_modules\watchify\node_modules\chokidar\node_modules\readdirp\node_modules\micromatch\node_modules\extglob\node_modules\expand-brackets\node_modules\define-property\node_modules\is-descriptor\node_modules\is-data-descriptor requires kind-of@'^3.0.2' but will load npm WARN unmet dependency C:\Users\user\Desktop\ProjectNewCastle\test\airpal\src\main\resources\assets\node_modules\watchify\node_modules\chokidar\node_modules\readdirp\node_modules\micromatch\node_modules\extglob\node_modules\expand-brackets\node_modules\define-property\node_modules\is-descriptor\node_modules\kind-of, npm WARN unmet dependency which is version 5.1.0 :buildAssets

    module.js:340 throw err; ^ Error: Cannot find module 'cached-path-relative' at Function.Module._resolveFilename (module.js:338:15) at Function.Module._load (module.js:280:25) at Module.require (module.js:364:17) at require (module.js:380:17) at Object. (C:\Users\user\Desktop\ProjectNewCastle\test\airpal\src\main\resources\assets\node_modules\browserify\node_modules\module-deps\index.js:3:20) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.require (module.js:364:17) :buildAssets FAILED

    FAILURE: Build failed with an exception.

    • What went wrong: Execution failed for task ':buildAssets'.

    Process 'command 'cmd'' finished with non-zero exit value 8

    • Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

    BUILD FAILED

    Total time: 2 mins 24.816 secs

    opened by mtejagithub 0
  • Build error by default build command with presto version 0.221

    Build error by default build command with presto version 0.221

    OS centos7 Java version "1.8.0_112" Use default build command: ./gradlew -Dairpal.prestoVersion=0.221 clean shadowJar Fail mesage:

    npm WARN unmet dependency which is version 6.0.2
    :buildAssets
    
    module.js:340
        throw err;
              ^
    Error: Cannot find module 'copy-descriptor'
        at Function.Module._resolveFilename (module.js:338:15)
        at Function.Module._load (module.js:280:25)
        at Module.require (module.js:364:17)
        at require (module.js:380:17)
        at Object.<anonymous> (/data/panwu2/software/airpal/src/main/resources/assets/node_modules/gulp/node_modules/liftoff/node_modules/findup-sync/node_modules/micromatch/node_modules/snapdragon/node_modules/base/node_modules/class-utils/node_modules/static-extend/node_modules/object-copy/index.js:4:22)
        at Module._compile (module.js:456:26)
        at Object.Module._extensions..js (module.js:474:10)
        at Module.load (module.js:356:32)
        at Function.Module._load (module.js:312:12)
        at Module.require (module.js:364:17)
    :buildAssets FAILED
    
    FAILURE: Build failed with an exception.
    
    * What went wrong:
    Execution failed for task ':buildAssets'.
    > Process 'command '/root/.gradle/nodejs/node-v0.10.33-linux-x64/bin/node'' finished with non-zero exit value 8
    
    * Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
    
    opened by pokerWu 3
  • Airpal don't support decimal type of column

    Airpal don't support decimal type of column

    as title, if hive table includes decimal type column, don't show columns of table. eg: CREATE TABLE test2( id int, name string, pric decimal(19,4) ) when selecting the table test2, and show nothing in columns list. log file exception as like:

    ERROR [2019-01-26 13:33:30,003] io.dropwizard.jersey.jackson.JsonProcessingExceptionMapper: Unable to serialize or deserialize the specific type ! java.lang.IllegalArgumentException: ParameterKind is [LONG] but expected [NAMED_TYPE] ! at com.facebook.presto.client.ClientTypeSignatureParameter.getValue(ClientTypeSignatureParameter.java:84) ! at com.facebook.presto.client.ClientTypeSignatureParameter.getNamedTypeSignature(ClientTypeSignatureParameter.java:101) ! at com.facebook.presto.client.ClientTypeSignatureParameter$Access4JacksonDeserializer3d2f4ecd.objectGetter(com/facebook/presto/client/ClientTypeSignatureParameter$Access4JacksonDeserializer.java) ! at com.fasterxml.jackson.module.afterburner.ser.ObjectMethodPropertyWriter.serializeAsField(ObjectMethodPropertyWriter.java:45) ! at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:678) ! ... 90 common frames omitted ! Causing: com.fasterxml.jackson.databind.JsonMappingException: ParameterKind is [LONG] but expected [NAMED_TYPE] (through reference chain: com.google.common.collect.RegularImmutableList[2]->com.airbnb.airpal.presto.hive.HiveColumn["typeSignature"]->com.facebook.presto.client.ClientTypeSignature["arguments"]->java.util.UnmodifiableRandomAccessList[0]->com.facebook.presto.client.ClientTypeSignatureParameter["namedTypeSignature"]) ! at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:339) ! at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:299) ! at com.fasterxml.jackson.databind.ser.std.StdSerializer.wrapAndThrow(StdSerializer.java:342) ! at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:686) ! at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:157)

    opened by adminleh 0
  • Update QueryApiUtils.js

    Update QueryApiUtils.js

    Hi,

     let formData = Object.keys(data).reduce((encoded, key) => {
          const encKey = encodeURIComponent(key);
          const encData = encodeURIComponent(data[key]);
          return `${encoded}&${encKey}=${encData}`
    }, '');
    

    Then:

    let data = {a: "1", b: "2"} // result of formData: &a=1&b=2
    

    So we should be replaced first & with an empty string, while we can create an array of keys and join them together with &.

    opened by ali-master 0
  • Airpal WebUI not showing results/data preview

    Airpal WebUI not showing results/data preview

    Hello, I am using Presto 0.187 (AWS EMR) with Airpal Web UI

    When I run a query, the results/Data Preview tab do not show anything. The query status shows are "Planning", but presto server shows as "Finished"

    I can see the results when using presto-cli.

    Is Airpal compatible with Presto 0.187?

    Please Help.

    opened by cskbhatt 1
A renderer agnostic two-dimensional drawing api for the web.

Two.js A two-dimensional drawing api meant for modern browsers. It is renderer agnostic enabling the same api to render in multiple contexts: webgl, c

Jono Brandel 7.9k Dec 31, 2022
a graph visualization library using web workers and jQuery

arbor.js -------- Arbor is a graph visualization library built with web workers and jQuery. Rather than trying to be an all-encompassing framework, a

Christian Swinehart 2.6k Dec 19, 2022
Composable data visualisation library for web with a data-first approach now powered by WebAssembly

What is Muze? Muze is a free data visualization library for creating exploratory data visualizations (like Tableau) in browser, using WebAssembly. It

Charts.com 1.2k Dec 29, 2022
Mini map for web pages.

pagemap Mini map for web pages. Example usage add a canvas tag to your HTML page: <canvas id='map'></canvas> fix it's position on the screen: #map {

Lars Jung 1.2k Dec 31, 2022
Web UI for Impala

Bloomery Bloomery is an open source query execution tool for Impala. It uses node-impala which provides communication between Impala and Node client u

Ömer Ufuk Efendioğlu 15 Feb 18, 2022
Analytical Web Apps for Python, R, Julia, and Jupyter. No JavaScript Required.

Dash Dash is the most downloaded, trusted Python framework for building ML & data science web apps. Built on top of Plotly.js, React and Flask, Dash t

Plotly 17.9k Jan 4, 2023
A damn-sexy, open source real-time dashboard builder for IOT and other web mashups. A free open-source alternative to Geckoboard.

freeboard free·board (noun) *\ˈfrē-ˌbȯrd* the distance between the waterline and the main deck or weather deck of a ship or between the level of the w

freeboard 6.3k Dec 28, 2022
Chart image and QR code web API

QuickChart QuickChart is a service that generates images of charts from a URL. Because these charts are simple images, they are very easy to embed in

Ian Webster 1.3k Dec 25, 2022
A web app that shows visualizations of the most used graphs algorithms such as BFS, DFS, Dijsktra, Minimum spanning tree, etc. It allows you to draw your own graph.

Graph Visualizer Draw your own graphs and visualize the most common graph algorithms This web application allows you to draw a graph from zero, with p

Gonzalo Pereira 31 Jul 29, 2022
Beautiful and interactive javascript charts for Java-based web applications.

Wicked Charts Beautiful and interactive JavaScript charts for Java-based web applications. Check out the Changelog Check out the Feature Overview with

adesso SE 85 Aug 23, 2022
Visualize your tech stack and database with a simple, beautiful, and interactive web app.

Stacify Visualize your tech stack and database with a simple, beautiful, and interactive web app. Why Stacify Why would you want to use Stacify? Well,

Isaiah Hamilton 1 Jan 20, 2022
A web application to 🔍inspect your GitHub Profile Stats📊 in a lucid way. Visualization made easy with Charts💡🚀

know-your-gitstats A web application to ?? inspect your GitHub Profile Stats ?? in a lucid way. Visualization made easy with Charts ?? ?? . ✅ Features

Shubham Jadhav 46 Oct 15, 2022
Typr is a full-stack web application designed for new developers to improve their typing skills. User Authentication, Multiplayer, and Statistics included.

Typr Typr is a full-stack web application designed for new developers to improve their typing skills. It includes Javascript, Ruby and Python typing p

Connor Mullin 5 May 12, 2022
Globe.GL - A web component to represent data visualization layers on a 3-dimensional globe in a spherical projection

A web component to represent data visualization layers on a 3-dimensional globe in a spherical projection. This library is a convenience wrap

Vasco Asturiano 1.3k Jan 3, 2023
D3 (or D3.js) is a JavaScript library for visualizing data using web standards

D3 (or D3.js) is a JavaScript library for visualizing data using web standards. D3 helps you bring data to life using SVG, Canvas and HTML. D3 combines powerful visualization and interaction techniques with a data-driven approach to DOM manipulation, giving you the full capabilities of modern browsers and the freedom to design the right visual interface for your data.

D3 103.8k Jan 5, 2023
Grupprojekt för kurserna 'Javascript med Ramverk' och 'Agil Utveckling'

JavaScript-med-Ramverk-Laboration-3 Grupprojektet för kurserna Javascript med Ramverk och Agil Utveckling. Utvecklingsguide För information om hur utv

Svante Jonsson IT-Högskolan 3 May 18, 2022
Hemsida för personer i Sverige som kan och vill erbjuda boende till människor på flykt

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

null 4 May 3, 2022
Kurs-repo för kursen Webbserver och Databaser

Webbserver och databaser This repository is meant for CME students to access exercises and codealongs that happen throughout the course. I hope you wi

null 14 Jan 3, 2023
Fluent UI web represents a collection of utilities, React components, and web components for building web applications.

Fluent UI Web ?? ?? ?? Version 8 of @fluentui/react is now available on npm! ?? ?? ?? See the release notes for more info, and please file an issue if

Microsoft 14.5k Jan 4, 2023
A Web Component compiler for building fast, reusable UI components and static site generated Progressive Web Apps

Stencil: A Compiler for Web Components and PWAs npm init stencil Stencil is a simple compiler for generating Web Components and static site generated

Ionic 11.3k Jan 4, 2023