游戏日志分析准备:如何对游戏业务日志关联云数据库Redis做富化加工

简介: 随着移动互联网的发展,游戏几乎是进入快餐式消费时代,游戏公司也会面临方方面面的挑战,为了获得最佳的游戏运营方案,游戏公司希望将用户游戏日志与用户元数据进行联合分析。

背景

随着移动互联网的发展,游戏几乎是进入快餐式消费时代,游戏公司也会面临方方面面的挑战,为了获得最佳的游戏运营方案,游戏公司希望将用户游戏日志与用户元数据进行联合分析。

对一个大型游戏而言,游戏日志是海量的并且需要实时分析,而SLS正好可以满足这一要求,所以可以将游戏日志采集到SLS的logstore中。由于用户信息访问频率高,但更新频率较低,加上redis本身就支持持久化存储,所以一般使用Redis来存储用户元数据。

SLS简介

日志服务(Log Service,简称SLS)是云原生观测与分析平台,为Log、Metric、Trace等数据提供大规模、低成本、实时的平台化服务。日志服务一站式提供数据采集、加工、查询与分析、可视化、告警、消费与投递等功能,全面提升您在研发、运维、运营、安全等场景的数字化能力。

数据加工服务是阿里云SLS推出的面向日志ETL处理的服务,主要解决数据加工过程中转换、过滤、分发、富化等场景。数据加工DSL是专门为日志实时行处理定制的一套语言(Python语法子集),目前已经提供200+ 内置函数来简化数据加工模式。

场景应用

SLS通过对游戏日志的加工富化,从而帮忙企业修复用户数据、定位系统异常、帮助运维等。下面通过一个实例说明数据加工DSL中的e_redis_map函数如何对用户游戏日志进行数据富化。

案例实践

Logstore采集日志

  • 如何将日志采集到日志服务,可以使用ilogtail采集,这里就不再多说,这里举一个采集到的实例,如下:

  • 日志包括用户ID、用户名、操作、点击位置、用户IP等信息。由于采集到的是一串json格式的字符串,不便于后续处理,这里可以使用数据加工DSL的语句,首先对数据进行简单的转换,使用加工语句:

e_json("data", fmt="parent")

# 丢弃原字段

e_drop_fields("data", regex=False)

  • 加工后的日志就变成:

云数据库Redis中的用户元数据

  • 首先需要创建云数据库Redis,参考云数据库 Redis创建实例,创建成功以后,插入用户元数据至数据库中,字段是用户ID,value值包含用户的性别、注册时间、地区等等,如下:

userId

value

9022

"sex": "female",

  "registration": 948354751,

"region":shanghai

}

9098

{

  "sex": "male",

  "registration": 1292831551,

"region":nanjing

}

10112

{

  "sex": "male",

  "registration": 1354428586,

"region":hangzhou

}

数据加工

使用数据加工DSL的e_redis_map函数,通过Logstore日志中的用户ID字段对应的字段值(即data.userID的值),在用户元数据表(实例名r-bp1***)中查找该值对应的value,查到的结果作为字段“detail”的字段值,如下:

e_redis_map('data.userID', "detail",

           "r-bp1***.redis.rds.aliyuncs.com", port=redis-port, db=0,

           username=redis-username, password=redis-password)

加工结果

经过数据加工处理后,结果Logstore中的日志包含原始日志中的用户行为字段及个人信息,如下:


其他参考:

1、数据加工文档:https://help.aliyun.com/document_detail/125384.html

2、e_redis_map函数使用指南:https://help.aliyun.com/document_detail/125489.html#section-a4e-tmh-o1s

3、云数据库Redis文档:https://help.aliyun.com/document_detail/26351.html

3、3、

3

26gt%3B%26lt%3Bdiv%20class%3D%26quot%3Blake-content%26qu33ot%3B%26gt%3B%26lt%3Bimg%20src%3D%26quot%3Bhttps%3A%2F%2Fucc.alicdn.com%2Fimages%2Flark%2F0%2F2022%2Fpng%2F56156506%2F1669880189796-3d295f24-c222-402e-bc57-

ce%3Dwrap%3Bhtml%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22-572%22%20y%3D%22307%22%20width%3D%22385%22%20height%3D%227%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3C%2Froot%3E%3C%2FmxGraphModel%3E

