大数据量 list.add()的问题

核心问题: 我想把2千万的数据,放入到list中,然后进行分组,最后导致oom


中间遇到的问题: 我想过利用异步,边存边取,但是这样的话,我拿不到全部数据,又如何分组呢?

两千万。。。放集合,肯定会导致内存溢出的。

有什么解决办法吗


两千万。太多了把。这些数据你要干嘛用

你可以用多线程写入

多个线程写入和单线程写入,占用的内容不是一样吗

多线程处理时间快了。就能避免oom

你为什么要这么查?

又是你的es问题。。。。

对的,又是我es的问题... 我需要把es一天的数据,我需要知道哪些用户调用过那些服务 然后入数据库, 所以我要分组

es中好像可以做分组,去重

可以给个语法建议吗

百度上有的,我只是给你建议。我还没深入接触es

https://blog.csdn.net/qq_35696548/article/details/102891860

POST process-log/_search

{

 "query":{

  "bool" : {

  "must" : [

   {

    "match_phrase" : {

     "requestUri" : {

      "query" : "signIn",

      "slop" : 0,

      "zero_terms_query" : "NONE",

      "boost" : 1.0

     }

    }

   },

   {

    "term" : {

     "serverName.keyword" : {

      "value" : "General Management",

      "boost" : 1.0

     }

    }

   },

   {

    "range" : {

     "requestTime" : {

      "from" : 1596240000000,

      "to" : 1596412800000,

      "include_lower" : true,

      "include_upper" : false,

      "boost" : 1.0

     }

    }

   }

    

  ],

  

  "adjust_pure_negative" : true,

  "boost" : 1.0

 }

  

 }

}

这个查询语句如何根据server name. report date , email,userName ,进行分组呀

es库里面有这些属性吗

可使用es的sql语法,进行分组查询 https://www.elastic.co/guide/en/elasticsearch/reference/current/sql-getting-started.html

不要速度也可以先放入到mysql里面,这个学习的也比较快,

放入50个list中,参照mysql集群查询时的逻辑,根据业务手动分组