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

2018-02-18 15:56:39 +08:00
 jahan

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

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


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

目前配置了最新的 6.2 平台,算是刚刚入门这个。
mengzhuo
2018-02-19 15:24:52 +08:00
我们生产环境 500W/min 写入,查询 2 周内数据也能在 3s 内返回,可以说相当优秀
只用了 10 多台配置一般的机器,查询速度和效率都挺好的
不过要注意 index 的规划
jahan
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
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 这个帮不了你,我也不熟

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/431133

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX