蒋堂是谁(数据蒋堂第5)
一英里不是个很长的距离,一立方英里相对于地球也不会让人觉得是个很大的空间。然后我说,这个空间内能装下全世界所有人,你会不会觉到很惊讶?不过这话不是我说的,是美国作家房龙在一本书里写的。
业内有个著名的数据仓库产品,叫 Teradata,20 多年前起这个名字,显然是想给人能处理海量数据的感觉。可现在,论用户还是厂商,谈论数据量时都常常以 T 为单位了,动不动就有几十上百 T 甚至 PB 级的数据。似乎 T 不是个多大的数,多几个几十个 T 也没什么大不了的。
其实 T 有点象上面说的立方英里,是个挺大的数。很多人对它没有多深的感性认识,我们要换个角度来看 1T 数据意味着什么。
先从空间上看。
用于分析计算的数据仍然以结构化数据为主。结构化数据中占据空间最大的是不断增长的交易类记录,这种数据每条并不大,大概只有几十到 100 字节,比如银行交易只要记下帐号、日期、金额;电信的通话记录也只是通话号码、时刻、时长等。就按 100 字节算,也就是 0.1K,那么 1T 空间就可以放下 10G 行记录,100 亿条!
这是什么概念呢?一年大概是 3000 多万秒,如果用一年时间来积累 1T 数据,那意味着每秒要产生 300 多笔记录,24 小时不停息!
这个数也不算大,象中国这样的大国,电信运营商、全国级银行以及大型互联公司都不难有这种规模的业务量。但对于一个城市级别甚至有些省级的机构就是个不小的数了,比如税务部门采集的企业交税信息、连锁超市的商品购买数据、城市商业银行的交易记录等,要达到 300 笔 / 秒并不容易,何况很多机构只有白天或工作日才能产生数据。而且这还只是 1T,要搞到几十上百 T,那就得让业务量再上一两个数量级才行。
简单说有多少 T 数据是没什么感觉的,换算成每秒对应的业务量后,才知道是不是靠谱。大数据分析计算产品的技术方案和数据量相关性非常强,正确估算自己的数据量对于大数据平台的建设是至关重要的。
如果用来存储音频视频这种非结构化数据, 或者仅仅用于备份原始凭据,那 1T 空间就存不了多少东西了,但这种数据一般也没什么要分析计算的需求,只是存储和检索,那不需要什么大数据计算平台,只要有个网络文件系统就行了,这成本就低多了。
再从时间上看。
假设有 1T 数据,那么要多少时间才能处理一遍?有些厂商宣称能在数秒内处理 TB 级数据,用户经常也这样期望,这可能吗?
机械硬盘在操作系统下的读取数据大概是 150M/ 秒(不能看硬盘厂商那个指标,根本达不到),固态硬盘快些,能翻个倍。我们就算 300M/ 秒,那么 1T 数据只是读取不做任何运算也需要 3000 秒以上,接近一个小时!那怎么可能数秒内处理 1T 数据呢?很简单,增加硬盘,如果有 1000 块硬盘,那就可以在 3 秒左右读出 1T 数据了。
这还是比较理想的估算。实际上数据不大可能存放着那么整齐(硬盘不连续读取时性能下降严重),集群(1000 块硬盘显然不会在一台机器上)还有网络延迟,有些运算可能还有回写动作(大分组和排序等),秒级访问常常还会有并发需求,这些因素综合起来,再慢几倍也是正常的。
现在我们知道了,1T 数据意味着几个小时,或者上千块硬盘。而且还是前面的话,这只算了 1T,可想而知几十上百 T 会是什么概念了。
有人说,硬盘太慢了,我们改用内存。
内存是比硬盘快得多,而且还适合并行计算。不过大内存的机器并不便宜(成本不是线性增长的),而且更糟糕的是,内存使用率经常很低。比如许多计算体系都是基于 Java 平台的,如果不做特别的压缩优化的话,JVM 的内存利用率只有 20% 的样子,也就是硬盘上 1T 数据需要 5T 内存才能加载进来,这得装多少机器,花多少钱?
我们对 1T 有了上面这些感性认识后,听到多少多少 T 的说法时,就可以随时脑补出交易、节点数、成本等信息。做平台规划和产品选择时,就不容易被忽悠了。Teradata 这个名字,今天也还不算过时的。
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com