如何将配置单元(avro表)与模式注册表集成?

mznpcxlj  于 2021-06-26  发布在  Hive
关注(0)|答案(2)|浏览(342)

hive提供了两个表属性,允许定义avro架构: avro.schema.literal 以及 avro.schema.url ,其中前者可以指定为模式服务的hdfs路径或http端点。我想使用schema registry作为我的模式服务,但问题是它的端点返回 Package 在更大json对象中的模式:
请求:

GET /schemas/ids/1

答复:

HTTP/1.1 200 OK
Content-Type: application/vnd.schemaregistry.v1+json

{
  "schema": "{\"type\": \"string\"}"
}

请求:

GET /subjects/test/versions/1

答复:

HTTP/1.1 200 OK
Content-Type: application/vnd.schemaregistry.v1+json

{
  "name": "test",
  "version": 1,
  "schema": "{\"type\": \"string\"}"
}

配置单元无法解析上述响应。

oxiaedzo

oxiaedzo1#

我想做和你一样的事。我登录了https://github.com/confluentinc/schema-registry/issues/629 对schema注册表的增强使这变得容易。希望这个项目能接受这个想法。它似乎应该是一个简单的增强来实现。

4ioopgfo

4ioopgfo2#

到目前为止,我的想法是在schema registry前面放置一个代理服务(服务于纯avro模式)并用haproxy扩展它。模式注册表本身似乎有可扩展的读体系结构。老实说,我不明白这段关于 avro.schema.url avroserde配置单元文档中的属性:
指定从中访问架构的url。对于http模式,这适用于测试和小规模集群,但由于该模式将从作业中的每个任务至少访问一次,因此这可以快速将作业转化为针对url提供者(例如web服务器)的ddos攻击。将此参数用于测试以外的任何操作时,请小心。
我认为我的建议是一个可行的解决办法。
在集中式repo中拥有模式允许模式演化和检查向后/向前兼容性,因此它比在avroserde文档中推荐的定义hdfs路径要好。

相关问题