问题标签 [bigdata]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4077 浏览

c# - 循环遍历很多行

我在从数据库中循环遍历 100 万个潜在行时遇到了时间问题。我基本上将行拉入 DataTable 并循环遍历它们,但它变得越来越慢。那里有什么替代方案?我可以将这些行分成块,比如每块 20,000 个。我可以在 C# 中使用并行处理吗?基本上,代码会遍历与某个查询匹配的每条潜在记录,并尝试确定它是否是合法条目。这就是为什么需要单独访问每条记录的原因。一个对象的记录可能达到 1000 万行。方法看起来像是多台计算机中的并行处理或具有多核的单台机器中的 PP,或者某种数据结构/方法的变化?

有什么意见、想法和猜测有助于使这个快速合理吗?

0 投票
3 回答
561 浏览

python - 在合理的时间内在 Python 中查询(相当)大的关系数据?

我有一个大约 170 万行、总计 1 GB 的电子表格,需要对其执行各种查询。作为对 Python 最熟悉的方法,我的第一种方法是将一堆字典拼凑在一起,这些字典的键控方式有助于我尝试进行的查询。例如,如果我需要能够访问具有特定区号和年龄的每个人,我会制作一个 areacode_age 二维字典。我最终需要其中不少,这增加了我的内存占用量(大约 10GB),即使我有足够的 RAM 来支持这一点,这个过程仍然很慢。

在这一点上,我好像在玩傻瓜游戏。“嗯,这就是关系数据库的用途,对吧?”,我想。我导入了 sqlite3 并将我的数据导入到内存数据库中。我认为数据库是为速度而构建的,这将解决我的问题。

但事实证明,执行“SELECT (a, b, c) FROM foo WHERE date1<=d AND date2>e AND name=f”之类的查询需要 0.05 秒。为我的 170 万行执行此操作需要 24 小时的计算时间。对于这个特定的任务,我使用字典的 hacky 方法大约快了 3 个数量级(而且,在这个例子中,我显然无法键入 date1 和 date2,所以我得到了与名称匹配的每一行,然后按日期过滤)。

所以,我的问题是,为什么这么慢,我怎样才能让它快呢?什么是 Pythonic 方法?我一直在考虑的可能性:

  • sqlite3 太慢了,我需要更重量级的东西
  • 我需要以某种方式更改我的架构或我的查询以更加......优化?
  • 到目前为止我尝试过的方法是完全错误的,我需要某种全新的工具
  • 我在某处读到,在 sqlite 3 中,重复调用 cursor.execute 比使用 cursor.executemany 慢得多。事实证明,executemany 甚至与 select 语句都不兼容,所以我认为这是一个红鲱鱼。

谢谢。

0 投票
1 回答
792 浏览

performance - 为什么我的大型 JSF 数据表不只在 IE 中填充?

我正在尝试使用 JSF 中的 HtmlDataTable 动态生成一个表。当我给出的行数和列数均大于 25 时,某些单元格不会仅在 IE 中填充,而且速度非常慢。但是,我可以在使用 Firebug 调试代码时看到该值。它在 Firefox 和 Chrome 中运行良好。

这是如何引起的,我该如何解决?

0 投票
2 回答
1683 浏览

r - 使用 sqldf() 选择匹配一百万个项目的行

这是对此处提供的关于使用的答案的跟进sqldf()

https://stackoverflow.com/a/1820610

在我的特殊情况下,我有一个超过 1.1 亿行的制表符分隔文件。我想选择匹配 460 万个标签 ID 的行。

在以下代码中,标签 ID 位于tag.query

但是,虽然该示例适用于较小的查询,但它不能处理上述较大的示​​例:

关于替代方法的任何建议?

0 投票
1 回答
1310 浏览

simulation - 用于模拟的 Akka

我是 akka 和演员模式的新手,因此我不确定它是否符合我的需求。

我想用 akka 和数百万个可以相互影响的实体(认为是域对象 - 后来的参与者)创建一个模拟。因此,将模拟视为具有或多或少“模糊”结果的模拟,我们有一个包含实体的数组,其中每个实体都有速度,但会被实际实体前面的实体阻碍。当模拟开始时,每个实体应该移动 n 个域,或者,如果被其他实体阻止,则移动更少的域。我们有多次迭代,最后我们有一个新的顺序。这会重复几轮,直到我们想要看到领先实体的“快照”(然后可能在下一轮开始之前将其删除)。

所以我不明白我是否可以用akka创建它,因为:

是否有可能有每个演员的位置的全局列表,所以他们知道他们在哪个位置,哪些在他们面前?据我了解,这违反了演员的封装。我可以将演员的位置放在演员本身,但是我怎样才能看到/通知这个演员周围的演员呢?除此之外,全局列表会产生同步问题并影响性能,这与期望的行为完全相反(并且是 akka/actor-pattern 的补充)

