我们正在创建一个站点,我们从服务器读取 txt 文件(使用 PHP-mysql)并将其保存到 mysql 数据库(使用加载文件查询)。它是一个临时数据库,然后将此数据与一些附加信息(如 ID、代码等)一起移动到另一个数据库。临时数据库然后被清空,并将与另一个 txt 文件一起转储。
包含附加信息的数据库正在以更快的速度增长。
文本文件源源不断,数据库每天增长 200 万条记录。大致平均有大约 15-20 个文件出现并且在任何时间间隔。它没有任何特定的文件不会到达的时间。
我们正在做一些分组查询,并将(带有附加信息的数据库)中的数据从 700 万条记录缩减到大约 47k,并将其保存在另一个数据库中以生成报告。此数据(47K)用于 4 天(报告数据库)并用于报告目的。所以在月底,带有 ID、代码的主数据库可能会增长到 7000 万条记录。
我们必须每天、每周和每月同时从表中生成报告。
由于数据库增长速度较快,1个月后的报表如何处理 例如,如果他们想要从 1 月到 4 月的报告,例如..
我们应该如何处理这种情况,因为读/写是在同一个以惊人的速度增长的表上完成的。
最佳答案
虽然不知道数据发生了什么,但从 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
我知道假电话号码不合法,但我相信你明白我的意思。
关于mysql - mysql中百万行的报告生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16835298/
我有一个Ruby程序,它使用rubyzip压缩XML文件的目录树。gem。我的问题是文件开始变得很重,我想提高压缩级别,因为压缩时间不是问题。我在rubyzipdocumentation中找不到一种为创建的ZIP文件指定压缩级别的方法。有人知道如何更改此设置吗?是否有另一个允许指定压缩级别的Ruby库? 最佳答案 这是我通过查看rubyzip内部创建的代码。level=Zlib::BEST_COMPRESSIONZip::ZipOutputStream.open(zip_file)do|zip|Dir.glob("**/*")d
在MRIRuby中我可以这样做:deftransferinternal_server=self.init_serverpid=forkdointernal_server.runend#Maketheserverprocessrunindependently.Process.detach(pid)internal_client=self.init_client#Dootherstuffwithconnectingtointernal_server...internal_client.post('somedata')ensure#KillserverProcess.kill('KILL',
我正在编写一个小脚本来定位aws存储桶中的特定文件,并创建一个临时验证的url以发送给同事。(理想情况下,这将创建类似于在控制台上右键单击存储桶中的文件并复制链接地址的结果)。我研究过回形针,它似乎不符合这个标准,但我可能只是不知道它的全部功能。我尝试了以下方法:defauthenticated_url(file_name,bucket)AWS::S3::S3Object.url_for(file_name,bucket,:secure=>true,:expires=>20*60)end产生这种类型的结果:...-1.amazonaws.com/file_path/file.zip.A
我是Rails的新手,所以请原谅简单的问题。我正在为一家公司创建一个网站。那家公司想在网站上展示它的客户。我想让客户自己管理这个。我正在为“客户”生成一个表格,我想要的三列是:公司名称、公司描述和Logo。对于名称,我使用的是name:string但不确定如何在脚本/生成脚手架终端命令中最好地创建描述列(因为我打算将其设置为文本区域)和图片。我怀疑描述(我想成为一个文本区域)应该仍然是描述:字符串,然后以实际形式进行调整。不确定如何处理图片字段。那么……说来话长:我在脚手架命令中输入什么来生成描述和图片列? 最佳答案 对于“文本”数
我正在使用RubyonRails3.0.9,我想生成一个传递一些自定义参数的link_toURL。也就是说,有一个articles_path(www.my_web_site_name.com/articles)我想生成如下内容:link_to'Samplelinktitle',...#HereIshouldimplementthecode#=>'http://www.my_web_site_name.com/articles?param1=value1¶m2=value2&...我如何编写link_to语句“alàRubyonRailsWay”以实现该目的?如果我想通过传递一些
有这些railscast。http://railscasts.com/episodes/218-making-generators-in-rails-3有了这个,你就会知道如何创建样式表和脚手架生成器。http://railscasts.com/episodes/216-generators-in-rails-3通过这个,您可以了解如何添加一些文件来修改脚手架View。我想把两者结合起来。我想创建一个生成器,它也可以创建脚手架View。有点像RyanBates漂亮的生成器或web_app_themegem(https://github.com/pilu/web-app-theme)。我
导读语言模型给我们的生产生活带来了极大便利,但同时不少人也利用他们从事作弊工作。如何规避这些难辨真伪的文字所产生的负面影响也成为一大难题。在3月9日智源Live第33期活动「DetectGPT:判断文本是否为机器生成的工具」中,主讲人Eric为我们讲解了DetectGPT工作背后的思路——一种基于概率曲率检测的用于检测模型生成文本的工具,它可以帮助我们更好地分辨文章的来源和可信度,对保护信息真实、防止欺诈等方面具有重要意义。本次报告主要围绕其功能,实现和效果等展开。(文末点击“阅读原文”,查看活动回放。)Ericmitchell斯坦福大学计算机系四年级博士生,由ChelseaFinn和Chri
文章目录一、概述简介原理模块二、配置Mysql使用版本环境要求1.操作系统2.mysql要求三、配置canal-server离线下载在线下载上传解压修改配置单机配置集群配置分库分表配置1.修改全局配置2.实例配置垂直分库水平分库3.修改group-instance.xml4.启动监听四、配置canal-adapter1修改启动配置2配置映射文件3启动ES数据同步查询所有订阅同步数据同步开关启动4.验证五、配置canal-admin一、概述简介canal是Alibaba旗下的一款开源项目,Java开发。基于数据库增量日志解析,提供增量数据订阅&消费。Git地址:https://github.co
我看到其他人也遇到过类似的问题,但没有一个解决方案对我有用。0.3.14gem与其他gem文件一起存在。我已经完全按照此处指示完成了所有操作:https://github.com/brianmario/mysql2.我仍然得到以下信息。我不知道为什么安装程序指示它找不到include目录,因为我已经检查过它存在。thread.h文件存在,但不在ruby目录中。相反,它在这里:C:\RailsInstaller\DevKit\lib\perl5\5.8\msys\CORE\我正在运行Windows7并尝试在Aptana3中构建我的Rails项目。我的Ruby是1.9.3。$gemin
我使用的第一个解析器生成器是Parse::RecDescent,它的指南/教程很棒,但它最有用的功能是它的调试工具,特别是tracing功能(通过将$RD_TRACE设置为1来激活)。我正在寻找可以帮助您调试其规则的解析器生成器。问题是,它必须用python或ruby编写,并且具有详细模式/跟踪模式或非常有用的调试技术。有人知道这样的解析器生成器吗?编辑:当我说调试时,我并不是指调试python或ruby。我指的是调试解析器生成器,查看它在每一步都在做什么,查看它正在读取的每个字符,它试图匹配的规则。希望你明白这一点。赏金编辑:要赢得赏金,请展示一个解析器生成器框架,并说明它的