加载作业失败,错误字段 field-name 已存在于架构中
Posted
技术标签:
【中文标题】加载作业失败,错误字段 field-name 已存在于架构中【英文标题】:Load Job failed with error field field-name already exists in schema加载作业失败,错误字段 field-name 已存在于架构中 【发布时间】:2015-01-11 21:36:37 【问题描述】:我在尝试从数据存储备份文件(在云存储中)创建表时遇到问题
特定实体类型会出现此问题。我的应用引擎数据存储区中有大约 20 种实体。如果我为所有实体类型创建数据库备份,我可以毫无问题地将几乎所有相应的 EntityName.backup_info 文件导入 bigquery,无论是使用 Bigquery UI(创建表功能)还是通过这个漂亮的 pyton 包使用 API @ 987654321@
特定实体种类的备份会出现问题。当我尝试通过 UI 或 API 导入它时,我收到以下作业加载错误
字段 field_name 已存在于架构中
我在试图解决这个问题时遇到了分歧。我很乐意在云存储中提供 .backup_info 文件的 url,并授予 google 人员权限以解决此问题
进一步调查:
我在数据存储区统计信息(按属性和复合索引细分)中看到,产生错误的属性 Credit 在架构中出现了两次
Credit Key 35.23 KB 173.94 KB 0
Credit NULL 501.34 KB 6.77 MB 2
曾几何时,该模型有一个关键属性,但它已被删除,因此推测可能存在一些具有该属性的实体。其他属性 Credit NULL 不知道是怎么回事。
问题的根源似乎是我需要解决这个问题,但目前尚不清楚如何解决。我可以重新保存这种类型的所有实体(大约 50K)(使用 map reduce 作业的 map 阶段)。这是一个可能的解决方案吗?我没有看到改变“模式”的方法,它似乎是自动生成的。
【问题讨论】:
【参考方案1】:这是数据存储架构转换中的一个已知 BigQuery 问题。我们正在努力修复。不幸的是,除了移动或重命名导致冲突的实体之外,我不知道解决方法。
【讨论】:
好的,谢谢您的回复。我仍然在黑暗中。删除或重命名导致冲突的实体是什么意思?我实际上不确定是哪些实体导致了冲突。我能做的是检查所有此类实体并做一些事情,例如在我认为导致问题的属性上设置虚假值等。 顺便说一句,有问题的属性是这样定义的 my_property_name = ndb.KeyProperty("Credit") 这种类型的某些实体设置了属性 'my_property_name' 但由于属性定义已被删除一段时间,较新的实体没有设置它。 无论如何,修复中是否有预计到达时间?【参考方案2】:通过运行地图作业重新保存所有此类实体并为有问题的属性 my_property_name = None 设置值来解决问题
之后,bigquery 的导入工作就成功了!
【讨论】:
以上是关于加载作业失败,错误字段 field-name 已存在于架构中的主要内容,如果未能解决你的问题,请参考以下文章
预检响应中的 Access-Control-Allow-Headers 不允许请求标头字段 <field-name>
GITLAB CI错误加载密钥“/dev/fd/63”:格式无效错误:作业失败:退出代码1
SQL作业sql ssis作业错误:“由于错误0xC0010014导致程序包无法加载,这在CPackage :: LoadFROMXML失败时会发生