ELK
是Elastic
公司推出的开源数据分析框架,目前流行于构建Log/Trace
分析平台,该框架主要由三个开源软件Elasticsearch
,Logstash
和kibana
组成,这三者构成数据分析框架的通用范式,即**Ingest Pipeline => Database & Indexing => Logical Frontend
**。
数据分析范式 + 数据存储格式
1. Ingest Pipeline
,将原始数据转化为数据库所对应的存储格式。
2. Database & Indexing
,以特定格式存储数据并通过外部接口提供数据索引检索功能。
3. Logical Frontend
,基于特定逻辑发送数据检索消息并对回馈的数据进行相应的分析处理。
数据存储格式是实现数据库存储功能的关键技术点,传统的关系型数据使用所谓“表类型”的存储方式,这种方式的特点是其“表头(Column)
”字段固定且表建立后无法更改,在如今大数据应用的背景下愈发不灵活,因此出现了摒弃“表”的所谓NoSQL
数据库,例如MongoDB
就使用JSON
条目({ xx : yy }
)替代传统表的Record
,Elasticsearch
采用MongoDB
所使用的“JSON
文档”方式,对比下表可以发现Elasticsearch
中没有所谓DB
的概念,其顶级节点Index
直接类似于MySQL
的Table
以及MongoDB
的Collection
,于其中存储格式数据即JSON
条目,根据Elasticsearch
的方案规定,每条JSON
记录都要定义其Type
和Document ID
,分别对应字段_type
和_id
以用于后期检索,记录数据存放在_source
子字段中。
MySQL: DB -> Table <=> Column&Record (TABLE-TYPE)
MongoDB: DB -> Collection <=> { field : value } (JSON-TYPE)
Elasticsearch: Index <=> { _index : xx , _type : xx, _id : xx, _source : { field : value } } {JSON-TYPE}
ELK
Elastic
产品的UG
内容详实非常实用,用于指导How to do
绰绰有余,且软件均基于Java
等跨平台语言开发因此无需安装只需配置