OElesin / querypal

Web UI for Amazon Athena
Apache License 2.0
54 stars 26 forks source link
analytics aws aws-athena data data-lake sql

Querypal

Querypal is a web-based, query execution tool which leverages Amazon Athena to make authoring queries and retrieving results simple for users. Querypal 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 table.

Querypal UI

Features

TODOs

Requirements:

Deployment

To deploy the infrastructure and code, you'll need an AWS account and a correctly configured AWS profile with enough permissions to create the architecture below (Administrator rights are recommended).

bash ./deploy.sh -t <GitHubToken>

Shell Script Parameters

Parameter Description Mandatory
n CloudFormation stack name No
p AWS CLI Profile No
r AWS CLI Region No
e GitHub Branch to deploy QueryPal from No
t GitHub Token in plain text. AWS Amplify needs this to access to repository Yes
a AWS Amplify App name, i.e. querypal No

Before executing the shell command above, you MUST provide a GitHub Access token that will be used to create a webhook and read-only deploy key by AWS Amplify. See screenshot with permissions required below: GitHub Token Permissions

All arguments to the deploy.sh script are optional. The default AWS profile and region are used if none are provided.

The script will:

  1. Create a CloudFormation stack named querypal-web-ui holding the following:
    • AWS Amplify App for Querypal
    • IAM Service to be assumed by AWS Amplify for managing deployments
    • SSM Parameter containing the AWS Amplify App ID which will be used later
    • A Lambda function and an AWS CloudFormation custom resource that will the trigger the deployment job in AWS Amplify.
  2. Print out Querypal AWS Amplify Default Domain URL.

The initial deployment can take 10-15 minutes. The same command can be used for both creating and updating infrastructure.

Development

Project setup

yarn install

Compiles and hot-reloads for development

yarn run serve

Compiles and minifies for production

yarn run build

Run your tests

yarn run test

Lints and fixes files

yarn run lint

Customize configuration

See Configuration Reference.