任务是以编程方式列出给定数据集中超过30-40K表的所有表
我们探索的初始选项是使用tables.list
API(正如我们一直对普通数据集所做的那样,其中包含合理数量的表)
看起来此API返回最多1000个条目(即使我们尝试将maxResults
设置为更大的值)
接下来的1000我们需要“等待”前一个请求的响应然后提取pageToken
并重复呼叫等等
对于30K-40K +的数据集,这可能需要10-15秒甚至更多秒(在良好的天气下)
因此,对于我们来说,时间问题是我们要解决的问题!
在上述调用中,我们只返回nextPageToken
和tables/tableReference/tableId
,因此响应的大小非常小!
问题:
有没有办法以某种方式增加maxResults
,所以要在一个(或很少)的呼叫中获得所有表(假设它比30-40个呼叫快得多)?
我们到目前为止尝试的解决方法是将__TABLES_SUMMARY__与jobs.insert
或jobs.query
API一起使用。
这样 - 整个结果在几秒钟内返回 - 但在我们的特定情况下 - 使用BigQuery jobs
API不是一个选项,原因有多种。我们希望能够使用list
API