2019/04/03

阿里云-日志服务


理解研究阿里云-日志服务的用途是:
将研发游戏产品日志数据全部落地,例如角色的注册、登录、充值、消耗、升级、通关等日志信息。并对数据能及时通过分析语句统计汇总展示。选用阿里云日志服务说到底还是懒,想快速部署大数据上线,不用对kafka、hadoop、hdfs、kudu、presto等大数据技术过度研究和不用花大量资金采购服务器部署,降低成本。

概念

日志服务几个概念:

名称 字段名 mysql数据库对应
项目 Project 数据库
日志库 Logstore 数据表
分区 Shard 表分区
日志 Log 一条记录
日志主题 Topic -
名称 说明
Logstore 日志库
LogHub 数据采集配置和消费配置
Logtail 数据采集配置
LogShipper 数据投递

字段索引

在数据上报中途添加了索引后,旧数据是不会生效,只对新数据索引有效。所以:

  • 1.要么 一开始就开启 全文索引
  • 2.要么 在做数据格式处理时,一定要想清楚对哪些字段进行索引添加。
  • 3.在开启索引后,系统会默认将相关保留字段开启为字段索引,如 __topic__
  • 4.自定义字段索引时,开启统计 默认开启,作用 可以结合 查询语句 和 SQL分析语句,对日志查询结果进行统计分析。

与mysql保持对应关系

在使用日志服务,永远建议基于mysql数据库和数据表来进行。创建数据库对应日志的项目,创建数据表对应日志的日志库

日志备份

将外部数据采集到 Logstore 后,可对 Logstore 数据投递到 OSS 处进行永远落地保存,防止丢失。投递到 OSS 建议使用 google snappy 进行压缩,减少空间占用。

linux 对 snappy 解压操作:
https://help.aliyun.com/document_detail/108942.html

php 对 snappy 的压缩和解压操作:
https://github.com/kjdev/php-ext-snappy

git clone --recursive --depth=1 https://github.com/kjdev/php-ext-snappy.git
cd php-ext-snappy
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install

extension = snappy.so

压缩与解压

$compressed = snappy_compress('Compress me');

$uncompressed = snappy_uncompress($compressed);

echo $uncompressed;