我们都知道XML是正确的吗? 以防万一,这里的一切都没问题。

<root>
<node>5</node>
</root>

现在,计算机真正需要的是数字5及其周围的环境。 在XML中,您(人和计算机)可以看到它如何表示五个上下文。 现在假设您有一个业务XML文档,例如FPML

<FpML xmlns="http://www.fpml.org/2007/FpML-4-4" xmlns:fpml="http://www.fpml.org/2007/FpML-4-4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="4-4" xsi:schemaLocation="http://www.fpml.org/2007/FpML-4-4 ../fpml-main-4-4.xsd http://www.w3.org/2000/09/xmldsig# ../xmldsig-core-schema.xsd" xsi:type="RequestTradeConfirmation">
<!--  start of distinct  -->
<strike>
<strikePrice>32.00</strikePrice>
</strike>
<numberOfOptions>150000</numberOfOptions>
<optionEntitlement>1.00</optionEntitlement>
<equityPremium>
<payerPartyReference href="party2"/>
<receiverPartyReference href="party1"/>
<paymentAmount>
<currency>EUR</currency>
<amount>405000</amount>
</paymentAmount>
<paymentDate>
<unadjustedDate>2001-07-17Z</unadjustedDate>
<dateAdjustments>
<businessDayConvention>NONE</businessDayConvention>
</dateAdjustments>
</paymentDate>
<pricePerOption>
<currency>EUR</currency>
<amount>2.70</amount>
</pricePerOption>
</equityPremium>
</equityOption>
<calculationAgent>
<calculationAgentPartyReference href="party1"/>
</calculationAgent>
<documentation>
<masterAgreement>
<masterAgreementType>ISDA2002</masterAgreementType>
</masterAgreement>
<contractualDefinitions>ISDA2002Equity</contractualDefinitions>
<!--populate credit support document with correct value
-->
<creditSupportDocument>TODO</creditSupportDocument>
</documentation>
<governingLaw>GBEN</governingLaw>
</trade>
<party id="party1">
<partyId>Party A</partyId>
</party>
<party id="party2">
<partyId>Party B</partyId>
</party>
</FpML>

那是很多额外的不必要的数据点。 现在,让我们使用Apache Avro进行研究 。

使用Avro,上下文和值是分开的。 这意味着信息的架构/结构不会一遍又一遍地(一遍又一遍)地存储或流式传输。

Avro模式已散列。 因此,数据结构仅保留值,并且计算机可以理解架构的指纹(哈希),并且可以使用指纹来检索架构。

0x d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592

这种类型的实现在数据空间中非常典型。

执行此操作时,您可以将数据减少20%-80%。 当我告诉人们时,他们立即问:“为什么有这么大的未知数缺口”。 答案是因为并非每个XML都是一样的。 但这是问题所在,因为您正在复制计算机理解数据所需的信息。 XML很适合人类阅读,但是…但这并不是为计算机优化的。

这是一个我们正在https://github.com/stealthly/xml-avro上工作的转换器,以帮助人们摆脱XML的束缚,进入成本更低的开源系统。 这使您可以使用XML保留系统的某些部分(特别是域业务代码),而不必进行更改(减轻风险),而以较少的开销存储和传输数据(优化预算)。

参考:我们的JCG合作伙伴 Joe Stein在All Things Hadoop博客上提供的XML到Avro转换 。

翻译自: https://www.javacodegeeks.com/2014/03/xml-to-avro-conversion.html

