The main concepts you’ll want to understand on your journey to becoming a Tinybird pro!
The Data Project¶
A Data Project is a set of plain-text files (Datafiles) that describes how your data is stored, processed, and exposed through APIs.
You work with Tinybird Data Projects in the same way that you would work with any other software project, maintaining source code files in a repository, building a CI pipeline, making deployments, running tests, etc. The source code for your data products are the Datafiles in your Tinybird Data Project.
With the Data Project, you can use standard Git-based workflows and tools to build data products, manage your data pipelines, and iterate Tinybird resources.
Workspaces help you organize and collaborate on your Tinybird Data Projects. A Workspace contains the Data Project resources represented as Datafiles in code (Data Sources, Pipes, …), data, and state.
All of your Tinybird resources live in a Workspace; you can have multiple Workspaces to organize your resources as you see fit.
Other users can be invited to your Workspaces easily and you can choose their role to control what they are able do. You can invite as many users to your Workspace as you want on a per-Workspace basis.
It is also possible to share resources from one Workspace to another.
People often use Workspaces to give a team, or a project, its own space to work in.
Data Sources are how you ingest & store data in Tinybird.
Think of a Data Source like a database table (there’s a little more detail behind it, but close enough for now).
All of your data lives inside a Data Source, and you will write your SQL queries against them.
You can bulk upload or stream data into a Data Source, and they support several different incoming data formats (CSV, JSON, Parquet).
Pipes are where your Nodes live; within a Pipe, you can have as many Nodes as you need.
We can ‘chain’ the Nodes in our Pipe together by having a Node select the results of a previous Node. This lets you break larger queries down into multiple, smaller queries that are much easier to read.
A Node in Tinybird is simply a single SQL
SELECT statement that selects
FROM a Data Source or another Node.
Nodes live within Pipes.
The magic of Tinybird is the ability to turn any Pipe into an API Endpoint.
Build your SQL logic inside a Pipe, and then publish the result of your query as an HTTP API Endpoint.
All you need to do is write the SQL, everything else is taken care of for you.
When you publish an API Endpoint from a Pipe, it is automatically secured using Auth Tokens.
You can manage your Auth Tokens inside Tinybird and configure granular access permissions as needed.
An Environment is an ephemeral and isolated logical copy of a Workspace with the same resources as those in Production. Environments allow you to iterate your Data Project without affecting Production resources.
You use Environments to make changes to your Data Project in isolation. Instead of deploying them to a production Workspace, you can deploy them to an isolated Environment, test as needed, and then merge them with Production. You create Environments with the UI or CLI if you’d like to directly interact with them, or as part of an automated CI/CD pipeline.
The CLI is the glue between the Workspace in Tinybird and the Data Project in Git. It’s also used behind the scenes for automations like CI/CD pipelines.
Tinybird is built using open source software. We love open source and have dedicated teams that contribute to all of the projects we use.
ClickHouse is an open source OLAP database, and it serves as Tinybird’s real-time analytics database and SQL engine.
The SQL that you write inside Tinybird will use the ClickHouse SQL dialect.