文档章节

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

jacksonke
 jacksonke
发布于 2015/10/03 15:25
字数 403
阅读 389
收藏 3

在我刚接触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支持多种编程语言,方便数据交换,版本兼容性




© 著作权归作者所有

上一篇: libsuperuser简介
下一篇: protobuf介绍
jacksonke
粉丝 3
博文 22
码字总数 7945
作品 0
深圳
私信 提问
阿里P8架构师谈:NoSQL和SQL的区别,NoSQL的使用场景和选型比较

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/t4i2b10X4c22nF6A/article/details/84327110 什么是NoSQL NoSQL,指的是非关系型的数据库。NoSQL有时也称作N...

JAVA高级架构v
2018/11/21
0
0
从海量数据中提取精准洞察,Watson AI 不一样!

非结构化数据继续呈指数级增长, 各个行业的企业 都在积极探索或利用人工智能 (AI) 技术, 以期从能够访问的海量数据中提取洞察。 IBM Watson 提供了各种各样的、 即时可用、可定制的 AI 服务...

IBMdW
2018/04/25
29
0
数据挖掘的三大趋势——专访SAS首席技术顾问张磊

数据挖掘的英文是Data Mining,直译就是数据挖掘。韩家炜教授在《数据挖掘:概念与技术》一书中介绍过数据挖掘一词的来源。在科研界,最初一直沿用“数据库中的知识发现”,即KDD,Knowledge...

liangtee
2013/01/04
540
0
数据挖掘之数据预处理

1. 结构化数据的特征 结构化数据特性 2. 常见数据集类型 数据集类型 3. 数据预处理的流程 预处理流程 4. 数据质量 数据挖掘过程中 数据质量 对运行结果至关重要。 由于数据挖掘使用的数据常常...

七八音
2017/12/27
0
0
Spark(六):SparkSQLAndDataFrames对结构化数据集与非结构化数据的处理

一:简单了解SparkSQL。 Spark SQL 是结构化的数据处理一个Spark模块。与基本的Spark RDD API不同,Spark SQL 所提供的接口为Spark 提供有关数据和正在执行的计算的结构的详细信息。Spark S...

牧羊人Berg
2016/06/05
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

《Designing.Data-Intensive.Applications》笔记 四

第九章 一致性与共识 分布式系统最重要的的抽象之一是共识(consensus):让所有的节点对某件事达成一致。 最终一致性(eventual consistency)只提供较弱的保证,需要探索更高的一致性保证(stro...

丰田破产标志
今天
6
0
docker 使用mysql

1, 进入容器 比如 myslq1 里面进行操作 docker exec -it mysql1 /bin/bash 2. 退出 容器 交互: exit 3. mysql 启动在容器里面,并且 可以本地连接mysql docker run --name mysql1 --env MY...

之渊
今天
7
0
python数据结构

1、字符串及其方法(案例来自Python-100-Days) def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1)) # 13 # 获得字符串首字母大写的...

huijue
今天
5
0
OSChina 周日乱弹 —— 我,小小编辑,食人族酋长

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @宇辰OSC :分享娃娃的单曲《飘洋过海来看你》: #今日歌曲推荐# 《飘洋过海来看你》- 娃娃 手机党少年们想听歌,请使劲儿戳(这里) @宇辰OSC...

小小编辑
今天
1K
11
MongoDB系列-- SpringBoot 中对 MongoDB 的 基本操作

SpringBoot 中对 MongoDB 的 基本操作 Database 库的创建 首先 在MongoDB 操作客户端 Robo 3T 中 创建数据库: 增加用户User: 创建 Collections 集合(类似mysql 中的 表): 后面我们大部分都...

TcWong
今天
40
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部