问题标签 [large-data-volumes]

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 投票
4 回答
303 浏览

performance - 高效的文件 I/O 和字符串到浮点数的转换

我有一些巨大的(几千兆字节)ASCII 文本文件,我需要逐行读取,将某些列转换为浮点数,并对这些数字进行一些简单的操作。这是非常简单的事情,除了我认为必须有一种方法来加速它。该程序从不使用相当于 100% 的 CPU 内核,因为它花费大量时间等待 I/O。同时,它花费了足够的时间进行计算而不是 I/O,它只执行大约 8-10 MB/秒的原始磁盘 I/O。我已经看到我的硬盘驱动器做得比这要好得多。

在单独的线程中进行 I/O 和处理可能会有所帮助吗?如果是这样,实现这一点的有效方法是什么?一个重要的问题是如何分配内存来保存每一行,这样我就不会遇到瓶颈。

编辑:我现在使用的是 D 编程语言,版本 2 标准库,主要是更高级别的函数,用于大多数这些东西。std.stdio.File 使用的缓冲区大小为 16 KB。

0 投票
1 回答
2201 浏览

wpf - 在 WPF 中快速显示大型排序列表?

我正在开发一个程序,该程序应该能够显示长(最多 500 项)数据列表,当它们的内容发生变化时需要使用这些数据列表。

本质上,我有一个带有可观察集合的视图模型,其中包含具有绑定到 gui 的可观察数据的类,这些类显示在 ListView 中。

数据必须排序,但数据也可能随时变化,每次都需要重新排序。

在不锁定 GUI 的情况下显示和保持整个事物的最佳机制/隐喻是什么?我有一个使用 NotifyCollectionChangedEventArgs 和一些排序功能的解决方案,但它的速度很慢 - 我假设它每次更改数据元素时都会重新构建整个 GUI。

0 投票
5 回答
7508 浏览

apache - 快速处理 apache 日志

我目前正在运行一个 awk 脚本来处理一个大的(8.1GB)访问日志文件,而且它需要永远完成。在 20 分钟内,它写入了我期望它写入的 (1000 +- 500)MB 的 14MB,我想知道我是否可以以某种方式更快地处理它。

这是 awk 脚本:


编辑:

对于非 awker,脚本读取每一行,获取日期信息,将其修改为实用程序date可识别的格式,并调用它以将日期表示为自 1970 年以来的秒数,最后将其作为 .csv 文件的一行返回,以及IP。

示例输入: 189.5.56.113 - - [22/Jan/2010:05:54:55 +0100] "GET (...)"

返回输出: 189.5.56.113,124237889

0 投票
1 回答
795 浏览

visualization - 用于标记 3d 点云数据集的命令行脚本或软件工具

如何标记 3d 点云数据集?是否有软件可以加载包含 x,y,z 值的文本文件,然后将其可视化,以便我可以标记它?

0 投票
3 回答
4896 浏览

java - 在 Java EE 应用程序中处理大型记录

有一个phonenumbers包含两列的表:idnumber。表中有约half a million entries。数据库是MySQL.

要求是开发一个连接到该数据库的简单 Java EE 应用程序,该应用程序允许用户通过遵循特定 URL下载所有number值。comma separated style

如果我们得到一个巨大的所有值String array,然后将它们连接起来(在所有值之间用逗号),String然后将其发送给用户,这听起来是一个正确的解决方案吗?

该应用程序不公开,将由有限的数量使用。的人。

0 投票
2 回答
18119 浏览

jdbc - JDBC 批量插入 OutOfMemoryError

我编写了一个方法insert(),尝试使用 JDBC Batch 将 50 万条记录插入 MySQL 数据库:

但是每当我尝试运行此方法时,都会出现以下错误:

如果我替换ps.addBatch()ps.executeUpdate()和删除ps.executeBatch(),它工作正常,虽然需要一些时间。如果您知道在这种情况下使用 Batch 是否合适,请告诉我,如果合适,那么为什么会给出OurOfMemoryError

谢谢

0 投票
3 回答
91 浏览

.net - 理论上的大容量问题,不能在 .NET 中使用集合排序

请原谅这篇文章的标题,但我真的想不出一个更有创意的标题。

