u011856283
你好杰米
2018-04-16 00:37
采纳率: 95%
浏览 1.9k
已采纳

【急】hive表数据太多,普通的查询语句都用不了,求解决【应该很简单】

之前做项目用的hive,本来功能什么的都好了,但是测试的时候不知道王里面加了多少数据,可能有5000W条,一张表。
然后我现在用select * from tablename,或者select count(1) from tablename,根本就没有反映,一直在loding

用select * from tablename limit 1,1,就可以出来结果

请问这是杂回事情,怎么优化?是不是内存不足???
求帮忙,今天我一定得解决这个问题阿

我是用java 的jdbc来操作的,换到beeline上执行也是一样,一直loading

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • qdf8474
    qdf_csdn 2018-04-16 06:58
    已采纳

    select *是将所有数据load到内存,5000万数据量还是比较大的,加载到内存都是一个比较漫长的过程了。你可以试一下在该表建分区。查询的时候建议指定分区,或者像select * from tablename limit 1,1这样做分页,并且建议用where条件过滤出需要的数据(如果有过滤条件的情况下),尽量避免全表查询。

    点赞 评论
  • chen222246lei
    chen222246lei 2018-04-16 00:56

    表上有主键吗? 没有的话加个主键, 然后在试试.

    点赞 评论
  • xcgh
    xcgh 2018-04-16 01:19

    1.表是否压缩
    2.在命令行测试了吗

    点赞 评论
  • qdf8474
    qdf_csdn 2018-04-16 07:01

    做分区的时候建议按照平台对该表的查询需求来选择分区的类型和粒度

    点赞 评论

相关推荐