当前位置: 首页 > 知识库问答 >
问题:

删除旧模式后,无法在Kafka中添加新模式

呼延修然
2023-03-14

我也在尝试对键使用正确的模式。默认情况下,它创建为:

{"subject":"AVROTEST-key","version":1,"id":60,"schema":"\"string\""}

但我想要这样:

{"subject":"AVROTEST-key","version":1,"id":60,"schema": "{\"type\":\"record\",\"name\":\"AVROTEST\",\"fields\":[{\"name\":\"key\",\"type\":\"long\"}]}"}

由于兼容性问题,我试图完全删除它并添加一个新的。我使用删除了它

curl -X DELETE http://XXXXXX.XXXXXX:1234/subjects/AVROTEST-key/versions/1

没有其他版本,当我尝试在删除后获取它时,我会收到404错误,这意味着它已成功删除。但是当我尝试注册一个新模式时,我会收到这个错误:

"error_code": 409,"消息":"正在注册的架构与先前的架构不兼容"

当没有模式时,它怎么可能与早期的模式不兼容?我错过了什么?

这是我注册新模式的方式:

curl -X POST -H "Content-Type: application/vnd.schemaregistry.v1+json" --data '{"schema": "{\"type\":\"record\",\"name\":\"AVROTEST\",\"fields\":[{\"name\":XXXXXX.XXXXXXXX:1234/subjects/AVROTEST-key/versions

共有1个答案

庄实
2023-03-14

看起来还有另一个我不知道的模式版本。实际上,一个有趣的错误,我应该删除所有版本,而不是[1]。所以输入命令

curl -X DELETE http://XXXXXX.XXXXXX:1234/subjects/AVROTEST-key/versions/

解决了我的问题。所有以前的模式都被删除了。但是请注意,新模式不会注册为版本[1]。它会增加最新的模式id。

 类似资料:
  • 用EraseMode属性适合于画面变化最小的简单图的长序列。这里有一个例子放映模拟的布朗运动。指定点的数目,例如 n = 20 以及温度或速度,例如 s = .02 这两个参数的最佳值决定于你的计算机的速度。生成n个随机点,其(x,y)坐标介乎-1/2和+1/2。 x = rand(n,1)-0.5; y = rand(n,1)-0.5; 在边界为-1和1的正方形作出各点。保存点的向量的句柄

  • 我尝试在从KieBase中删除规则后重新创建KieSession,但删除的规则仍在触发。 我使用以下代码创建了一个KieBase并删除了一条规则: 但是当我根据ksesion1评估一个事实时,rule1仍然在触发。如何将编辑后的KieBase重新加载到新会话中?

  • 我试图在开发模式下加载我的应用程序,使用Chrome V20.0在我的本地ip 127.0.0.1上。应用程序加载失败,显示如下: > 消息:“GWT代码服务器断开连接,很可能是您关闭了GWT开发模式。或者,您可能已经失去了网络连接。要解决此问题,请尝试重新启动GWT开发模式并刷新此页。” 这些错误不会伴随任何代码堆栈跟踪输出。通常,如果我将地址表单127.0.0.1更改为localhost,模块

  • 我正在寻找更新BigQuery中现有表的模式的方法。我可以在python中看到同样的操作,这是一个API请求。我想在Java中看到这一点,并查看我能找到的文档和源代码 但是它重写了整个模式。在这里可以找到其他可能的更新模式的方法 有人能指导我如何使用Java在BigQuery中向现有表添加新列吗?

  • 如果我使用模式版本1序列化一个对象,然后将模式更新为版本2(比如添加一个字段),那么在以后反序列化该对象时是否需要使用模式版本2?理想情况下,我只希望使用模式版本2,并使反序列化对象具有在对象最初序列化后添加到模式中的字段的默认值。 也许一些代码会更好地解释... 架构 1: 方案2: 使用通用非代码生成方法: 导致EOFException。使用会导致AvroTypeException。 我知道如

  • 问题内容: 我有一位表格讲师,我想删除工资范围在一定范围内的记录。一种直观的方式是这样的: 但是,在安全模式下,如果不提供主键(ID),则无法删除记录。 所以我写下面的sql: 但是,有一个错误: 我很困惑,因为当我写 它不会产生错误。 我的问题是: 此错误消息的真正含义是什么,为什么我的代码是错误的? 如何重写此代码以使其在安全模式下工作? 谢谢! 问题答案: 到处搜寻,最流行的答案似乎是“只关