Get startedGet started for free

Collaborative Development

1. Collaborative Development

One of the things I find exciting about working at Snowflake today, compared to a few years ago, is how much better the story is for working with other people. I mean that in two different ways. First, there's working with people on your team — where you want your code versioned, reviewable, and not living exclusively inside somebody's browser tab. Second, there's working with other organizations entirely — where you want to collaborate on data without either party ever handing over their raw data to the other. Those are two very different problems, and Snowflake has a specific answer for each. The Snowflake Git integration handles the first, and the concept of data clean rooms handles the second. Let's talk about both. We'll start with the Git integration. Before this existed, if you wanted your Snowflake code under version control, the workflow was awkward. You wrote your stored procedure or your SQL transformation in Snowflake, then you manually copied it into a file, committed it to GitHub, and tried to keep both in sync. It was workable, but fragile. Snowflake now has a native Git integration that removes that friction entirely, and it works with **GitHub**, **GitLab**, and **Bitbucket**. The way it works is by Snowflake creating something called a **repository stage**. That stage is a synchronized clone of your remote Git repository, including all its branches, commits, and files. From there, you can reference any file in that repository directly from inside Snowflake. Setting up the integration requires two things: an `API INTEGRATION`, which tells Snowflake how to talk to your Git provider, and optionally a `SECRET` object if your repository is private and requires authentication. Once those exist, connecting a repository is straightforward. The most practical way to use this for day-to-day development is through **Snowflake Notebooks**. You can connect a notebook directly to a Git repo by going to the Files tab inside your notebook and selecting **Connect Git Repository**. Once connected, you can pull changes from the remote repo, make edits to your notebook, and push those changes back to the branch — standard Git workflow, entirely inside Snowflake. You can switch branches, create new branches, review changed files before committing, and push commits back to your remote. For teams doing active notebook development, this is a significant quality-of-life improvement because your notebooks are now first-class version artifacts alongside the rest of your codebase — not something you have to facilitate via a text file and a separate Git flow. The integration also works beyond notebooks. You can execute SQL and Python files stored directly in your repository stage using the `EXECUTE IMMEDIATE FROM` command. You do this by executing the command on-screen within a notebook, but while calling on a specific SQL or Python file like this. That command fetches the SQL file from the main branch of your repository and runs it. This means your deployment scripts, stored procedure definitions, and transformation logic can all live in Git and be executed directly from there — no more copy-pasting between your editor and Snowflake. Another thing worth knowing is that notebooks can both read from and write back to repositories, while other Snowflake objects reference repositories as read-only sources. For full two-way Git workflows on everything else, you'll still use the CLI or a local development environment. Now let's switch gears to **Data Clean Rooms**, which solve a completely different kind of collaboration problem. Imagine two companies want to answer a question together — say a retailer and a media company want to know how much their customer bases overlap, so they can decide whether a joint advertising campaign makes sense. The problem is that both companies have sensitive customer data they're not willing to hand over to the other party. The retailer doesn't want to give the media company its customer list. The media company doesn't want to give the retailer its subscriber data. But they both want an answer to the overlap question. Historically, this kind of collaboration required significant legal work, data transfer agreements, and often a trusted third party to broker the analysis. Data Clean Rooms are Snowflake's answer to this problem. A Snowflake Data Clean Room is a secure environment where two parties can bring their data together and run analysis against the combined dataset without either party ever seeing the other's raw data. Only aggregated results come back. You see that 40 percent of your customers overlap with theirs — you don't see which specific customers they are. The party sharing their data, also called the **provider**, defines exactly what analyses are allowed. They create query templates that specify what questions can be asked and how the results must be aggregated before being returned. The party analyzing the data, called the **consumer**, can only run those approved templates. They cannot write arbitrary queries against the provider's data. Snowflake Data Clean Rooms have a dedicated web application with a UI that's designed to be usable by non-technical business users as well as developers. The marketing analyst can run an audience overlap analysis through the UI without writing a single line of SQL. Developers who need more control can use the developer API to build custom templates and automate workflows programmatically. The provider sets up the clean room by registering the data they want to make available, defining the templates for analysis, and inviting the consumer. The consumer installs a clean room in their own account and can begin running analyses against it. If the consumer is not a Snowflake customer, they can still participate using a managed account that Snowflake provisions for them. A few things worth knowing. Both parties keep their data in their own Snowflake accounts at all times — nothing is copied to a shared location. Aggregation thresholds are enforced so that results with too few matching records are suppressed, preventing inference attacks. And the provider can revoke access at any time. To recap: Snowflake addresses team collaboration through native Git integration. Connect your notebooks and repository stages to GitHub, GitLab, or Bitbucket, and work with branches, commits, and pushes directly inside Snowsight. For cross-organization collaboration on sensitive data, Data Clean Rooms let two parties analyze a combined dataset without either party exposing their raw records to the other. Two very different problems, both solved without leaving the Snowflake platform.

2. Let's practice!

Create Your Free Account

or

By continuing, you accept our Terms of Use, our Privacy Policy and that your data is stored in the USA.