我正在调用第 3 方 Web 服务,作者在其中订购最近的交易结果。总事务数大于 100 000。为了使事情更有趣,Web 服务会发送代表每个事务的复杂对象,因此如果我一次请求全部 100 000,则会发生超时。因此,需要批量调用此 Web 服务以一次仅返回 1000 条记录。这意味着 100 次单独调用此 Web 服务。

到目前为止一切都很好,除了交易需要从最旧到最新处理,所以我需要一个地方来临时保存这些交易的 ID,以便以后我可以按正确的顺序(从最旧到最新)调用 ID在我对它们进行排序之后。

我在这个解决方案中缺少的是 RDBMS,我正在考虑使用文本文件来存储值。

请原谅冗长的介绍,如果您还醒着,请注意以下几点:

(1)

  1. 如果我只是将值存储在一个文本文件中,我最终会在文本文件中以错误的顺序得到超过 100 000 行,这意味着我必须实现一种从下到上读取文件的方法
  2. 我不确定,但可能会追加到现有文本文件的开头而不会造成任何性能损失,这样一旦创建文件,我就可以使用内置的 .net 从上到下读取文件。
  3. 我可以连接一个文本 odbc 驱动程序,并且可能使用一些 SQL order by 子句,但我以前从未这样做过,我不想在我的应用程序中添加任何更多的部署步骤。
  4. 也许使用文本文件不是要走的路,也许对于我不知道的这个问题有更好的解决方案。

这是一个架构/物流问题,任何帮助将不胜感激,谢谢

0 投票
1 回答
566 浏览

mysql - MySql:使用一长串复合 PK 对多行进行操作

鉴于我在与 ODBC 连接的客户端应用程序中有很长的键列表,那么在 MySql 中处理多行的好方法是什么?

注意:我的经验主要是 SQL Server,所以我知道一点,只是不是专门针对 MySQL。

任务是从 9 个表中删除一些行,但我可能有超过 5,000 个密钥对。

我从简单的方法开始,循环遍历我的所有键并针对每个表为每个键提交一个语句,例如:

除了,这是 45,000 个单独的语句,您可以想象这有点慢。

那么,不用担心我在前端使用的编程语言,有什么好方法可以提交列表,以便我可以一次或至少大批量加入并执行操作?到目前为止,这是我的想法:

  • 创建一个临时表并插入其中,然后加入。我很乐意查找 MySQL 创建临时表的语法,但这是一条好路吗?

  • 假设我确实使用了临时表,那么填充临时表的最佳方法是什么?5000 条INSERT Table VALUES ()语句?SELECT 123, 456 UNION ALL SELECT 124, 457? 我刚刚测试了 MySql 允许这种不针对表发出的 SELECT 。但是如果列表太长,SQL Server 最终会崩溃,那么这是 MySQL 的好方法吗?我应该一次将列表保持在几百个吗?

    /li>
  • .xml _ 我看到 MySQL 5.1 有一些 XML 函数,但是从粗略的搜索来看,它似乎不支持将一大块 XML 文本转换为要加入的行集。真的吗?将值转换为 XML 对我来说非常容易。

  • 一个虚拟的拆分操作。我假设在 MySql 中可能存在某种程序语言。在 SQL Server 中,我可以编写一些自定义代码来解析字符串并将其转换为行集:

    /li>

由于我不熟悉 MySQL,我真的不知道首先要调查哪种可能性,我希望能得到一些帮助,以免我做出错误的决定和/或艰难地学习。

0 投票
2 回答
1509 浏览

database - 管理大量数据的最佳数据库解决方案

我必须设计一个交通数据库,其中包括来自不同城镇(8 个城镇)2mb 的数据,每个城镇 24 小时 10 分钟。所有城镇的传入数据都是相同的。所以我的第一个问题是在性能方面哪个更好:为所有城镇设计一个数据库,有许多表(每个城镇一个表)或设计多个数据库(每个城镇一个数据库)?我的第二个问题是什么是这种情况下最好的数据库管理系统,MySQL、Postgres、Oracle 或其他?

0 投票
6 回答
3241 浏览

java - java高效去重

假设您有一个大文本文件。每行包含一个电子邮件 ID 和一些其他信息(比如一些产品 ID)。假设文件中有数百万行。您必须将此数据加载到数据库中。您将如何有效地重复数据删除(即消除重复数据)?