Code Monkey home page Code Monkey logo

turntable's Introduction

Open-Source Data Platform

Metrics, Models, Jobs, Notebooks, End-to-end Column Lineage, and More!
Define your source of truth with an open standard
Slack · Website · Issues · Roadmap

Join Turntable on Slack Github Stars License

A unified data stack

demo.mp4

The problem: Today's data stack is highly fragmented, insecure, and expensive.

The Solution: Turntable, a post-modern data stack

  • Open: Our whole repo is AGPL and always will be.
  • Private: Self-deploy our open-source version or use our cloud product with our customer-deployed agent. Either way, your data never leaves your infrastructure.
  • Integrated: With Turntable, all of your metrics, models, and data documents exist in the same context. We think this will allow for some totally new experiences. Think clicking on a dashboard and seeing exactly where a number came from.

✨ Features

  • End-to-end Column lineage: See your data's journey from source to dashboard.
  • Data catalog: See all your data assets in one place. We event write AI-generated descriptions for you (opt-in of course).
  • Jobs (coming soon): Schedule and monitor your data pipelines.
  • [] Pages (coming soon): Write and schedule analyses, reports, and data documents in an AI-powered, Notion-like interface.
  • Full observability suite: Detect anomalies, monitor data quality, reduce cost, secure PII and more.
  • Metrics: Define once, use anywhere, in pure SQL and GUI. No need to learn a new semantic layer framework.
  • Subscriptions: Subscribe to data assets and get notified when they change. Each user gets their own dashboard
  • Models: Allow team members to schedule and publish sql queries that depend on one another, with best practices already built in.
  • CLI: Use the code editor you already love, but make secure onboarding a breeze.

🔌 Integrations

Data Sources: Postgres, Snowflake, BigQuery, DuckDB, Redshift, S3, and more.

BI Tools: Looker, Tableau, Metabase, PowerBI.

Data Transformation: dbt Core, dbt Cloud, SqlMesh

Saas (coming soon): Stripe, Zendesk, Hubspot, Salesforce, and more.

🔔 Stay up to date

Turntable launched its v0.1 on August 2024. Lots of new features are coming, and are generally released on a bi-weekly basis. Watch updates of this repository to be notified of future updates.

Check out our public roadmap

🙏 Credits

Our repo stands on the shoulders of some awesome open source projects. A big reason we decided to go open source is that there are lots of players in the data space who wrap open source projects in a proprietary layer and charge a lot for it. That didn't feel right to us.

With that context, we wanted to explicitly call out some of the projects we love and how we use them:

🔖 License

Turntable is distributed under the AGPLv3 License.

💻 Deploy locally

Requirements

  1. Install Docker on your machine;
  2. Make sure Docker Compose is installed and available (it should be the case if you have chosen to install Docker via Docker Desktop); and
  3. Make sure Git is installed on your machine.

Run the app

To start using Turntable

  1. Clone the repository
# Get the code
git clone https://github.com/turntable-so/turntable.git

# Go to Turntable folder
cd turntable
  1. Configure environment variables Create a .env file in the root of the project by running the following command

MacOS or Linux

bash generate_keys.sh

Windows

powershell -executionpolicy bypass -File .\generate_keys.ps1

No environment variables except the secrets generated by the commands above are required to run the app, but some functionality may be limited (e.g. AI-written documentation). See .env.example for a list of all available environment variables.

  1. Start the app

To start the app you have two choices:

(A) Run Turntable with No demo resources

Run the following command:

docker compose --env-file .env up

Once the docker build is complete (a few minutes), you will see a line in the terminal like this: 'The app is ready! Visit http://localhost:3000/ to get started'. Once you do, open your browser and go to http://localhost:3000 to see the app running. Signup with a username and password to start using the app.

(B) Run Turntable with demo resources

If you'd like to also see the product with a demo postgres, dbt project, and metabase already connected, run:

docker compose --env-file .env -f docker-compose.demo.yml up --build

Once the docker build is complete (longer than above, usually 5+ minutes), you will see a line in the terminal like this: 'The app is ready! Visit http://localhost:3000/ to get started'. Once you do, open your browser and go to http://localhost:3000 to see the app running. The demo resources can be found in an account with user [email protected] and password mypassword. Login with these credentials to see the demo resources, with associated lineage and asset viewer. If you'd like to start from a blank slate on this instance, simply sign up with a different email.

Analytics and tracking for the self-hosted version

Please note that Turntable, by default, tracks basic actions performed on your self-hosted instance, but you can easily opt out by setting the value of NEXT_PUBLIC_POSTHOG_KEY to "" in the docker-compose yml file you are using (e.g. docker-compose.yml or docker-compose.demo.yml). We do not track any telemetry in development (i.e. using docker-compose.dev.yml). For more information, please see our privacy policy.

☁️ Use our cloud-based product

Email us or visit our website to get started with our cloud product. Their our two vairants: a fully-hosted offering, and hybrid one, which includes a customer-deployed agent.

🚀 Getting the most out of Turntable

📝 Contributing

You can follow the instructions below to set up ourm development environment on your machine. This is intended for people interested in contributing to Turntable. If you just want to try Turntable on your local system, we recommend that you the instructions above to run a prod instance.

For now, we are not accepting pull requests from the community, but We are working on a process to make this possible in the future. For now, file an bug reports and feature requests as a GitHub issue, Canny submission or Slack post.

🧑‍💻 Development environment

To start the development environment, simply follow the instructions above to start the app, but change the final commmand to:

docker compose -f docker-compose.dev.yml --env-file .env up --build

Unlike the production environemnt, this supports hot reload. It also includes the demo resources described above.

Once everything starts (several minutes), run the command below to access a shell inside the container:

docker compose exec worker bash

From here, backend tests can be run with pytest.

turntable's People

Contributors

turntable-justin avatar ianrtracey avatar ccgomezn avatar havenbarnes avatar dependabot[bot] avatar

Stargazers

Alexander Viala Bellander avatar datablade avatar  avatar Tyler Van Hoomissen avatar Jonathan Hopper avatar Ranu Goldan Yeara Elzatar avatar  avatar  avatar Zach Blume avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.