Streaming BigQuery—如何确定数据可用性

Streaming BigQuery—如何确定数据可用性,streaming,google-bigquery,Streaming,Google Bigquery,关于: 通过编程确定流式传输后表数据是否可用的最佳方法是什么 尝试使用以下API获取行和TotalRows时,我得到了意外的结果:Jobs.Query、Jobs.GetQueryResults、Tables.Get、Tabledata.List 谢谢。您可以通过执行Tables.Get()API并查看streamingBuffer.oldesentrytime值来判断是否在表上刷新数据。这可以被认为是从缓冲区中冲出的数据的高水位线 在此时间戳之前的任何数据都应可用于复制、导出和列表操作 此外,我

关于:

通过编程确定流式传输后表数据是否可用的最佳方法是什么

尝试使用以下API获取行和TotalRows时,我得到了意外的结果:Jobs.Query、Jobs.GetQueryResults、Tables.Get、Tabledata.List


谢谢。

您可以通过执行Tables.Get()API并查看streamingBuffer.oldesentrytime值来判断是否在表上刷新数据。这可以被认为是从缓冲区中冲出的数据的高水位线

在此时间戳之前的任何数据都应可用于复制、导出和列表操作

此外,我应该澄清,在流式处理之后,表中的数据可以立即用于查询。它仅对表复制、导出和tabledata.list()操作不可用。是的,这令人困惑,但是的,我们也在努力解决这个问题

对于以前或最近未流式传输到的表,有一个预热期,新的流式传输数据将不会显示


有关更多信息,请参阅。

感谢您的回复。你能提供一些我将如何使用这个字段的更多信息吗?您提到数据应该可以立即查询,但对我来说,情况似乎并非总是如此。我设置了一个简单的测试,创建一个表,流1行,然后立即执行一个非常简单的查询:“selectcount(*)FROM…”。有时测试会失败,因为查询返回的值为0.Ah。在新桌子上有“几秒钟”的预热时间。更新了我的回复。文件中提到了这一点。请参阅以确认:1)流缓冲区多长时间刷新一次?文件提到“数据可能需要90分钟才能可用”,这是同一回事吗?2) ~90分钟的延迟是否适用于Tabledata.List?那桌子呢,准备好了吗?因此,使用以下查询可以更好地预览流式传输到的表:select*?3) 有什么我可以等到“几秒钟”的热身结束后再做的吗?4) streamingBuffer是一个暂时的对象,还是在第一个流式批处理之后它将永远存在。我读了文件,但想确认一下。1)最多90分钟,但通常在几分钟内。2) Yes/Yes/Yes 3)对表上的streamingBuffer进行投票。4) 它将在流媒体播放完成后24小时左右消失。另一个问题刚刚出现。新表的预热期(查询表之前的时间)是否仅适用于流式表或任何表?e、 从云存储加载的表,作为查询结果的表。。。