统计流程
数据统计流程可以分为数据采集、数据处理、数据存储、数据可视化、数据报表五个步骤。
数据采集
数据采集服务负责从多种数据源中获取数据,并统一上送到数据处理服务中。
采集数据支持结构化和非结构化的数据,对各种数据统计场景友好。
打点
支持在应用中直接记录需要统计的数据项,将运行中的数据纳入统计中。
打点的采集方式通过记录日志的方式实现,其日志级别统一为stat。日志数据将通过日志服务,并最终上送到统计服务的数据仓库中。
数据库
应用的数据将会以各种形式存储在多种数据库中,如mysql、redis等。当需要依托应用数据进行数据统计时,就需要将数据同步到数据仓库中。
- go-mysql-elasticsearch 开源工具 基于binlog实现
- logstash-input-jdbc logstash插件 基于对查询数据库实现
文件
在业务进行过程中,部分数据可能以文件的形式存在,如csv、excel等。
通过数据处理脚本读取数据后送入数据处理服务,也可以直接上送到数据仓库中。
数据处理
从数据源中获取到的数据可能有多种格式,数据处理服务就是把这些各不相同的数据的处理成标准格式的数据,从而上送到数据仓库中。
Logstash
Logstash是一款强大的数据处理工具,它可以实现数据传输,格式处理,格式化输出,还有强大的插件功能。
数据仓库
数据仓库负责存储统计数据,并向外提供搜索&聚合数据的功能。
ElasticSearch
Elasticsearch 是一个分布式、可扩展、实时的搜索与数据分析引擎,它支持全文检索、结构化搜索、数据分析、复杂的语言处理、地理位置和对象间关联关系等。Elasticsearch 有非常多的优点: 高性能、可扩展、近实时搜索,并支持大数据量的数据分析。
Elasticsearch 鼓励人去探索与利用数据,而不是因为查询数据太困难,就让它们烂在数据仓库里面。
数据可视化
数据可视化服务能够展示数据仓库中的数据,拥有丰富的展示形式。并且可视化服务应当能够快速灵活地构建图表,应对统计需求的频繁迭代。
Kibana
Kibana是一个Elasticsearch数据分析和可视化的开源平台,使用Kibana能够搜索、展示存储在Elasticsearch中的数据,使用它可以很方便地用图表、表格、地图展示和分析数据。
数据报表
Kibana中的数据面板无法满足用户多样化的查看需求, 需要对其进行封装,形成多种报表形式来向用户展示。
实时报表
组合各个可视化组件形成一张全面的实时的可回溯的数据报表,并且整合到自有系统中去,方便项目负责人查阅业务整体的运行情况。
离线报表
定时将各种报表发送到订阅人处,让订阅人了解近期业务的运行情况。并且对离线报表进行备份,方便日后的查询及回溯。