DEV Community

loading...

Run SQL in Slack

turinglovesdeathmetal profile image Katie Hindson Updated on ・2 min read

Alt Text

Write SQL in Slack and bring the latest analytics into the conversation.

In my first week at Hubble, a teammate shared a SQL query he'd run in Slack.

Since I'd just joined, I hadn't set myself up with our company's database yet (and had spent a bit too much time getting my dev environment lookin' right 💁‍♀️). So, when I tried to open what he'd shared, it took me ~30 minutes before I could actually see the results.

This got us to talking: how annoying was it that we couldn't just run SQL and share the results straight in Slack?

This was a problem I'd run into before. At least once a week, I'll have to share SQL results with engineers in Slack for debugging, or invest ~ 1 hr of time getting someone set up with BigQuery and understanding the UI just so that they can re-run really specific queries I've written for them.

A few other companies we'd talked to had also mentioned some of their frustrations in quick and easy SQL collaboration. Specifically:

  • A fitness company wants to make their daily growth metrics visible by all the team each day, so they run SQL queries and copy the outputs to Slack each morning, where they know all team members will see it rather than logging into a BI dashboard.
  • Another data analyst was trying to collaborate in SQL with their marketing director. They had to do a bunch of copy-pasting of code and sharing screenshots of the SQL output, making it really slow and difficult to actually identify any problems.

All of this got us to thinking: why not bring SQL into Slack? (Because everyone needs a reason to spend more time in Slack, right?)

We built Beacon so you can collaborate on SQL with your team, directly in Slack!

With Beacon, I open Slack and run a query directly in Slack where the output is shared with my team.

https://uploads-ssl.webflow.com/5eaf203a6af9c85f55e39a9a/5fad4e650f8dca25293794b3_ezgif-4-3b1cd25cc2c6.gif

Beacon makes the output from any SQL query super accessible to everyone in your team by posting the results right in Slack.

And, collaborating in SQL becomes a breeze because you can save your favourite queries and share them with your team (because we all know, SQL is more fun with friends 👭). All of your saved queries are automatically available to your whole team, so everyone has access to what they need, when they need it, at the click of a button all in Slack.

Try using Beacon to share KPIs, save common queries, and more!

You can install Beacon into your Slack workspace using this link:

Add to Slack

Beacon connects to:

  • Snowflake
  • Bigquery
  • PostgreSQL
  • Redshift
  • Rockset

Shoot me a message at katie@gethubble.io if you have any questions or feedback, we'd love to hear from you 😊

Discussion

pic
Editor guide
Collapse
tryonlinux profile image
Jordan Tryon

Just some issues I’ve learned from working with huge amounts of data and users and trying to enable more ease of use when it comes to running queries.

These are just some things I think of to prevent being bitten:

Read only access, so users don’t Willy Nilly drop tables and delete/update data with a bad query

Some type of user control based on what they can see.

Leaning towards non locking queries and maybe even forcing it depending on situation to prevent table locks

Limits on amount of data to pull back. Millions of records in a slack chat lol.

Otherwise I love it and wish it was something I could use where I work l, but sadly it would open up a cluster of issues lol. We have very strict controls on database access and queries.

Collapse
turinglovesdeathmetal profile image
Katie Hindson Author

Hey Jordan! Wow, I love all of these points - I feel like we've definitely run into a lot of the same problems when it comes to SQL collaboration 😅

For read-only access, I definitely agree that it's important to monitor/grant to people who don't actually need to change the data (aka most people).

What's great about Beacon is we actually use the same database credentials that a user already has! So that means, if you have read-only access, then we'll grant you read-only access in the SQL app. Hopefully the folks who do have write access aren't being too Willy Nilly in their SQL querying 😉

User control on viewing outputs + preventing locking queries are both interesting points! We haven't dug too much into that yet, but will definitely consider it for potential features.

For limits on data pull back, Beacon only posts the top 10 results of your query. It took us one really long Slack post to realize that we definitely needed to add that feature in 😅

We have very strict controls on database access and queries.

This is really great information! Would it still be a problem given that Beacon actually uses someone's existing credentials for a database?

Collapse
tryonlinux profile image
Jordan Tryon

Ah that is good to hear, when I first looked at this I guess I assumed it was using a non-person ID for SQL access in the backend. So that is cool and solves the whole bad query issue if users have read only access, which I’d hope in real life every company sets their users up that way and does modifiable changes with a NPID and uses store procedures or prepared sql in an app, but that’s a pipe dream hahaha.

And sweet was wondering about how large results were handled. Lol

To answer your question at the end. If I didn’t deal with PHI that can’t be sent even though slack due to being off prem. Then yeah would probably be able to use it if everyone had read only access and queries were forced to be non locking.

Again, Great program!! If my job wasn’t so strict with data, this would save me a boat load of time as a developer when communicating with my internal customers. But to be honest I’m glad we do have the safeguards in place as I’ve noticed a lot of companies don’t and get burned because of it.

Collapse
rajat19 profile image
Rajat Srivastava

hi,
clicking the link provided above landed into
It looks like something has gone awry. Don’t worry, it’s not your fault, but you can’t install Beacon at the moment.
do i need some kind of permission ?

Collapse
tylerauerbeck profile image
Tyler Auerbeck

You likely need to be an admin of your workspace to be able to do this. One thing to double check is to make sure that if you're a member of multiple workspaces that when you click on the above link, that you're landing in the workspace that you expect.

Collapse
turinglovesdeathmetal profile image
Katie Hindson Author

Hey Rajat!

As Tyler said, you need to be an admin of your workspace to be able to install the app. Once it's installed in the workspace, then any user in that workspace can add it into their visible set of Slack apps (in the Apps section in your sidebar) and connect to your database 😊

Please let us know if you're still having problems with installing it though! We'd be more than happy to try to help figure out what's going on 🕵️‍♀️

Collapse
turinglovesdeathmetal profile image
Katie Hindson Author

Hi again! The error was because I added the wrong install link to the blog post (rookie mistake on my part 😅). I've updated the link in the post, and you can also install it right here

Collapse
dmahely profile image
Doaa Mahely

Love this idea! Will be trying it shortly :)

Collapse
turinglovesdeathmetal profile image
Katie Hindson Author

🤗 have fun with it, and let us know what you think!

Collapse
ppfeiler profile image
Patrick

Are there plans to opensource this?

Collapse
turinglovesdeathmetal profile image
Katie Hindson Author

Hey Patrick! Currently, we don't have plans to opensource this, but will definitely let you know if that changes.

Collapse
matrixtoolsbot profile image
Matrix Tools, LLC

I'm not familiar with any of those connectors. Is it possible to integrate with on prem sql server?

Collapse
ijaz20 profile image
ijaz20

Open-source this, please!