XML到Avro的转换相关推荐

  1. avro文件导入到hive_XML到Avro的转换

    avro文件导入到hive 我们都知道XML是正确的吗? 以防万一,这就是所有问题. <root> <node>5</node> </root> 现在, ...

  2. XML,Object,Json分析转换Xstream采用

    XML,Object,Json转换之浅析Xstream的使用 请尊重他人的劳动成果,转载请注明出处:XML,Object,Json转换之浅析Xstream的使用 XStream的是一个简单的库.主要用 ...

  3. [CXF REST标准实战系列] 一、JAXB xml与javaBean的转换(转)

    转自:[CXF REST标准实战系列] 一.JAXB xml与javaBean的转换 文章Points: 1.不认识到犯错,然后得到永久的教训. 2.认识JAXB 3.代码实战 1.不认识到犯错,然后 ...

  4. json:JSONObject包的具体使用(JSONObject-lib包是一个beans,collections,maps,java arrays和xml和JSON互相转换的包)...

    1.JSONObject介绍 JSONObject-lib包是一个beans,collections,maps,java arrays和xml和JSON互相转换的包. 2.下载jar包 http:// ...

  5. php代码实现xml格式转换,PHP实现XML与数据格式进行转换类实例

    PHP实现XML与数据格式进行转换类实例 来源:中文源码网    浏览: 次    日期:2018年9月2日 [下载文档:  PHP实现XML与数据格式进行转换类实例.txt ] (友情提示:右键点上 ...

  6. JAXB实现xml与对象互相转换

    不需要引入任何外部jar包,JAXB自jdk1.5就已被集成,jdk1.7已升级为JAXB2. 1.xml报文 <?xml version="1.0" encoding=&q ...

  7. xml与json互相转换

    import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson ...

  8. android读取xml 字符串,Android 读取本地Xml文件,并转换成String

    问题 不是解析本地 xml 文件, 而是要将 xml 文件中的所有内容(包含格式,标签等),直接转换成 String. 与前端H5页面交互时, iOS 在请求远程 xml 文件耗时太长(有时需要4~5 ...

  9. php数组转xml文件,php数组转换成xml格式的实现方法

    php数组转换成xml的方法:首先创建一个PHP示例文件:然后定义一个"array_Xml"方法:接着通过foreach循环遍历以及"is_array"等函数实 ...

最新文章

  1. .NET泛型解析(下)
  2. xml方式整合SpringMVC 4整合 Hibernate4
  3. js引用action层变量
  4. 日记 [2007年05月23日]启动ORACLE 10G
  5. 达夫设备(Duff‘s Device)
  6. 最新款服务器主板,服务器主板
  7. mysqli mysql error_mysqli常用错误处理函数
  8. 不止代码:ybtoj-棋盘分割(二维区间dp)
  9. java链表的数据结构_Java数据结构 获取链表(LinkedList)的第一个和最后一个元素
  10. 1.Weblogic通Eclipse调试配置(Weblogic同Eclipse调试配置技术)
  11. @override注解_Spring中的各种注解深入理解
  12. 计算机深度休眠以后怎么唤醒,电脑进入深度睡眠,肿么唤醒?
  13. 关于第四次财富狂潮的思考,区块链如猛虎出笼?
  14. 3rd TMA大数据营销案例征集赛正式启动,报名ing!
  15. 图解AUTOSAR(五)——微控制器抽象层(MCAL)
  16. 屏幕录像制作gif动态图
  17. tinyint 范围
  18. 探索“哑巴英语”的缘由
  19. 1w存银行一年多少利息_银行存款100万,一年后可以拿到多少钱?
  20. 【数据结构】什么是堆

热门文章

  1. 圆心角 圆弧上点坐标_数控加工中心CNC的G02/G03圆弧指令的I、J、与R的区别
  2. Future取消线程执行
  3. 防止用户重复提交表单数据,session方式,js方式
  4. kafka分布式_带有Kafka和ZeroMQ的分布式类星体演员
  5. 突然讨厌做前端,讨厌代码_不要讨厌HATEOAS
  6. xp系统 javafx_使用JavaFX构建React系统
  7. 什么时候需要使用cqrs_在CQRS读取模型中使用Hibernate进行快速开发
  8. osgi:install_OSGi服务测试助手:ServiceRegistrationRule
  9. cargo maven_与Maven 3,Failsafe和Cargo插件的集成测试
  10. neo4j cypher_neo4j / cypher:悬挂查询参数