无法为“_CLOUD_QUERY_METADATA_SCHEMA_”加载 FileDescriptorProto
Posted
技术标签:
【中文标题】无法为“_CLOUD_QUERY_METADATA_SCHEMA_”加载 FileDescriptorProto【英文标题】:Failed to load FileDescriptorProto for '_CLOUD_QUERY_METADATA_SCHEMA_' 【发布时间】:2021-06-29 13:31:06 【问题描述】:我的 Firebase 项目与 BigQuery 集成,因此所有原始 Google Analytics 事件每天都会导出并流式传输到专用集合。
从今天开始,即使是对这些事件的简单查询也因错误而失败:
运行查询时出错
未能加载 FileDescriptorProto 'CLOUD_QUERY_METADATA_SCHEMA': ; 23 号字段已经被 由字段“items”在“Msg_0_CLOUD_QUERY_TABLE”中使用。
一个失败的查询示例:
SELECT * FROM `project.analytics_184030700.events_*` WHERE event_name IN ("share")
正如我所提到的,那些(和更高级的)查询过去一直运行到昨天。在此期间,我没有更改架构或任何其他配置。我还注意到BigQuery was updated yesterday。
查看错误描述,看起来我的表架构确实包含一个名为 items
的字段(最后一个,23 日),但它是由 Google Analytics 自动添加的。
我的怀疑:
-
最近的 BigQuery 版本出了点问题
每日同步 Google Analytics 时出现问题 -> BigQuery
一些旧作业或缓存妨碍了新查询
在这一点上,我不知道下一步该尝试什么。有没有人知道可能导致此错误的原因?
编辑: 我注意到这个问题也刚刚在此处的 Google 问题跟踪器中报告:https://issuetracker.google.com/issues/192325507。
【问题讨论】:
我很确定这是一个新的 BigQuery 错误(是我报告了 issuetracker.google.com/issues/192325507)。同时,请注意,您可以通过不带通配符的名称查询特定字段来解决此问题。 【参考方案1】:我有同样的问题,但我还没有解决它,但正如你所说,我猜它的原因是 Firebase。有一个额外的字段问题,仅限三天(6 月 26 日、27 日和 28 日)。
我检查了 6 月 26 日之前的所有数据,但没有 privacy_info 字段。如您所见,6 月 29 日再次没有 privacy_info 字段。我认为 firebase 提出了这个新领域,但他们出于某种原因改变了主意。但这给我们带来了很大的问题。
更新: 我改变了这部分:
SELECT * FROM `project.analytics_184030700.events_*`
像这样:
SELECT * FROM `project.analytics_184030700.events_2*`
有趣的是,这对我有用。
【讨论】:
我刚刚注意到这个问题也被报告在 Google 问题跟踪器中:issuetracker.google.com/issues/192325507。 我在上面更新了我的评论,检查最后一部分。 @ChrisBarry 它不包括日内数据。但是即使他们有privacy_info字段也可以与其他人一起使用。每个事件表都以“events_2”开头,除了盘中,我只是将其排除在外。如果您仍需要盘中数据,此解决方案将不适合您。 @ChrisBarry 另外我发现由于列数差异,我们仍然无法合并 6 月 25 日和 26 日的事件数据。那么我不知道“events_2*”是如何工作的。 @VolkanEgeDindar 看起来您的解决方法确实适用于我的情况,谢谢!【参考方案2】:您可以解决该问题;字段好像有问题
隐私信息
如果您选择多个表分区,只需确保您只选择您需要的字段,并省略字段privacy_info。
不使用“SELECT *”确实为我解决了这个错误。
【讨论】:
以上是关于无法为“_CLOUD_QUERY_METADATA_SCHEMA_”加载 FileDescriptorProto的主要内容,如果未能解决你的问题,请参考以下文章
C# 无法将类型为“System.Byte[]”的对象强制转换为类型“System.Data.DataTable
无法将类型为“System.Collections.Generic.List`1[EPMS.Domain.SingleItem]”的对象强制转换为类型“EPMS
无法将 createdAt 和 updatedAt 保存为日期时间值,也无法将后端保存为前端