开发者社区> 问答> 正文

什么是日志数据?

日志处理是一个很大范畴,其中包括实时计算、数据仓库、离线计算等众多点。这篇文章主要介绍在实时计算场景中,如何能做到日志处理保序、不丢失、不重复,并且在上下游业务系统不可靠(存在故障)、业务流量剧烈波动情况下,如何保持这三点。
为方便理解,本文使用《银行的一天》作为例子将概念解释清楚。在文档末尾,介绍日志服务LogHub功能,如何与Spark Streaming、Storm Spout等配合,完成日志数据的处理过程。

问题定义



什么是日志数据?


原LinkedIn员工Jay Kreps在 《The Log: What every software engineer should know about real-time data’s unifying abstraction》描述中提到:“append-only, totally-ordered sequence of records ordered by time”。

  • Append Only:日志是一种追加模式,一旦产生过后就无法修改。
  • Totally Ordered By Time:严格有序,每条日志有一个确定时间点。不同日志在秒级时间维度上可能有重复,比如有2个操作GET、SET发生在同一秒钟,但对于计算机而言这两个操作也是有顺序的。


什么样的数据可以抽象成日志?


半世纪前说起日志,想到的是船长、操作员手里厚厚的笔记。如今计算机诞生使得日志产生与消费无处不在:服务器、路由器、传感器、GPS、订单、及各种设备通过不同角度描述着我们生活的世界。从船长日志中我们可以发现,日志除了带一个记录的时间戳外,可以包含几乎任意的内容,例如:一段记录文字、一张图片、天气状况、船行方向等。半个世纪过去了,“船长日志”的方式已经扩展到一笔订单、一项付款记录、一次用户访问、一次数据库操作等多样的领域。
在计算机世界中,常用的日志有:Metric,Binlog(Database、NoSQL),Event,Auditing,Access Log 等。
在我们今天的演示例子中,我们把用户到银行的一次操作作为一条日志数据。其中包括用户、账号名、操作时间、操作类型、操作金额等。
例如:
  1. 2016-06-28 08:00:00 张三 存款 1000
  2. 2016-06-27 09:00:00 李四 取款 20000

展开
收起
轩墨 2017-10-23 12:50:06 2524 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
PostgresChina2018_赖思超_PostgreSQL10_hash索引的WAL日志修改版final 立即下载
Kubernetes下日志实时采集、存储与计算实践 立即下载
日志数据采集与分析对接 立即下载