1

我最近开始研究大数据。具体来说,我有几 GB 的数据,我必须经常对其进行计算(添加、修改)。由于对数据的任何计算都需要花费大量时间,因此我一直在考虑如何存储数据以进行快速计算。以下是我研究过的选项:

  1. 纯文本文件:这种技术的唯一优点是插入数据非常容易。对现有数据的更改非常缓慢,因为没有办法有效地搜索记录。
  2. 数据库:简化数据的插入和修改。然而,由于这是一个正在进行的研究项目,架构可能需要根据实验结果经常更新(这到现在还没有发生,但肯定会在不久的将来发生)。此外,移动数据并不简单(与简单的文件相比)。此外,我注意到查询数据不如将数据存储在 XML 中那么快。
  3. XML:使用 BeautifulSoup,仅加载包含所有数据的 XML 文件大约需要 15 分钟左右,并且占用大约 15GB 的 RAM。由于一天内多次运行脚本是很正常的,每次调用约 15 分钟似乎非常长。优点是一旦加载数据,我可以相当快地搜索/修改元素(标签)。
  4. JSON 和 YAML:我没有深入研究它。他们肯定可以压缩存储文件所需的磁盘空间(相对于 XML)。但是,当数据以这些格式(与数据库或 XML 不同)存储时,我发现无法查询记录。

你建议我怎么做?你心里还有其他选择吗?

4

2 回答 2

1

如果您正在为大量数据寻找灵活的数据库,MongoDB可能是您正在寻找的技术。

MongoDB 属于 NoSQL 数据库系统家族,并且是:

  • 基于类似 JSON 的文档
  • 即使处理大量数据也能保持高性能
  • 无模式
  • 基于文档
  • 开源的
  • 可查询的
  • 可转位

它允许您在未来以非常灵活的方式修改您的架构,非常容易插入数据 (1.),修改数据及其结构 (2.),比 XML (3.) 和基于 JSON 的效率更快存储 (4.)。

于 2013-05-02T07:45:21.083 回答
-1

整数的大小是 4,long long int 是 8 字节,它可以访问大约 19 位数据,对于 unsinged long long int 大小也是 8 字节,但处理的值比 long long int 大,但这小于 20 位。有什么办法可以挂起超过20位数的数据。

#include<iostream>
using namespace std;
int main()
{
    unsigned long long int a;
    cin>>a;
    if(a>789456123789456123123)//want to take a higher thand this digits
    {
        cout<<"a is larger and big data"<<endl;
    }
}

我搜索了一段时间,但没有找到有用的内容。全部都是 java biginteger ..

于 2016-04-30T07:12:53.900 回答