目录
相关文章
|
2月前
|
SQL 存储 监控
SQL日志优化策略:提升数据库日志记录效率
通过以上方法结合起来运行调整方案, 可以显著地提升SQL环境下面向各种搜索引擎服务平台所需要满足标准条件下之数据库登记作业流程综合表现; 同时还能确保系统稳健运行并满越用户体验预期目标.
215 6
|
3月前
|
缓存 Java 应用服务中间件
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
本文详解Spring Boot十大核心配置优化技巧,涵盖Tomcat连接池、数据库连接池、Jackson时区、日志管理、缓存策略、异步线程池等关键配置,结合代码示例与通俗解释,助你轻松掌握高并发场景下的性能调优方法,适用于实际项目落地。
628 5
|
9月前
|
存储 缓存 监控
【YashanDB数据库】数据库运行正常,日志出现大量错误metadata changed
数据库运行正常,日志出现大量错误metadata changed
|
7月前
|
监控 容灾 算法
阿里云 SLS 多云日志接入最佳实践:链路、成本与高可用性优化
本文探讨了如何高效、经济且可靠地将海外应用与基础设施日志统一采集至阿里云日志服务(SLS),解决全球化业务扩展中的关键挑战。重点介绍了高性能日志采集Agent(iLogtail/LoongCollector)在海外场景的应用,推荐使用LoongCollector以获得更优的稳定性和网络容错能力。同时分析了多种网络接入方案,包括公网直连、全球加速优化、阿里云内网及专线/CEN/VPN接入等,并提供了成本优化策略和多目标发送配置指导,帮助企业构建稳定、低成本、高可用的全球日志系统。
834 54
|
4月前
|
存储 关系型数据库 数据库
【赵渝强老师】PostgreSQL数据库的WAL日志与数据写入的过程
PostgreSQL中的WAL(预写日志)是保证数据完整性的关键技术。在数据修改前,系统会先将日志写入WAL,确保宕机时可通过日志恢复数据。它减少了磁盘I/O,提升了性能,并支持手动切换日志文件。WAL文件默认存储在pg_wal目录下,采用16进制命名规则。此外,PostgreSQL提供pg_waldump工具解析日志内容。
412 0
|
11月前
|
存储 消息中间件 Kafka
聊一聊日志背后的抽象
本文从思考日志的本质开始,一览业界对日志使用的最佳实践,然后尝试给出分布式存储场景下对日志模块的需求抽象,最后是技术探索路上个人的一点点感悟。
641 81
|
8月前
|
存储 NoSQL Redis
阿里面试:Redis 为啥那么快?怎么实现的100W并发?说出了6大架构,面试官跪地: 纯内存 + 尖端结构 + 无锁架构 + EDA架构 + 异步日志 + 集群架构
阿里面试:Redis 为啥那么快?怎么实现的100W并发?说出了6大架构,面试官跪地: 纯内存 + 尖端结构 + 无锁架构 + EDA架构 + 异步日志 + 集群架构
阿里面试:Redis 为啥那么快?怎么实现的100W并发?说出了6大架构,面试官跪地: 纯内存 + 尖端结构 +  无锁架构 +  EDA架构  + 异步日志 + 集群架构
|
10月前
|
存储 SQL 关系型数据库
MySQL日志详解——日志分类、二进制日志bin log、回滚日志undo log、重做日志redo log
MySQL日志详解——日志分类、二进制日志bin log、回滚日志undo log、重做日志redo log、原理、写入过程;binlog与redolog区别、update语句的执行流程、两阶段提交、主从复制、三种日志的使用场景;查询日志、慢查询日志、错误日志等其他几类日志
834 35
MySQL日志详解——日志分类、二进制日志bin log、回滚日志undo log、重做日志redo log
|
10月前
|
存储 缓存 关系型数据库
图解MySQL【日志】——Redo Log
Redo Log(重做日志)是数据库中用于记录数据页修改的物理日志,确保事务的持久性和一致性。其主要作用包括崩溃恢复、提高性能和保证事务一致性。Redo Log 通过先写日志的方式,在内存中缓存修改操作,并在适当时候刷入磁盘,减少随机写入带来的性能损耗。WAL(Write-Ahead Logging)技术的核心思想是先将修改操作记录到日志文件中,再择机写入磁盘,从而实现高效且安全的数据持久化。Redo Log 的持久化过程涉及 Redo Log Buffer 和不同刷盘时机的控制参数(如 `innodb_flush_log_at_trx_commit`),以平衡性能与数据安全性。
489 5
图解MySQL【日志】——Redo Log

热门文章

最新文章