新开一帖:求技术大佬帮忙开发个新项目,每天两组 1.5 亿行数据的对比提取,感谢辛苦的程序员。

2021-06-15 18:15:05 +08:00
 fourstone

新开一帖:原帖不知道怎么删除,囧了

现在的环境 windows2008 r2 +mongodb4.0 +node.js+JAVA

因为服务器上已经有好几个项目,最好不要影响其他正常的运行的项目。或者我专门再租一个服务器跑这个。

软件要求:

每天定时自动下载并且解压(我提供帐号密码去下载),解压后大概每天有 1.5 亿行数据,每天新增 10 万行左右,3 分钟内提取新增行,反正越快越好。 提取新增行后,自动按关键字(关键字数量 2-100 个左右,我每天手动修改)提取,链接我现在的 API 完成。

源文件解压后是 纯文本,4 列,我只需要提取 1 列里面的新增数据

下载大小不变的,源数据有增有减,每天下载时间固定的。

其他所有步骤我现在的项目已经有完整能使用的了,无非所有难点就在如何最快的 获得 两组 1.5 亿行数据的对比提取新增行

(我不懂能不能实现,因为下载要 7 分钟,我想所有操作 10-15 分钟内完成,反正越快越好,最好不要升级服务器就能实现,因为升级太麻烦了)

请有时间的 大神 联系我 qq,感谢 49 六一 47 九五三

至于价格,我不太懂这个市场价,以前找 v2 大神开发的都是他们自己报价,所以能完成自己报个价好了,市场价就好,以后项目一定还有的。

890 次点击
所在节点    外包
19 条回复
la2la
2021-06-15 19:08:57 +08:00
自己想到的一个方案,你可以尝试一下。
假设:两个文件昨天的 2021-06-14.txt, 今天下载的 2021-06-15.txt, 提取的新增列名 c1 。提前将 2021-06-14.txt 这个文件的 c1 列布隆过滤器中,在 2021-06-15.txt 下载完的一刻将文件切分成 N 个( N 取决于你的服务器的配置),然后并行跑布隆过滤器,就能很快筛选出新增列,筛选后的类通过编译好的正则提取关键字。
感觉这个方案应该可行,1.5 亿数据不是很多
la2la
2021-06-15 19:20:02 +08:00
这个方案有个 BUG,切分的时候有可能把一行数据切分成两行,就不切分了,直接跑,估计不会很慢或者切分的时候需要按照换行符切割,在或者下载的时候就并行下载成多个文件
fourstone
2021-06-15 19:25:32 +08:00
@la2la 我要是看得懂你说的, 我就不用外包了,哈哈
whahuzhihao
2021-06-15 19:58:16 +08:00
有可能出现重复的行吗?如果昨天 a 出现了 3 次,今天出现了 4 次,那么 a 就是新增的? 这样没法布隆
fourstone
2021-06-15 20:39:56 +08:00
@whahuzhihao 正常来说是没有重复行的,有重复行也只要一条就好了
joynvda
2021-06-15 20:56:11 +08:00
不是有人接了吗?
fourstone
2021-06-15 21:28:23 +08:00
@joynvda 加的几个大佬,下载了之后没回应了,我很着急啊
ku9527
2021-06-16 01:05:34 +08:00
文件解压缩后 20.5g, 我用我电脑试了下, 光把这文件读到内存,花了 109 秒,平均速度 183M/s, SATA2 机械硬盘,两个文件都读一下的话,估计得 200 秒多了,已经超过你理想的 3 分钟了,这还没开始比较呢, 你服务器用的很快的硬盘吗?速度多少
ymmud
2021-06-16 12:36:53 +08:00
做成开放题目,有奖挑战吧,名义上好听多啦
fourstone
2021-06-16 12:58:28 +08:00
@ymmud 你脑子太灵活了吧
joynvda
2021-06-16 20:59:47 +08:00
如果数据不敏感(或者能脱敏),试试也挺好玩的。
fourstone
2021-06-16 21:14:02 +08:00
@joynvda 公开的数据,正规的啊
joynvda
2021-06-16 22:46:54 +08:00
@fourstone 那,我也好奇练练手。py3 可以吗?
fourstone
2021-06-16 22:57:30 +08:00
@joynvda py3 是什么我不知道啊。

目前 1.每天定时下载(压缩包 4g 左右,每天大小差不多固定,里面 3.6 亿行,去掉重复 1.5 亿行)2.解压 3.对比 4.提取保存

目前服务器配置 2u+16g+100G ssd,因为项目再运行的有点多了,我在考虑为了这个项目升级一下服务器
joynvda
2021-06-16 23:09:40 +08:00
@fourstone 我的意思是 python3 可以吗?
fourstone
2021-06-16 23:10:11 +08:00
@joynvda 语言没要求啊,我服务器能跑就行
lspie0517
2021-06-22 16:09:13 +08:00
这个数据如果不压缩原始存放在哪?数据库?
forgottencoast
2021-06-29 10:00:19 +08:00
数据在哪里下载呢?
fourstone
2021-06-29 10:08:34 +08:00
@forgottencoast 早就结贴了,请勿加了
很多人加,已经有大佬完成了
不能删帖真麻烦

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/783563

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX