5

我们正在创建一个站点,我们从服务器读取 txt 文件(使用 PHP-mysql)并将其保存到 mysql 数据库(使用加载文件查询)。它是一个临时数据库,然后将这些数据与一些附加信息(如 id、代码等)一起移动到另一个数据库。然后清空临时数据库并将与另一个 txt 文件一起转储。

具有附加信息的数据库正在以更快的速度增长。

文本文件不断涌现,数据库每天增长 200 万条记录。大约平均有大约 15-20 个文件来,并且在任何时间间隔。它没有文件不会到达的任何特定时间。

我们正在按查询进行一些分组,并将(带有附加信息的数据库)中的数据从 700 万条记录缩减到大约 47k,并将其保存在另一个数据库中以生成报告。该数据(47K)用于 4 天(报告数据库)并用于报告目的。所以在月底,带有 id 的主数据库,代码可能会增长到 7000 万条记录。

我们必须同时每天、每周和每月从表格中生成报告。

由于数据库以更快的速度增长,如何在 1 个月后处理报告,例如如果他们想要从 1 月到 4 月的报告,例如..

我们应该如何处理这种情况,因为读/写是在同一张表上完成的,而且这个表正在以惊人的速度增长。

4

1 回答 1

1

在不真正知道数据发生了什么的情况下,但对我来说,您从 txt 文件读取到数据库中并没有多大意义......对其进行按摩并添加其他链接代码,然后将其重新转储到 txt 文件只是为了让它远离数据库。我会把它留在数据库中。

以什么速率(磁盘容量也是)添加记录?

正在生成哪些类型的报告... 统计数据?一般聚合?

如果只是一般聚合,我会在数据库中保留一个单独的表,其中包含任何汇总的数字类别、分类等。然后可以从中运行报告,而不是重新导入您转储的所有文本文件。以每小时(甚至每天)为基础的“汇总”表可以轻松简化报告过程。

如果没有看到一些数据样本和预期的报告输出,就很难巩固任何单一的方法。

---- 每条评论反馈

在过去处理过呼叫数据记录 (CDR) 信息后,那里也有很多垃圾。我认为关键的整体记录将相当有限。此外,知道电话公司每天只有几百万个电话并且必须跟踪它们可能会使您的数据库磁盘容量超载,因此一些存档过程是有意义的,但一般汇总没有那么多。即使您正在跟踪每个始发号码以及呼叫目的地号码的次数......或者来自不同始发号码的多少共同目的地号码也可能被汇总并限制您的整体报告统计信息。

--- 例如:如果政府不跟踪电话(不......他们这样做???),他们可能想知道有多少不同的人在给 X 打电话,以及有多少人 X 也在打电话。问题在于沟通的两个方向。一旦识别出一种模式并发出警报,他们是否可以将记录集中并保留在一个单独的跟踪表中,该跟踪表在创建输出文本文件后不会转储......不,我不为政府或任何此类机构工作谁可能会这样做。

-- 要保留什么我只能就您要保留的信息类型提供建议...您是否关心 PBX 系统、中继线路起源、分机?我会首先保留您想要的关键元素,然后从每个记录保留的基础上剥离可能无用的信息。

Origination Calling Number/Extension
Destination Number
International Country being called
Call Time Start
Call Duration

自从我使用 PBX 系统和呼叫数据记录以来已经 10 多年了,但我知道这些应该是数据的共同核心。根据 CDR 布局的不同,您可能必须对被呼叫的号码进行标准化。如果一个系统存储为一个完整的电话号码,而另一个系统将国际呼叫前缀分开,您将找不到匹配的拨号

555-1234 与 +014 555-1234

我知道这个假电话号码是不合法的,但我相信你知道我来自哪里。

于 2013-05-30T11:55:31.320 回答