我错过了什么?我必须寻找另一种设计方法吗?感谢您的建议。

更新:使用事件总线和分类器似乎也不是一种选择。参考文档

“因此它不适合订阅频率非常高的用例”

0 投票
0 回答
1170 浏览

r - R中ff和filehash包的区别

我有一个由 25 col 和 ~1M 行组成的数据框,分成 12 个文件,现在我需要导入它们,然后使用一些reshape包来进行一些数据管理。每个文件都太大了,我不得不寻找一些“非 RAM”的解决方案来进行导入和数据处理,目前我不需要做任何回归,我只会有一些关于数据框的描述性统计。

我搜索了一下,找到了两个包:ffand filehash,我先阅读filehash手册,发现它看起来很简单,只是添加了一些将数据帧导入文件的代码,其余的似乎与通常的R操作相似。

我还没有尝试过ff,因为它有很多不同的课程,我想知道ff在我真正的工作开始之前是否值得花时间来了解自己。但是filehash包似乎有一段时间是静态的,关于这个包的讨论很少,我想知道是否filehash已经变得不那么流行了,甚至已经过时了。

谁能帮我选择使用哪个包?或者谁能​​告诉我它们之间的区别/优缺点是什么?谢谢。

更新01

我目前正在filehash用于导入数据帧,并意识到它导入的数据帧filehash应该被视为只读,因为该数据帧中的所有进一步修改都不会存储回文件,除非您再次保存它,这不是很方便在我看来,因为我需要提醒自己做储蓄。对此有何评论?

0 投票
1 回答
1059 浏览

twitter - 使用 RavenDB 批量插入数据

我正在尝试将大量数据(每秒大约 20-25 条推文的 Twitter 流)导入 RavenDB 进行测试和大规模数据测试。我有一些代码可以很好地写入数据,但过了一会儿我得到了一个错误:

尝试向 RavenDB 添加大量数据时出错

我不会填写所有代码,但这里是它的要点:

我没有尝试过它的建议,因为它说要研究不同的方法。我应该每插入 200 次左右就终止会话吗?有没有办法用 Raven DB 插入一个对象数组?我这样做完全错了吗?

0 投票
2 回答
1589 浏览

bigdata - 并行计算:分布式系统与多核处理器?

我只是想知道为什么需要为大规模并行处理创建分布式系统的所有麻烦,而我们可以创建每台机器支持数百或数千个内核/CPU(甚至是 GPGPU)的单个机器?

所以基本上,你为什么要在机器网络上进行并行处理,而在一台支持多核的机器上以更低的成本和更可靠的方式完成并行处理?

0 投票
6 回答
2005 浏览

mysql - 大数据的数据库选择

我有很多文本文件,它们的总大小约为 300GB ~ 400GB。它们都是这种格式

每行由一个键和一个值组成。我想创建一个数据库,它可以让我查询一个键的所有值。例如,当我查询 key1 时,返回 value_a、value_b 和 value_c。

首先,将所有这些文件插入数据库是一个大问题。我尝试使用 LOAD DATA INFILE 语法将几 GB 大小的块插入 MySQL MyISAM 表。但似乎 MySQL 不能利用多核来插入数据。它像地狱一样慢。所以,对于这么多记录,我认为 MySQL 不是一个好的选择。

此外,如果可能,我需要定期、每周甚至每天更新或重新创建数据库,因此,插入速度对我来说很重要。

单个节点不可能有效地进行计算和插入,要高效,我认为最好在不同节点中并行执行插入。

例如,

所以,这是第一个标准。

标准 1. 分布式批处理方式插入速度快。

然后,正如您在文本文件示例中看到的那样,最好为不同的值提供多个相同的键。就像示例中的 key1 映射到 value_a/value_b/value_c 一样。

标准 2. 允许多个键

然后,我需要查询数据库中的键。不需要关系或复杂的连接查询,我只需要简单的键/值查询。重要的部分是相同值的多个键

标准 3. 简单快速的键值查询。

我知道有 HBase/Cassandra/MongoDB/Redis....等等,但我对它们都不熟悉,不确定哪一个适合我的需求。所以,问题是 - 使用什么数据库?如果它们都不符合我的需求,我什至打算建立自己的,但这需要努力:/

谢谢。

0 投票
2 回答
10171 浏览

plsql - 将 PL/SQL 转换为 Hive QL

我想要一个工具,通过它我可以通过提供 PL/SQL 查询来获取相应的配置单元查询。有很多工具可以将 sql 转换为 hql。即:云数据库的taod。但它没有向我显示相应的配置单元查询。

有没有这样的工具可以将给定的sql转换为hql。请帮我。

谢谢和问候, 拉坦