当前位置:  开发笔记 > 后端 > 正文

用于处理大量数据的库/数据结构

如何解决《用于处理大量数据的库/数据结构》经验,为你挑选了3个好方法。

我有一些巨大的二进制驱动程序日志(每个大约2-5GB,并且在将它们转换为可读形式后可能大约是10倍)并且我需要编写一个工具来允许我有效地顺序浏览,排序,搜索和过滤它们(为了找到并解决错误).

每个日志条目都具有很少的属性,如:时间戳,类型,消息,一些GUID.条目是同质的,没有关系,在"检查"之后不需要存储数据.

我真的不知道如何处理这么多数据.将所有内容保存在内存中将是愚蠢的,将数据保存在平面文件中也是如此.我想过使用像SQLite这样的小型DBMS,但我不确定它是否足够快而且我不需要DMBS的许多功能 - 只有排序和搜索.如果可能的话,在这种情况下,我会急切地换空间以获得速度.

是否有任何库(或可能是数据结构)可以帮助我处理这些数据量?

像Postgre,MSSQL,MySQL这样的"服务"RDBMS是不可能的,该工具应该易于使用,没有任何麻烦.

编辑:哦,有没有人知道SQLite的":内存"模式是否对数据库的大小有任何限制,或者只是填充虚拟内存直到它完全填满?



1> Lior Kogan..:

查看STXXL - 超大型数据集的标准模板库.

"STXXL的核心是用于外部存储器(核外)计算的C++标准模板库STL的实现,即STXXL实现了可以处理仅适合磁盘的大量数据的容器和算法. STL支持易用性和与现有应用程序的兼容性,另一个设计优先级是高性能."

此外,如果您可以为此任务专用多台计算机,请检查Hadoop.特别是HBase,Hive和MapReduce.



2> Reed Copsey..:

我认为将其存储在DBMS中是合适的方法.排序和搜索是DB擅长执行的任务 - 使用这么多数据,使用专为此目的而设计的工具将是一个巨大的优势.

虽然非关系数据存储可能会占用更少的空间,但SQLite可以很好地工作.但是,如果要搜索多个"条目",数据库绝对是可行的方法.



3> Robert Chris..:

在HDF5文件格式和相关的库是专为存储大量数据和允许快速和高效的I/O超过它.

该pytables项目提供了从蟒蛇使用它们的好方法,并提供了排序和搜索方法.

推荐阅读
echo7111436
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有