如何修改AVRO模式以表示单个对象而不是列表f对象? [英] how to modify AVRO schema to represent a single object instead of list f objects?

查看:164
本文介绍了如何修改AVRO模式以表示单个对象而不是列表f对象?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我具有以下AVRO模式,该模式表示客户"对象的列表:

I have the following AVRO schema, which represents a list of "Customer" objects:

{
  "type" : "record",
  "name" : "List",
  "fields" : [ {
    "name" : "Customer",
    "type" : {
      "type" : "array",
      "items" : {
        "type" : "record",
        "name" : "Customer",
        "fields" : [ {
          "name" : "Sender",
          "type" : {
            "type" : "record",
            "name" : "SenderInfo",
            "fields" : [ {
              "name" : "transmitDate",
              "type" : "long",
              "source" : "element transmitDate"
            }, {
              "name" : "transmitter",
              "type" : "string",
              "source" : "element transmitter"
            }, {
              "name" : "dealerCode",
              "type" : "string",
              "source" : "element dealerCode"
            }, {
              "name" : "territoryDealerCode",
              "type" : [ "null", "string" ],
              "source" : "element territoryDealerCode"
            }, {
              "name" : "DMSSystem",
              "type" : [ "null", "string" ],
              "source" : "element DMSSystem"
            }, {
              "name" : "DMSReleaseNumber",
              "type" : [ "null", "string" ],
              "source" : "element DMSReleaseNumber"
            } ]
          },
          "source" : "element Sender"
        }, {
          "name" : "Identifier",
          "type" : {
            "type" : "record",
            "name" : "Identifier",
            "fields" : [ {
              "name" : "updateInd",
              "type" : "string",
              "source" : "element updateInd"
            }, {
              "name" : "dealerCustNumber",
              "type" : "string",
              "source" : "element dealerCustNumber"
            }, {
              "name" : "dealerCustName",
              "type" : "string",
              "source" : "element dealerCustName"
            }, {
              "name" : "customerAlias",
              "type" : [ "null", "string" ],
              "source" : "element customerAlias"
            }, {
              "name" : "phoneNumber",
              "type" : [ "null", "string" ],
              "source" : "element phoneNumber"
            }, {
              "name" : "faxNumber",
              "type" : [ "null", "string" ],
              "source" : "element faxNumber"
            }, {
              "name" : "email",
              "type" : [ "null", "string" ],
              "source" : "element email"
            }, {
              "name" : "customerType",
              "type" : "string",
              "source" : "element customerType"
            }, {
              "name" : "activeCustomerInd",
              "type" : "boolean",
              "source" : "element activeCustomerInd"
            }, {
              "name" : "parentCustomerNumber",
              "type" : [ "null", "string" ],
              "source" : "element parentCustomerNumber"
            }, {
              "name" : "primaryStoreNumber",
              "type" : [ "null", "string" ],
              "source" : "element primaryStoreNumber"
            }, {
              "name" : "keyCatAccount",
              "type" : [ "null", "string" ],
              "source" : "element keyCatAccount"
            }, {
              "name" : "secondLevelDealerCode",
              "type" : [ "null", "string" ],
              "source" : "element secondLevelDealerCode"
            }, {
              "name" : "preferredLanguage",
              "type" : [ "null", "string" ],
              "source" : "element preferredLanguage"
            }, {
              "name" : "dealerDateInSystem",
              "type" : "long",
              "source" : "element dealerDateInSystem"
            }, {
              "name" : "dealerLastUpdatedDate",
              "type" : "long",
              "source" : "element dealerLastUpdatedDate"
            }, {
              "name" : "hdrChrgCode1",
              "type" : [ "null", "string" ],
              "source" : "element hdrChrgCode1"
            }, {
              "name" : "hdrChrgCode2",
              "type" : [ "null", "string" ],
              "source" : "element hdrChrgCode2"
            }, {
              "name" : "dealerCurrencyCode",
              "type" : [ "null", "string" ],
              "source" : "element dealerCurrencyCode"
            }, {
              "name" : "custCurrencyCode",
              "type" : [ "null", "string" ],
              "source" : "element custCurrencyCode"
            }, {
              "name" : "partsCustClass",
              "type" : [ "null", "string" ],
              "source" : "element partsCustClass"
            }, {
              "name" : "laborCustClass",
              "type" : [ "null", "string" ],
              "source" : "element laborCustClass"
            }, {
              "name" : "miscCustClass",
              "type" : [ "null", "string" ],
              "source" : "element miscCustClass"
            }, {
              "name" : "corpAccPartsPurchase",
              "type" : [ "null", "string" ],
              "source" : "element corpAccPartsPurchase"
            }, {
              "name" : "invoiceTypeInd",
              "type" : [ "null", "string" ],
              "source" : "element invoiceTypeInd"
            } ]
          },
          "source" : "element Identifier"
        }, {
          "name" : "Location",
          "type" : {
            "type" : "array",
            "items" : {
              "type" : "record",
              "name" : "Location",
              "fields" : [ {
                "name" : "address1",
                "type" : [ "null", "string" ],
                "source" : "element address1"
              }, {
                "name" : "address2",
                "type" : [ "null", "string" ],
                "source" : "element address2"
              }, {
                "name" : "address3",
                "type" : [ "null", "string" ],
                "source" : "element address3"
              }, {
                "name" : "city",
                "type" : [ "null", "string" ],
                "source" : "element city"
              }, {
                "name" : "postalCode",
                "type" : [ "null", "string" ],
                "source" : "element postalCode"
              }, {
                "name" : "county",
                "type" : [ "null", "string" ],
                "source" : "element county"
              }, {
                "name" : "state",
                "type" : [ "null", "string" ],
                "source" : "element state"
              }, {
                "name" : "country",
                "type" : [ "null", "string" ],
                "source" : "element country"
              }, {
                "name" : "location",
                "type" : [ "null", "string" ],
                "source" : "element location"
              }, {
                "name" : "addressType",
                "type" : "string",
                "source" : "element addressType"
              } ]
            }
          },
          "source" : "element Location"
        }, {
          "name" : "Contact",
          "type" : {
            "type" : "array",
            "items" : {
              "type" : "record",
              "name" : "Contact",
              "fields" : [ {
                "name" : "name",
                "type" : [ "null", "string" ],
                "source" : "element name"
              }, {
                "name" : "email",
                "type" : [ "null", "string" ],
                "source" : "element email"
              }, {
                "name" : "phone",
                "type" : [ "null", "string" ],
                "source" : "element phone"
              }, {
                "name" : "title",
                "type" : [ "null", "string" ],
                "source" : "element title"
              }, {
                "name" : "responsibility",
                "type" : [ "null", "string" ],
                "source" : "element responsibility"
              }, {
                "name" : "type",
                "type" : "string",
                "source" : "element type"
              }, {
                "name" : "phone2",
                "type" : [ "null", "string" ],
                "source" : "element phone2"
              }, {
                "name" : "preferredContact",
                "type" : [ "null", "string" ],
                "source" : "element preferredContact"
              } ]
            }
          },
          "source" : "element Contact"
        }, {
          "name" : "Division",
          "type" : {
            "type" : "array",
            "items" : {
              "type" : "record",
              "name" : "Division",
              "fields" : [ {
                "name" : "divisionCode",
                "type" : "string",
                "source" : "element divisionCode"
              }, {
                "name" : "divisionName",
                "type" : "string",
                "source" : "element divisionName"
              }, {
                "name" : "primaryDivisionCodeInd",
                "type" : [ "null", "boolean" ],
                "source" : "element primaryDivisionCodeInd"
              }, {
                "name" : "IndustryCode",
                "type" : {
                  "type" : "array",
                  "items" : {
                    "type" : "record",
                    "name" : "IndustryCode",
                    "fields" : [ {
                      "name" : "industryCode",
                      "type" : "string",
                      "source" : "element industryCode"
                    }, {
                      "name" : "primaryIndustryCodeInd",
                      "type" : "boolean",
                      "source" : "element primaryIndustryCodeInd"
                    } ]
                  }
                },
                "source" : "element IndustryCode"
              }, {
                "name" : "CustomerPreference",
                "type" : {
                  "type" : "array",
                  "items" : {
                    "type" : "record",
                    "name" : "CustomerPreference",
                    "fields" : [ {
                      "name" : "description",
                      "type" : "string",
                      "source" : "element description"
                    }, {
                      "name" : "value",
                      "type" : "string",
                      "source" : "element value"
                    } ]
                  }
                },
                "source" : "element CustomerPreference"
              }, {
                "name" : "SalesRep",
                "type" : {
                  "type" : "array",
                  "items" : {
                    "type" : "record",
                    "name" : "SalesRep",
                    "fields" : [ {
                      "name" : "number",
                      "type" : "string",
                      "source" : "element number"
                    }, {
                      "name" : "name",
                      "type" : "string",
                      "source" : "element name"
                    }, {
                      "name" : "type",
                      "type" : "string",
                      "source" : "element type"
                    }, {
                      "name" : "par",
                      "type" : [ "null", "string" ],
                      "source" : "element par"
                    }, {
                      "name" : "email",
                      "type" : [ "null", "string" ],
                      "source" : "element email"
                    }, {
                      "name" : "phoneNumber",
                      "type" : [ "null", "string" ],
                      "source" : "element phoneNumber"
                    } ]
                  }
                },
                "source" : "element SalesRep"
              } ]
            }
          },
          "source" : "element Division"
        }, {
          "name" : "ApplicationExtension",
          "type" : {
            "type" : "array",
            "items" : {
              "type" : "record",
              "name" : "ApplicationExtension",
              "fields" : [ {
                "name" : "applicationId",
                "type" : "string",
                "source" : "element applicationId"
              }, {
                "name" : "field",
                "type" : "string",
                "source" : "element field"
              }, {
                "name" : "value",
                "type" : "string",
                "source" : "element value"
              } ]
            }
          },
          "source" : "element ApplicationExtension"
        } ]
      }
    },
    "source" : "element Customer"
  } ]
}

