【问题标题】: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 阶段)。这是一个可能的解决方案吗?我没有看到改变“模式”的方法,它似乎是自动生成的。

【问题讨论】:

    标签: google-app-engine google-bigquery google-cloud-datastore


    【解决方案1】:

    这是数据存储架构转换中的一个已知 BigQuery 问题。我们正在努力修复。不幸的是,除了移动或重命名导致冲突的实体之外,我不知道解决方法。

    【讨论】:

    • 好的,谢谢您的回复。我仍然在黑暗中。删除或重命名导致冲突的实体是什么意思?我实际上不确定是哪些实体导致了冲突。我能做的是检查所有此类实体并做一些事情,例如在我认为导致问题的属性上设置虚假值等。
    • 顺便说一句,有问题的属性是这样定义的 my_property_name = ndb.KeyProperty("Credit") 这种类型的某些实体设置了属性 'my_property_name' 但由于属性定义已被删除一段时间,较新的实体没有设置它。
    • 无论如何,修复中是否有预计到达时间?
    【解决方案2】:

    通过运行地图作业重新保存所有此类实体并为有问题的属性 my_property_name = None 设置值来解决问题

    之后,bigquery 的导入工作就成功了!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-20
      • 2021-11-28
      • 2019-12-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多