菜鸟问下 ELK、知识图谱、推荐算法相关的应用问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ashiamd
V2EX    问与答

菜鸟问下 ELK、知识图谱、推荐算法相关的应用问题

  •  a href="Javascript:" Onclick="downVoteTopic(722316);" class="vote">
  •   ashiamd 2020-11-06 11:17:12 +08:00 2211 次点击
    这是一个创建于 1866 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近有需求,需要做一个日志分析系统=>打算用 Elastic Stack ( ELK+B )来实现,但是本人还在学习阶段,只知道 B 用来数据获取,L 用于数据过滤,E 用于搜索+分析,K 用于数据可视化。

    一、个人理想计划如下: ( 1 ) nginx 端 或 具体 java 后端进程产生的 log 日志 -> 用 Beats 相关技术监听 nginx 的 HTTP 请求 or 获取 java 日志文件;接着 beats 传递数据到 kafka 消息队列

    ( 2 )从 kafka 中消费数据,数据给 logstash 进行数据过滤(变成简单格式,比如 IP:HTTP 方法( POST 等):具体方法:{参数列表之类的};接着 logstash 再将过滤后的数据给另一个 kafka 队列

    ( 3 )从 kafka 消费数据,数据给 ElasticSearch,进行数据分析,然后 Kiana 数据可视化。

    总体:nginx/java 进程 日志来源 -> beats -> kafka -> logstash -> kafka -> ElasticSearch -> Kibana

    二、问题 ( 1 )我自己想得比较理想,但据说不适合用 ElasticSearch 当作存储,但是居然要分析,不就不得不把数据加载到内存上的 ES 上吗?有什么避免内存占用过大的方法吗?

    ( 2 )上面只想了 ELK 进行日志分析,但是后续需要根据 ELK 的日志分析来进行 一些产品之类的东西的推荐,也就是涉及推荐系统的搭建,个人想法就是可能可以根据日志的用户行为,构建 图数据库,然后根据图数据库进行用户的产品推荐之类的。不知道这种想法可行不可行。

    ( 3 )请教一下各位看官,ELK (正在学)、图数据库(了解过,没用过)、推荐算法(这个没了解过),是不是这几个部分就能够实现以下几个事情了?(日志可视化、用户行为分析、用户产品推荐)

    ps:本人比较菜,ELK 、图数据库相关概念稍有了解,但是推荐算法纯不知道。

    9 条回复    2020-11-11 16:48:30 +08:00
    Morriaty
        1
    Morriaty  
       2020-11-06 11:49:22 +08:00   1
    1. 先用最简单的 ELK,docker 现成的,kafka 都不要,快速验证快速试错
    2. 真要认真做推荐系统当然是要上 Hadoop 、spark 这些的,一般成熟的系统也是 online/nearline/offline 多层架构的,数据层比算法层重要
    3. 大数据开发、知识图谱、搜索推荐,每个都是要求很高的,如果是一个人做,玩玩就好,不要期望太高....
    ashiamd
        2
    ashiamd  
    OP
       2020-11-06 12:32:18 +08:00
    感谢回复,那意思是如果不上大数据技术的话,现阶段先只考虑 ELK 的日志行为分析就最可行的方案?如果图数据库和推荐系统需要大数据技术支持的话,那确实现阶段学习可能吃不消(内容太多了)。

    再次感谢。那我现阶段就:
    ( 1 )先考虑 ELK 使用(我本地也是用 docker,但是某些参数可能设置有些问题=>之后再自己解决)
    ( 2 )构建整个完整的日志处理流程
    ( 3 )考虑 LogStash 过滤后在 ElasticSearch 上存储的数据结构设计
    ( 4 )根据“有用”的信息(能看出平台用户爱好趋向等信息)构建 kibana 视图。

    根据以上流程,至少小目标应该能根据用户日志,大致通过 kibana 的图表等内容来人为分析出平台用户爱好、流量走向等关键信息。
    ashiamd
        3
    ashiamd  
    OP
       2020-11-06 12:35:08 +08:00
    @Morriaty 感谢回复,刚才没点到 @符号,楼上补了一条回复。
    yisany
        4
    yisany  
       2020-11-06 13:55:57 +08:00   1
    log -> beats -> logstash -> kafka -> es
    beats 是能够直接对接到 logstash 的, 不需要 kafka 做中转(当然也可以用).
    同时 es 虽然全文搜索很强, 但你如果要用来做数据分析, 是不如 olap 数据库的
    Morriaty
        5
    Morriaty  
       2020-11-06 14:27:58 +08:00   1
    搜索推荐是非常面向业务的,你要先想好你想关心的数据,然后再去反推你的 scheme / mapping 设计,比如:

    1. 用户关心的热门内容,那就需要从日志里抽取至少 content_id, user_id, tags,目前的数据里有 tags 吗?如果没有,或者数据量不足,怎么抽取呢?
    2. 用户的兴趣变化,那要再加个 timestamp 字段,上周还没人阅览的内容,这周暴增了十倍

    诸如此类
    ashiamd
        6
    ashiamd  
    OP
       2020-11-06 19:54:37 +08:00
    @yisany 感谢回复,我学的东西比较少,第一次听说 OLAP 这个词,查了下,貌似 V2EX 里有人也有过类似问题。
    [OLAP 数据库推荐]( t/705920)
    看了下方有人选择了 Druid,说是 java 写的?或许我可以去了解了解。(之前项目里用的 Druid 连接池,我还以为这个就是个连接池,原来 Apache Druid 是个数据库)
    ashiamd
        7
    ashiamd  
    OP
       2020-11-06 20:00:22 +08:00
    @Morriaty 好的,感谢你的宝贵意见。
    ( 1 ) tags,数据库现在还没有确定下来,不过居然现在知道需要 tags 了,之后就可以考虑在哪些内容上加了。(貌似之后会有业务是注册登录后,先让用户选择几个感兴趣的标签=>现在很多 app 、网站的常见模式)
    ( 2 )时间戳 timestamp,这个我之前还真没考虑过。确实如果没有时间因素的话,就没法看出用户兴趣变化了。(这方面第一次接触,还是没能想全)
    yisany
        8
    yisany  
       2020-11-10 09:43:12 +08:00   1
    @ashiamd OLAP 数据库各有各的特性, 需要根据你自身的业务来选择.
    例如 clickhouse 是最快的数据库(单表查询), 但它对于 update/delete 之类的操作不大友好, 且 join 性能一般.
    可以看一下相关的评测文章:
    - http://www.clickhouse.com.cn/topic/5c453371389ad55f127768ea
    - http://www.clickhouse.com.cn/topic/5e16bd88bf358d57027ec6fc
    但文章里测试 clickhouse 性能用的是 log 引擎, mergeTree 引擎才是 clickhouse 的精髓.
    ashiamd
        9
    ashiamd  
    OP
       2020-11-11 16:48:30 +08:00 via Android
    @yisany 感谢回复。这两篇文章好详细,对我这种没了解过 OLAP 的人来说很有帮助,收藏了。(老哥说的 log 引擎等,这个我也没听说过,看来我需要新学的东西还挺多,哈哈)


    再次感谢!

    楼下个人吐槽兼感想,老哥可以不用往下看了。
    ====================================

    ps:才知道 OLAP 产品原来那么多,这方面好像主要和大数据挂钩?那好像推荐系统,还有点遥远(大数据零基础,本人目前只接触过前后端的相关技术)


    ps:最近下载了一些大数据相关的书记 OLAP 或许我也该查查,至少可以翻阅翻阅,先了解最基础的概念。


    ps:最近主要在连滚带爬尝试搭建 elk+beat 了,github 备份了下近期( nginx,java,mysql,elk,beat 的一整个 Demo,从 niginx 收集日志到 elk ),因为有些东西不太熟,花了很多时间才只弄了个 docker-compose 可以跑的版本。OLAP 可以替代 elasticsearch 的话,那我得看看,不知道 OLAP 是不是硬性要求大数据(我看好像都和大数据有点关系?),现在貌似暂时还没有那个量级的需求。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1155人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 17:47 PVG 01:47 LAX 09:47 JFK 12:47
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86