繁体   English   中英

大查询 API 通过应用程序脚本 - 我在一个很大但在较小的表上工作的表上收到错误。 通过应用程序脚本有大小限制吗?

[英]Big Query API via Apps script - I get an error on a table that is large but works on a smaller table. Is there a size limit via apps script?

我正在使用 Apps 脚本向 BigQuery 发送查询

我有一个项目 ID -“bigquerytest-282720”,一个名为“testDataSet”的数据集和 2 个表(smallTable 和 bigTable)。

两个表具有相同的架构。 表 1 只有 6 行,表 2 有 600000

当我使用请求查询表 1(小表)时:

var request = {
query: 'SELECT * ' +
  'FROM bigquerytest-282720.testDataSet.smallTable ' +
  'WHERE Member = "North"',
useLegacySql: false
}

它成功返回记录

但是当我查询表 2(大表)时

var request = {
query: 'SELECT * ' +
  'FROM bigquerytest-282720.testDataSet.bigTable ' +
  'WHERE Member = "North"',
useLegacySql: false
}

消息失败

GoogleJsonResponseException:API 调用 bigquery.jobs.getQueryResults 失败并出现错误:未找到:作业 bigquerytest-282720:job_6JTUvDCP7aWSJQT4FfGZLJFqwzqm(第 35 行,文件“代码”)

我可以从控制台中成功查询表 2,因此它似乎是应用程序脚本限制。 当我在控制台中查询表 2 时,它说 74.3MB 已被处理,所以从 Apps 脚本查询时可能存在表大小限制?

有什么见解吗?

谢谢

编辑:我现在尝试使用 300000、100000 和 50000 行的表。 它适用于 50000。很明显,Apps 脚本中的某处存在限制。 这个限制是固定的还是我可以在某处支付更多费用? 我目前没有支付与 BigQuery 相关的任何费用,但如果我这样做,它会解决问题吗?

Urlfetch 响应大小的限制为 50MB 这同样适用于高级 Google 服务或其他请求外部数据的内置服务。

啊啊啊——我已经解决了。 我正在从谷歌驱动器在 bigQuery 中创建表。 事实证明,它实际上并没有在 bigQuery 中创建表,它只是链接到谷歌驱动器中的 csv 文件,即有效的 50000 行表。 我实际上是从本地机器上传的,所以这实际上是在 bigQuery 中创建的。 所以我已经注册了免费试用并从谷歌云存储上传,然后实际上在 bigQuery 中创建了大表,我现在可以从应用程序脚本中成功查询。 可以作为外部数据源查询的文件大小必须有限制,当我之前尝试使用应用程序脚本将数据上传到 bigQuery 时,在谷歌驱动器中获取文件。 它给出了 50mb 限制的错误,所以我想这与通过 bigQuery 从谷歌驱动器查询相同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM