大数据量 join 操作

2019 年 1 月 9 日
 elepant

a 和 b 通过字段 C 是有关联的,现在要把 a left join b,把 a 中的某些字段的值从 b 中补充过来。目前的做法是两个文件的数据分别建表入 MySQL,然后 join 操作,但是性能吃紧。想问下懂大数据的 v 友,使用大数据技术有没有更好的解决方案。

目前自己调研是使用 Hbase Hive SparkSQL 去搞,但是自己之前没有搞过大数据不知道这个调研结果是否可以

5297 次点击
所在节点    程序员
25 条回复
zbinlin
2019 年 1 月 9 日
试试 PostgreSQL
surfire91
2019 年 1 月 9 日
就这么点数据,索引加好了不得起飞?
hilbertz
2019 年 1 月 9 日
怎么可能性能吃紧,你跑在树莓派上吗
elepant
2019 年 1 月 9 日
@hilbertz a 表有 70+字段,b 表有 30+字段,join 的结果需要包含 a 表所有字段,然后将 join 结果写入文本文件
elepant
2019 年 1 月 9 日
@surfire91 跟索引优化有关?
elepant
2019 年 1 月 9 日
@zbinlin 这个 join 性能很好?
lanterboy
2019 年 1 月 9 日
先弄清楚 性能吃紧的瓶颈在业务代码还是数据库
TKKONE
2019 年 1 月 9 日
这点数据都性能紧张的话,还搭建 hive 不是更紧张?
elepant
2019 年 1 月 9 日
@lanterboy 是的,明天确认下是数据库问题还是文件 IO 问题,生产环境 a 表在千万级别
elepant
2019 年 1 月 9 日
@surfire91 索引是已经加了的,跑完大概在 5 分钟左右
glacer
2019 年 1 月 9 日
楼主的性能吃紧在 IO,每次都返回 100w 行 100+字段的数据,这能不慢吗
surfire91
2019 年 1 月 9 日
@Asan 跑完是指什么跑完,只查了库,还干了别的吗?如果查库就占了近 5 分钟,那查询还是有问题的,100 个字段要说多也不多,主要还是看字段类型长度,两个表总共占了多少空间?机器什么配置?多大内存?
magicsilence
2019 年 1 月 9 日
千万 A 表和四十万 B 表全 load 到 hive, 一个 hql 就能搞定。

sparksql 和 hbase 都不用。

另:hive 可以 on spark
sss007
2019 年 1 月 9 日
建个视图试试
Mac
2019 年 1 月 9 日
很明显 io 的瓶颈,每次都全量输出不慢才怪呢
sunnyadamm
2019 年 1 月 9 日
io 问题,量不大,
zhchyu999
2019 年 1 月 9 日
SQLServer 也能很轻松的搞定,这点量远远不到大数据;
试试优化下你的业务逻辑或者查询逻辑,是否真的需要这么多数据全量 join,能否先缩小一下范围
尽量少的引入外部组件,业务扔不掉,后期维护真的很难
F281M6Dh8DXpD1g2
2019 年 1 月 9 日
Spark sql 就行了,要不了多久
laqow
2019 年 1 月 9 日
没有后续查找需要的话是不是只把 B 放数据库,然后逐个 A 行用 C 关键字查询 B 把结果放回 A 就可以了?
50infivedays
2019 年 1 月 9 日
这个量确实比较小

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

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

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

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

© 2021 V2EX