如何创建 Avro 架构?

Edu*_*afe 5 apache json avro

我想知道这个 json 文档的 Avro 模式是什么样的。

推文.json:

{
  "_id": {
    "$oid" : "54d148b471eb130b1e8b4567"
  },
  "nome": "Marco Correia",
  "tweet": "This and a simple tweet",
  "datahora": "Tue Feb 03 22:15:54 +0000 2015"
}
Run Code Online (Sandbox Code Playgroud)

我创建的架构给出了错误。

架构.avsc:

{
  "type" : "record",
  "name" : "twitter_schema",
  "namespace" : "com.miguno.avro",
  "fields" : [
    {
        "name" : "_id", "type": "array","items": "bytes"
    },

    { "name" : "nome","type" : "string","doc" : "Name of the user account on Twitter.com" },
    { "name" : "tweet", "type" : "string","doc" : "The content of the user's Twitter message" },
    { "name" : "datahora", "type" : "string","doc" : "Unix epoch time in seconds"}

    ],
  "doc:" : "A basic schema for storing Twitter messages"
}
Run Code Online (Sandbox Code Playgroud)

hal*_*bay 0

以下架构应该有效

{
    "type" : "record",
    "name" : "twitter_schema",
    "namespace" : "com.miguno.avro",
    "fields" : [

        {"name": "_id", "type":
            {   
                "type" : "record", "name" : "Id", "namespace" : "com.miguno.avro",
                "fields" : [
                    { "name" : "oid","type" : "string"}
                ]
            }
        },
        { "name" : "nome","type" : "string","doc" : "Name of the user account on Twitter.com" },
        { "name" : "tweet", "type" : "string","doc" : "The content of the user's Twitter message" },
        { "name" : "datahora", "type" : "string","doc" : "Unix epoch time in seconds"}

  ]
 }
Run Code Online (Sandbox Code Playgroud)