核心问题: 我想把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集群查询时的逻辑,根据业务手动分组