保存为sql的表结果

时间:2018-04-15 20:36:22

标签: google-bigquery

我在google big query console中成功运行了一个SQL查询。

我尝试下载结果作为csv但我收到的信息是我先保存为表格。我按下此按钮但收到此错误:

Access Denied: Dataset project-201220:testtable: The user myemail@gmail.com does not have bigquery.tables.create permission for dataset project-201220:testtable. 

我可以在配置中做些什么吗?

此外,如果我使用this option,则错误是:

Query Failed
Error: Access Denied: Dataset project-201220:stackoverflow: The user myemail@gmail.com does not have bigquery.tables.create permission for dataset project-201220:stackoverflow.

1 个答案:

答案 0 :(得分:1)

根据您对问题的评论中的讨论,我看到您已开始使用Google Cloud Platform,因此,为了初步使用BigQuery,请提供一些第一步:

GCP

Google云平台提供了一个Free Trial period(由@Mikhail解释)12个月和300美元的免费信用,以便开始使用该平台。此外,还有一些免费的功能和产品。如果我们专门讨论BigQuery,你可以转到this GCP Blog post,其中详细解释了BigQuery的免费套餐。

因此,为了开始使用Google Cloud Platform,您应该从creating a project开始。我认为你已经有了一个(请注意,最好不要共享你的GCP项目的项目ID,所以每当提出公开问题时,请使用PROJECT_ID或任何其他占位符对其进行模糊处理)。

的BigQuery

完成项目后,请转到GCP控制台中的BigQuery UIcreate a dataset(您应该{{}}},以便与之合作。

在您的情况下,您正在查询bigquery.datasets.create permissions,并且您希望将查询中的结果下载为CSV。为此,您可以按照Stack Overflow public dataset中详述的步骤进行操作,同时考虑到有一些the documentation,例如:结果应小于16,000行和10MB,并且您无法下载嵌套/重复数据。

鉴于我假设你正在运行的查询返回超过16,000个结果,你应该使用你的项目和数据集(你通过按照我在本回答前面解释过的步骤创建的)来代替limitations in this feature。为此,您将需要 bigquery.tables.create 权限,如您获得的错误消息中所述。因此,您需要与您合作的项目的项目所有者授予您write the results into a table。这可以通过the right permissions or roles完成。

最后,一旦查询结果写入数据集的表格中,您就可以使用the IAM page in the Console导出它们,而无需再次查询数据。为此,您需要Export functionality,因为BigQuery导出仅适用于GCS。

将数据导出到您的存储桶后,您可以通过控制台中的Cloud Storage bucket访问它,转到存储桶并下载生成的CSV文件。

我知道这可能需要处理很多数据,所以让我总结一下步骤:

  1. 创建GCP项目(如果您愿意,可以使用免费试用期,或者绑定结算帐户)。
  2. 在项目中创建BigQuery数据集。
  3. 查询Stack Overflow公共数据集并将结果导出到数据集中的表格中。
  4. 在项目中创建云存储桶。
  5. 将您创建的表格(包含查询结果)导出到您的存储分区。
  6. 如果您愿意,请将内容下载到您的本地环境。