超大数据量,怎样加快写文件的速度
我试了下写1,000,000行,每行两个数字,总共0.3s,也就是每条只有0.0003ms,写入速度大概是50MB/s。你的0.5ms是随便说的还是试出来的?C的FILE结构体里面是有buffer的,我的默认是4096 byte,你也可以通过setbuffer函数自己设置buffer的大小,但是我的结果是更大的buffer已经不能再提高写入速度了,默认的buffer大小已经足够了。题主可以试试用确定的一组数值做计算,看下计算的时间,把读取数据,计算数据,输出结果的时间分开看下,1亿组输出结果的时间大概就是30min。时间可能大部分都花在计算上了,而不是IO。--至于把数据全放内存里写入,这个是没用的--补充:以上结果用的是fprintf,这个函数本身的调用处理过程会花费很多时间,刚才想到fwrite,试了下,速度大概是260MB/s(fread的速度是330MB/s),我的硬盘是ssd,估计这个速度差不多是极限了
■网友
不是十分清楚题主遇到的是什么样的问题,是已经有了硬盘里的数据要读进来处理一下再写回硬盘吗?如果是这样的话原始数据是什么格式的呢?写回去的时候有什么格式要求吗?过程中要做什么样的处理?最近正好在做一个数据处理的问题,如果题主的问题和我的类似的话可能会有点帮助。我的情况是这样的:原始数据是几百个几十到几百兆不等的binary文件,总大小大概在25G左右。所有数据都是双精度浮点数。也就是说一共有大概3billion个数据。由于数据格式已知,我用的是 numpy.fromfile,速度还是相当快的,起码数据读取不是我的问题的瓶颈。处理过程比较特殊,可能没啥参考价值,但是我benchmark的结果是大概处理(read, process, write back)一千万个数据需要的时间是三秒钟左右。所以大概二十分钟处理完30亿个数据。当然以上所说的前提都是文件读写采用binary格式。如果是ASCII格式我就不知怎么玩这么大的数据了。
■网友
用不着,这里题主犯的错误是一条一条的写,正确的做法,是将数据用\u0026#39;\\u0026#39;,也就是换行符拼接在一起当做一行写入。因为只要有换行符,数据就是分行的,不必一行一行的写入。如果内存装不下的话,就1千万行拼一起,写一次,一共写17次。写入性能会提高1000-10000倍。
■网友
导读:分布式并行计算技术原应用于科学计算领域,随着云计算、虚拟化等技术广泛应用,分布式并行计算技术应用的领域得到了极大的提升,大数据处理领域的Hadoop、Spark就是典型的分布式并行计算技术的应用实例。在政企领域,广泛存在着一类业务——批量业务,随着业务系统规模逐渐扩大,批量业务的处理量也随之增大,如何稳定、快速地处理批量业务,并适应未来业务快速增长,成为现代政企业务系统的关键点之一。本案将分享使用分布式并行计算技术实现一个具有海量批量业务场景高效处理的案例。
(全文共7016字 预计阅读时长:7分钟)
批量业务
批量业务(俗称:“跑批”、“批量处理”、“批处理”,英文:Batch Processing)是现今各类IT系统中常见的业务之一,根据统计,70%业务系统中的操作是通过跑批方式完成的。
批量业务简单来说,是将一类相同的业务“积攒”到一定的量(业务相同,成批量)在指定时机启动进行自动处理,达到简化操作、提升效率的目的。
分析批处理的过程,我们不难总结出批处理业务的特点:
处理量大(成批)、有特定的执行时机(指定时间点或者指定事件发生,执行时间固定,也称有固定执行时间窗口)、可自动处理(无需人工干预)。
批量业务广泛存在于各类政企应用中,在一些领域如金融、医疗健康,批量业务占比甚至高达80%以上。如图1所示,典型的批量业务场景如下:
推荐阅读
- 聪明人养花,这3种“花”怎样也要养一盆,每年能省不少医药费
- 最适合客厅摆放的15种大厅绿植,超大气漂亮
- “一部手机读云南”上线力争建成国家方志大数据中心西南中心
- 上海构建现代环境治理体系集成示范区打造超大城市生态环境治理的“样本”
- 联合国大数据全球平台中国区域中心在杭州成立
- 互联网怎样解决“家政服务上门速度慢”的问题
- 怎样看待从1月8号起,QQ钱包开始提现收费
- 银行it人怎样转型
- 银行的数据中心可以跳槽去互联网公司吗
- 汽车|冬天怎样让车内温度快速升高?座椅加热的最佳使用方式二,外循环的作用总结