我需要更改此架构,以仅表示一个客户"对象.

I need to change this schema, to represent just a single "Customer" object.

我应该删除哪些部分?

推荐答案

以下是上面的架构,已修改为代表单个实体:

Here is the schema above, modified to represent a single entity:

{
  "type" : "record",
  "name" : "Customer",
  "protocol": "xml",
  "fields" : [ {
    "name" : "Sender",
    "type" : {
      "type" : "record",
      "name" : "SenderInfo",
      "fields" : [ {
        "name" : "transmitDate",
        "type" : "long",
        "source" : "element transmitDate"
      }, {
        "name" : "transmitter",
        "type" : "string",
        "source" : "element transmitter"
      }, {
        "name" : "dealerCode",
        "type" : "string",
        "source" : "element dealerCode"
      }, {
        "name" : "territoryDealerCode",
        "type" : [ "null", "string" ],
        "source" : "element territoryDealerCode"
      }, {
        "name" : "DMSSystem",
        "type" : [ "null", "string" ],
        "source" : "element DMSSystem"
      }, {
        "name" : "DMSReleaseNumber",
        "type" : [ "null", "string" ],
        "source" : "element DMSReleaseNumber"
      } ]
    },
    "source" : "element Sender"
  }, {
    "name" : "Identifier",
    "type" : {
      "type" : "record",
      "name" : "Identifier",
      "fields" : [ {
        "name" : "updateInd",
        "type" : "string",
        "source" : "element updateInd"
      }, {
        "name" : "dealerCustNumber",
        "type" : "string",
        "source" : "element dealerCustNumber"
      }, {
        "name" : "dealerCustName",
        "type" : "string",
        "source" : "element dealerCustName"
      }, {
        "name" : "customerAlias",
        "type" : [ "null", "string" ],
        "source" : "element customerAlias"
      }, {
        "name" : "phoneNumber",
        "type" : [ "null", "string" ],
        "source" : "element phoneNumber"
      }, {
        "name" : "faxNumber",
        "type" : [ "null", "string" ],
        "source" : "element faxNumber"
      }, {
        "name" : "email",
        "type" : [ "null", "string" ],
        "source" : "element email"
      }, {
        "name" : "customerType",
        "type" : "string",
        "source" : "element customerType"
      }, {
        "name" : "activeCustomerInd",
        "type" : "boolean",
        "source" : "element activeCustomerInd"
      }, {
        "name" : "parentCustomerNumber",
        "type" : [ "null", "string" ],
        "source" : "element parentCustomerNumber"
      }, {
        "name" : "primaryStoreNumber",
        "type" : [ "null", "string" ],
        "source" : "element primaryStoreNumber"
      }, {
        "name" : "keyCatAccount",
        "type" : [ "null", "string" ],
        "source" : "element keyCatAccount"
      }, {
        "name" : "secondLevelDealerCode",
        "type" : [ "null", "string" ],
        "source" : "element secondLevelDealerCode"
      }, {
        "name" : "preferredLanguage",
        "type" : [ "null", "string" ],
        "source" : "element preferredLanguage"
      }, {
        "name" : "dealerDateInSystem",
        "type" : "long",
        "source" : "element dealerDateInSystem"
      }, {
        "name" : "dealerLastUpdatedDate",
        "type" : "long",
        "source" : "element dealerLastUpdatedDate"
      }, {
        "name" : "hdrChrgCode1",
        "type" : [ "null", "string" ],
        "source" : "element hdrChrgCode1"
      }, {
        "name" : "hdrChrgCode2",
        "type" : [ "null", "string" ],
        "source" : "element hdrChrgCode2"
      }, {
        "name" : "dealerCurrencyCode",
        "type" : [ "null", "string" ],
        "source" : "element dealerCurrencyCode"
      }, {
        "name" : "custCurrencyCode",
        "type" : [ "null", "string" ],
        "source" : "element custCurrencyCode"
      }, {
        "name" : "partsCustClass",
        "type" : [ "null", "string" ],
        "source" : "element partsCustClass"
      }, {
        "name" : "laborCustClass",
        "type" : [ "null", "string" ],
        "source" : "element laborCustClass"
      }, {
        "name" : "miscCustClass",
        "type" : [ "null", "string" ],
        "source" : "element miscCustClass"
      }, {
        "name" : "corpAccPartsPurchase",
        "type" : [ "null", "string" ],
        "source" : "element corpAccPartsPurchase"
      }, {
        "name" : "invoiceTypeInd",
        "type" : [ "null", "string" ],
        "source" : "element invoiceTypeInd"
      } ]
    },
    "source" : "element Identifier"
  }, {
    "name" : "Location",
    "type" : {
      "type" : "array",
      "items" : {
        "type" : "record",
        "name" : "Location",
        "fields" : [ {
          "name" : "address1",
          "type" : [ "null", "string" ],
          "source" : "element address1"
        }, {
          "name" : "address2",
          "type" : [ "null", "string" ],
          "source" : "element address2"
        }, {
          "name" : "address3",
          "type" : [ "null", "string" ],
          "source" : "element address3"
        }, {
          "name" : "city",
          "type" : [ "null", "string" ],
          "source" : "element city"
        }, {
          "name" : "postalCode",
          "type" : [ "null", "string" ],
          "source" : "element postalCode"
        }, {
          "name" : "county",
          "type" : [ "null", "string" ],
          "source" : "element county"
        }, {
          "name" : "state",
          "type" : [ "null", "string" ],
          "source" : "element state"
        }, {
          "name" : "country",
          "type" : [ "null", "string" ],
          "source" : "element country"
        }, {
          "name" : "location",
          "type" : [ "null", "string" ],
          "source" : "element location"
        }, {
          "name" : "addressType",
          "type" : "string",
          "source" : "element addressType"
        } ]
      }
    },
    "source" : "element Location"
  }, {
    "name" : "Contact",
    "type" : {
      "type" : "array",
      "items" : {
        "type" : "record",
        "name" : "Contact",
        "fields" : [ {
          "name" : "name",
          "type" : [ "null", "string" ],
          "source" : "element name"
        }, {
          "name" : "email",
          "type" : [ "null", "string" ],
          "source" : "element email"
        }, {
          "name" : "phone",
          "type" : [ "null", "string" ],
          "source" : "element phone"
        }, {
          "name" : "title",
          "type" : [ "null", "string" ],
          "source" : "element title"
        }, {
          "name" : "responsibility",
          "type" : [ "null", "string" ],
          "source" : "element responsibility"
        }, {
          "name" : "type",
          "type" : "string",
          "source" : "element type"
        }, {
          "name" : "phone2",
          "type" : [ "null", "string" ],
          "source" : "element phone2"
        }, {
          "name" : "preferredContact",
          "type" : [ "null", "string" ],
          "source" : "element preferredContact"
        } ]
      }
    },
    "source" : "element Contact"
  }, {
    "name" : "Division",
    "type" : {
      "type" : "array",
      "items" : {
        "type" : "record",
        "name" : "Division",
        "fields" : [ {
          "name" : "divisionCode",
          "type" : "string",
          "source" : "element divisionCode"
        }, {
          "name" : "divisionName",
          "type" : "string",
          "source" : "element divisionName"
        }, {
          "name" : "primaryDivisionCodeInd",
          "type" : [ "null", "boolean" ],
          "source" : "element primaryDivisionCodeInd"
        }, {
          "name" : "IndustryCode",
          "type" : {
            "type" : "array",
            "items" : {
              "type" : "record",
              "name" : "IndustryCode",
              "fields" : [ {
                "name" : "industryCode",
                "type" : "string",
                "source" : "element industryCode"
              }, {
                "name" : "primaryIndustryCodeInd",
                "type" : "boolean",
                "source" : "element primaryIndustryCodeInd"
              } ]
            }
          },
          "source" : "element IndustryCode"
        }, {
          "name" : "CustomerPreference",
          "type" : {
            "type" : "array",
            "items" : {
              "type" : "record",
              "name" : "CustomerPreference",
              "fields" : [ {
                "name" : "description",
                "type" : "string",
                "source" : "element description"
              }, {
                "name" : "value",
                "type" : "string",
                "source" : "element value"
              } ]
            }
          },
          "source" : "element CustomerPreference"
        }, {
          "name" : "SalesRep",
          "type" : {
            "type" : "array",
            "items" : {
              "type" : "record",
              "name" : "SalesRep",
              "fields" : [ {
                "name" : "number",
                "type" : "string",
                "source" : "element number"
              }, {
                "name" : "name",
                "type" : "string",
                "source" : "element name"
              }, {
                "name" : "type",
                "type" : "string",
                "source" : "element type"
              }, {
                "name" : "par",
                "type" : [ "null", "string" ],
                "source" : "element par"
              }, {
                "name" : "email",
                "type" : [ "null", "string" ],
                "source" : "element email"
              }, {
                "name" : "phoneNumber",
                "type" : [ "null", "string" ],
                "source" : "element phoneNumber"
              } ]
            }
          },
          "source" : "element SalesRep"
        } ]
      }
    },
    "source" : "element Division"
  }, {
    "name" : "ApplicationExtension",
    "type" : {
      "type" : "array",
      "items" : {
        "type" : "record",
        "name" : "ApplicationExtension",
        "fields" : [ {
          "name" : "applicationId",
          "type" : "string",
          "source" : "element applicationId"
        }, {
          "name" : "field",
          "type" : "string",
          "source" : "element field"
        }, {
          "name" : "value",
          "type" : "string",
          "source" : "element value"
        } ]
      }
    },
    "source" : "element ApplicationExtension"
  } ]
}

这篇关于如何修改AVRO模式以表示单个对象而不是列表f对象?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