几种常见结构化数据的比较

在我刚接触windows编程的时候,一般用.ini文件。

后来,都是自己定义数据格式,自己实现数据的读写。

再后来,就是xml了,那时我比较习惯使用tinyXml。

现在呢?大家都在用Json。

为了追求性能,不少人已经将目光投向了protobuf和flatbuffer。

IT行业的变化就是这般的快。作为IT从业者,资讯这一块是要重视的。

老古董就不提了,让考古学家去深掘吧。本文讨论的是xml,json和protobuf,stackoverflow上找到了个不错的总结

Json

. human readable/editable

. can be parsed without knowing schema in advance

. excellent browser support

. less verbose than xml

XML

. human readable/editable

can be parsed without knowing schema in advance

standard for SOAP etc-------------?

good tooling support

pretty verbose

Protobuf

. very dense data

. hard to robustly decode without knowing the schema(data format is internally ambiguous, and needs schema to clarify)

. very fast processing

. not intended for human eyes(dense binary)

All have good support on most platforms.

Personally, I rarely use xml these days. If the consumer is a browser or a public API I tend to use json. For internal APIs I tend to use protobuf for performance.

个人的看法是:

1. 相对于xml,Json的结构更贴近于面向"对象"编程。Json更加简洁,表达同样的意思,json的字节数更少,需要传输的内容更少,相对更快。

2. 为什么要用protobuf?相对Json,它有什么优点?

protobuf是二进制形式的,字节占用更小,速度更快。同时protobuf支持多种编程语言,方便数据交换,版本兼容性

时间: 2024-11-19 00:08:13

几种常见结构化数据的比较的相关文章

四种常见的 POST-------- content-type数据提交方式

HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS.GET.HEAD.POST.PUT.DELETE.TRACE.CONNECT 这几种.其中 POST 一般用来向服务端提交数据,本文主要讨论 POST 提交数据的几种方式. 我们知道,HTTP 协议是以 ASCII 码传输,建立在 TCP/IP 协议之上的应用层规范.规范把 HTTP 请求分为三个部分:状态行.请求头.消息主体.类似于下面这样: <method> <request-URL> <version&

什么是结构化数据?什么是半结构化数据?

概述 相对于结构化数据(即行数据,存储在数据库里,可以用二维表结构来逻辑表达实现的数据)而言,不方便用数据库二维逻辑表来表现的数据即称为非结构化数据,包括所有格式的办公文档.文本.图片.XML.HTML.各类报表.图像和音频/视频信息等等. 非结构化数据库是指其字段长度可变,并且每个字段的记录又可以由可重复或不可重复的子字段构成的数据库,用它不仅可以处理结构化数据(如数字.符号等信息)而且更适合处理非结构化数据(全文文本.图象.声音.影视.超媒体等信息). 非结构化WEB数据库主要是针对非结构化

[转]概念:结构化数据、半结构化数据、非结构数据

原:http://blog.csdn.net/liangyihuai/article/details/54864952 结构化数据.半结构化数据和非结构化数据 结构化数据 结构化的数据是指可以使用关系型数据库表示和存储,表现为二维形式的数据.一般特点是:数据以行为单位,一行数据表示一个实体的信息,每一行数据的属性是相同的.举一个例子: id name age gender 1 lyh 12 male 2 liangyh 13 female 3 liang 18 male 所以,结构化的数据的存储

结构化,半结构化,非结构化数据总结

前言: Hive可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能.在学习Hive之前 我们先了解下结构化数据,半结构化数据以及非结构化数据的区别. 1.结构化数据 结构化的数据是指可以使用关系型数据库表示和存储,表现为二维形式的数据.一般特点是:数据以行为单位,一行数据表示一个实体的信息,每一行数据的属性是相同的.举一个例子: id name age gender 1 lyh 12 male 2 liangyh 13 female 3 liang 18 male 所以,结构化的数

构化数据、半结构化数据和非结构化数据

结 结构化数据 结构化的数据是指可以使用关系型数据库表示和存储,表现为二维形式的数据.一般特点是:数据以行为单位,一行数据表示一个实体的信息,每一行数据的属性是相同的.举一个例子: id name age gender 1 lyh 12 male 2 liangyh 13 female 3 liang 18 male 1 2 3 4 所以,结构化的数据的存储和排列是很有规律的,这对查询和修改等操作很有帮助.但是,显然,它的扩展性不好(比如,我希望增加一个字段,怎么办?). 半结构化数据 半结构化

Salesforce开源TransmogrifAI:用于结构化数据的端到端AutoML库

AutoML 即通过自动化的机器学习实现人工智能模型的快速构建,它可以简化机器学习流程,方便更多人利用人工智能技术.近日,软件行业巨头 Salesforce 开源了其 AutoML 库 TransmogrifAI.Salesforce Einstein 数据科学高级总监 Shubha Nabar 在 Medium 上撰文介绍了该 AutoML 库,包括工作流程和设计原则等. GitHub 链接:https://github.com/salesforce/TransmogrifAI Transmo

杉岩数据:对象存储是企业海量非结构化数据存储的最佳选择

海量数据的爆炸式增长,使存储技术近五年的发展速度远超过去n年的发展历程.C端用户一个明显的感觉就是:U盘存储容量从过去物以稀为贵的几十M迅速发展到今天几十G.甚至TB级,家用电脑硬盘容量更是TB级标配. 那么,企业级又迎来了怎样的变化? IDC数据显示,到2020年,企业数据总体将达到44ZB,其中80%的数据将会是非结构化数据(图片.视频.归档以及企业级备份等各种数据).显然,海量数据的产生正在促使企业级存储从需求到产品形态都发生了改变. "相对于NAS.SAN这种传统企业级存储解决方案,对象

海量非结构化数据存储难题 ,杉岩数据对象存储完美解决

"过去几年,大数据产业更多关注的是如何处理海量.多源和异构的数据,但我们必须承认这些只是冰山一角.目前,结构化数据仅占到全部数据量的20%,其余80%都是以文件形式存在的非结构化和半结构化数据.伴随非结构化数据呈现爆发之势,对象存储市场近两年保持强劲增长,IDC预计,软件定义存储(SDS)市场未来五年复合增长率将达到28.8%." 传统IT架构渐成"过去式" 非结构化数据倒逼存储变革 今天,许多企业已经意识到,结构化数据仅仅是企业所拥有数据的一小部分.与业务信息系统

详解Google-ProtoBuf中结构化数据的编码

原文转自:http://www.wuzesheng.com/?p=1258 本文的主要内容是google protobuf中序列化数据时用到的编码规则,但是,介绍具体的编码规则之前,我觉得有必要先简单介绍一下google protobuf.因此,本文首先会介绍一些google protobuf相关的内容,让读者朋友对google protobuf有一个初步的印象,然后,再开始进入正题—-深入浅出地介绍google protobuf中用到的编码规则.下面言归正传,开始今天的话题. 1. Googl