Google bigquery 有没有办法强制更新表元数据?

Google bigquery 有没有办法强制更新表元数据?,google-bigquery,Google Bigquery,因为流表不会立即更新表元数据。表没有有效的元数据(尤其是较小的表)。这反过来会导致在使用表通配符函数时出现问题(因为它们与表元数据相关)。 为了克服这个问题,我正在寻找一种强制更新表元数据的方法。有什么样的工作可以让我去做吗? 谢谢简短的回答是否定的。流媒体系统以不同于通常存储数据的存储格式/系统缓冲流媒体数据。我们定期将缓冲数据刷新到传统的存储系统中,此时您感兴趣的表元数据将针对刷新的数据块进行更新 这种行为的原因是,在主动流媒体系统中,这些统计数据可能会不断变化,因此将不准确。由于流式摄取服

因为流表不会立即更新表元数据。表没有有效的元数据(尤其是较小的表)。这反过来会导致在使用表通配符函数时出现问题(因为它们与表元数据相关)。 为了克服这个问题,我正在寻找一种强制更新表元数据的方法。有什么样的工作可以让我去做吗?
谢谢

简短的回答是否定的。流媒体系统以不同于通常存储数据的存储格式/系统缓冲流媒体数据。我们定期将缓冲数据刷新到传统的存储系统中,此时您感兴趣的表元数据将针对刷新的数据块进行更新

这种行为的原因是,在主动流媒体系统中,这些统计数据可能会不断变化,因此将不准确。由于流式摄取服务是一个分布式系统,因此获得有关缓冲数据的准确统计信息的唯一方法是扫描缓冲区并计算更新统计信息(在返回响应时,更新统计信息可能不正确/过时,而且成本也很高)。我们选择将这些统计数据与“刷新”数据绑定,以保持元数据值的稳定,并避免需要昂贵的缓冲区扫描来返回在返回数据时可能不正确的数据

我们在表元数据中有一个称为“streamingBuffer”的部分,它提供了行/字节的估计值,以及一些计时统计数据


我从您的问题中看到,您实际上使用的是来自表通配符的信息(我假设您指的是table_QUERY?)。我将在内部提交一个bug,将streamingBuffer部分的估计数据包含在表查询可用的字段中

你能举一个你遇到的问题的具体例子吗?我不确定问题出在哪里。。。一些具体问题:您是预创建表还是使用模板表()?您看到了什么类型的无效元数据?你什么时候看到这个?谢谢!我创建一个表,然后将数据流到其中。无论如何,我正在寻找一种方法来强制更新表元数据,而不是等待一些后台进程按不明确的时间表进行。您指的是流式传输到模板表中,以及创建关联表吗?或者您是在谈论表元数据上的表统计信息(字节、行等)?我们使用insert all来传输数据。问题不在于流媒体。它是关于强制更新表元数据的。如记录数量、更新时间等。谢谢。是否有强制刷新缓冲区的方法?目前最长时间约为90分钟。根据您的数据量,我们的刷新速度会更快。我是否可以建议也根据流频率刷新缓冲区(即:如果x秒内没有数据流,则刷新),我们绝对不会以秒为单位执行某些操作。。。但也许以几分钟的空闲时间来计算的东西是合理的。这里需要记住的是,我们系统的目标之一是生成最佳大小的数据块,因为如果数据块过大或过小,查询性能可能会受到负面影响。