【问题标题】: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 的详细信息。
  • 谢谢!是的,只是在确认..总是很高兴知道引擎盖下的事情是如何运作的;)。我发布了另一个澄清:客户端库以及stackoverflow.com/questions/51072806/…,如果您也可以澄清这一点,请......干杯!
  • 我不熟悉这种变化,但希望其他人可以提供帮助。对于这个问题,请考虑将其结构化为“问题”是 jobs.queryjobs.insert 的不同之处,然后添加一个带有解释的答案(正如您已经写的那样)。
  • 您好,请问您可以提供您的问题的答案作为答案吗?非常感谢

标签: google-bigquery


【解决方案1】:

所以我的理解是正确的:

Jobs: query POSTone 立即在其响应正文中返回查询结果(数据)(同步/阻塞过程排序)

Jobs: insert (with a 'query' job) POST 只是在后端创建一个查询作业(某种异步/非阻塞进程),然后我们仍然必须执行 Jobs: getQueryResults (如果我们有 jobId) 或 Tabledata: list 以便获取查询结果(数据).. 我认为两者的工作方式(同步/阻塞)与 Jobs 相同:查询

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-14
    • 2017-05-19
    • 2016-08-26
    相关资源
    最近更新 更多