V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jahan
V2EX  ›  Elasticsearch

外行问一下, elasticsearch+kinda 可以做多复杂的大数据分析?

  •  
  •   jahan · 2018-02-18 15:56:39 +08:00 · 7917 次点击
    这是一个创建于 2500 天前的主题,其中的信息可能已经有所发展或是发生改变。

    问一个特别外行的问题,elasticsearch 可实现多复杂的数据分析呢?

    11 条回复    2018-11-06 11:04:19 +08:00
    pathbox
        1
    pathbox  
       2018-02-18 16:09:29 +08:00 via iPhone
    elasticsearch 主要是搜索,可以自由各种组合
    Raymon111111
        2
    Raymon111111  
       2018-02-18 16:17:05 +08:00
    es 做搜索的..
    laxenade
        3
    laxenade  
       2018-02-18 16:31:30 +08:00 via Android
    起码配套 kibana 用来做数据分析毫无问题
    jahan
        4
    jahan  
    OP
       2018-02-18 17:33:45 +08:00   ❤️ 1
    @laxenade 谢谢。哪里会能看到案例呢
    knktc
        5
    knktc  
       2018-02-18 18:34:03 +08:00
    @jahan https://demo.elastic.co/
    可以先看看这个 demo
    但是我觉得 es 做数据分析,首先是要理清楚你的数据,因为 es 只是个工具,还是需要需求和目的来驱动的
    jahan
        6
    jahan  
    OP
       2018-02-18 20:18:40 +08:00
    @knktc 感谢回复。
    想搭建一个既能存储,有能方便有现成的轮子方便分析的平台。就搭建了一个 elk 的系统。
    当然我的数据都是结构化的数据(固定分隔符),不是日志、也不是杂乱文本。不过定期会有数据进来。然后快要搭建好了问了自己一个问题,这个 elk 够用吗?


    主要的目的就是想搭建一个能够适合不懂 sql 的人使用或者很精通 sql 和 r,python 等工具的人来挖掘一点有价值的信息,存储数据也是一部分(貌似 es 不能很好的保持数据?)也不知道上述目的用 elk 这样好不好,请大家多指教。
    knktc
        7
    knktc  
       2018-02-18 20:30:39 +08:00
    @jahan
    从我的经验来说 elk 绝对够用,而且也能很好地保持数据。
    但是如果你不包装的话,你的数据用户实际上还是需要学习一点 aggs 的知识才能比较好地挖掘数据,否则就只能当做一个简单的搜索来用了。另有,es 可以和 hadoop 结合,到时候可以用 hive 来查数据。
    另有,es 最好用最新的版本,提升很明显,不要再拿着网上的 2.0 版本的文档看了。
    jahan
        8
    jahan  
    OP
       2018-02-18 20:55:19 +08:00
    @knktc 感谢提示。
    当时也不是知道在玄学知乎上看到说 es 不能很好的保持数据。
    还有一篇文章比较 elk 和 hadoop 的文章说了,数据量不大随便用哪个,数据量大,自己就能体会到。简直太玄学。
    后期会尝试包装一下,因为要兼顾两类用户使用。

    目前配置了最新的 6.2 平台,算是刚刚入门这个。
    mengzhuo
        9
    mengzhuo  
       2018-02-19 15:24:52 +08:00
    我们生产环境 500W/min 写入,查询 2 周内数据也能在 3s 内返回,可以说相当优秀
    只用了 10 多台配置一般的机器,查询速度和效率都挺好的
    不过要注意 index 的规划
    jahan
        10
    jahan  
    OP
       2018-02-19 17:39:33 +08:00
    使用 filebeat 来收集表进入 logstash,然后 logstash 送给 elastisearch。 疑问 1.如果不用 filebeat 或者 logstash 来收集,现在我是通过建立 index,mapping 后,进行手工的数据导入( python 将||分割的 txt 转成 mapping 的 json );假若重新部署一个新的环境,如果想要使用 filebeat 和 logstash 的话,是不是在都不需要在 elasticsearch 上建立 mapping ?只需要建立一个 index,告知 filebeat 和 logstash 数据流送到哪个 index 即可( filebeat 需要建立 templalte )?非常疑惑使用 filebeat 和 logstash 后要不要在 elasticsearch 上建立 mapping。

    疑问 2。根据 create table 语句建立 mapping,有没有特别简单的办法?不用写手写或者 python 程序,就能迅速把 mapping 的 json 根据 create table 语句弄出来?有具体例子就最好了。

    疑问 3。配置文件,f,l,e 都是通过配置文件来设置的,有点糊涂到底需要配置哪些文件来使用呢?看 filebeat.yul,logstash 下面建立自己的 myself.conf,还没有能整体上了解。这里就回到了疑问 1,如何在 filebeat 上建立 mapping,是 template ?

    疑问 4,filebeat 在官方文档里面只是一个 log ship,不进行 parsing,那么就是不会将每一个数据文件里面的 line 变成 json ?
    然后疑问就是 template.json 配置来干嘛呢? logstash 对数据进行 gork 操作,分割符号是 0001 的控制符怎么表示呢?

    raw 数据文本怎么通过 f,l 进入 e 绕的有点晕了。
    ghostwwg
        11
    ghostwwg  
       2018-11-06 11:04:19 +08:00
    以下是我的 filebeats 配置文件:
    -----------------
    cat /etc/filebeat/filebeat.yml
    -----------------
    filebeat:
    spool_size: 1024 # 最大可以攒够 1024 条数据一起发送出去
    idle_timeout: "5s" # 否则每 5 秒钟也得发送一次
    registry_file: ".filebeat" # 文件读取位置记录文件,会放在当前工作
    目录下。所以如果你换一个工作目录执行 filebeat 会导致重复传输!
    config_dir: "/etc/filebeat/conf"

    output.kafka:
    hosts: ["x.x.x.x:9091"]
    topic: '%{[logstash_type]}'
    partition.round_robin:
    reachable_only: false
    required_acks: 1
    compression: gzip
    max_message_bytes: 1000000
    -----------------
    cat /etc/filebeat/conf/pubservice.yml
    -----------------
    filebeat.prospectors:
    -
    tail_files: true
    fields:
    logstash_type: "pubservice"
    paths:
    - /var/log/pubservice.log
    fields_under_root: true
    json:
    message_key: message
    overwrite_keys: true
    keys_under_root: true
    -----------------
    -----------------
    我这边是走 filebeats -> kafka -> logstash -> elasticsearch 的数据流走向

    logstash 根据『 logstash_type 』 字段做判断,塞进不同的 index 里面。

    2: 没明白撒意思,手动建立 mapping 看需求,我是倾向于建的,这边不建立 mapping 的情况下,偶有数据类型不一致会丢

    3: filebeats 只是抽数据的吧,建立 mapping 是在 ES 这里做的,你可以通过 es 的 template 接口去实现指定的 index 匹配一套 mapping.

    4: 看上面的配置文件,grok 这个帮不了你,我也不熟
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5352 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 09:22 · PVG 17:22 · LAX 01:22 · JFK 04:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.