Take the 2-minute tour ×

I would like to use BigQuery to host datasets that others can query without incurring processing charges against my project. I understand that when I upload a dataset to a project, the storage costs are associated with the project. I want others to be able to discover my dataset, access it via their project/account (preferably without my intervention), and run as many queries on it as they choose to pay for. So, storage costs would go to me, but compute costs would go to those who run the queries.

Is there a way to do this in BigQuery? I asked this via the Google Cloud enterprise sales web form but did not get a response.

share|improve this question
add comment

1 Answer

Absolutely! You can certainly make a dataset public to be queried from other projects, or even share your dataset only with a specific domain, group or user.

In this model, users would be charged for queries to their own Project IDs, while your project covers the storage costs of the datasets. Note that if the users running queries in a different project want to store their resulting tables from their query results, they would of course pay for this storage themselves.

BigQuery currently doesn't provide a mechanism for public dataset discovery. You would have to share the details of your project's public dataset(s) yourself. The GitHub Archive project has a good example of this.

share|improve this answer
This sounds great, but I don't see how to make a dataset public. When I try to share a dataset, I only see options for Project Readers/Writers/Owners, and individual email addresses. –  loren Feb 20 '13 at 6:24
In the web UI, on the share dataset modal popup, look for the icon under "Add people:" - click on it, and you should see the option to share with "All Authenticated Users." –  Michael Manoochehri Feb 20 '13 at 7:55
Ah, I see that now. I have created a brand new project with a single dataset containing a single table with a handful of rows, and I have enabled View privileges for the dataset with All Authenticated Users. When others try to access it, they are able to see the project but not the table. For example, are you able to access this dataset/table ( siebert.org:publictest:publicdataset.publictable ) ? The project id is 12126759680. If so, please tell me how. –  loren Feb 21 '13 at 20:29
SELECT TOP(repository_name, 5) as repo, COUNT(*) as count FROM [siebert.org:publictest:publicdataset.publictable]; gives me repo count = origin-server 3 rails 2 bootcamp 2 Specs 2 zabbix-benchmark 1 –  Michael Manoochehri Feb 22 '13 at 6:31
Excellent, that's the syntax I was looking for. –  loren Feb 23 '13 at 1:06
add comment

Your Answer


