应用场景

在日志分析场景中,我们经常会遇到数据分散在各地场景,例如用户操作、行为相关的数据在日志中,同时用户属性、注册信息,资金、道具等状态存在数据库中。类似场景下,需要对用户进行分层统计,将最后的计算结果写入数据库中供报表系统查询。

不同的数据源,存储在不同的存储系统中,如果要实现这种分析,一般的做法是把数据搬迁到一个统一的存储系统中,再进行分析。搬迁数据既涉及到网络传输,又涉及到数据的清洗和格式化归一,耗时又耗精力。导致用户的大部分精力浪费在数据搬迁上。

日志服务提供的外部存储API支持以下功能:
  • 通过API为外部存储定义映射,不需要搬迁数据。
  • 提供统一的查询分析引擎,支持在一个SQL中对日志、外部存储等多种数据源进行JOIN操作。
  • 支持将多种分析结果保存到外部存储中。

支持的外部存储

表 1. 支持的外部存储
外部存储名称 支持从外部数据源读取 支持写入外部数据源 支持的Region
MySQL 支持 支持 华东一(hangzhou)、华北一(qingdao)、华东二(shanghai)、华北二(beijing)

外部存储API

API支持创建、更新、删除、列表等接口,详细内容请参考外部数据源API

外部存储的操作可以通过Python SDK或者cli完成。安装和使用请参考文档命令行工具

示例

  • 创建外部存储
    aliyunlog log create_external_store --project_name="log-rds-demo" --config="file:///root/config.json" 
    
    /root/config.json的内容为:
    {
    	"externalStoreName": "chiji_user",
    	"storeType": "rds-vpc",
    	"parameter": {
    		"vpc-id": "vpc-m5eq4irc1pucpk85frr5j",
    		"instance-id": "rm-m5ep2z57814qsn97b",
    		"host": "rm-m5ep2z57814qsn97b.mysql.rds.aliyuncs.com",
    		"port": "3306",
    		"username": "testroot",
    		"password": "123456789",
    		"db": "chiji",
    		"table": "chiji_user",
    		"region": "cn-qingdao"
    	}
    }
    
  • 使用外部存储

    游戏日志分析5:数据库与日志关联分析