我正在学习使用Google BigQuery客户端库为Python v0.28使用BigQuery API - https://googlecloudplatform.github.io/google-cloud-python/latest/bigquery/usage.html#queries
并且无法理解以下两种查询数据的方法之间的区别
query(query, job_config=None, job_id=None, job_id_prefix=None, retry=<google.api_core.retry.Retry object>)
query_rows(query, job_config=None, job_id=None, job_id_prefix=None, timeout=None, retry=<google.api_core.retry.Retry object>)
两者之间的区别是什么?在哪种情况下你会使用另一种?对我而言,两者似乎都是我们可以查询表格的方式。
非常感谢您提供有关它的见解!
干杯!
答案 0 :(得分:3)
它们有点相同,但有一个主要区别:query_rows
可以被视为同步实现,因为它将等待作业完成并返回带有结果的迭代器。
运行它将阻止你的python解释器,直到工作完成。
另一方面, query
是异步的,如果你运行它,无论工作是否完成,解释器都可以自由执行其他操作(并且由你决定等待工作并得到结果)。
正如您在source code中看到的那样,query_rows
调用其self.query
方法,然后调用result
(等待作业完成)。