问一个特别外行的问题,elasticsearch 可实现多复杂的数据分析呢?
1
pathbox 2018-02-18 16:09:29 +08:00 via iPhone
elasticsearch 主要是搜索,可以自由各种组合
|
2
Raymon111111 2018-02-18 16:17:05 +08:00
es 做搜索的..
|
3
laxenade 2018-02-18 16:31:30 +08:00 via Android
起码配套 kibana 用来做数据分析毫无问题
|
5
knktc 2018-02-18 18:34:03 +08:00
|
6
jahan OP @knktc 感谢回复。
想搭建一个既能存储,有能方便有现成的轮子方便分析的平台。就搭建了一个 elk 的系统。 当然我的数据都是结构化的数据(固定分隔符),不是日志、也不是杂乱文本。不过定期会有数据进来。然后快要搭建好了问了自己一个问题,这个 elk 够用吗? 主要的目的就是想搭建一个能够适合不懂 sql 的人使用或者很精通 sql 和 r,python 等工具的人来挖掘一点有价值的信息,存储数据也是一部分(貌似 es 不能很好的保持数据?)也不知道上述目的用 elk 这样好不好,请大家多指教。 |
7
knktc 2018-02-18 20:30:39 +08:00
@jahan
从我的经验来说 elk 绝对够用,而且也能很好地保持数据。 但是如果你不包装的话,你的数据用户实际上还是需要学习一点 aggs 的知识才能比较好地挖掘数据,否则就只能当做一个简单的搜索来用了。另有,es 可以和 hadoop 结合,到时候可以用 hive 来查数据。 另有,es 最好用最新的版本,提升很明显,不要再拿着网上的 2.0 版本的文档看了。 |
8
jahan OP @knktc 感谢提示。
当时也不是知道在玄学知乎上看到说 es 不能很好的保持数据。 还有一篇文章比较 elk 和 hadoop 的文章说了,数据量不大随便用哪个,数据量大,自己就能体会到。简直太玄学。 后期会尝试包装一下,因为要兼顾两类用户使用。 目前配置了最新的 6.2 平台,算是刚刚入门这个。 |
9
mengzhuo 2018-02-19 15:24:52 +08:00
我们生产环境 500W/min 写入,查询 2 周内数据也能在 3s 内返回,可以说相当优秀
只用了 10 多台配置一般的机器,查询速度和效率都挺好的 不过要注意 index 的规划 |
10
jahan OP 使用 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 绕的有点晕了。 |
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 这个帮不了你,我也不熟 |