BQ API ::查询与插入('查询')作业
Posted
技术标签:
【中文标题】BQ API ::查询与插入(\'查询\')作业【英文标题】:BQ API :: query vs insert ('query') jobBQ API ::查询与插入('查询')作业 【发布时间】:2018-06-27 23:20:31 【问题描述】:我正在查看 BQ API 文档:https://cloud.google.com/bigquery/docs/reference/rest/v2/ 并想确认
职位:查询 POST https://www.googleapis.com/bigquery/v2/projects/projectId/queries
作业:插入(带有“查询”作业) POST https://www.googleapis.com/bigquery/v2/projects/projectId/jobs
两者似乎都有相同的目的,使用提供的 SQL 语句查询表...
我是否理解正确:
在其响应正文中立即返回查询结果(数据),(同步/阻塞过程排序) 而其他只是在后端创建一个查询作业(某种异步/非阻塞进程),然后我们仍然必须执行 Jobs: getQueryResults(如果我们有 jobId)或 Tabledata: list 以获取查询结果(数据).. 我认为两者的工作方式(同步/阻塞)与 Jobs: query?!非常感谢!
干杯!
【问题讨论】:
是的,您已经正确解释了差异。请注意,在大多数情况下,您可能希望使用client library,因此您无需担心 REST API 的详细信息。 谢谢!是的,只是在确认..总是很高兴知道引擎盖下的事情是如何运作的;)。我发布了另一个澄清:客户端库以及***.com/questions/51072806/…,如果您也可以澄清这一点,请......干杯! 我不熟悉这种变化,但希望其他人可以提供帮助。对于这个问题,请考虑将其结构化为“问题”是jobs.query
和 jobs.insert
的不同之处,然后添加一个带有解释的答案(正如您已经写的那样)。
您好,请问您可以提供您的问题的答案作为答案吗?非常感谢
【参考方案1】:
所以我的理解是正确的:
Jobs: query POST
one 立即在其响应正文中返回查询结果(数据)(同步/阻塞过程排序)
Jobs: insert (with a 'query' job) POST
只是在后端创建一个查询作业(某种异步/非阻塞进程),然后我们仍然必须执行 Jobs: getQueryResults (如果我们有 jobId) 或 Tabledata: list 以便获取查询结果(数据).. 我认为两者的工作方式(同步/阻塞)与 Jobs 相同:查询
【讨论】:
以上是关于BQ API ::查询与插入('查询')作业的主要内容,如果未能解决你的问题,请参考以下文章
BQ 命令行工具出错:无法在没有项目 ID 的情况下启动作业
google.api_core.exceptions.ResourceExhausted: 429 查询 bigquery 时收到的消息大于最大值