首页 新闻 搜索 专区 学院

如何千万级数据建立数据库

0
悬赏园豆:100 [已解决问题] 解决于 2021-09-28 15:12

有20个Excel表,字段都相同。每个表有80万数据量。由于需要把表里数据整合,如何解决?求帮助

我的小白的主页 我的小白 | 初学一级 | 园豆:9
提问于:2021-09-28 13:51
< >
分享
最佳答案
1

是mysql么,如果是一次性的功能,就建一个表在navicat里面手动导入每个excel即可。。

收获园豆:40
为乐而来 | 小虾三级 |园豆:1377 | 2021-09-28 13:58

不是一次性的,需要后续使用的呀。有点像是把20个表变成1个表,但是数据量大,Excel解决不了。所以寻求各位帮助

我的小白 | 园豆:9 (初学一级) | 2021-09-28 14:03

@我的小白: 以后经常有这样的文件,如果频次不大,就在nivacat中手动导入了。。
如果经每天每周都有这个文件要导入,就要写程序 ,但是你这ExceL太大20W程序 也会很慢,你应该从源头看能否解决。不要正在Excel,或者每个Excel少于1W条,再用程序读取导入

为乐而来 | 园豆:1377 (小虾三级) | 2021-09-28 14:16

@为乐而来: 那用navicat如何实现把20个表联结成一个表,或者尽量减少表呢?

我的小白 | 园豆:9 (初学一级) | 2021-09-28 14:21

你下一个navicat用一下就知道了,
1.先建表结构,导入都是追加到这个表的记录后面。。

为乐而来 | 园豆:1377 (小虾三级) | 2021-09-28 14:50
其他回答(3)
0

mysql 就可以处理了吧?千万级的,不大吧。
更进一步就是 分表 咯。

你说的 数据整合 是指 什么更复杂的计算吗?

收获园豆:30
快乐的凡人721 | 园豆:1370 (小虾三级) | 2021-09-28 13:54

整合就是把每个单独的Excel都建立在一起,后期便于查询和查看。如果是在MySQL中,如何把独立的20表都建立在同一个表格里呢?

支持(0) 反对(0) 我的小白 | 园豆:9 (初学一级) | 2021-09-28 14:01

@我的小白:
1、自己写程序
读取Excel数据,再存入 MySQL
2、看楼下 园友的
使用Navicat 导入每个excel到 一张表

支持(0) 反对(0) 快乐的凡人721 | 园豆:1370 (小虾三级) | 2021-09-28 14:04

@我的小白:
不想用MySQL的话(要建立表结构啥的),
也可以用 MongoDB——查询速度挺快的,
甚至 ElasticSearch——应该也有导入Excel的功能

支持(0) 反对(0) 快乐的凡人721 | 园豆:1370 (小虾三级) | 2021-09-28 14:05

@快乐的凡人721: 由于我没这块经验。写的是python读取Excel文件,然后再合并Excel表。最后导出的是EXcel文件。发现数据量太大,不行。我去试试navicat,也不是写入频繁。

支持(0) 反对(0) 我的小白 | 园豆:9 (初学一级) | 2021-09-28 14:19
0

python 你试试 pandas , 它应该能做到将 20 张excel读取加合并,至于写入 mysql 应该没问题,但是我没搞过这么大的数据量
思路如下,具体参数你可以百度

import pandas as pd
from sqlalchemy import create_engine

# 读取
df = pd.read_excel('1.xlsx')
df_2 = pd.read_excel('2.xlsx')
# 合并
df_all = pd.concat([df, df_2], axis=1)
# 写入db
engine = create_engine('mysql+pymysql://ledao:ledao123@localhost/pandas_learn')

df_all.to_sql(name='all_excel_table', con=engine, chunksize=1000, if_exists='replace', index=None)
收获园豆:30
| 园豆:827 (小虾三级) | 2021-09-28 14:47

估计写不了吧~~,excel 好像最多就是写1w数据行

支持(0) 反对(0) 我不舔了 | 园豆:1196 (小虾三级) | 2021-09-28 14:58

@Cgrain: 你可以看下上面几层的评论, 他的需求是将 20 个excel 整合写入 MySQL,而不是生成一张新的 excel;
另外 pandas excel 底层也是有依赖的, 类似 xlrd openpyxl, 记得是可选的
至于行数限制,网上看到 xlrd (百万) openpyxl (65535\1048575), 数据波动和很多因素有关

支持(0) 反对(0) | 园豆:827 (小虾三级) | 2021-09-28 15:45

@韆: 嗯 ,只是好奇下,我没有实际弄过,所以问问,没别的意思

支持(0) 反对(0) 我不舔了 | 园豆:1196 (小虾三级) | 2021-09-28 15:48

@Cgrain: 没啥,遇到能解决的疑问,尽量顺手解决(个人习惯)

支持(0) 反对(0) | 园豆:827 (小虾三级) | 2021-09-29 09:12
0

能用python将文件整合到一起吗?https://blog.csdn.net/jiahaowanhao/article/details/80547623
不清楚是否有大小长度限制

人间春风意 | 园豆:984 (小虾三级) | 2021-09-28 15:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册