Skip to content

St. Mocli is a CLI for linking and deploying queries to STMO

License

Notifications You must be signed in to change notification settings

mozilla/stmocli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Introduction

St. Mocli allows you to keep SQL queries in github repositories and easily deploy to re:dash.

Re:dash is great for quickly creating and sharing simple analyses. However, sometimes we want to treat our queries like code. In re:dash, it's difficult to get review, track revisions, or collaborate on queries.

Workflow

St. Mocli is still in early alpha, so this workflow is going to change.

Preliminaries

You should have a Redash API key to perform most operations. You can get one from your Redash user settings page.

Then, add something like:

export REDASH_API_KEY="Tua1aith1ay9roh5thuGhoh6sa3raene"

to your ~/.bash_profile, or pass the key to stmocli on the command line like:

stmocli --redash-api-key Tua1aith1ay9roh5thuGhoh6sa3raene view query.sql

Note that --redash-api-key has to come before the verb on the command line.

init a directory

Implemented!

stmocli init

Creates an empty .stmocli.conf file in the current directory.

track an existing query

Implemented!

stmocli track <redash_id> <filename>

This command downloads the SQL statements associated with the given redash_id and saves it in a file with the given name. The necessary metadata is then added to the config file.

For example, calling stmocli track 49741 poc.sql would create a file in the current directory called poc.sql, with the following content:

SELECT
    normalized_channel
FROM longitudinal
LIMIT 10

Assuming this is the first query being tracked, .stmocli.conf would look like this:

{
  "poc.sql": {
    "query_id": 49741,
    "data_source_id": <data source>,
    "name": <query name>,
    "description": <query description>,
    "schedule": <schedule interval in seconds>,
    "options": <query options>
  }
}

pull a linked query

Implemented!

stmocli pull [<file_name>...]

Pulls the current SQL statements and metadata from re:dash for the given query files. If no file name is specified, pull data for all queries. This will overwrite local data. Be sure to use version control.

<file_name> must be a key in the dictionary stored in .stmocli.conf

push a query

Implemented!

stmocli push [<filename>...]

Pushes the current SQL statements and metadata to re:dash for the given query file.

You can specify one or more query files to be pushed, these must be keys in the dictionary stored in .stmocli.conf. If no file names are specified, all SQL statements are pushed.

Roadmap

Push-only and Automatic deploys

This tool assumes no edits happen in re:dash, which is a bad assumption. Edits made in re:dash get overwritten if you push without pulling first.

Ideally, there would be a Mocli-user in re:dash that owns all Mocli queries. This would ensure all queries controlled by Mocli cannot be edited in re:dash. We could then remove the pull command, and this tool becomes push-only.

From there we can have a scheduled job (hourly?) that pushes master to STMO. Maybe we add a git-hook that pushes master on commit. Seamless.

preview a query

Users will need to upload queries to a temporary re:dash query to preview the results. This should be easy to do with a preview command. It may also be useful to execute queries against presto directly.

start a new query

Currently, St. Mocli can only track existing queries. We should add a start command that will make it easy to start queries from the cli.

About

St. Mocli is a CLI for linking and deploying queries to STMO

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages